Jump to content

Foxseiz

Community
  • Content Count

    123
  • Joined

  • Last visited

  • Days Won

    16

Everything posted by Foxseiz

  1. Foxseiz

    Create New Gems

    Server files / resource / scripts / calculation / variable.lua Ctrl + f ( FIND ) "StoneAttrType_Num" edit the number to + 1 w/e it is currently is (adding 1 gem) this will be known as ## StoneAttrType_Num = ## Continue scrolling to the end of "StoneAttrType" list, add, and edit this StoneAttrType [##] = ITEMATTR_VAL_AAAA ## = same as above Replace AAAA with one of the following STR --Strength DEX --Accuracy AGI --Agility CON --Constitution STA --Spirit MXHP --Max Hp MXSP --Max Sp MNATK --Attack DEF --Defense HIT --Hit rate FLEE --Dodge MF --Raise drop rate o_O untested --lol pick pocket-- CRT --Crit rate HREC --Hp rec SREC --Sp rec ASPD --Attack speed MSPD --Movement speed PDEF --Physical resistance Next Find "StoneEff_Num" Then edit the number ## to same as above Continue Scrolling to the end of "StoneEff" list, add, and edit this StoneEff [##] = # ## = same as above Replace # with the amount of stats the gem will give Next Find "StoneTpye_ID_Num" Then edit the number ## to same as above Continue Scrolling to the end of "StoneTpye_ID" list, add, and edit this StoneTpye_ID [##] = #### ## = same as above Replace #### with Iteminfo.txt ID Next find "StoneEffType" Continue Scrolling to the end of "StoneEffType" list, add, and edit this StoneEffType[##] = # ## = same as above Replace # with effect type 1-4 1) attack 2) defense 3) havent seen it used 4) other Next find "StoneItemType" Continue Scrolling to the end of "StoneItemType" list, add, and edit this StoneItemType[##] = { #,0 } ## = same as above Replace # with where u want the gem to go (can be more than one ex: {11,22,27,0}) 1) 1 handed sword 2) 2 handed sword 3) Bow 4) Firegun 7) daggers 9) Staffs 11) shield 20) ami caps 22) armors 23) gloves 24) shoes 27) tattoos Note: I don't know who owns this guide, it's been posted by serverdev admin so I'm sure it's not his guide.
  2. This guide will teach you how to remove captcha on PKO 2 Author of this guide is V3ct0r, I just posted it as a separate thread so it's visible to anyone. 1) Open GameServer.exe in OllyDbg; 2) Select module GameServer (Alt + M); 3) Right click on form with asm code -> Analysis -> Analyse code (Ctrl + A); 4) Then go to address 0x00568CA7 (Ctrl + G); 5) Select code from address 0x00568CA7 to 0x00568CB5. Right click on selection -> Binary edit -> Fill with NOPs: 6) Right click on form with asm code -> Copy to executable -> All modifications. Done. We have deleted code that calls captcha on client.
  3. Foxseiz

    SQL 2008

    Try to uninstall everything again, delete everything including registry. Then reinstall it.
  4. @Rinor this file is pure base files, there's no modifications in it like what you're looking for.
  5. Foxseiz

    NPC Workshop

    Hello guys, welcome to this NPC workshop thread. I will start this thread because I want to help some developers to make NPC scripts. If I couldn't make you one, hopefully some of the members here will do it if they have time. Just request the NPC you want here in full details and I or we will do our best to make it for you. Please don't spam, only requests are allowed in this thread. Unrelated posts will be deleted. Thank you!
  6. I can think of a way to do this but there might be easier way than this. If you have a code for gyoza cooldown, that could work for skills as well. But if you want the cooldown to be shown in the notice like a countdown timer, then you might wanna hook it to cha_timer.
  7. Foxseiz

    Ads System

    [Script] Ads System Original Post: Description: The script displays randomly in any message that you mount it in a specified period of time. Very handy for reminders about updates, etc. Installation: Open functions.lua and add the code in cha_timer : local SetTime = 5 - time after which the message will be added local i = math . random ( 1 , 5 ) -- Random ( 1 of 5 ) if ( math . mod ( now_tick , 60 * SetTime ) == 0 and now_tick > 0 ) then -- checks SystemNotice (TurnToCha (role), NoticeX [i]) - displays a message end Open variable.lua and add the code: NoticeX = {} NoticeX [ 1 ] = "Welcome to the private server Online Pirates!" NoticeX [ 2 ] = "If you found a bug, please report to our bug tracker" NoticeX [ 3 ] = "Our site www.site.com " NoticeX [ 4 ] = " Do not forget to vote for our server " NoticeX [ 5 ] = " Do not forget to check the latest updates on our website! " ---------------------------------------------------------------------------------------------------------------------------------------------------------------- V3ct0r's Comment Row local i = math.random( 1, 5 ) -- Rand (1 of 5) better to replace local i = math.random( 1, table.getn(NoticeX)) -- Rand (1 of N), where N - number of messages Now we can add variable.lua any number of messages and we do not need to edit the function cha_timer () Row local SetTime = 5 -- time after which the message will be added You can also bring in variable.lua. Later. In your code, messages are sent to all objects (players, monsters, trees, etc.). It is necessary to add a check IsPlayer (role) == 1 Function math.rand () is called every tick (every second), and why? We need it to be called every 5 minutes (the interval between messages). Need to add local i = math.random( 1, 5 ) Inside alarm condition messages. In general, it turns out that something like this: variable.lua interval = 5 -- The interval between messages in minutes notices = {} -- An array of messages functions.lua , function cha_timer () if IsPlayer(role) == 1 then if ( now_tick > 0 and math.mod(now_tick, interval * 60) == 0 ) then local rand = math.random(1, table.getn(notices)) SystemNotice(role, notices[rand]) end end ---------------------------------------------------------------------------------------------------------------------------------------------------------------- e1mer's Comment And now all the same, just take the code with Victor ppm, and not much of its rewrite and extend festive \ holidays on the server. 3 ----------------------------------------------------------------------------- -- Advertising \ Announcements system --------------------------------------------- ----------------------------------------------------------------------------- if ( AdsInGameRND == 1 ) then if IsPlayer ( role ) == 1 then local interval = 1 -- The interval between messages in the system (35 seconds) if math . mod ( now_tick , interval ) == 0 then if ( Holidays == 1 ) then rand = math . random ( 1 , table . getn ( notices_two )) SystemInfo = notices_two [ rand ] else rand = math . random ( 1 , table . getn ( notices )) SystemInfo = notices [ rand ] end SystemNotice ( role , SystemInfo ) end end end Global variables in variable.lua, add to the end of the file: ----------------------------------------------------------------------------- -- Advertising \ Announcements system --------------------------------------------- ----------------------------------------------------------------------------- Holidays = 0 -- Partly inclusion "holidays" on the server AdsInGameRND = 0 -- Partly inclusion \ off your system notices = {} notices_two = {} - Conventional Ad notices [ 1 ] = "Normal ads" - Festive days notices_two [ 1 ] = "Holiday Ads" Now we can use as a regular ad in the chat, so some holidays, weekends, etc., and you can include it is fairly simple, it is necessary to change one number in a global variable.
  8. @xtc Tom and Jerry and Teen Titans aren't counted as Anime They're cartoons.
  9. Foxseiz

    Does it worth it?

    Quite an investment to make to have a private server nowadays, it can be worth it or not. Once you did a wrong move, a lot of people will quit even you try to make things right.
  10. Open your gameserver.exe in hex editor and find the code you want to change. Keep in mind that they should have the same amount of characters.
  11. 1) attack 2) defense 3) havent seen it used 4) other
  12. Foxseiz

    Server rates

    @Jones just on top of your forge.lua
  13. In my experience, I did not write any codes to prevent level jump. All I have to do is to fix the DEXP.
  14. Since I did not play TOP2, is that the easy access to forge, combine, etc..? If so you can just add scripts per item like Forge Note so you can open forge window. Following are examples:
  15. Suggestion is to make this suggestion thread to be a section so that people can post their own suggestion thread with polls.
  16. Would you like to post your script?
  17. If @7n6 can add this into his WIP website, that would be cool. Probably need to make new db for the new website to be more organized.
  18. To reply a question from you @Syfax, I don't speak French.
  19. Can anyone recommend a store or seller where I can buy a good self balancing scooter with a reasonable price. :D

    1. TheLegend

      TheLegend

      I just got a new one from ebay(since u live in Canada it shouldn't be a problem +free 2-5 days shipping) for just 180$ its been working fine so far, i have heard a lot of rumors that they just start burning (Real fire) when charging but haven't seen that yet :) anyway good look 

      let me know if ur budget is under 180 or not !!

    2. Foxseiz

      Foxseiz

      My budget is just right around 200. Do you suggest anything?

    3. TheLegend

      TheLegend

      check here  and just look around Ebay and Amazon u should find some really good once that are less than 200 as i said mine was for 180$ and works fine so far

    4. Show next comments  18 more
  20. Can you list your top 5 anime that you like the most? Mine are: 1. Hunter X Hunter 2. Attack On Titan 3. Sword Art Online 4. Dragon Ball 5. Slam Dunk and a lot more.. I just mention a few. So what are yours?
  21. The Ultimate GM Handbook Author: SnowCrash GM Commands Overview: This little guide is the most comprehensive GM-guide for PKO you will find. It contains pretty much everything I know about the GM-commands and everything I found on different forums. How to enter commands This is really easy. All commands must be entered into the chat-field. And you must add a leading & to the command. For example: &addmoney 1000000 gives you a million gold To use the commands your account must be a GM-account. This means that you must edit the "GM" field in the database (accounts-table in the GameDB) and set it to a value > 0. To use all commands you must set GM to 99! A little note on GM-Level: Lv = 0 (Normal Players, no rights), Lv 1-98 (GM, limited commands), Lv 99 (full GM, all commands) --- I can't remember exactly what values but I think if you put Lv25-30 for a player, he has the same rights as Lv1-98 but instead of "GM", "HD" is displayed above his head. Parameters in [] are optional! For example: addkb <capacity>, [<char-id>] means: you can type "addkb 48" or "addkb 48,1234" Important! There are only 3 important things you need to know besides the obvious (don't mess with stuff you don't understand *lol*): all commands using char/mob-names (like &kick, &call, ...) are case-sensitive* not all commands work when you or the target are at sea! (for example you can't &call/&goto chars on sea if you're on land, etc. - looks like &goto can be used if you and the target are on sea and if you add the ship-name to the name) some commands only work if you're on the same map/gameserver as your target (for example &attr - see there for more infos) case-sensitive: Must respect the capital letters, space, everything counts, one wrong character and the whole string will fail. Game Related Commands: GM Commands: addcess <points> - Changes your commerce rate. Setting this to 10000 gives you a 0.01% commerce rate. - GM level:99 - Example:&addcess 1000000 addexp <exp> - Adds exp to your experience - GM level:99 - Example:&addexp 1000000 addkb <capacity>,[<char id>] - Sets the inventory capacity to [capacity] - GM level:99 - Example:&addkb 48 addmission <id1>,<id2> - Adds a quest. Syntax is similar to DefineMission used in the Missionscript??.lua files.For example if the lua contains: DefineMission( 5138, "Goodbye to 7th Gate", 1546 ).You can add this mission with &addmission 1546, 5138- GM level:99 - Example:&addmission 1546,5138 addmoney <gold> - Gives your char some gold. - GM level:99 - Example:&addmoney 1000000 addsailexp <exp> - Gives your current ship EXP / gives you Rebirth EXP (seems to depend on what version you are using) - GM level:99 - Example:&addsailexp 1000000 attr <attribute>,<value>,[<charid>] - Set a certain attribute of a char (see below) - GM Level:99 - Example:&attr 4,9 call <char name> - Teleports the given char to your position - GM Level:1 - Example:&call AnotherUser clearmission <id> - Removes a mission - GM Level:99 - Example:&clearmission 1456 delmission <id> - Deletes mission?Seems to be the same as clearmission - GM Level:99 - Example:&delmission 810 goto <char name> - Teleports you to the position of the given char - GM Level:1 - Example:&goto AnotherUser hide - Hides your char from other players - GM Level:1 - Example:&hide itemattr <2>,<Slot-1>,<attr>,<value> - Set a certain attribute of an item (see below for more infos) - GM Level:99 - Example:&itemattr 2,1,53,9 kick <char name> - Kicks the given user (sometimes it d/c surrounding players!) - GM Level:1 - Example:&kick AnotherUser make <item id>,<count>,[<quality>] - Gives you a certain item (see below for more infos) - GM Level:99 - Example:&make 1092,99 misclear - Clears your quest triggers, etc - GM Level:99 - Example:&misclear move <x>,<y>,[<map name>] - Moves your char to the given position (see below for more infos) - GM Level:1 - Example:&move 2000,2000,garner notice <text> - Displays text in the system-notice windows - GM Level:1 - Example:¬ice Hello World qcha <char name> - Returns information about the given char (coords, etc) - GM Level:99 - Example:&qcha AnotherUser seeattr <attribute>,<char id> - Display a certain attribute of a char - GM Level:99 - Example:&seeattr 6,1234 setrecord <id> - Set quest record. For example: if a quest-definition contains something like:TriggerCondition( 1, HasRecord, 330 );in the LUA files, you could use &setrecord 330 to obtain that record (btw. 330 is Language Barrier) - GM Level:99 - Example:&setrecord 330 skill <skill id>,<level> - Learn skill #[skill] at level[level] - GM Level:99 - Example:&skill 284,10 summon <mob id>,[<time in ms>],[<ai>] - Summons the given mob - GM Level:99 - Example:&summon 789 summonex <mob id>,<count>,[<time in ms>],[<ai>] - Summons the given mob multiple times (be careful - summoning too many mobs will crash the server) - GM Level:99 - Example:&summonex 789,10 unhide - The opposite of hide - GM level:1 - Example:&unhide Server Commands: The following list contains those commands that influence the server itself: gamesvrstop [<time>] - Stops the gameserver in [time] seconds - GM Level:99 - Example:&gamesvrstop getping - Displays the current ping - GM Level:99 - Example:&getping harmlog=1 / harmlog=0 - Enables/disables the harmlog. If on, info's on who is attacking whom are displayed - GM Level:99 - Example:&harmlog=1 lua <command> - Executes [command] on the gameserver your char is on.Haven't found any useful command, yet - GM Level:99 - Example:&lua print("Hello world!") lua_all <command> - The same as &lua put command is executed on all gameservers - GM Level:99 - Example:&lua_all print("Hello world!") missdk - Reloads the SDK files - GM Level:99 - Example:&missdk misreload - Reloads all NPC-dialogues and quests (same as updateall) - GM Level:99 - Example:&misreload reload <mode> - Reloads certain scripts/definitions.Possible values for mode:alltable,characterinfo,skillinfo,iteminfo,monsterrefresh - GM Level:99 - Example:&reload alltable send data <value 1>,<value 2> - Sends data.Whatever that means... - GM Level:99 - Example:&senddata 123,123 setping <value> - Sets the ping? Seems to do nothing!? - GM Level:99 - Example:&setping 100 setpinginfo<value 1>,<value 2> - Whatever... - GM Level:99 - Example:&setpinginfo 100,100 updateall - Reloads all NPC-dialogues and quests.(same as misreload) - GM Level:99 - Example:&updateall Additional information (summon, kick, etc.) I'll explain some things that are "good to know" in the next few paragraphs... summon & summonex When summoning mobs you have to take some things into account: lets say you summon a BD with &summon 789 it will stay until the GameServer is restarted. If it gets killed it will re-spawn after a few seconds! So be careful! If you summon mobs you can influence their behavior with the AI parameter. For example: &summon 789,900000,0 summons a BD which stays for 900s and doesn't attack. 0,1,2,4,5,10 and 11 are valid values. I'm not 100% sure but they should have the following meanings: 0 - do nothing 1 - move around but don't attack 2 - tries to run away if attacked? 4 - follow the master ? 5 - counterattack after being attacked 10 - attacks 11 - attacks, flees and does ranged attacks ? kick Be careful if you kick somebody from the server. In my experience, chars near the char you kick will be kicked, too. make If you use the third parameter with the &make-command you can create certain types of items. If anybody is really bored he can check the AttrCalculate.lua file. The function "Creat_Item_Tattr" defines the special effect. As far as i can see, the following values are possible: 1, 2, 3, 4, 7, 9, 11, 20, 22, 23, 24, 25, 26, 27, 29, 46, 49, 50, 59, 65, 68, 69, 70, 71, 101, 102 101 -> Gem Lv1 (pointless) 102 -> Gem Lv2 103-109 -> aren't working on all servers (if it works on yours, it creates Lv3-Lv9 gems) If 103-109 aren't working on your server you can add them yourself. Open AttrCalculate.lua and search for if item_event == 101 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 10 ) --±¦Ê¯ return end if item_event == 102 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 20 ) --±¦Ê¯ return end replace it with if item_event == 101 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 10 ) return elseif item_event == 102 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 20 ) return elseif item_event == 103 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 30 ) return elseif item_event == 104 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 40 ) return elseif item_event == 105 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 50 ) return elseif item_event == 106 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 60 ) return elseif item_event == 107 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 70 ) return elseif item_event == 108 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 80 ) return elseif item_event == 109 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 90 ) return end and they should work. move Using &move you can teleport to any position. If you use the 3rd parameter you can specify the map to which you want to teleport. Just search for *.atr to find all valid map-names (garner, darkblue, magicsea, jialebi, and so on) Other stuff By pressing Alt+P in-game you can send system-messages to all users. Those messages appear in the upper center of the screen. After pressing Alt+P a cursor appears above the Hotkey-Bar. You can enter your message there. After pressing Enter, the message is displayed and will disappear after some time by itself. The &attr Commands Overview The &attr command is one of the most powerful in the game. It can be used to modify the attributes of all logged in characters. The syntax for this command is: &attr <attribute>, <value>, [<char-id>] where <char-id> is an optional parameter. If you don't add it, the command influences your currently logged in character. The following list shows all possible values for "attribute" and what you can do by modifying them (very incomplete at the moment) Important! Sometimes, when you're on a different map than the char you want to modify the server will reply with an error to your &attr commands. I hadn't got the chance yet to test it properly but I think it is either related to the other char being on a different map or to them being on a different gameserver. So if you get an error message saying that the char doesn't exist and you're sure it does, try teleporting near them and modifying their attributes! Normally, this fixes the problem. List Of Known Functional Attributes: 0-Level-Pretty obvious: modify the level of the char 1-HP-You can't set a higher value than the max. HP your char has - so &attr 1,999999999 will only give you as much HP as your char actually has 2-SP-same rules apply as for HP 4-Class-Use this to change your class. The following values are useful: 0 - Newbie 1 - Swordsman 2 - Hunter 4 - Explorer 5 - Herbalist 8 - Cahmpion 9 - Crusader 12 - Sharpshooter 13 - Cleric 14 - Seal Master 16 - Voyager (actually you can set any value between 0 and 16 but only the above classes are really implemented) 5-Reputation 6-Attribute Points 7-Skill Points 8-Gold 11-SLV 12-Life-Skill Level 13-Life-Skill Points 15-EXP-When in boat-modus -> boat-exp 50-STR 51-ACC 52-AGI 53-CON 54-SPR 69-Movement-Speed-Values higher than 2000 aren't useful as you'll be moving faster than the screen scrolls! 102-Attack Speed 104-Min Attack 105-Max AttacK 106-Defence 107-Max HP-Sets your max. number of HP 108-Max SP 109-Dodge 110-Hit-Rate List Of Unknown Attributes: 3-unknown-ATTR_TITLE 9-unknown-ATTR_SPRI 10-unknown-Possibly char-type -> NPC, etc. 14-unknown-ATTR_BOAT_BERTH 16-unknown-ATTR_NLEXP 17-unknown-ATTR_CLEXP 18-unknown-ATTR_CLEFT_SAILEXP 19-unknown-ATTR_CSAILEXP 20-unknown-ATTR_CLV_SAILEXP 21-unknown-ATTR_NLV_SAILEXP 22-unknown-ATTR_CLIFEEXP 23-unknown-ATTR_CLV_LIFEEXP 24-unknown-ATTR_NLV_LIFEEXP 25-unknown-ATTR_STR 26-unknown-ATTR_DEX 27-unknown-ATTR_AGI 28-unknown-ATTR_CON 29-unknown-ATTR_STA 30-unknown-ATTR_LUK 31-unknown-ATTR_MXHP 32-unknown-ATTR_MXSP 33-unknown-ATTR_MNATK 34-unknown-ATTR_MXATK 35-unknown-ATTR_DEF 36-unknown-ATTR_HIT 37-unknown-ATTR_FLEE 38-unknown-ATTR_MF 39-unknown-ATTR_CRT 40-unknown-ATTR_HREC 41-unknown-ATTR_SREC 42-unknown-ATTR_ASPD 43-unknown-ATTR_ADIS 44-unknown-ATTR_MSPD 45-unknown-ATTR_COL 46-unknown-ATTR_PDEF 47-unknown-ATTR_BOAT_CRANGE 48-unknown-ATTR_BOAT_CSPD 49-unknown-ATTR_BOAT_PRICE 55-unknown-ATTR_BLUK 56-unknown-ATTR_BMXHP 57-unknown-ATTR_BMXSP 58-unknown-ATTR_BMNATK 59-unknown-ATTR_BMXATK 60-unknown-ATTR_BDEF 61-unknown-ATTR_BHIT 62-unknown-ATTR_BFLEE 63-unknown-ATTR_BMF 64-unknown-ATTR_BCRT 65-unknown-ATTR_BHREC 66-unknown-ATTR_BSREC 67-unknown-ATTR_BASPD 68-unknown-ATTR_BADIS 70-unknown-ATTR_BCOL 71-unknown-ATTR_BPDEF 72-unknown-ATTR_BOAT_BCRANGE 73-unknown-ATTR_BOAT_BCSPD 74-unknown-ATTR_ITEMC_STR 75-unknown-ATTR_ITEMC_AGI 76-unknown-ATTR_ITEMC_DEX 77-unknown-ATTR_ITEMC_CON 78-unknown-ATTR_ITEMC_STA 79-unknown-ATTR_ITEMC_LUK 80-unknown-ATTR_ITEMC_ASPD 81-unknown-ATTR_ITEMC_ADIS 82-unknown-ATTR_ITEMC_MNATK 83-unknown-ATTR_ITEMC_MXATK 84-unknown-ATTR_ITEMC_DEF 85-unknown-ATTR_ITEMC_MXHP 86-unknown-ATTR_ITEMC_MXSP 87-unknown-ATTR_ITEMC_FLEE 88-unknown-ATTR_ITEMC_HIT 89-unknown-ATTR_ITEMC_CRT 90-unknown-ATTR_ITEMC_MF 91-unknown-ATTR_ITEMC_HREC 92-unknown-ATTR_ITEMC_SREC 93-unknown-ATTR_ITEMC_MSPD 94-unknown-ATTR_ITEMC_COL 95-unknown-ATTR_ITEMC_PDEF 96-unknown-ATTR_ITEMV_STR 97-unknown-ATTR_ITEMV_AGI 98-unknown-ATTR_ITEMV_DEX 99-unknown-ATTR_ITEMV_CON 100-unknown-ATTR_ITEMV_STA 101-unknown-ATTR_ITEMV_LUK 102-unknown-ATTR_ITEMV_ASPD 103-unknown-ATTR_ITEMV_ADIS 104-unknown-ATTR_ITEMV_MNATK 105-unknown-ATTR_ITEMV_MXATK 106-unknown-ATTR_ITEMV_DEF 111-unknown-ATTR_ITEMV_CRT 112-unknown-ATTR_ITEMV_MF 113-unknown-ATTR_ITEMV_HREC 114-unknown-ATTR_ITEMV_SREC 115-unknown-ATTR_ITEMV_MSPD 116-unknown-ATTR_ITEMV_COL 117-unknown-ATTR_ITEMV_PDEF 118-unknown-ATTR_STATEC_STR 119-unknown-ATTR_STATEC_AGI 120-unknown-ATTR_STATEC_DEX 121-unknown-ATTR_STATEC_CON 122-unknown-ATTR_STATEC_STA 123-unknown-ATTR_STATEC_LUK 124-unknown-ATTR_STATEC_ASPD 125-unknown-ATTR_STATEC_ADIS 126-unknown-ATTR_STATEC_MNATK 127-unknown-ATTR_STATEC_MXATK 128-unknown-ATTR_STATEC_DEF 129-unknown-ATTR_STATEC_MXHP 130-unknown-ATTR_STATEC_MXSP 131-unknown-ATTR_STATEC_FLEE 132-unknown-ATTR_STATEC_HIT 133-unknown-ATTR_STATEC_CRT 134-unknown-ATTR_STATEC_MF 135-unknown-ATTR_STATEC_HREC 136-unknown-ATTR_STATEC_SREC 137-unknown-ATTR_STATEC_MSPD 138-unknown-ATTR_STATEC_COL 139-unknown-ATTR_STATEC_PDEF 140-unknown-ATTR_STATEV_STR 141-unknown-ATTR_STATEV_AGI 142-unknown-ATTR_STATEV_DEX 143-unknown-ATTR_STATEV_CON 144-unknown-ATTR_STATEV_STA 145-unknown-ATTR_STATEV_LUK 146-unknown-ATTR_STATEV_ASPD 147-unknown-ATTR_STATEV_ADIS 148-unknown-ATTR_STATEV_MNATK 149-unknown-ATTR_STATEV_MXATK 150-unknown-ATTR_STATEV_DEF 151-unknown-ATTR_STATEV_MXHP 152-unknown-ATTR_STATEV_MXSP 153-unknown-ATTR_STATEV_FLEE 154-unknown-ATTR_STATEV_HIT 155-unknown-ATTR_STATEV_CRT 156-unknown-ATTR_STATEV_MF 157-unknown-ATTR_STATEV_HREC 158-unknown-ATTR_STATEV_SREC 159-unknown-ATTR_STATEV_MSPD 160-unknown-ATTR_STATEV_COL 161-unknown-ATTR_STATEV_PDEF 162-unknown-ATTR_LHAND_ITEMV 163-unknown-ATTR_BOAT_SHIP 164-unknown-ATTR_BOAT_HEADER 165-unknown-ATTR_BOAT_BODY 166-unknown-ATTR_BOAT_ENGINE 167-unknown-ATTR_BOAT_CANNON 168-unknown-ATTR_BOAT_PART 169-unknown-ATTR_BOAT_DBID 170-unknown-ATTR_BOAT_DIECOUNT 171-unknown-ATTR_BOAT_ISDEAD 172-unknown-ATTR_BOAT_SKILLC_MNATK 173-unknown-ATTR_BOAT_SKILLC_MXATK 174-unknown-ATTR_BOAT_SKILLC_ADIS 175-unknown-ATTR_BOAT_SKILLC_MSPD 176-unknown-ATTR_BOAT_SKILLC_CSPD 177-unknown-ATTR_BOAT_SKILLC_ASPD 178-unknown-ATTR_BOAT_SKILLC_CRANGE 179-unknown-ATTR_BOAT_SKILLC_DEF 180-unknown-ATTR_BOAT_SKILLC_RESIST 181-unknown-ATTR_BOAT_SKILLC_MXUSE 182-unknown-ATTR_BOAT_SKILLC_USEREC 183-unknown-ATTR_BOAT_SKILLC_EXP 184-unknown-ATTR_BOAT_SKILLC_CPT 185-unknown-ATTR_BOAT_SKILLC_SPD 186-unknown-ATTR_BOAT_SKILLC_MXSPLY 187-unknown-ATTR_BOAT_SKILLV_MNATK 188-unknown-ATTR_BOAT_SKILLV_MXATK 189-unknown-ATTR_BOAT_SKILLV_ADIS 190-unknown-ATTR_BOAT_SKILLV_MSPD 191-unknown-ATTR_BOAT_SKILLV_CSPD 192-unknown-ATTR_BOAT_SKILLV_ASPD 193-unknown-ATTR_BOAT_SKILLV_CRANGE 194-unknown-ATTR_BOAT_SKILLV_DEF 195-unknown-ATTR_BOAT_SKILLV_RESIST 196-unknown-ATTR_BOAT_SKILLV_MXUSE 197-unknown-ATTR_BOAT_SKILLV_USEREC 198-unknown-ATTR_BOAT_SKILLV_EXP 199-unknown-ATTR_BOAT_SKILLV_CPT 200-unknown-ATTR_BOAT_SKILLV_SPD 201-unknown-ATTR_BOAT_SKILLV_MXSPLY 202-unknown-ATTR_MAX_NUM The &itemattr Commands Overview The &itemattr command is similar to the &attr command but it works on items instead of chars. The syntax for this command is: &itemattr <slot>, <row>, <attribute>, <value> The following list shows all possible values for "attribute" and what you can do by modifying them (very incomplete at the moment): 0-unknown-ITEMATTR_COUNT_BASE0 1-unknown-ITEMATTR_COE_STR 2-unknown-ITEMATTR_COE_AGI 3-unknown-ITEMATTR_COE_DEX 4-unknown-ITEMATTR_COE_CON 5-unknown-ITEMATTR_COE_STA 6-unknown-ITEMATTR_COE_LUK 7-unknown-ITEMATTR_COE_ASPD 8-unknown-ITEMATTR_COE_ADIS 9-unknown-ITEMATTR_COE_MNATK 10-unknown-ITEMATTR_COE_MXATK 11-unknown-ITEMATTR_COE_DEF 12-unknown-ITEMATTR_COE_MXHP 13-unknown-ITEMATTR_COE_MXSP 14-unknown-ITEMATTR_COE_FLEE 15-unknown-ITEMATTR_COE_HIT 16-unknown-ITEMATTR_COE_CRT 17-unknown-ITEMATTR_COE_MF 18-unknown-ITEMATTR_COE_HREC 19-unknown-ITEMATTR_COE_SREC 20-unknown-ITEMATTR_COE_MSPD 21-unknown-ITEMATTR_COE_COL 22-unknown-ITEMATTR_COE_PDEF 25-unknown-ITEMATTR_COUNT_BASE1 26-unknown-ITEMATTR_VAL_STR 27-unknown-ITEMATTR_VAL_AGI 28-unknown-ITEMATTR_VAL_DEX 29-unknown-ITEMATTR_VAL_CON 30-unknown-ITEMATTR_VAL_STA 31-unknown-ITEMATTR_VAL_LUK 32-unknown-ITEMATTR_VAL_ASPD 33-unknown-ITEMATTR_VAL_ADIS 34-unknown-ITEMATTR_VAL_MNATK 35-unknown-ITEMATTR_VAL_MXATK 36-unknown-ITEMATTR_VAL_DEF 37-unknown-ITEMATTR_VAL_MXHP 38-unknown-ITEMATTR_VAL_MXSP 39-unknown-ITEMATTR_VAL_FLEE 40-unknown-ITEMATTR_VAL_HIT 41-unknown-ITEMATTR_VAL_CRT 42-unknown-ITEMATTR_VAL_MF 43-unknown-ITEMATTR_VAL_HREC 44-unknown-ITEMATTR_VAL_SREC 45-unknown-ITEMATTR_VAL_MSPD 46-unknown-ITEMATTR_VAL_COL 47-unknown-ITEMATTR_VAL_PDEF 49-unknown-ITEMATTR_COUNT_BASE2 50-unknown-ITEMATTR_LHAND_VAL 51-unknown-ITEMATTR_MAXURE 52-unknown-ITEMATTR_MAXFORGE 53-unknown-ITEMATTR_MAXENERGY 54-unknown-ITEMATTR_URE 55-unknown-ITEMATTR_FORGE 56-unknown-ITEMATTR_ENERGY 58-unknown-ITEMATTR_MAX_NUM 48-unknown-ITEMATTR_CLIENT_MAX 180-unknown-ITEMATTR_COUNT_BASE3 181-unknown-ITEMATTR_VAL_PARAM1 182-unknown-ITEMATTR_VAL_PARAM2 183-unknown-ITEMATTR_VAL_LEVEL 184-unknown-ITEMATTR_VAL_FUSIONID Special Items For some items, PKO abuses some of the above attributes to store different values. Which fields are used for what will be described on the next few paragraphs: Pets Item attr: 26/30 Description: Attribute-Bonus Remark: Sum these to get Pet-Level Item attr: 51 Description: max. Stamina Remark: Formula: (Stamina*50) --> so if you want 400 Stamina, use 20000 as value Item attr: 53 Description: max. Growth Remark: Formula: (Level*240) --> for level 15 you would use 3600 as value Item attr: 54 Description: current Stamina Remark: Non Medal Of Valor Item attr:26 Description: Honor Points Item attr:27 Description: Number of Kills Item attr:28 Description: Number of Deaths Item attr:29 Description: Number of PVP Matches Item attr:30 Description: Number of Wins Item attr:51 Description: Team-Contribution Pts Item attr:53 Description: Chaos Points Gems Item attr: 53 Description: Level of the gem Remark: Use 1-9 to set the level of any gem The @@ Commands Overview There are some additional commands with a slightly different sysntax (all credits go to jgreever for finding these). Some of them work without any GM-level-restriction (so you can use them on official servers with a Newbie - only the char-level-restrictions for talkin in certain channels apply). You use them by typing "@@ command" (@@ followed by a blank) into the chatbox. bbs <[interval x 10 secs>,<time>,<content> - similar to &notice, but timed - GM Level:? - Example: @@ bbs 5,5,hello estop <char name>,<time> - Mutes the given char for [time] seconds (important info below!) - GM Level:1 - Example: @@ estop SnowMan,60 delestop <char name> - Unmutes the given character (important info below!) - GM Level:1 - Example: @@ delestop SnowMan,60 disable <char id>,1 - Kicks user without kicking people around him - GM Level:?? - Example: @@ disable 1234,1 getuserconnection <char name> - Shows connection info for the given character - GM Level:?? - Example: @@ getuserconnection SnowMan getusernum+ - Displays number of users online and number of logins - GM Level:0 -Example: @@ getusernum+ getlastconnection - Displays your last connection info - GM Level:0 - Example: @@ getlastconnection ping <char name> - Pings the given character - GM Level:?? - Example: @@ ping SnowMan Regarding estop/delestop "estop" works a little bit different from what most people expect. lets say you mute somebody for 60 minutes, then this character has to be online for 60 minutes for the mute to wear off. If he just logs off and comes back 2 hours later he will still be muted! So be careful if you mute people for several days as it will probably take them weeks until they can talk again if they are online for a few hours each day. To unmute somebody, the person has to be online! You can't "delestop" characters who aren't logged in! Missing/Unknown Commands The following commands are available but for some reason nobody could figure out what they do or how they work. So if anybody has more information or is bored and can try them out, feel free to post your findings in this thread! (Most of the time the parameters are just a guess from what has been seen in the debugger) delitem forge isblock itemvalid light pet qitem <some parameter> relive reload_ai setflag <id>, <flag> - Sets a quest history flag. whatever that means. - GM Level:?? - Example:&setflag 1,1 Regarding IDs for items, mobs, skills, etc. Where to find them OK, normally this shouldn't be necessary as in my humble opinion everybody running an own server should be intelligent enough to take at least one look at the files for himself (otherwise he should just delete his files as he is not worth running a server): All Skill-IDs, Item-IDs, etc. can be found in the txt-files in the resource directory of your GameServer. Item-IDs: iteminfo.txt Mob-IDs: characterinfo.txt Skill-IDs: skillinfo.txt (there are more, but those are the most important) - if you view the files in any text-editor you'll see a lot of columns with data. In all files the first column contains the ID and the second the name of the item/mob/skill. (Even in all other files, the first column is always the ID and in 99% of all cases, the second row contains names) Regarding Security On GM-Servers Basically, I think running a GM-server is a waste of time. You will always have the problem that there are idiots who think its funny to do things like summon thousands of mobs, etc. If you really want to run a GM-server I would recommend to modify the GameServer.exe and rename certain commands. For example gamesvrstop, summonex, etc. - you can do so by using any HEX-editor (like HXD, XVI32, etc.).
  22. Map Developers Handbook Author: Skarth Introduction Welcome to my Map Developing Guide. This is about the best way to learn how to make map aside from getting a personal tutor. In this guide we will cover everything there is to map making. You will learn everything from using YAMMI to the Map Editor, Generating Minimaps, and more. Table of Contents: 1- Starting Up 2- Using YAMMI 3- Map Editor use 4- Generating a Minimap 5- Adding to server 6- Publishing Credits Chapter 1 - Starting Up To start up this chapter, this will tell you everything you need to do before making a map! Lesson 1 - Things you will need - YAMMI - Unused Client Files - Map Editor - Server Files - Client Files - Compiler - A Brain Lesson 2 - Keeping Neat To keep everything neat start with this Go to desktop and create a folder called "My Map" Inside it make 2 more folders called "Client Side" and "Server Side" Inside Client side make a folder called "map" and "minimap" Inside Server side make a folder called "Map Files" and "Scripts" All of that is optional, just there if you want to keep everything neat! So I highly recommend doing this because I will be telling you to place files in these folders later in the guide! Lesson 3 - Setting up YAMMI To set up YAMMI [Yet Another Map Manager Innovation] Go to ServerDev Release Section and download the tool, or simply click here! Yammi v0.6.2.zip After that its a pretty simple installation. Once that is done Open YAMMI and it will ask you to find your files Simply find your Unused Client Files folder and hit ok! If this doesn't work then run YAMMI as Admin, Note: If you run as admin when finding the files you will always have to run as admin for it to work the same each and every time! Now close out of YAMMI Congrats, you have set up YAMMI! Lesson 4 - Setting up Map Editor This part is easy all you must do is go to your Unused Client Files. and make a new .txt file. Now once you have that new .txt file open Paste this code into it system\game.exe startgame editor Then go ahead and Save it as editor.bat Congrats, now you have a map editor. Chapter 2 - Using YAMMI This chapter will explain all you need to do with YAMMI to create a map! It will also explain all of YAMMI's Features! Lesson 1 - YAMMI's Tools YAMMI has a ton of useful tools you can use to create a map! Plugins Texture Blending: Blends Textures so they are not blocky. Height Map: Creates the height modifications for your map. Isle Generator: Generates an Island. Layers: Use the Layers Tab's Checkboxes to filter out the colors and definitions that are presented on your map. Using fewer layers reduces lag on Yammi. Note: NEVER CLICK "Height Spot Map" It will bug your map and will force you to return to your previous save! Just do a little exploring! Lesson 2 - Your first map! Alrighty, time for your first map creation! Start by going to FILE> NEW PROJECT A window will pop-up asking for a size To get a good idea of this the size will be maxed coords! I'm going to go ahead and and make a 128x128 map for time's sake! Next zoom into about 400% and Select "Define Land Area" and use the Square making tool and make a small box on the blue screen. The Blue area is water! Your product should look like this Now, lets add some texture! Click on Texture button and find a texture you like! and place it all over that land area! If you want, go to Plugins and Apply Texture Blending! This is best if you have 2 Textures. Next, let's add some borders! Click on the Define a zone that can't be crossed and outline your map with it! Make sure there are no gaps! Your finished product! Next, let's add some height! Go to your height tool and select the desired height! 25 is the max height a character can walk on! If higher then your character will disappear! Now that you have added height lets finish up here Make sure every time you're editing the map, when your done do this! PLUGINS>HEIGHT MAP GENERATOR If you do not do this, your map will be underwater! ALSO, DO THIS AFTER ANY HEIGHT MODIFICATIONS! Now that that is done File>Export Top/Pko map file find your folder that you made earlier! save it in My Map> Client Side> map save it as garner.map for now do not worry we will change this later but for now, it must be garner.map! KEEP YAMMI OPEN FOR THE REST OF THE GUIDE, DO NOT CLOSE! You will need it later on!! Chapter 3 - Map Editor Use Oh wow, you're getting pretty far! Good work! Now, this part will explain all you need to do for Designing the map with map editor! Lesson 1 - Getting Ready for Map Editor! The first thing we do is find that file we saved as "garner.map" Copy it and go to your Unused Client Files then click on the "map" folder and paste it replace the old one! then find garner.obj and delete it! when we start editing a new one will be generated! Lesson 2 - Map Editing Now open on your map editor.bat that we made earlier. You will get a couple errors! Don't worry those are normal. Just click through them and a Client Screen should open up! If you did it right you should see a bunch of blue screens. Now Press "Tab" on your Keyboard Now you should see an interface appear on your screen here is what the buttons on the top do. Now click the menu toggle button and a blue box should appear up! But for second lets go back to YAMMI that should still be open with your map in it. Look for the Window titled Views that should be on your screen when YAMMI is open. Click map info on it then place your mouse on your map [Orange Part] and you should get coordinates in the Views window. It should look like this. Now, remember those coordinates you found because you will need to use them to edit your map! Now go back to Map Editor and see that blue box that opened up? Click on Instant until the cursor for typing pops up and type your coordinates in it like so! After that is done press enter and you will teleport to your map! Now to place objects See the big taskbar to the left of your screen with all those folders? Well open them up and find objects you want to place on your map You will get errors but that is normal just click on them! Once done click on some of the boxes that appear up and move your mouse to the screen and an object should be following your mouse just click to place the object! It should look like this! Map Editor Commands a = raise object z = lower item l = move right (east) j = move left (west) i = move up (north) k = move down (south) h = hide u = unhide f5 = show grid f9 = make object unpassable f12 = change look of character g = lock object/unbind object q = display surrounding auto stats (whatever this means) ß = turn around an object left without moving it ´ = turn around an object right without moving it altgr + 1 - 0 = shows emote-icons crtl + f1 = enter function key mode In function key-mode: f5 = gives some info about char position, char angle etc. f4 = hide/unhide user interface f6 = reset camera f8 = hide all objects If you press "Ctrl + F1" and then you press "C" you can use free camera mode(control it with e,s,f,d) and if you press "P" its zoom out or "O" zoom in, also, you can use right click on mouse and camera will move faster, to restore press "C" again. IF YOU WANT TO MAKE THIS PROCESS A LOT EASIER ADD THIS TO YOUR CLIENT FILES! IT WILL GET RID OF THE ERRORS AND MAKE FINDING MODELS A LOT EASIER Thanks to Amu CLICK HERE Now go back to Unused Client Files>map find these three files garner.map garner.obj garner.rbo just copy them! then go to Desktop>Your map> Client Side> map and paste them there! Then right click and rename them! I'm going to rename them to map1.map map1.obj map1.rbo Chapter 4 - Generating a Minimap Easy so far huh? Well, it should be! This part is for making a minimap and this part is quite easy all you will need is Map editor and a calculator! Lesson 1 - Making a Minimap Start by going to Unused Client Files>texture>minimap>garner and deletegarner.pk Now open up Map editor and have a calculator on hand! Remember the dimensions of your map? Mine was 128x128 Take your calculator and take X/25 and Y/25 so for me 128/25 = 5.12 Now open up map editor, you don't need to go to your map just have it open and get that blue box up! Instead of click on Instant, click on Minimap this time! and type in 0,0,x/25,y/25 for me it would be 0,0,5.12,5.12 It should look like this Go ahead and hit enter and it will start the minimap generation process! Depending on the size of your map will determine the time it will take Just close out when it is done! When it's complete go to Unused Client Files Create a new .txt file inside it paste call system\game.exe pack garner then save as gen.bat When done click on gen.bat Click through the errors. Then go to Unused Client Files>texture>minimap>garner Inside you should see a bunch of pictures Go ahead and delete them if you would like but you should also see a new garner.pk Copy that and paste it in Your Map>Client Side>minimap then rename it to your map name for me its map1.pk Chapter 5 - Adding to Server Woohoo, you made it all the way to Chapter 5, impressive shit! Now in this chapter, you will learn how to add your map to your server You will need your Server Files Your Servers patched client files and a compiler! Lesson 1 - .atr and .blk You should have YAMMI still open, if you do then good. If you closed then get it open. Go to File>Export Top/Pko .atr file File>Export Top.Pko .blk file Go ahead and export them as your map name.atr and your map name.blk and export them to your map>Server side>map files for me, I would export them as map1.atr and map1.blk Lesson 2 - mapinfo.txt and mapinfo.bin For this part, you will need your servers mapinfo.txt and mapinfo.bin Take you mapinfo.txt and add a new line to it For me, it will look like this! 49 map1 My-Map 0 50,50 here is a code template ID mapname Map-Name 0 50,50 best use ones you find in your mapinfo.txt Go ahead and compile and then paste in your Server Files and Client Files Lesson 3 - Birth_conf.lua For this, you must still have YAMMI open! Go to Server Files>Resource>script>birth>birth_conf.lua Copy a line for a base and paste it at the bottom and edit the map name and the 2nd map name[A.K.A. Map Title] for me, it will look like this AddBirthPoint("My-Map", "map1", 203,181 ) Now go to yammi and find the coords you want your player to start at. and change the coords in the line to the ones you found! So now my code will look like this AddBirthPoint("My-Map", "map1", 71,62 ) Save and Close. Lesson 4 - ScriptDefine.lua Start by going to Server Files> Resourse> Script> MisScript> ScriptDefine.lua Copy a base line from whats already in the file and paste it at the bottom and edit it up. For me, it will look like this AddMap ( "map1", "My-Map" ) Save and close. Lesson 5 - Map Files For this it's pretty basic what you need to do. Go to Server files>Resourse Copy a premade map for instance copy and paste a copy of leiting2 then rename it to your map name so for me it would be map1 Now open the folder Complete this task Rename every file that has the original map name with your new map name Example: leiting2npc > map1npc Open every file and find the original map name and replace with your new map name! Now goto your map>server side>map files and then find your .atr and .blk files and copy and paste them into your map folder! This is very important that you do!!!! When your done Go ahead and edit portal location, times, portal name, configuration ect ect all in the files. Lesson 6 - GameServer Now open up your gameserver.cfg and add this line map = your map name so for me it would be map = map1 Save and Close Lesson 7 - Client Side Almost done hehe! Now open up your Client Folder[The one you will use for your server!] Go to the Client folder>map and paste your .map .obj .rbo which should be located at your map>Client side>map Next go to your Client folder>texture>minimap and make a new folder titled with you map name for me it would be map1 Now go to yourmap>client side> minimap find you .pk file and paste it in the folder you just made! Chapter 6 - Publishing Well your basically done but this is a little bit of info you could use! Lesson 1 - Placing mobs and NPCs To place mobs open your monsterconf.txt file which should be in you server side map files. Open up Yammi and find some coords and paste a new monster line with them. Same thing for NPCs! changing city number and city name in the npc line doesn't matter! Credits: Skarth - Full Guide MaTT - YAMMI Alias - Map Editor Commands Flashstep - Video Guide on old serverdev and .pk Generator Others - For basic knowledge on map editing Too many names to be listed. Congratulations! You have created your first map. Sure it doesn't look great but we all have to start somewhere. Just keep working at it. Make more maps and you will quickly learn new ways to make maps on your own. You will develop your own theme of maps and that is something we can not even possible cover in this guide. Your theme is something that reflects upon you and your server. Good luck to you and I hope to see some of your maps hanging around the forum! Notice something wrong? Want to add to the guide? Message me and we will see what's up.
×
×
  • Create New...