Sierra reacted to twostars in Eden&HANGOVER vs Elior&YouGotPwndByMyAssJewishDariusKairi REWARD: 15K KC
I'm all for friendly banter, but this is taking it way too far.
Invading people's privacy and abusing their family members is so far over the line that I never thought this would be something I'd ever have to deal with in a private server environment.
Enjoy your ban. Hopefully by the time it eventually expires you'll have had some personal reflection and, hopefully, will consider - at the very least - apologising to them.
Really. It's just a game, guys. Chill the hell out.
Sierra reacted to BulletClub in WHAT IS THIS ??????
He said he was going to descent to kill you. but you died before he could descent.
they already explain that the chinese look far away on your screen but in reality. they are close. it's ping. if you are closer to the server you experience less lag
also they are spamming acid pots. which you can do also. gm said a long time ago that the acid pot bug was fixed. but it's definitely not fixed
Sierra reacted to twostars in Our future client project...
This is by far our most exciting -- and promising! -- project, and one that I've been spending every possible moment on lately.
Why is this project important?
Firstly, before I get into anything, I should explain why the client source -- and this project -- is important.
It's essentially useful for 2 things: being able to more easily fix things ourselves, and giving us the option to literally do anything. I can't stress this last part enough. With the server, we have some means of creativity; but anything we could implement has to find a way to have this deal with the client in a suitable manner.
Having the client source removes this limitation entirely. Our server, our client. We can do whatever we want with it.
We need a new UI? We can make one and add it in. Imagine the possibilities.
Regarding fixing things, right now we rely on official updates from mgame; our update process revolves around using their code and adding in our patches (each time) to fix their issues (that they haven't yet fixed themselves).
Each update we hope that they've actually fixed things that we've yet to fix for them (manually, with assembly, which is a considerably more daunting and time consuming task for us than it is for them with the client source). Changing a single line of code for them, may take us a few hours to do manually via assembly (having to track down where this logic is, etc).
And now some history...
If you're not aware, there exists a set of leaked (official) source files for ~1.06x (for the server AND client -- as well as their development tools) from way back in 2002~2003. This was before its first released version, and before anything was actually implemented properly, but it's still a tremendously invaluable resource as a lot of things still are handled similarly -- if not the same -- even now in 2.1xx.
So way back during server development (~2013) I explored updating the client source. I updated it to support the various new file formats, and had it connecting to our server -- compiled for 1.298 -- since UI behaviour is a lot closer (less of a jump, means easier to get in and mess with things without having to update literally everything to get to that point). I implemented capes, symbols (rendering and importing them via the UI), premium stuff, PM windows (because again: this was back before PM windows even existed!), loot boxes, and a bunch more.
Eventually I moved on to play with 2.0xx, but quickly lost interest for a few reasons: there was a ton more to do, we were very busy with server development still (so this felt like wasted time), and well, at the time I was doing it solo, so I felt like it was too much of a monumental undertaking to attempt at this point in time.
Aaaaaand now skip to this year (2017)
The server's in a very good place, to the point where major server development is few and far between now (usually just bug fixes at this stage), and the OpenKO project happened.
If you're not familiar with the project, they set about messing with the client source as well in an attempt to update it while learning how things work. This piqued my interest, and I became involved with it for a bit. Many hands make light work, after all.
However, my experiences with open-source KO development have taught me that it's... well, a terrible idea (blah blah working alone blah blah spoonfeeding people blah blah people complaining about things not being implemented while at the same time selling it for their own personal gain blah blah... you get the idea), so I took the opportunity to ask those who were actively contributing about doing so in a private repository.
Surprisingly (or maybe not?) that went over quite well. I should add that the project isn't specifically for ApexKO; most are just doing it for their own learning purposes, but ultimately it's my goal to use this project here, in place of the official client.
I should probably also mention that I still help out with the public project; it is still a great place to learn how things work, so I'm happy to help people out over there. My main development focus though, is with the private repo. With the private repo it's a lot more comforting knowing that people aren't going around selling it while harassing you to implement/fix things for them (I'm not even kidding; this happened.).
Since, we've made leaps and bounds with the project.
At the time of writing, we've:
Implemented symbols (clan, PVP, party leader, chicken, etc) Implemented capes Added premium behaviour (texts and whatnot) Updated overhead info (e.g. line under clan leader's name), fixed ranges on names, etc. Reimplement TBL handling logic to support newer TBLs and handle them in a more intuitive way (without having to save to .tmp files after decrypting >_>). Implemented merchant stalls, UIs and all relevant logic for it (UIs are more intuitive to interact with, as well) Implemented loot boxes Implemented the upgrade system, so you can now compound accessories and upgrade items. The anvil will show the effect when you burn an item or upgrade it, etc. Implemented the new "presents" screen Implemented the new login screen Implemented the new nation selection screen (and fixed the old one) Updated the character creation screen. Implemented backwards compatibility for old UIs Updated and fixed rendering of item tooltips Fixed wrapping issues with tooltips in general Implemented drag/drop behaviour from skill tree -> skill bar. Implemented updated hostility behaviour and unified it all. Implemented event tile support (for triggering things like zone notices) Implemented zone notices (for entry and area triggers) Implemented commands UI Implemented exit menu Started migrating logic to use a 3D engine (so we aren't tied to DirectX and Windows, and we can also optimise our rendering pipeline). Updated the party list UIs. Implemented debuff behaviour for HP bars (and for party lists). Implemented mousewheel event support Reimplemented networking logic (for stability, performance, easier to work with, etc). Reimplemented input logic to no longer rely on Windows edit controls (meaning we needed to implement all of the editbox behaviour ourselves, like handling moving the caret and keys/hotkeys like CTRL+C/CTRL+V, home/end, etc) Implemented most of the King system UIs (will probably be done by the end of the week, even) Implemented the skill cooldown effect overlay ... and much, much more. I actually probably shouldn't have been as specific, because I was really just listing changes (at random, really) I considered reasonably noteworthy -- but they're far from all.
Long story short, the work we've put into this project so far has been monumental. So much so that it's looking likely that we'll have sufficient 1.298 support to push into future versions reasonably soon.
The project is extremely exciting. Time consuming, for sure, but very exciting and offers us endless new options.
Perhaps I might make status reports regarding this project here, if anyone's interested in seeing how things are coming along.
Sierra got a reaction from krat0s in Your Payment method is painfull for non english names
Did you try using 'O' instead of 'Ö'? Normally that should work. o.o
Sierra reacted to twostars in Our server
Unlike other servers, we've put a lot of work into our server -- several years worth, in fact. Actually, I can safely say that we're the reason that most people are even using source code to develop servers now, rather than messing with the official binaries.
This is why I'd like to go into some detail about our server, since it's not something that's usually talked about outside of bug reports and such.
A brief history
Our server was initially created as a result of our attempts to push open source development in the Knight Online community, in 2012~2013.
The project's intent was to update the official C++ source files (for ~1.06x) to a usable state for community learning purposes.
Although the project ultimately went closed source due to lack of community attention, in the years since then we've made leaps and bounds with the project, rewriting most systems from the ground up to behave in a more logical and optimised fashion, doing our best to respect both DRY (Don't Repeat Yourself) and KISS (Keep It Simple, Stupid) principles, as well as updating to support the latest version of Knight Online (2.1xx at the time of writing).
It has been a monumental undertaking, but in doing so, we've learned a lot about how the official server works (and even more about how it doesn't), and have always striven to improve upon it (as well as our own implementation).
While we do deviate in some regards (with good intentions), accuracy is very important to us.
We have spent a great deal of time reversing official server and client binaries, as well as testing behaviour on official and scouring through its packet logs.
As-is, we're confident that in most respects that have any importance (e.g. damage calculations, rates, etc.) our implementations behave the same as (or very, very close to) official's.
While official and 99% of private servers rely on client checks to detect cheating, we do not believe in playing this easily-bypassable game of cat and mouse. As such, our server is very proactive in its detection of cheat methods to lock them down permanently, i.e. with no means of bypass.
From ensuring we deal with client input in a safe manner to things like verifying every step of the skill casting process, or enforcing tight server-side collision and movement speed checks, we always strive to ensure that players have no vector for abuse. Obviously this is always a work-in-progress and isn't perfect or complete (what is?), and we're introducing new logic to prevent more general cheating behaviour as it pops up, but we're proud of how far we've come - and that we've come so far compared to official (and other private servers) in this regard.
Aesteris and I have both put years into developing this server (and I'm sure there's many more to come), and at this point I'm confident in saying our server performs - in most respects - better than official. On this note, we've found that many official bugs are caused by design flaws or simply their tendency to copy & paste their logic (and miss things).
During implementation, we are always ever-present of performance concerns, be it in regards to how much time/resources a player request can consume (or anything in general), how costly a database hit will be, or even how much data is being (unnecessarily) sent to players -- performance matters to us, because it matters to players. A server falling under its own weight isn't worth playing.
Zone instances are one interesting example of this. Officially and in 99% of private servers, "instances" are implemented such that when dealing with anyone in an instance, it still has to deal with all players in that zone (i.e. all instances of that zone). So instead of the 16 people we want to deal with in our Border Defense War instance, we deal with the 200 players across all of them.
Here, we implement this system fairly logically: each instance is a self-contained unit attached to a zone. When dealing with players (or NPCs/monsters for that matter) in these instances, we only ever deal with the 16 actually in it.
Similarly, officially we've noticed they tend to scan the entire server when looking for players to affect with skills nearby. As always, this extends to private servers as well, though most will have this (slightly) optimised from when this was open source. Here, of course, we only ever look for those actually near the player.
This extends even to our database implementation. Beyond optimising the database design to avoid unnecessary or overly intensive lookups, we've also moved away from Microsoft SQL Server as - while it's a decent product - in several situations, it doesn't fit our performance needs (we also mostly moved away from Windows in general, which was another reason for dropping it).
While not all are, many of our performance improvements are entirely noticeable by players. For example: unlike official or other private servers, there is close to no delay in logging in and selecting your character (the only delay is your own connection latency; officially and on other private servers, these backend requests take quite some time themselves). Additionally, we optimise our outgoing traffic to avoid congestion on the player side -- which saves you (and us) bandwidth, and means the client isn't bogged down as much processing the traffic.
Events (and timing)
Although fairly common with most of our systems, I feel that our event system (in no small part because of our timed event system) should be pointed out in particular as it is a colossal improvement over the way official implements events (as well as other private servers).
Officially (and again, other private servers -- these go hand in hand), events are scheduled based on specific time checks. That is, if an event is scheduled at 01/02/2017 12:30PM, their game timer will check (every 6 seconds) if the current time matches. That is, it'll check if the day is 1, month is 2, year is 2017, hour is 12 and minutes are 30. Every 6 seconds.
This means that issues with clock changes can easily upset it, not to mention issues with restarts not realising it has yet to run even though the time has passed (because it isn't exactly that time!).
Here, we have a scheduler for timed events. Times scheduled in the past will run immediately, while times in the future will run once that time has passed. As always, we're ever-present of performance concerns, and scheduling in this manner can be very sensitive performance-wise, but in its present state our scheduling system performs wonderfully.
Virtually everything timing-related in our server runs via this system in 1 of 2 ways (again, for performance reasons): in a "precise" mode, where we require a higher granularity (e.g. skill timings), or in a general mode for everything else that matters a lot less (e.g. event scheduling).
From scheduling to running parts of the events, timing is very important with events.
As I've mentioned previously, our implementations aim to behave logically. We also aim to keep features as self-contained as possible, unlike official, where you have random logic strewn about that exists that doesn't have an obvious use until you determine it's for, say, a specific case in an event.
Obviously, when your codebase is littered with random things like this, it's very difficult to maintain, and very prone to bugs. We're all familiar with the bugginess of Knight Online; official servers, particularly. This is why.
In contrast, we keep all of our event logic with the rest of that event's logic. And I don't mean just keeping it in the same source files.
I mean, as a common example, if we need to handle the death of a player or monster in this event, we implement a specialized zone instance class for this event's instance, and override its OnDeath() event. Meaning, it's only ever handled in this event by design and no other logic needs to be aware of it.
As previously said: we aim to implement things logically, in an attempt to keep things readily maintainable and avoid bugs.
While accuracy is important to us, so is an improved player experience.
For starters, we're perfectly comfortable with taking features and reworking them into something that can be of use. For example: our in-game Class Transfer feature. This feature doesn't exist officially; it uses the official Nation Transfer feature to accomplish this, as the UI provides the ability to change their desired features -- which is the only time a player needs to make a decision (beyond their desired class, which we accomplish by prompting for that in the NPC -- easy!).
Another example of this is taking their event system and reimplementing the Forgotten Temple and Juraid Mountain events to work with it, so players can now simply use the sign-up feature to access this event, rather than finding and talking to their respective NPCs. This means a much nicer user experience and increased participation to the events.
And how about our clan banks? Their inn UI was easily repurposed for this custom feature that again, does not exist officially.
And to finish this off...
It's very easy to see this as "another server", but you need to realise that everything implemented in the game -- everything! -- has been written by us, at this point, from scratch. At the beginning of this project (which if memory serves was aiming to get it up and running with 1.8xx), we didn't have things like merchanting, we didn't have upgrades, let alone any type of event (even old events like Forgotten Temple or Bifrost). For a while I personally didn't really think we'd end up getting it anywhere, but continued to work on it in my spare time regardless.
Now we have a fully-featured, highly optimised server implementing almost everything official has to offer.
We've come a very, very long way in this time. We have more work to do (as always), but I hope this at least gives a small glimpse into what's actually involved behind-the-scenes in actual server development and why we're different to other servers.
Sierra reacted to Aesteris in The Castellan Expansion
Following up on twostars' great blog post from last Friday, here is the official announcement of our next "expansion", and yes the new Bifrost gems will also contain part of the materials needed to craft the new armors displayed on the first picture!
Sierra reacted to Vivaldi in Mellanox - Guy (now Shroud)
this case has been dragging for way too long even though we have already given our final answer. We have no grounds here to remove items from the user that acquired them in a legal trade or to reimburse them to you. I'll try to explain it again the best I can so you and everyone else understands it. It shouldn't be hard since it's a very simple case.
You gave your items to user "X", using the ingame "trade" feature -> items are now legally in possession of user X. He owns them. You gave it to him on your own will. The server holds no responsability of what a person does with their items. No hacker invaded the account and took the items due to a breach in the server, in this case we would promptly recover you EVERYTHING as soon as we would be able to.
User X claiming to return you the items after w/e period is not nearly enough for the server to act upon it. This is a deal between both of you, we have no means to intervene. And if we did intervene in cases like this, can you see how much room for more and more scam cases it opens? We'd have to deal with every player after random trades just saying "he was supposed to give me "this" but he didn't" or "I just lent that user these items and he was supposed to return it to me by now!" or whatever else they'd come up with. It would create an extreme mess on the market and reflect on players that are not even related to it. It's just not feasible.
And this is not something that WE, Apex, specifically don't follow. No other game would take action in any matter similar to this one.
Now, as for what you consider to be "new evidence", again, it really isn't. Him acquiring an item on a boss and not sharing with the party is obviously immoral but not ilegal, it just means that he is generally a bad person from our point of view. Claiming that he bought something from someone, again, he can claim whatever he wants and same goes for his nationality.
To picture this case even better and maybe make you finally understand WHY we can't do it just take a look at this:
We didn't do anything on that case as well and it involved you this time. For the same exact reason as the above. It is just not feasible.
The players are in charge of who they send their items to, the players are in charge of who they decide to share their account with.
Please try to understand this, we don't do this because we're "lazy", "have no intention of helping", "we don't care" or whatever else you might think. These are just guidelines we have to follow because they're logical and quite obvious in order to keep a safe and fair gaming environment.
To summarize everything I just said: The server holds no responsability between personal, legally performed, ingame trades.
PS.: I will leave this topic open for longer incase people still have any doubts regarding this matter, or if they think this is unfair I'll try to explain it and debate it further but, honestly, this should be crystal clear by now.
Sierra got a reaction from BulletClub in Event Schedule [UPDATED: June 1st 2017]
Below you can find the ApexKO event schedules for the CET timezones.
Be mindful that the Hourglass in-game is now correctly tuned to accurately showcase which events are coming up, regardless of your timezone.
Click HERE to see where to find it.
Central European Time (CET)
Turkey: Add 1 hour
Sierra got a reaction from TazmanianDevil in Hello Everyone!
You can go rebirth 5 times for extra stat points, which would require you to go to 100% exp those 5 times. Anyway for that attending events and doing some quests should be enough and you will have it in time.
Switching premium right now would probably be mainly for switching between DC and WAR, depending on if you're going to farm or PK.
Sierra reacted to Vivaldi in [New Players Guide] Welcome to ApexKO, Knights! -Work in progress-
Welcome to ApexKO!
We're a light-farm, PK oriented server that has been online since December 2015! Based on the newest Official KO version, we strive to provide a seamless, quality service to all our players.
Here's a small guide to get started in ApexKO.
1. Creating a character:
After finishing creating your account, you may create a character. Each character will come equipped with the following items:
A set of starter gear according to your class. Scrolls and a set of 1k HP and MP potions. 5 day Cospre items (Valkyrie armors, Pathos Gloves, Wings) vouchers that can be redeemed at Moradon for free. 5 million noahs.
2. Customizing your character:
You can acquire additional starter items to better suit your class at the [Gear Dispenser] NPC. You may find the following items in here:
Mage and Priest armors with MP and INT bonuses respectively. Other jewelry choices (Light belt of Life, Platinum Earrings, Elf-Metal Earrings, etc.) And the choice to re-acquire any of these items for free, at any time.
3. Stop by Sundries to get PUS pvp scrolls and other goods.
In our sundries you can find the following items, needed to pk against other players:
Weapon and Armor enchant scrolls. Lion Stat Scrolls. HP 2000 and AC 350 scrolls. Teleport to Friend scrolls. EXP, WAR and DC flashes (can't be acquired anywhere else). Unbind Item (required to unlock bind-on-equip items like Krowaz Armors). Scrap of Steel and Nest Scraps (required to upgrade old uniques) can also be purchased in sundries. Level 62 scrolls for free (Absolute Power, Scream, Magic Shield, Judgment). HP 1500, AC 300, Swift and Wolf scrolls for free! Now you're ready to head into CZ!
4. In-Game events:
Additional to the PK / PVP modes that Knight Online is known for, you may also access a multitude of other activities in-game.
In the events section we have the following ones:
Border Defense War Chaos Dungeon Forgotten Temple Juraid Mountain Lunar Wars & Invasions Bifrost Ronark Land Wars / Boss event Castle Siege War For more detailed info on these events, click HERE (TBA).
5. Farming for gear.
Farming is very easy in ApexKO. With some consistency, you can get top-tier items in no time.
6. Various ApexKO™ features and convenient information (Click on them for in-depth information where available):
Event entry: To access BDW and Juraid Mountain you need to be at least 83/1 or have 800 National Points in your character. Anti-DC feature: In events like Border Defense War and Juraid Mountain, accidentally disconnecting won't remove you from the event. Vote Kick feature: In instanced, automatic-party formation events, you can cast a vote-kick on a user that you think deserves it. Anti-Spam feature: If you spam the chat too quickly, you will be timed out for 2 minutes! Please don't spam the chat. Letter feature: You may send items through letter, or regular mail to the enemy nation. This has been disabled in official KO for ages. Rental Feature: For 150 million noahs, you can rent the best weapons in the server for 1 hour. Find this NPC at CZ. Clan Online Rewards: The more members of your clan you have online, the higher the EXP, NP and drop rate bonuses will be! Clan Bank: ApexKO provides a clan bank at Moradon. (Note: Be aware that if your clan is disbanded, clan bank contents will be lost) Upgrade Rates: +9 and +3 are the maximum upgrade levels in ApexKO. You may only reach +8 -> +9 through rebirth upgrades. Event Schedule: You may access the event schedule both in-game and in forums. Reskill Cost: The reskill costs have been dramatically reduced. Nation Transfer: You and your clan can nation transfer for a very small cost. Changing Class: You may class change for a reduced cost. Lunar Wars: This event has been readjusted to properly reward both attackers and defenders. Daily and Weekly CZ quests: ApexKO has implemented quests to give you a reason to always visit CZ every day for your PK fix! Draki's Revenge expansion and items: The revered Draki Pendants have made its way into ApexKO. Player monthly and permanent symbol rankings: Head over to ApexKO main website to see more. Clan rankings: Head over to ApexKO to see more. Player information: Check the items of any ApexKO player. Just change their name in your browser navigation bar. Sealing items: You don't need a premium service to seal an item in blue and make your valued goods safer. Unbinding items: Items that bind on equip such as Krowaz Armors and Draki Pendants, require special unlocking measures. Personal weapons: Doing personal quest rewards you the weapon of your choice already at +8! Character Rebirth: You may rebirth your character up to 5 times, increasing your stats and resetting all quests, including the personal weapon ones.
7. GM List and asking for support / reporting bugs and cheaters.
This is the list of GM's and administrators for ApexKO:
Server Admins: root (twostars), Aesteris.
In-game GM's and forum moderators: Sierra, Omega, Vivaldi, LalaDuckPond
If you need help with an issue in-game, click here. If you want to report a bug, click here. If you feel that the reported bug or exploit might be gamebreaking, please notify an admin directly. You will be rewarded if it is indeed severe. If you want to report a possible cheater, click here. We advice you not to use the Shoutbox to do any of the 3 items described above.
8. Punishment, bans and server rules.
For a brief snippet on the server rules click here. Additionally you can see more in-game, top right corner of your screen.
Detailed info on bans, mutes, forum bans and etc. will be added soon.
This is all for now. Have fun in the battlefield, knights!
Sierra reacted to Vivaldi in [Guide] Nation Transfer and Clan Transfer
Nation Transfer process has been thoroughly simplified in ApexKO. These are the steps to do it.
Single Player Nation Transfer:
1. Purchase the certificate from the Power Up Store at 149 Apex Points (KC).
2. Go to the [Grand Merchant] Kaishan NPC in Moradon and select the following option:
3. Follow the steps and complete the process. Once done, the game will ask you on your next login to choose your hair color and facial features.
Clan Nation Transfer:
1. Talk to the [Event] Goddess Adelia NPC in Moradon.
2. Follow the steps, and pay the sum of 800 million noahs.
3. Relog, and the process will be complete. Note: Some side-characters might not be immediately transferred, give it a couple minutes.
Have fun in game.