srmeier / knightonline Goto Github PK
View Code? Open in Web Editor NEWOpenKO is an open source version of the old school Knight Online MMORPG
License: MIT License
OpenKO is an open source version of the old school Knight Online MMORPG
License: MIT License
These pop up in the middle of your screen in a yellow text stating the zone's name.
The same thing's used by other things such (from the newer clients) Oreads' buff areas. I'm sure it's used for others in older versions too, but that's the only thing that comes to mind.
This is a quick fix and good for someone new to the project. First find the "CNpc::GetNpcInfo" function in the Npc.cpp file of the GamerServer project. This function creates a packet containing all the Npc information to send to the client. This is the correct packet structure. Make a note of the structure of this packet and then open up GameProcMain.cpp in the WarFare project. Find the "CGameProcMain::MsgRecv_NPCIn" function and rewrite some of this code so that the client is getting exactly what the server is sending.
If you have any questions please post them here!
So I noticed this when attempting to hover over an item in my inventory. The client displays a tooltip showing all the item's stats. Now that the strings have been corrected (big thanks to @twostars) the correct formatted strings are being used. However, when the tooltip is calculating weapon requirements it should factor in whether the item has been reduced via the anvil and if it has it should print "(Reduced)" next to the integer stat requirement. The old client apparently doesn't have this feature implemented but, unlike most features, this should be a super easy one to implement!
Because I ran into this while debugging other issues I'm going to put a blank string as a temporary fix and address this again in the near future.
In Lua scripts, the corresponding event just checks the the necessary item, robs them and save the quest to the state 2 and that is it, but somehow client know that and does the skills available to the user.However, since there is no data sending and saving, after re-login, the skills becomes unavailable again.
What is or what should be the logic in here ? Any idea would help.
Note that, I'm using binary client.
The reason why I am writing in here is that since it a open source project, the important discussions should also be open to everyone, I think.
Cannot use tp gate to get out of Berth. I'm assuming it's the same with Piana. Haven't had time to narrow it down yet.
1)"X" (escape) button is not working seems we need to add this manually
2) same goes for "B" Button which is work for target the near npc behind you.
3)"H" button is not working seems again we need to add this and add ui H menu.
4) You can't buy anything from npcs but in particular if u buy potion from a npc the game server nd client will crash saying moradontax is nullptr we will need to take a look in the gameserver function as well in the client.
5) While you kill monsters excpet from "Worm" all the others dont drop anything besides money and u dont see the Box of the drop - in the first place u was able to loot the money but it didnt notifcate that u get any but I fixed that on my latest commits but the aboves bugs are still remains I hope i will have time to continue working in this very weekend.
There seems to be an issue with some of the combat packets for the 1264 client. My first guess would be to start investigating the WIZ_ATTACK and similar packets. This could also just be an issue with the binary client and could be a bug on MGame's part but I believe incorrect packets is a more likely scenario.
The player gets kicked after starting the beginner's quest in Moradon. Here I'm using the source server + binary client on an Orc Rogue.
Binary client players typically get kicked when the server sends a "SendDebugString" to the player via LUA script. For the source client this LUA function sends a packet containing the debug string which gets added to the info panel.
So we are most likely missing a EVT to LUA function conversion here.
I was thinking to use GLM for 3D structures such as vectors, matrices and quaternions, which are defined in My_3DStruct.h file by using directx library.
I have already started experimenting with the library, and wanted to take your opinion.
So what do you guys think ? Should we use it ? Do you have another suggestions ?
Let me know your thoughts.
Slight issue with the casting effect for Water of Favors (see here). However I need to test to make sure this isn't an issue with the client files themselves.
This is why the server doesn't send redundant packets for this, and contains the information needed for this notification.
It should be handled in the client.
The towers are missing on both nation's in colony zone.
In particular, safe zones (amongst others) -- e.g. in the arena zone's (48) center area.
Upon first moving onto a tile (or spawning in on one) it'll show:
7642 This is a safe zone.
To the info box.
So the original EVTs for zone 21 (Moradon) have some incorrect codes. What the NPC says (things like "you have to be level 10 or above" or "would you like to retry this quest") doesn't match up with what actually happens in the EVTs. This isn't an issue with the converter because the LUA code matches what the EVTs say to do but the EVTs are just wrong.
This issue is just for NPC Isaac in Moradon but unfortunately I'm sure this is an issue all over the place...
In 1299, when you right click to rotate your camera, mouse cursor doesn't disappear.
When trying to reskill using the Binary Client along with Server Source, you get disconnected with message box "There are to many users logged in."
User "Lost" on the forums came to me with the issue:
"Cannot open include file: 'AfxVer_.h': No such file or directory"
This was a simple fix by just commenting out almost everything in "StdAfxBase.h". We don't use most of that stuff anyways.
Level 4 Rogue Orc is having issues equipping the Rogue Shirt (+3) item. I have a feeling that the item has a level requirement which doesn't show up in the item description, so the player goes to equip the item but the server rejects the request to equip because the player isn't high enough level. Need to find the function which gets called when the server receives the packet for equipping an item.
The OPDSUB controls this.
In particular I'm referring to the green border effect around the arena zone's (48) safe area.
Now that we can build the server files in release mode I've noticed that the client instantly gets disconnected immediately after completely logging into the game.
The GUI for the N3 Map Editor is having issues rendering the DirectX scene.
A few notes:
Anyone looking into this will need a version of VS6.
In 1299, when you click mouse3 key of your mouse camera turns by 180 degrees. Client doesn't have this feature.
You were able to switch between pages by using mouse wheel in Storage in 1299.
A special effect was shown for El Morad and Karus users in 1299 when they issue "/town" command.
Current setup of LoginServer is setup in LoginServer.cpp and hardcoded to populate the LoginServer.ini (see debug/release bin).
References:
LoginServer.cpp : void LoginServer::GetInfoFromIni()
UILogin.h : struct __GameServerInfo : public binary_function<__GameServerInfo, __GameServerInfo, bool>
Assumptions:
Populate LoginServer list using dbo.SERVERS table from KN_online database instead of ./LoginServer.ini (CONF_LOGIN_SERVER)
Sorry for the Turkish VS2017.
In the first image it says that:
"at 0x017... on KnightOnline.exe a special case thas occurred.
0xC000... : Write access violation at position 0xCCC... "
And in the second image, it says that:
"Exception occurred: read access violation.
CN3UIWndBase::m_sRecoveryJobInfo.pItemSource is nullptr."
I often face with the errors in the first image, and they generally happen at some specific lines of code.
I think we can make the LUA script equivalent of the EVTs smaller by checking the previously processed tag to see if it's identical to the next tag and ignore the duplication. Right now in the LUA script we get a lot of the below example because of how the EVTs work. This should be easy to prevent when converting the files.
local state = pUser:SearchQuest(30);
if state == 1 then
local state = pUser:SearchQuest(30);
if state == 1 then
-- stuff
end
end
Obviously if the outer if-statement is true the inner statement will also be true lol. So we should prevent these kind of duplications from happening. (We also need to write it so that everything gets indented correctly; just makes it easier to read.)
You were able to switch between pages by using mouse wheel in Item buy page of any NPC in 1299.
It is extremely painful to add rows to the QUEST_HELPER table by hand. I would like to remove this table altogether but at the very least we should have a way to generate it automatically.
The id's in resource.h do not match up with the supplied Text_us.tbl file that's in Client\data\Data. Version 1298 of the Text_us.tbl matches. This causes the incorrect lookup of messages that are displayed. For example, logging in with an incorrect user displays id 2903 which is text str "Cannot equip because of your high level" instead of "No such registered ID". Replacing the Text_us.tbl with the 1298 version fixes this issue.
This is likely a similar issue as the previous issue with the potion merchant. Looking into this, probably just a packet thing.
Once you've completed your lvl 10 quest you must relog in order to see your skills. It'd be nice to have the job change to complete online. Almost seems like a bug with the quest at first because I forgot this was an issue with the original KO.
You were able to switch between pages by using mouse wheel in Skill Tree in 1299.
Title explains.
For this issue I was selling to Ptoi in Moradon as a Rogue Orc (likely doesn't matter).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.