diff options
Diffstat (limited to 'Dev')
-rw-r--r-- | Dev/Dev-Folder-Notes.txt | 6 | ||||
-rw-r--r-- | Dev/TODO.txt | 1366 | ||||
-rw-r--r-- | Dev/TODO_MOB_AI.txt | 266 | ||||
-rw-r--r-- | Dev/bugs.txt | 144 | ||||
-rw-r--r-- | Dev/forSQLdev.txt | 292 | ||||
-rw-r--r-- | Dev/quotes.txt | 296 | ||||
-rw-r--r-- | Dev/resnametable.TXT | 126 |
7 files changed, 1248 insertions, 1248 deletions
diff --git a/Dev/Dev-Folder-Notes.txt b/Dev/Dev-Folder-Notes.txt index ded4eb5e4..1936b8fc1 100644 --- a/Dev/Dev-Folder-Notes.txt +++ b/Dev/Dev-Folder-Notes.txt @@ -1,3 +1,3 @@ -- This folder and all files inside it must be deleted before any distribution
-- This folder is meant for developers only
-- Use this folder to contain notes, todo, testcases, problems, etc
+- This folder and all files inside it must be deleted before any distribution +- This folder is meant for developers only +- Use this folder to contain notes, todo, testcases, problems, etc diff --git a/Dev/TODO.txt b/Dev/TODO.txt index c43eddaf8..f6fd346af 100644 --- a/Dev/TODO.txt +++ b/Dev/TODO.txt @@ -1,684 +1,684 @@ -The format of to-do list items is:
-
-Description - A description of the task
-Status - The status of the task. The possible values are Pending and Completed
-Assignee - The nickname of the person whom is assigned the task
-Notes - Miscellaneous notes concerning the task
-
-**********
-
-Only the to-do list for the flat-file module should contain tasks concerning database corrections because databases changes for the SQL module are inherited from the flat-file module.
-
-**********
-1.
-Description: Fix the equip field values in item_db
-
-Status: Pending
-
-Assignee: NONE
-
-Notes: <Valaris> i know the equip values in item_db are ****ed <Valaris> not ****ed <Valaris> but supernovice equip is
-
-
-**********
-2.
-Description: Change monster summoning commands so they summon 1 monster if a quantity isn't specified
-
-Status: 50%
-
-Assignee: NONE
-
-Notes: Will work with just mob_id/name specified (ie @monster poring)
- need to make it work with mob_id and name (ie @monster poring test) - Valaris
-
-
-**********
-3.
-Description: Fix Ghostring Card
-
-Status: Done
-
-Assignee: MouseJstr
-
-Notes: battle_config flag to disable ghosty armor
- protecting you from mobs
-
-**********
-4.
-Description: Add nomagic mapflag/@skilloff/@skillon
-
-Status: Done
-
-Assignee: MouseJstr
-
-Notes: NONE
-
-
-**********
-5.
-Description: Checking help.txt (main directory, conf directory, doc directory) with atcommand.c
-
-Status: Pending
-
-Assignee: None
-
-Notes: In doc directory, do a help.txt for explaination of all commands.
- In conf directory, do a help.txt for displaying the resume of each command in chat windows of the client
- (chat windows does support more than 200 lines).
- In main directory, suggestion to delete it.
-
-
-**********
-6.
-Description: Update produce_db
-
-Status: Pending
-
-Assignee: None
-
-Notes: The Alchemist Forging items were recently changed. The DB needs to be edited and if needed, source to be modified
-
-
-**********
-7.
-Description: novice.txt: new_1-4.gat,60,149,4 script Helper 55
- This NPC gives infinite items and zenys.
-
-Status: Completed
-
-Assignee: Yor
-
-Notes: If you clicks on 'cancel' button or quits the game to come back, you can have infinite zenys and items.
- So, we must save (in a variable) when the npc gives items/zenys and don't given them again.
-
-
-**********
-8.
-Description: scripts, register variables and job 1
- When you become job 1, reset all variables of OTHER jobs too to save register memory.
-
-Status: Pending
-
-Assignee: None
-
-Notes: None
-
-
-**********
-9.
-Description: @mapspy <map> <on/off> command
-
-Status: Pending
-
-Assignee: None
-
-Notes: to receive any messages of all characters on a specifical map.
- don't send duplicate messages if already @guildspy ou @partyspy
-
-
-**********
-10.
-Description: Pet Skills.
-
-Status: 90%
-
-Assignee: Valaris
-
-Notes: Don't touch pet.c, pet.h, or pet dbs.
-
-
-**********
-11.
-Description: Add kRO server side friends list.
-
-Status: 80%
-
-Assignee: davidsiaw
-
-Notes: Got most of the packets. Except the ones that tell the client that a player is online and tell the client to give messages.
-
-
-**********
-12.
-Description: Updating the 'gmcommands.html' with actual commands.
-
-Status: Pending
-
-Assignee: None
-
-Notes: NONE
-
-
-**********
-13.
-Description: On PVP map, don't count a 'GM HIDE' GM (2 normal players + 1 HIDE GM: 2/2, not 3/3).
-
-Status: Pending
-
-Assignee: None
-
-Notes: NONE
-
-
-**********
-14.
-Description: Add encrypted password option in login-server.
-
-Status: Blocked, no solution without limited client version.
-
-Assignee: Yor
-
-Notes: It's impossible to use encrypted password in the account file, if we want to authorise all client version.
- Some clients use a (random) md5key and send a composed encrypted of the password.
- So, these clients send a different encrypted password based on plain text password at every connection.
- If the password is encrypted, we can not more compare with plain text.
- The other solution can be to not authorise these clients. But, that will probably be the futur of ALL clients.
- Reduce possibilities of client version isn't a good idea for the futur and for the compatibility (like use only plain text password client version).
- Save in account the plain text and the encypted version use more memory for nothing, and don't add security.
- Conclusion:
- If you want protected your password, you must:
- - protected you account file
- - never send a password outside the server
- - use only encypted client version (that send an encrypted password to server).
-
-
-**********
-15.
-Description: Create all reloaddb command in ladmin.
-
-Status: Affected
-
-Assignee: Yor
-
-Notes: NONE
-
-
-**********
-16.
-Description: Create a shutdown + time command in ladmin.
-
-Status: Affected
-
-Assignee: Yor
-
-Notes: NONE
-
-
-**********
-17.
-Description: Create a kickall command in ladmin.
-
-Status: Affected
-
-Assignee: Yor
-
-Notes: NONE
-
-
-**********
-18.
-Description: Create listban/listok command in ladmin.
-
-Status: Completed
-
-Assignee: Yor
-
-Notes: NONE
-
-
-**********
-19.
-Description: Login-server: create a first anti-hack system versus multiple connections trying.
-
-Status: Affected
-
-Assignee: Yor
-
-Notes: Set on IP.
- An option to set number of connections before to block (number_of_try_before_block)
- An option to set number of second where the tries must be done (within_seconds_for tries)
- An option to set the time of impossible connection after block (blocked_time_in_minutes)
- About wrong password, add:
- dynamic_pass_failure_ban_time: 5 (duration of ban, in minutes)
- dynamic_pass_failure_ban_how_many: 3 (number of tries before to ban)
- dynamic_pass_failure_ban_how_long: 60 (inside time where the tries must be done before to ban, in sec)
-
-
-**********
-20.
-Description: Create @unban and @unblock GM command.
-
-Status: Completed
-
-Assignee: Yor
-
-Notes: NONE
-
-
-**********
-21.
-Description: Fix @nuke GM command.
-
-Status: Completed
-
-Assignee: Valaris
-
-Notes: If you nuke a mounted Knight/Crusader they lose Peco but see it in the equip.window.
- And can't get another one.
-
-
-**********
-22.
-Description: Adding GM command @guildmaster <playername>
-
-Status: Pending
-
-Assignee: MC_Cameri
-
-Notes: Guild Master turns another member of his guild into Guild Master.
- MC Cameri: It will now be called @swapgm, meaning swap of guild master.
-
-
-**********
-23.
-Description: In Guilds folder change all checkcart -> checkcart(0)
-
-Status: Completed?
-
-Assignee: Aria
-
-Notes: All checkcart were in the old/ folder o_O?
- Because just "checkcart" always returns 0. (All common Kafras&breeder have been already fixed)
-
-
-**********
-24.
-Description: In script.c parser should be fixed to allow argumentless functions return value.
-
-Status: Pending
-
-Assignee: None
-
-Notes: Functions like "checkcart", "checkfalcon", "checkriding" don't return value if used without agruments or without "()".
- Example: 'checkcart' always return Zero (because the parser doesn't recognize it as a function!)
- Example: 'checkcart()' map server doesn't load (because argless funcs aren't in use)
- As a temp fix Lupus added "*" in script.c in "checkcart", "checkfalcon", "checkriding" definitions.
- To be able running them with any fake arg. i.e. checkcart(0) works fine!
-
-
-**********
-25.
-Description: Create a LAN management, 1 by server
-
-Status: Affected
-
-Assignee: Yor
-
-Notes: 1 computer can be on multiple LAN. So, each server must have 1 LAN definition.
-
-
-**********
-26.
-Description: @ban/@block must be usable when player is offline
-
-Status: Completed
-
-Assignee: Yor
-
-Notes: NONE
-
-
-**********
-27.
-Description: When it's night, inscreasing spawn of undeads
-
-Status: Pending
-
-Assignee: None
-
-Notes: Variable 'night_flag' is 0 if it's day, or 1 if it's night.
-
-
-**********
-28.
-Description: in ladmin, create a method for account with spaces
-
-Status: Completed
-
-Assignee: Yor
-
-Notes: use "<account name>" or '<account name>'.
-
-
-**********
-29.
-Description: @(un)ban/@(un)block: reduction of number of packets
- improvement of messages
-
-Status: Completed
-
-Assignee: Yor
-
-Notes: None.
-
-
-**********
-30.
-Description: Create (un)ban/(un)block in ladmin to be similar with GM command
-
-Status: Completed
-
-Assignee: Yor
-
-Notes: None.
-
-
-**********
-31.
-Description: Packet 0x3831 need too much size! IMPORTANT to found a solution!
- It's cause of crashes or freeze of servers (char or map).
-
-Status: Pending
-
-Assignee: None
-
-Notes: When map-server do a connection to char-server, this packet is send (C->M). Example of display (1 connection!):
- socket #5:
- wdata (size: 131072 bytes) need to be expanded.
- wdata is actually used for 111654 bytes (free bytes: 19418).
- packet 0x3831 need mode space (size of the packet: 12332).
- wdata expanded to 262144 bytes.
- socket #5:
- wdata (size: 262144 bytes) need to be expanded.
- wdata is actually used for 234974 bytes (free bytes: 27170).
- packet 0x3831 need mode space (size of the packet: 12332).
- wdata expanded to 524288 bytes.
- Additional note: there is only 63 guilds on this server...
-
-
-**********
-32.
-Description: Management of PM ignore for wisps
-
-Status: Completed
-
-Assignee: Yor
-
-Notes: None.
-
-
-**********
-33.
-Description: Add a GM info hacker minimum level parameter
-
-Status: Completed
-
-Assignee: Yor
-
-Notes: first use: spoof namer
-
-
-**********
-34.
-Description: Create @makepet to create directly a pet
-
-Status: Pending
-
-Assignee: None
-
-Notes: NONE
-
-
-**********
-35.
-Description: In dungeon, set night for people. In shop, set day for people.
-
-Status: Assigned
-
-Assignee: Yor
-
-Notes: work like variable 'night_flag' is 0 if it's day, or 1 if it's night.
-
-
-**********
-36
-Description: Create your limited time.... but an option can be good :)...
-
-Status: Completed
-
-Assignee: Yor
-
-Notes: NONE
-
-**********
-37.
-Description: @killer - enables a @gm to hit a player outside of pvp
-
-Status: Done
-
-Assignee: MouseJstr
-
-Notes:
-
-**********
-38.
-Description: atcommand scripts - script @atcommands`
-
-Status: Pending
-
-Assignee: MouseJstr
-
-Notes:
-
-**********
-40.
-Description: @addwarp - create a static warp to a target location
-
-Status: Done
-
-Assignee: MouseJstr
-
-Notes:
-**********
-41.
-Description: @movenpc
- - manipulate npc's at runtime
-
-Status: Done
-
-Assignee: MouseJstr
-
-Notes: handling npc's with the same name on multiple maps
- requires thoughts
-**********
-42.
-Description: @uptime - how long as the server been up?
-
-Status: Pending
-
-Assignee: MouseJstr, MC Cameri
-
-Notes:
- MC Cameri: This is done already in OA, wait for merge.
- Aria: I said that, but they told me it was BROKED!
-**********
-43.
-Description: map aliases -
- create virtual copies of maps but don't require
- changes to the client to support it
-
-Status: 80% done
-
-Assignee: MouseJstr
-
-Notes
-**********
-44.
-Description: Fix GTB card
-
-Status: Done
-
-Assignee: MouseJstr
-
-Notes: battle_config command that controls just how magic resistant
- you raelly are
-**********
-45.
-Description: gm @follow command
-
-Status: Done
-
-Assignee: MouseJstr
-
-Notes: follows players, including warping to them... lets you do
- a gm hide and grab a cup of coffee while watching a player
- do bad things..
-**********
-47.
-Description: different max aspd for players and GM's
-
-Status: Pending
-
-Assignee: MouseJstr
-
-Notes:
-**********
-48.
-Description: Configurable max num castles for a guild
-
-Status: Done
-
-Assignee: MouseJstr
-
-Notes: We limit each guild to 3 castles on my server
-*********
-49
-Description: Add @chareffect - Done [MouseJstr]
- set a persistant effect on another character
- Add @chardisguise - done [MouseJstr]
- set a persistant disguise effect on another character
- Add @mobid
- look up a monster by name - needed?
- Add @petid
- look up a pet by name
- Add @chardye
- Add @charhairstyle
- Add @charhaircolor
- Versions of dye hairstyle and haircolor fo other chars
- Add @followme
- make a character follow you.. including warps
- Add @shuffle
- re-arrange everybody on the map randomly
- Add @dropall - done [MouseJstr]
- takes all my possessions and throws them on the ground
- Add @chardropall - done [MouseJstr]
- takes all the players possessions and throws them on the ground..
- Add @storeall - done [MouseJstr]
- takes all my possessions and puts them in storage, leaving 500 zeny to let you take it all back out again
- Add @charstoreall - done [MouseJstr]
- takes all the players possessions and puts them in storage, leaving 500 zeny to let you take it all back out again
- Add @skillid - lookup a skill by name - done [MouseJstr
- Add @useskill - use a skill given the number or name - done [MouseJstr]
-*********
-50.
-Description: New Guild Skills
-
-Status: Pending
-
-Assignee: NONE
-
-Notes: use http://forums.emperium.org/viewtopic.php?t=43245 for a list
-********
-51.
-Description: Devilring
-
-Status: Pending
-
-Assignee: NONE
-
-Notes: New mini-boss; find as much about it as possible including stats and drops
-*********
-52.
-Description: LV4 Weapon Quests
-
-Status: Pending
-
-Assignee: NONE
-
-Notes: Info here http://forums.emperium.org/viewtopic.php?t=39934 Use perm variables?
-*********
-53.
-Description: Monster Pictures
-
-Status: Pending
-
-Assignee: NONE
-
-Notes: WTF! http://forums.emperium.org/viewtopic.php?t=32998
-*********
-54.
-Description: Wandering Singer
-
-Status: Pending
-
-Assignee: NONE
-
-Notes: May have to spy on kRO to get more info. http://forums.emperium.org/viewtopic.php?t=32998
-********
-55.
-Description: Arena Points
-
-Status: Pending
-
-Assignee: NONE
-
-Notes: points->item system; http://forums.emperium.org/viewtopic.php?t=32998
-********
-56.
-Description: kRO Account
-
-Status: Pending
-
-Assignee: NONE
-
-Notes: Give us a kRO account, gm or whatever so we can spy =OOOOOOOO
-*********
-57.
-Description: Baby Skills
-
-Stats: Pending
-
-Assignee: NONE
-
-Notes: 1. Skills
- - Come here, baby.
- ( Summons the adoptee )
- - Mom, Dad, I love you.
- ( For 5 minutes, the parent characters will not have EXP penalty upon death )
- - Mom, Dad, I want to see you.
- ( Summons the parents )
- * For the summon skill, it works like wedding summon skill - it can only be done in areas where warps can be saved at.
-
- 2. EXP Sharing
- - Only the parents and the child can EXP share; nobody else can be in the party. If any other person joins, the EXP share resets.
- - If you move to a different map, the EXP share resets.
- - The EXP returned is only 1/3rd of normal since both mother and father character has to be in the same party with the child.
-
- 3. Changes after adoption
- - For the child character, the character becomes small.
-
- 4. What happens if parents divorce
- - The parents can NEVER adopt another child ever again even after divorce + remarry.
- - The character child continues to be as it is (meaning, even if the child no longer has a parent, he or she will continue to be the 'child'), and only 1 child can be obtained per character.
- - Even if the child character is deleted, the parents can never get another child.
- * This means, when you adopt a child character, DO IT CAREFULLY. For the entire history of your character, you can only, and I mean ONLY get one child character.
-
- - The Child Adoption system now changes as following, so please make note of this:
- * The adopted child cannot raise any stat to beyond 80.
- * The adopted child will have 70% of MaxHP and MaxSP of normal characters.
- * The adopted child cannot marry.
- * "Mom, Dad, I love you" skill will only last 2 minutes instead of 5.
- * The parents must be both LV 70 or above in order to adopt.
- * The parents must be both LV 70 or above in order to share EXP as family.
- * "Mom, Dad, I love you" skill will now take 10% of MaxSP instead of taking 1 SP.
+The format of to-do list items is: + +Description - A description of the task +Status - The status of the task. The possible values are Pending and Completed +Assignee - The nickname of the person whom is assigned the task +Notes - Miscellaneous notes concerning the task + +********** + +Only the to-do list for the flat-file module should contain tasks concerning database corrections because databases changes for the SQL module are inherited from the flat-file module. + +********** +1. +Description: Fix the equip field values in item_db + +Status: Pending + +Assignee: NONE + +Notes: <Valaris> i know the equip values in item_db are ****ed <Valaris> not ****ed <Valaris> but supernovice equip is + + +********** +2. +Description: Change monster summoning commands so they summon 1 monster if a quantity isn't specified + +Status: 50% + +Assignee: NONE + +Notes: Will work with just mob_id/name specified (ie @monster poring) + need to make it work with mob_id and name (ie @monster poring test) - Valaris + + +********** +3. +Description: Fix Ghostring Card + +Status: Done + +Assignee: MouseJstr + +Notes: battle_config flag to disable ghosty armor + protecting you from mobs + +********** +4. +Description: Add nomagic mapflag/@skilloff/@skillon + +Status: Done + +Assignee: MouseJstr + +Notes: NONE + + +********** +5. +Description: Checking help.txt (main directory, conf directory, doc directory) with atcommand.c + +Status: Pending + +Assignee: None + +Notes: In doc directory, do a help.txt for explaination of all commands. + In conf directory, do a help.txt for displaying the resume of each command in chat windows of the client + (chat windows does support more than 200 lines). + In main directory, suggestion to delete it. + + +********** +6. +Description: Update produce_db + +Status: Pending + +Assignee: None + +Notes: The Alchemist Forging items were recently changed. The DB needs to be edited and if needed, source to be modified + + +********** +7. +Description: novice.txt: new_1-4.gat,60,149,4 script Helper 55 + This NPC gives infinite items and zenys. + +Status: Completed + +Assignee: Yor + +Notes: If you clicks on 'cancel' button or quits the game to come back, you can have infinite zenys and items. + So, we must save (in a variable) when the npc gives items/zenys and don't given them again. + + +********** +8. +Description: scripts, register variables and job 1 + When you become job 1, reset all variables of OTHER jobs too to save register memory. + +Status: Pending + +Assignee: None + +Notes: None + + +********** +9. +Description: @mapspy <map> <on/off> command + +Status: Pending + +Assignee: None + +Notes: to receive any messages of all characters on a specifical map. + don't send duplicate messages if already @guildspy ou @partyspy + + +********** +10. +Description: Pet Skills. + +Status: 90% + +Assignee: Valaris + +Notes: Don't touch pet.c, pet.h, or pet dbs. + + +********** +11. +Description: Add kRO server side friends list. + +Status: 80% + +Assignee: davidsiaw + +Notes: Got most of the packets. Except the ones that tell the client that a player is online and tell the client to give messages. + + +********** +12. +Description: Updating the 'gmcommands.html' with actual commands. + +Status: Pending + +Assignee: None + +Notes: NONE + + +********** +13. +Description: On PVP map, don't count a 'GM HIDE' GM (2 normal players + 1 HIDE GM: 2/2, not 3/3). + +Status: Pending + +Assignee: None + +Notes: NONE + + +********** +14. +Description: Add encrypted password option in login-server. + +Status: Blocked, no solution without limited client version. + +Assignee: Yor + +Notes: It's impossible to use encrypted password in the account file, if we want to authorise all client version. + Some clients use a (random) md5key and send a composed encrypted of the password. + So, these clients send a different encrypted password based on plain text password at every connection. + If the password is encrypted, we can not more compare with plain text. + The other solution can be to not authorise these clients. But, that will probably be the futur of ALL clients. + Reduce possibilities of client version isn't a good idea for the futur and for the compatibility (like use only plain text password client version). + Save in account the plain text and the encypted version use more memory for nothing, and don't add security. + Conclusion: + If you want protected your password, you must: + - protected you account file + - never send a password outside the server + - use only encypted client version (that send an encrypted password to server). + + +********** +15. +Description: Create all reloaddb command in ladmin. + +Status: Affected + +Assignee: Yor + +Notes: NONE + + +********** +16. +Description: Create a shutdown + time command in ladmin. + +Status: Affected + +Assignee: Yor + +Notes: NONE + + +********** +17. +Description: Create a kickall command in ladmin. + +Status: Affected + +Assignee: Yor + +Notes: NONE + + +********** +18. +Description: Create listban/listok command in ladmin. + +Status: Completed + +Assignee: Yor + +Notes: NONE + + +********** +19. +Description: Login-server: create a first anti-hack system versus multiple connections trying. + +Status: Affected + +Assignee: Yor + +Notes: Set on IP. + An option to set number of connections before to block (number_of_try_before_block) + An option to set number of second where the tries must be done (within_seconds_for tries) + An option to set the time of impossible connection after block (blocked_time_in_minutes) + About wrong password, add: + dynamic_pass_failure_ban_time: 5 (duration of ban, in minutes) + dynamic_pass_failure_ban_how_many: 3 (number of tries before to ban) + dynamic_pass_failure_ban_how_long: 60 (inside time where the tries must be done before to ban, in sec) + + +********** +20. +Description: Create @unban and @unblock GM command. + +Status: Completed + +Assignee: Yor + +Notes: NONE + + +********** +21. +Description: Fix @nuke GM command. + +Status: Completed + +Assignee: Valaris + +Notes: If you nuke a mounted Knight/Crusader they lose Peco but see it in the equip.window. + And can't get another one. + + +********** +22. +Description: Adding GM command @guildmaster <playername> + +Status: Pending + +Assignee: MC_Cameri + +Notes: Guild Master turns another member of his guild into Guild Master. + MC Cameri: It will now be called @swapgm, meaning swap of guild master. + + +********** +23. +Description: In Guilds folder change all checkcart -> checkcart(0) + +Status: Completed? + +Assignee: Aria + +Notes: All checkcart were in the old/ folder o_O? + Because just "checkcart" always returns 0. (All common Kafras&breeder have been already fixed) + + +********** +24. +Description: In script.c parser should be fixed to allow argumentless functions return value. + +Status: Pending + +Assignee: None + +Notes: Functions like "checkcart", "checkfalcon", "checkriding" don't return value if used without agruments or without "()". + Example: 'checkcart' always return Zero (because the parser doesn't recognize it as a function!) + Example: 'checkcart()' map server doesn't load (because argless funcs aren't in use) + As a temp fix Lupus added "*" in script.c in "checkcart", "checkfalcon", "checkriding" definitions. + To be able running them with any fake arg. i.e. checkcart(0) works fine! + + +********** +25. +Description: Create a LAN management, 1 by server + +Status: Affected + +Assignee: Yor + +Notes: 1 computer can be on multiple LAN. So, each server must have 1 LAN definition. + + +********** +26. +Description: @ban/@block must be usable when player is offline + +Status: Completed + +Assignee: Yor + +Notes: NONE + + +********** +27. +Description: When it's night, inscreasing spawn of undeads + +Status: Pending + +Assignee: None + +Notes: Variable 'night_flag' is 0 if it's day, or 1 if it's night. + + +********** +28. +Description: in ladmin, create a method for account with spaces + +Status: Completed + +Assignee: Yor + +Notes: use "<account name>" or '<account name>'. + + +********** +29. +Description: @(un)ban/@(un)block: reduction of number of packets + improvement of messages + +Status: Completed + +Assignee: Yor + +Notes: None. + + +********** +30. +Description: Create (un)ban/(un)block in ladmin to be similar with GM command + +Status: Completed + +Assignee: Yor + +Notes: None. + + +********** +31. +Description: Packet 0x3831 need too much size! IMPORTANT to found a solution! + It's cause of crashes or freeze of servers (char or map). + +Status: Pending + +Assignee: None + +Notes: When map-server do a connection to char-server, this packet is send (C->M). Example of display (1 connection!): + socket #5: + wdata (size: 131072 bytes) need to be expanded. + wdata is actually used for 111654 bytes (free bytes: 19418). + packet 0x3831 need mode space (size of the packet: 12332). + wdata expanded to 262144 bytes. + socket #5: + wdata (size: 262144 bytes) need to be expanded. + wdata is actually used for 234974 bytes (free bytes: 27170). + packet 0x3831 need mode space (size of the packet: 12332). + wdata expanded to 524288 bytes. + Additional note: there is only 63 guilds on this server... + + +********** +32. +Description: Management of PM ignore for wisps + +Status: Completed + +Assignee: Yor + +Notes: None. + + +********** +33. +Description: Add a GM info hacker minimum level parameter + +Status: Completed + +Assignee: Yor + +Notes: first use: spoof namer + + +********** +34. +Description: Create @makepet to create directly a pet + +Status: Pending + +Assignee: None + +Notes: NONE + + +********** +35. +Description: In dungeon, set night for people. In shop, set day for people. + +Status: Assigned + +Assignee: Yor + +Notes: work like variable 'night_flag' is 0 if it's day, or 1 if it's night. + + +********** +36 +Description: Create your limited time.... but an option can be good :)... + +Status: Completed + +Assignee: Yor + +Notes: NONE + +********** +37. +Description: @killer - enables a @gm to hit a player outside of pvp + +Status: Done + +Assignee: MouseJstr + +Notes: + +********** +38. +Description: atcommand scripts - script @atcommands` + +Status: Pending + +Assignee: MouseJstr + +Notes: + +********** +40. +Description: @addwarp - create a static warp to a target location + +Status: Done + +Assignee: MouseJstr + +Notes: +********** +41. +Description: @movenpc + - manipulate npc's at runtime + +Status: Done + +Assignee: MouseJstr + +Notes: handling npc's with the same name on multiple maps + requires thoughts +********** +42. +Description: @uptime - how long as the server been up? + +Status: Pending + +Assignee: MouseJstr, MC Cameri + +Notes: + MC Cameri: This is done already in OA, wait for merge. + Aria: I said that, but they told me it was BROKED! +********** +43. +Description: map aliases - + create virtual copies of maps but don't require + changes to the client to support it + +Status: 80% done + +Assignee: MouseJstr + +Notes +********** +44. +Description: Fix GTB card + +Status: Done + +Assignee: MouseJstr + +Notes: battle_config command that controls just how magic resistant + you raelly are +********** +45. +Description: gm @follow command + +Status: Done + +Assignee: MouseJstr + +Notes: follows players, including warping to them... lets you do + a gm hide and grab a cup of coffee while watching a player + do bad things.. +********** +47. +Description: different max aspd for players and GM's + +Status: Pending + +Assignee: MouseJstr + +Notes: +********** +48. +Description: Configurable max num castles for a guild + +Status: Done + +Assignee: MouseJstr + +Notes: We limit each guild to 3 castles on my server +********* +49 +Description: Add @chareffect - Done [MouseJstr] + set a persistant effect on another character + Add @chardisguise - done [MouseJstr] + set a persistant disguise effect on another character + Add @mobid + look up a monster by name - needed? + Add @petid + look up a pet by name + Add @chardye + Add @charhairstyle + Add @charhaircolor + Versions of dye hairstyle and haircolor fo other chars + Add @followme + make a character follow you.. including warps + Add @shuffle + re-arrange everybody on the map randomly + Add @dropall - done [MouseJstr] + takes all my possessions and throws them on the ground + Add @chardropall - done [MouseJstr] + takes all the players possessions and throws them on the ground.. + Add @storeall - done [MouseJstr] + takes all my possessions and puts them in storage, leaving 500 zeny to let you take it all back out again + Add @charstoreall - done [MouseJstr] + takes all the players possessions and puts them in storage, leaving 500 zeny to let you take it all back out again + Add @skillid - lookup a skill by name - done [MouseJstr + Add @useskill - use a skill given the number or name - done [MouseJstr] +********* +50. +Description: New Guild Skills + +Status: Pending + +Assignee: NONE + +Notes: use http://forums.emperium.org/viewtopic.php?t=43245 for a list +******** +51. +Description: Devilring + +Status: Pending + +Assignee: NONE + +Notes: New mini-boss; find as much about it as possible including stats and drops +********* +52. +Description: LV4 Weapon Quests + +Status: Pending + +Assignee: NONE + +Notes: Info here http://forums.emperium.org/viewtopic.php?t=39934 Use perm variables? +********* +53. +Description: Monster Pictures + +Status: Pending + +Assignee: NONE + +Notes: WTF! http://forums.emperium.org/viewtopic.php?t=32998 +********* +54. +Description: Wandering Singer + +Status: Pending + +Assignee: NONE + +Notes: May have to spy on kRO to get more info. http://forums.emperium.org/viewtopic.php?t=32998 +******** +55. +Description: Arena Points + +Status: Pending + +Assignee: NONE + +Notes: points->item system; http://forums.emperium.org/viewtopic.php?t=32998 +******** +56. +Description: kRO Account + +Status: Pending + +Assignee: NONE + +Notes: Give us a kRO account, gm or whatever so we can spy =OOOOOOOO +********* +57. +Description: Baby Skills + +Stats: Pending + +Assignee: NONE + +Notes: 1. Skills + - Come here, baby. + ( Summons the adoptee ) + - Mom, Dad, I love you. + ( For 5 minutes, the parent characters will not have EXP penalty upon death ) + - Mom, Dad, I want to see you. + ( Summons the parents ) + * For the summon skill, it works like wedding summon skill - it can only be done in areas where warps can be saved at. + + 2. EXP Sharing + - Only the parents and the child can EXP share; nobody else can be in the party. If any other person joins, the EXP share resets. + - If you move to a different map, the EXP share resets. + - The EXP returned is only 1/3rd of normal since both mother and father character has to be in the same party with the child. + + 3. Changes after adoption + - For the child character, the character becomes small. + + 4. What happens if parents divorce + - The parents can NEVER adopt another child ever again even after divorce + remarry. + - The character child continues to be as it is (meaning, even if the child no longer has a parent, he or she will continue to be the 'child'), and only 1 child can be obtained per character. + - Even if the child character is deleted, the parents can never get another child. + * This means, when you adopt a child character, DO IT CAREFULLY. For the entire history of your character, you can only, and I mean ONLY get one child character. + + - The Child Adoption system now changes as following, so please make note of this: + * The adopted child cannot raise any stat to beyond 80. + * The adopted child will have 70% of MaxHP and MaxSP of normal characters. + * The adopted child cannot marry. + * "Mom, Dad, I love you" skill will only last 2 minutes instead of 5. + * The parents must be both LV 70 or above in order to adopt. + * The parents must be both LV 70 or above in order to share EXP as family. + * "Mom, Dad, I love you" skill will now take 10% of MaxSP instead of taking 1 SP. - The wedding skills will now depend on percentage of MaxHP/MaxSP.
\ No newline at end of file diff --git a/Dev/TODO_MOB_AI.txt b/Dev/TODO_MOB_AI.txt index 3ea2bc0e2..9f73656f9 100644 --- a/Dev/TODO_MOB_AI.txt +++ b/Dev/TODO_MOB_AI.txt @@ -1,134 +1,134 @@ -// eAthena TODO for Monster AI
-// -----------------------------------------
-// The idea of this file is to write a system to use for mob AI because
-// to put it bluntly, our mobs are stupid. If we can pull off some sweet
-// AI, we will own the other emulators.
-//
-// What we have here are 2 columns. I describe them below...
-// - 'mode' : Mode is when the monster can attack, like, can it move? can it
-// attack first? can it assist other monsters?
-//
-// - 'AI' : AI is the smart part of the monster. This is how the monster
-// will actully go about attacking something. For example we
-// could make archer skeletons fire an arrow or 2, then flee
-// and fire a few more arrows. Or we could have them avoid other
-// classes with range (archers, mages). We could also have mobs
-// run when being sniped off cliffs by archers/mages (wont they
-// hate that, but in reality, thats what they would do).
-//
-// The mode flags will be given an ID to the power of 2, (binary style, like
-// job id's in the item_db) and added together to make the mode. But before
-// the system can be written we need a nice file to explain it. That would be
-// this file. So add away, when it looks done, begin the implementation.
-//
-// Also, if possible, new config file in /conf/. 'mob_ai_athena.conf'. This is
-// where mob AI is enabled/disable. And options can be set to allow and dis-
-// allow certin modes. Ex: People like the AI, but dont like one options, can
-// simply disable THAT AI feature rather then rewriting mob_db to remove it.
-//
-// I wrote the first modes, C devs, move them around as you see fit for programming.
-//
-// -Ancyker
-//
-// (check bottom for more AI ideas)
-//
-
-
-'mode'
-Immobile - Monster can not move, can not be moved (like by archers knockback skills)
-Agressive - Monster can attack first (doesn't mean it will, decided in 'AI')
-Detect cast - Monster will detect if someone is casting on it, and attack back
-Assist - Monster will help other monsters (what monsters it will assist is decided in 'AI')
-Looter - Monster will loot items (if 'Agressive' flag is set, it will attack before looting)
-No Target Change - Monster will not start attacking another target until the first target is dead or out of range
-Passive - Monster will not attack back (ever, unless 'Agressive' flag is also set?)
-Detects Hidden - Monster can see hidden players
-
-'ai'
-NoAI - Doesn't do anything (plants)
-NoSnipe - Monster will run away if being 'sniped' from a clif by archer, mage, etc.
-AttackFlee - Monster will attack, then flee, attack, then flee, etc (Archer Skels, run away, shoot arrow, etc)
-AttackRange1 - Will only attack if player is in a set range [0-3] (It's like the player is close, its a threat now)
-AttackRange2 - Will only attack if player is in a set range [4-6]
-ClassFlee1 - Will run from any player with range (archers, mages, thiefs with bows)
-NoviceNoFlee - Will not run if a player is a novice
-LevelFlee - Wlll run if player is of a higher level (porings would run from level 99s, AHH DONT KILL ME!)
-AvoidPlayer - Will run if it sees any player (So it cancels 'Agressive' flag)
-AttackMostDamage - Will attack the player doing the overall most damage
-AttackLessDamage - Will attack the player doing the overall least damage
-AttackLowestLevel - Will attack the lowest level first
-AttackHighestLevel - Will attack the highest level first
-WarpLowHP - Will warp if HP is low (how low is low?)
-NeverStop - Monster will always be on the move, never stop walking. (Is over-ridden by 'Immobile' flag)
-
-
-//
-// Again, more stuff...
-//
-// The monster spawns sripts need some more params. some examples...
-//
-// We have: map,x,y,offsetx,offsety, ...
-// What if we added more? To only let the monster move so far off from
-// where it was spawned. It could 'guard' an arena, an exit/enterance
-// an npc, whatever =).
-//
-// .... ID,time,time,blah...,mode,WAP
-// Have monsters walk a certin path. Waypoint files are your friend.
-// If a monster has a WAP (optional) it will walk this path.
-// Guardians on patrol? Could be interesting.
-//
-// Add more if you think of any =)
-//
-// If you don't like an idea, comment why, dont remove it.
-// example: (using this one cuz not sure about it)
-//
-// // NeverStop - Will/Could cause lag, don't think its a good idea -name
-// NeverStop - ...
-//
-
-Lupus: (guys, rearrange my ideas or move them as u want)
-Some memory - speed optimizations:
-
-There'a big "for cycle" when u look up for a place to mob spawn.
-It could be made quite fast:
-On server .GAT loading you should make an array with OFFSETS (not even X,Y) of right
-places for future mob spawns.
-If the waypoints aren't found for the loadied map then you should make at least 1-2 waypoints automatically.
-
-About AI:
-EACH map has defined mobs. Your mob should have a flag "healer", "supporter" etc. "weak", "ranged attacker"
-and each map should contain an attached list of mobs with their types
-when one MVP is hurt it'd look for "helpers", "healers".
-And if a mob is almost 0 HP it should look for helpers or look for other mobs ranged attackers
-defence. Etc.
-
-Mobs AI should be WRITTEN IN SPECIAL SCRIPTS.
-Some default mobs will use the same script.
-And some advanced ones will use their own.
-
-MOB-scripts are quite interesting. (remember Robot-Wars game?)
-
-Gulid Wars:
-I think guardians should be able to warp from room to room using WARPS like common Players.
-
-
-Aria's Ideas: (do whatever u want)
-
-We can make aggressive monsters make ambushes, where one attacks and runs away to a huge group of the same monster
-
-instead of dropping 2 x1 items, just drop 1 x2 item
-
-make AI vary inside of a group of monsters (IE 1/2 porings do 1 thing, and the other half do another)
-
-aggressive monsters sould surround enemies, not just blindly attack them
-
-we should also make monsters look as player-like as possible. There should be groups traveling together, or 2 monsters
-next to eachother, chatting.
-
-we shouldn't let mobs spawn right infront of people, like in anime or manga. they always walk towards you, or you walk
-towards them.
-
-let mob stats vary a little bit - every mob shouldn't be the exact same. if it's stronger it gives more exp, and vice
-versa.
-
+// eAthena TODO for Monster AI +// ----------------------------------------- +// The idea of this file is to write a system to use for mob AI because +// to put it bluntly, our mobs are stupid. If we can pull off some sweet +// AI, we will own the other emulators. +// +// What we have here are 2 columns. I describe them below... +// - 'mode' : Mode is when the monster can attack, like, can it move? can it +// attack first? can it assist other monsters? +// +// - 'AI' : AI is the smart part of the monster. This is how the monster +// will actully go about attacking something. For example we +// could make archer skeletons fire an arrow or 2, then flee +// and fire a few more arrows. Or we could have them avoid other +// classes with range (archers, mages). We could also have mobs +// run when being sniped off cliffs by archers/mages (wont they +// hate that, but in reality, thats what they would do). +// +// The mode flags will be given an ID to the power of 2, (binary style, like +// job id's in the item_db) and added together to make the mode. But before +// the system can be written we need a nice file to explain it. That would be +// this file. So add away, when it looks done, begin the implementation. +// +// Also, if possible, new config file in /conf/. 'mob_ai_athena.conf'. This is +// where mob AI is enabled/disable. And options can be set to allow and dis- +// allow certin modes. Ex: People like the AI, but dont like one options, can +// simply disable THAT AI feature rather then rewriting mob_db to remove it. +// +// I wrote the first modes, C devs, move them around as you see fit for programming. +// +// -Ancyker +// +// (check bottom for more AI ideas) +// + + +'mode' +Immobile - Monster can not move, can not be moved (like by archers knockback skills) +Agressive - Monster can attack first (doesn't mean it will, decided in 'AI') +Detect cast - Monster will detect if someone is casting on it, and attack back +Assist - Monster will help other monsters (what monsters it will assist is decided in 'AI') +Looter - Monster will loot items (if 'Agressive' flag is set, it will attack before looting) +No Target Change - Monster will not start attacking another target until the first target is dead or out of range +Passive - Monster will not attack back (ever, unless 'Agressive' flag is also set?) +Detects Hidden - Monster can see hidden players + +'ai' +NoAI - Doesn't do anything (plants) +NoSnipe - Monster will run away if being 'sniped' from a clif by archer, mage, etc. +AttackFlee - Monster will attack, then flee, attack, then flee, etc (Archer Skels, run away, shoot arrow, etc) +AttackRange1 - Will only attack if player is in a set range [0-3] (It's like the player is close, its a threat now) +AttackRange2 - Will only attack if player is in a set range [4-6] +ClassFlee1 - Will run from any player with range (archers, mages, thiefs with bows) +NoviceNoFlee - Will not run if a player is a novice +LevelFlee - Wlll run if player is of a higher level (porings would run from level 99s, AHH DONT KILL ME!) +AvoidPlayer - Will run if it sees any player (So it cancels 'Agressive' flag) +AttackMostDamage - Will attack the player doing the overall most damage +AttackLessDamage - Will attack the player doing the overall least damage +AttackLowestLevel - Will attack the lowest level first +AttackHighestLevel - Will attack the highest level first +WarpLowHP - Will warp if HP is low (how low is low?) +NeverStop - Monster will always be on the move, never stop walking. (Is over-ridden by 'Immobile' flag) + + +// +// Again, more stuff... +// +// The monster spawns sripts need some more params. some examples... +// +// We have: map,x,y,offsetx,offsety, ... +// What if we added more? To only let the monster move so far off from +// where it was spawned. It could 'guard' an arena, an exit/enterance +// an npc, whatever =). +// +// .... ID,time,time,blah...,mode,WAP +// Have monsters walk a certin path. Waypoint files are your friend. +// If a monster has a WAP (optional) it will walk this path. +// Guardians on patrol? Could be interesting. +// +// Add more if you think of any =) +// +// If you don't like an idea, comment why, dont remove it. +// example: (using this one cuz not sure about it) +// +// // NeverStop - Will/Could cause lag, don't think its a good idea -name +// NeverStop - ... +// + +Lupus: (guys, rearrange my ideas or move them as u want) +Some memory - speed optimizations: + +There'a big "for cycle" when u look up for a place to mob spawn. +It could be made quite fast: +On server .GAT loading you should make an array with OFFSETS (not even X,Y) of right +places for future mob spawns. +If the waypoints aren't found for the loadied map then you should make at least 1-2 waypoints automatically. + +About AI: +EACH map has defined mobs. Your mob should have a flag "healer", "supporter" etc. "weak", "ranged attacker" +and each map should contain an attached list of mobs with their types +when one MVP is hurt it'd look for "helpers", "healers". +And if a mob is almost 0 HP it should look for helpers or look for other mobs ranged attackers +defence. Etc. + +Mobs AI should be WRITTEN IN SPECIAL SCRIPTS. +Some default mobs will use the same script. +And some advanced ones will use their own. + +MOB-scripts are quite interesting. (remember Robot-Wars game?) + +Gulid Wars: +I think guardians should be able to warp from room to room using WARPS like common Players. + + +Aria's Ideas: (do whatever u want) + +We can make aggressive monsters make ambushes, where one attacks and runs away to a huge group of the same monster + +instead of dropping 2 x1 items, just drop 1 x2 item + +make AI vary inside of a group of monsters (IE 1/2 porings do 1 thing, and the other half do another) + +aggressive monsters sould surround enemies, not just blindly attack them + +we should also make monsters look as player-like as possible. There should be groups traveling together, or 2 monsters +next to eachother, chatting. + +we shouldn't let mobs spawn right infront of people, like in anime or manga. they always walk towards you, or you walk +towards them. + +let mob stats vary a little bit - every mob shouldn't be the exact same. if it's stronger it gives more exp, and vice +versa. + have a monster be able to use its drops, and not drop it. like a poring using an apple.
\ No newline at end of file diff --git a/Dev/bugs.txt b/Dev/bugs.txt index 26bdb99bb..2feedce73 100644 --- a/Dev/bugs.txt +++ b/Dev/bugs.txt @@ -1,72 +1,72 @@ -Problem: Adding the new guild skills causes it to crash?
-Assigned: N/A
-Progess: 0%
-
-Problem: 2-2-1 classes are regarded as Novicies by the game server. NPCs aren't taking them as thier jobs but if you the the NPC to do something for a novice class it works with the 2-2-1 like renters. Also if some one becomes high novice, if they use jobra they can become first jobs like a swordsman.
-Assigned: N/A
-Progess: 0%
-
-Problem: Stats nor skills don't downgrade when your level gets reverted due to exp loss.
-Assigned: N/A
-Progess: 0%
-
-Problem: You can hit yourself with your own spider web.
-Assigned: N/A
-Progess: 0%
-
-Problem: Pre skill requirements for new skills are wrong it makes you use 49 skills points before you can get the newer skills.
-Assigned: N/A
-Progess: 0%
-
-Problem: Monster hp view only shows but does not go down with a hit.
-Assigned: N/A
-Progess: 0%
-
-Problem: Monsters always freeze, when hit they don't move but 2 mins later they move.
-Assigned: N/A
-Progess: 0%
-
-Problem: Mobs don't attack
-Assigned: N/A
-Progess: 0%
-
-Problem: When u spawn ~300 mobs (and more or less) then do @killmonster then some mobs freeze on the screen (have no names, don't move, etc)
-Assigned: N/A
-Progess: 0%
-
-Problem: With 1025 client, some NPC sprites look different (i.e. Black Jack's NPC sprite)
-Assigned: N/A
-Progess: 0%
-
-Problem: Thiefs can steal ZENY / items from TREASURE chests!!baaaah!! and Guardians!
-Assigned: N/A
-Progess: 0%
-
-Problem: Joker card 4139 lets anyone to steal money / zeny. Just like he's a thief. It shoul;d be revised - success rates lowered and "steal item" disabled
-Assigned: N/A
-Progess: 0%
-
-Problem: When servers restart sometime the gm lvls in sql get reset back to 0
-Assigned: Wizputer
-Progess: 0%
-
-Problem: [mob attacks againsts players wearing ghostring armor do full damage mob_ghostring_fix: yes] Does not work, does nothing.
-Assigned: N/A
-Progess: 0%
-
-Problem: If two clients using the same account the server will crash and it allows people to dupe using the trade bug, one person trades over and item relogs it saves and the other person doesn't, they crash server both of them end up with the item.
-Assigned: N/A
-Progess: 0%
-
-Problem: When athena is run in linux it creates core files which takes 300 megs.
-Assigned: N/A
-Progess: 0%
-
-Problem: The skill tree's max skill lvl is not read/used.
-Assigned: N/A
-Progess: 0%
-
-Problem: Cannot connect to map server when logging in in both txt and sql on svn.
-Assigned: N/A
-Progess: 0%
-
+Problem: Adding the new guild skills causes it to crash? +Assigned: N/A +Progess: 0% + +Problem: 2-2-1 classes are regarded as Novicies by the game server. NPCs aren't taking them as thier jobs but if you the the NPC to do something for a novice class it works with the 2-2-1 like renters. Also if some one becomes high novice, if they use jobra they can become first jobs like a swordsman. +Assigned: N/A +Progess: 0% + +Problem: Stats nor skills don't downgrade when your level gets reverted due to exp loss. +Assigned: N/A +Progess: 0% + +Problem: You can hit yourself with your own spider web. +Assigned: N/A +Progess: 0% + +Problem: Pre skill requirements for new skills are wrong it makes you use 49 skills points before you can get the newer skills. +Assigned: N/A +Progess: 0% + +Problem: Monster hp view only shows but does not go down with a hit. +Assigned: N/A +Progess: 0% + +Problem: Monsters always freeze, when hit they don't move but 2 mins later they move. +Assigned: N/A +Progess: 0% + +Problem: Mobs don't attack +Assigned: N/A +Progess: 0% + +Problem: When u spawn ~300 mobs (and more or less) then do @killmonster then some mobs freeze on the screen (have no names, don't move, etc) +Assigned: N/A +Progess: 0% + +Problem: With 1025 client, some NPC sprites look different (i.e. Black Jack's NPC sprite) +Assigned: N/A +Progess: 0% + +Problem: Thiefs can steal ZENY / items from TREASURE chests!!baaaah!! and Guardians! +Assigned: N/A +Progess: 0% + +Problem: Joker card 4139 lets anyone to steal money / zeny. Just like he's a thief. It shoul;d be revised - success rates lowered and "steal item" disabled +Assigned: N/A +Progess: 0% + +Problem: When servers restart sometime the gm lvls in sql get reset back to 0 +Assigned: Wizputer +Progess: 0% + +Problem: [mob attacks againsts players wearing ghostring armor do full damage mob_ghostring_fix: yes] Does not work, does nothing. +Assigned: N/A +Progess: 0% + +Problem: If two clients using the same account the server will crash and it allows people to dupe using the trade bug, one person trades over and item relogs it saves and the other person doesn't, they crash server both of them end up with the item. +Assigned: N/A +Progess: 0% + +Problem: When athena is run in linux it creates core files which takes 300 megs. +Assigned: N/A +Progess: 0% + +Problem: The skill tree's max skill lvl is not read/used. +Assigned: N/A +Progess: 0% + +Problem: Cannot connect to map server when logging in in both txt and sql on svn. +Assigned: N/A +Progess: 0% + diff --git a/Dev/forSQLdev.txt b/Dev/forSQLdev.txt index c54c531a6..9f0f1a59a 100644 --- a/Dev/forSQLdev.txt +++ b/Dev/forSQLdev.txt @@ -1,146 +1,146 @@ -// $Id: forSQLdev.txt,v 1.1 2004/09/19 09:18:32 Akaru Exp $
-
-This file is to informe SQL dev about all modifications on TXT version.
-
-When a modification is done, TXT dev try to add it here with some explanations.
-When a modification is added in SQL version, SQL dev remove it from this file.
-
-
-********* 9th september
-------------------------------------
-changed:
- sd->newauth (map.h/clif.c) by sd->packet_ver (look all function where was newauth)
- value become // 5: old, 6: 7july04, 7: 13july04, 8: 26july04, 9: 30aug04 (by [Yor])
- instead of // 0: old 0x72 (19 b), 3: new 0x72 7july04 (22 b), 20: new 0x72 13july04 (39 b), 0: old 0x7E (6 b - not for auth), 27: new 0x7E 26july04 (33 b), 31: new 0x7E 30aug04 (37 b) (by [Yor])
- note: local variable 'newauth' not changed in clif_parse_WantToConnection
-
-------------------------------------
-Added
- if (sd->packet_ver == 8) { // 5: old, 6: 7july04, 7: 13july04, 8: 26july04, 9: 30aug04 (by [Yor])
- clif_displaymessage(sd->fd, "This client version (of 26 jul 2004) is not actually supported by this server.");
- } else if (sd->packet_ver == 9) { // 5: old, 6: 7july04, 7: 13july04, 8: 26july04, 9: 30aug04 (by [Yor])
- clif_displaymessage(sd->fd, "This client version (of 30 august 2004) is not actually supported by this server.");
- }
-at end of 'pc_authok' function (pc.c)
-
-------------------------------------
-Changed
- in 'atcommand_effect' function, set the correct message in back of:
- clif_displaymessage(fd, msg_table[229]); // Your effect has changed.
-
-------------------------------------
-Changed
- in 'atcommand_servertime' function, replace permanent message by msg_table and put them in msg_athena.conf
-
-------------------------------------
-Changed to reduce (a little) lag
- in char.c, commented printf about auth:
- case 0x2afc:
- if (RFIFOREST(fd) < 22)
- return 0;
- //printf("auth_fifo search: account: %d, char: %d, secure: %08x-%08x\n", RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOL(fd,14));
- for(i = 0; i < AUTH_FIFO_SIZE; i++) {
- -
- case 0x2b02:
- if (RFIFOREST(fd) < 18)
- return 0;
- if (auth_fifo_pos >= AUTH_FIFO_SIZE)
- auth_fifo_pos = 0;
- //printf("auth_fifo set (auth #%d) - account: %d, secure: %08x-%08x\n", auth_fifo_pos, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10));
- auth_fifo[auth_fifo_pos].account_id = RFIFOL(fd,2);
- -
- case 0x2b05:
- if (RFIFOREST(fd) < 49)
- return 0;
- if (auth_fifo_pos >= AUTH_FIFO_SIZE)
- auth_fifo_pos = 0;
- WFIFOW(fd,0) = 0x2b06;
- memcpy(WFIFOP(fd,2), RFIFOP(fd,2), 42);
- //printf("auth_fifo set (auth#%d) - account: %d, secure: 0x%08x-0x%08x\n", auth_fifo_pos, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10));
- auth_fifo[auth_fifo_pos].account_id = RFIFOL(fd,2);
- -
- in case 0x66: // ƒLƒƒƒ‰‘I‘ð
- if (auth_fifo_pos >= AUTH_FIFO_SIZE)
- auth_fifo_pos = 0;
- //printf("auth_fifo set #%d - account %d, char: %d, secure: %08x-%08x\n", auth_fifo_pos, sd->account_id, char_dat[sd->found_char[ch]].char_id, sd->login_id1, sd->login_id2);
- auth_fifo[auth_fifo_pos].account_id = sd->account_id;
- -
- commented printf about searching map server (in 'search_mapserver' function)
-
-------------------------------------
-Improved At_command about monsters spawn (atcommand_spawn and atcommand_monster):
- modified message 39:
- //39: All monster summoned!
- Added message 240:
- //240: %d monster(s) summoned!
- Added variables (output, j and k):
- char output[200];
- int i, j, k;
- memset(output, '\0', sizeof(output));
- Changed loop to check at least 8 times (to try to spawn in closed area):
- count = 0;
- for (i = 0; i < number; i++) {
- j = 0;
- k = 0;
- while(j++ < 8 && k == 0) { // try 8 times to spawn the monster (needed for close area)
- if (x <= 0)
- mx = sd->bl.x + (rand() % 11 - 5);
- else
- mx = x;
- if (y <= 0)
- my = sd->bl.y + (rand() % 11 - 5);
- else
- my = y;
- k = mob_once_spawn((struct map_session_data*)sd, "this", mx, my, name, mob_id, 1, "");
- }
- count += (k != 0) ? 1 : 0;
- }
- Changed last message display (to add number != count):
- if (count != 0)
- if (number == count)
- clif_displaymessage(fd, msg_table[39]); // All monster summoned!
- else {
- sprintf(output, msg_table[240], count); // %d monster(s) summoned!
- clif_displaymessage(fd, output);
- }
- else {
-
-********* 10th september
-------------------------------------
-Correction of an error in char.c in 'char_config_read' function:
- replace 'wisp_server_name' by 'w2' in the test of the lenght:
- } else if (strcmpi(w1, "wisp_server_name") == 0) {
- if (strlen(w2) >= 4) {
- memcpy(wisp_server_name, w2, sizeof(wisp_server_name));
- wisp_server_name[sizeof(wisp_server_name) - 1] = '\0';
- }
-
-------------------------------------
-Added a better id control of monster id in @spawn/@monster... GM commands:
- added in mob.h:
- int mobdb_checkid(const int id);
- Added in mob.c:
- /*==========================================
- * Id Mob is checked.
- *------------------------------------------
- */
- int mobdb_checkid(const int id) {
- if (id <= 0 || id >= (sizeof(mob_db) / sizeof(mob_db[0])) || mob_db[id].name[0] == '\0')
- return 0;
-
- return id;
- }
- Changed in at_command.c ('atcommand_monster' and 'atcommand_spawn' functions) (only second line is modified):
- if ((mob_id = mobdb_searchname(monster)) == 0) // check name first (to avoid possible name begining by a number)
- mob_id = atoi(monster);
- by:
- if ((mob_id = mobdb_searchname(monster)) == 0) // check name first (to avoid possible name begining by a number)
- mob_id = mobdb_checkid(atoi(monster));
-
-********* 11th september
-------------------------------------
-Changed @effect from level 60 to level 40.
-
-------------------------------------
-Added 3 new commands: @charitemlist, @charstoragelist, @charcarlist
- modified file: atcommand.c/h, atcommand_athena.conf, all help.txt, and gmcommands.html
+// $Id: forSQLdev.txt,v 1.1 2004/09/19 09:18:32 Akaru Exp $ + +This file is to informe SQL dev about all modifications on TXT version. + +When a modification is done, TXT dev try to add it here with some explanations. +When a modification is added in SQL version, SQL dev remove it from this file. + + +********* 9th september +------------------------------------ +changed: + sd->newauth (map.h/clif.c) by sd->packet_ver (look all function where was newauth) + value become // 5: old, 6: 7july04, 7: 13july04, 8: 26july04, 9: 30aug04 (by [Yor]) + instead of // 0: old 0x72 (19 b), 3: new 0x72 7july04 (22 b), 20: new 0x72 13july04 (39 b), 0: old 0x7E (6 b - not for auth), 27: new 0x7E 26july04 (33 b), 31: new 0x7E 30aug04 (37 b) (by [Yor]) + note: local variable 'newauth' not changed in clif_parse_WantToConnection + +------------------------------------ +Added + if (sd->packet_ver == 8) { // 5: old, 6: 7july04, 7: 13july04, 8: 26july04, 9: 30aug04 (by [Yor]) + clif_displaymessage(sd->fd, "This client version (of 26 jul 2004) is not actually supported by this server."); + } else if (sd->packet_ver == 9) { // 5: old, 6: 7july04, 7: 13july04, 8: 26july04, 9: 30aug04 (by [Yor]) + clif_displaymessage(sd->fd, "This client version (of 30 august 2004) is not actually supported by this server."); + } +at end of 'pc_authok' function (pc.c) + +------------------------------------ +Changed + in 'atcommand_effect' function, set the correct message in back of: + clif_displaymessage(fd, msg_table[229]); // Your effect has changed. + +------------------------------------ +Changed + in 'atcommand_servertime' function, replace permanent message by msg_table and put them in msg_athena.conf + +------------------------------------ +Changed to reduce (a little) lag + in char.c, commented printf about auth: + case 0x2afc: + if (RFIFOREST(fd) < 22) + return 0; + //printf("auth_fifo search: account: %d, char: %d, secure: %08x-%08x\n", RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOL(fd,14)); + for(i = 0; i < AUTH_FIFO_SIZE; i++) { + - + case 0x2b02: + if (RFIFOREST(fd) < 18) + return 0; + if (auth_fifo_pos >= AUTH_FIFO_SIZE) + auth_fifo_pos = 0; + //printf("auth_fifo set (auth #%d) - account: %d, secure: %08x-%08x\n", auth_fifo_pos, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)); + auth_fifo[auth_fifo_pos].account_id = RFIFOL(fd,2); + - + case 0x2b05: + if (RFIFOREST(fd) < 49) + return 0; + if (auth_fifo_pos >= AUTH_FIFO_SIZE) + auth_fifo_pos = 0; + WFIFOW(fd,0) = 0x2b06; + memcpy(WFIFOP(fd,2), RFIFOP(fd,2), 42); + //printf("auth_fifo set (auth#%d) - account: %d, secure: 0x%08x-0x%08x\n", auth_fifo_pos, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)); + auth_fifo[auth_fifo_pos].account_id = RFIFOL(fd,2); + - + in case 0x66: // ƒLƒƒƒ‰‘I‘ð + if (auth_fifo_pos >= AUTH_FIFO_SIZE) + auth_fifo_pos = 0; + //printf("auth_fifo set #%d - account %d, char: %d, secure: %08x-%08x\n", auth_fifo_pos, sd->account_id, char_dat[sd->found_char[ch]].char_id, sd->login_id1, sd->login_id2); + auth_fifo[auth_fifo_pos].account_id = sd->account_id; + - + commented printf about searching map server (in 'search_mapserver' function) + +------------------------------------ +Improved At_command about monsters spawn (atcommand_spawn and atcommand_monster): + modified message 39: + //39: All monster summoned! + Added message 240: + //240: %d monster(s) summoned! + Added variables (output, j and k): + char output[200]; + int i, j, k; + memset(output, '\0', sizeof(output)); + Changed loop to check at least 8 times (to try to spawn in closed area): + count = 0; + for (i = 0; i < number; i++) { + j = 0; + k = 0; + while(j++ < 8 && k == 0) { // try 8 times to spawn the monster (needed for close area) + if (x <= 0) + mx = sd->bl.x + (rand() % 11 - 5); + else + mx = x; + if (y <= 0) + my = sd->bl.y + (rand() % 11 - 5); + else + my = y; + k = mob_once_spawn((struct map_session_data*)sd, "this", mx, my, name, mob_id, 1, ""); + } + count += (k != 0) ? 1 : 0; + } + Changed last message display (to add number != count): + if (count != 0) + if (number == count) + clif_displaymessage(fd, msg_table[39]); // All monster summoned! + else { + sprintf(output, msg_table[240], count); // %d monster(s) summoned! + clif_displaymessage(fd, output); + } + else { + +********* 10th september +------------------------------------ +Correction of an error in char.c in 'char_config_read' function: + replace 'wisp_server_name' by 'w2' in the test of the lenght: + } else if (strcmpi(w1, "wisp_server_name") == 0) { + if (strlen(w2) >= 4) { + memcpy(wisp_server_name, w2, sizeof(wisp_server_name)); + wisp_server_name[sizeof(wisp_server_name) - 1] = '\0'; + } + +------------------------------------ +Added a better id control of monster id in @spawn/@monster... GM commands: + added in mob.h: + int mobdb_checkid(const int id); + Added in mob.c: + /*========================================== + * Id Mob is checked. + *------------------------------------------ + */ + int mobdb_checkid(const int id) { + if (id <= 0 || id >= (sizeof(mob_db) / sizeof(mob_db[0])) || mob_db[id].name[0] == '\0') + return 0; + + return id; + } + Changed in at_command.c ('atcommand_monster' and 'atcommand_spawn' functions) (only second line is modified): + if ((mob_id = mobdb_searchname(monster)) == 0) // check name first (to avoid possible name begining by a number) + mob_id = atoi(monster); + by: + if ((mob_id = mobdb_searchname(monster)) == 0) // check name first (to avoid possible name begining by a number) + mob_id = mobdb_checkid(atoi(monster)); + +********* 11th september +------------------------------------ +Changed @effect from level 60 to level 40. + +------------------------------------ +Added 3 new commands: @charitemlist, @charstoragelist, @charcarlist + modified file: atcommand.c/h, atcommand_athena.conf, all help.txt, and gmcommands.html diff --git a/Dev/quotes.txt b/Dev/quotes.txt index 463e7df9c..a82eaae68 100644 --- a/Dev/quotes.txt +++ b/Dev/quotes.txt @@ -1,148 +1,148 @@ -ADD UR QUOTES HERE FOR DEV EDITION NPCS!
-Remember to add map, coords, and sprite number!
-
-NEW 10-21-04!
-Add Biography areas
--Real name
--Age
--Where u live
--What u do here
--Why ur here
--and ur own small self intro.
-
-Completed people: MC Cameri, Aria, david, mouse
-
-
-Also put some coords so that u walk around
-//************************************\\
-
-davidsiaw
-- put me in payon next to kawaii no kafra with npc sprite no. 1002
-- [davidsiaw]
-- Wud are you looking at?
-- baka...
-- next;
-- [davidsiaw]
-- *drops 100 Mjolnirs on the floor
-- There ya go ;)
-
-Aria
-prontera.gat,156,179,4 script Aria 805,{
-151,175-OMGWTFBBQ
-152,182-So its u -> 0
-... That did not look right
-158,177-OMGITSJEEBUS!#!@%!
-164,176-Evera died. I guess.
-147,176-I CLICK THE BUTTON AND THEY DON'T DIE!
-155,172-RO? wtf?
-Oh yeah.
-165,171-omgnoob. DIE!
-157,176-WooT!
-[@Aria] is that why u bought windows
-[@Aria] cuz bill has red hair
-bio
-Okay, I'm Evera's brother, Aria <- small sentence self-intro
-^FF00FFAge^000000: 13 years <-age
-^FF00FFWhat I do^000000: Graphics and NPCs <-wtf u do
-^FF00FFWhy I'm here^000000: Cuz eAthena ROX <-y
-
-Anyway, here. I get to talk about myself now <-ur own bio
-I'm from California, and I wub MMORPGS
-So yeah that's it. GO EA!
-
-Shinigami
--imma n00b
--lol
--:P
--Shinigami stabs Azndragon
--there you go bitches
--watashi wa Shinigami desu
--huh?, wtf?
-
-Lord
--Me + ebil = bad me + ebil + power = omg ....
-<@Wishy> me + you = you get owns
-<@Lord> Me + Revenge = You Got owned
-<@Wishy> Me > You
-<@Lord> No i own you in bed :3
-<@Wishy> ...
-
-Codemaster
-"Everything begins with Nu and everything ends with Nu.
-This is the truth! This is my belief... at least for now."
- - Mysteries of Life Volume 184. Chapter 26.
-
-MouseJstr
-
-"The only difference between a hurricane and skydiving is
-which direction the tree's come at you from.."
-
-"Wanna be a GM? Write me a C routine that reverses a string
- in place.."
-
-"Wanna be a GM? Write me a C routine that finds me the highest
- bit set in a network order 32 bit integer..."
-
-"I am the dark angel of eAthena.. withen weeks of my arrival,
- almost everybody was gone or dead.. fear me..."
-
-Lupus, I demand you rewrite yours..
-
-MC Cameri
-morroc.gat,160,97,4 script MC Cameri 706,{
--I'm the @command guy from oa...
--Can't tell you my name.
--16 years
--Dominican Republic, in the caribbean.
--Mostly work on @commands for GMs...
--Because I like programming...
--I'm a senior student, programmer, body builder(yes, I lift weights), etc.
-160,95-I owns you all, under my commands. *lol*
-162,95-I forgot what my script, what do I have to say again? *_*U
-164,95-¿Donde estoy? *wonders* (<-- Means, where am I?)
-164,97-Are you guys my friends?
-164,99-My mom told me not to talk to strangers. *stares*
-162,99-How can you be SO ugly!?
-160,99-I need a friend to play with =(. *sobs*
-160,97-I've been kicking this rock for as long as I can remember.
-160,95-My computer just broke, and I don't know how to format. *sobs*
-
-Darkchild
-
-// Place me Next to Valaris (ELSE I DO IT MYSELF :P)
-- I think Aria Has A Lot To Do
-- The Darkness Within
-- Watch Out For Trucks, They Tend To Drive You Down
-- Who Am I? Really? Shure!
-- GAH!
-- Everyone Lubs Me! (I Hope!)
-- I Lub Everyone!
- As Long As They Are Female
- Hot....
- Goodlooking
- Big Boobs
- Nice Ass
- And Workship Me!
-- Wannabe GM? Host Your Own Server
-- kRO is €20 A Month! Sick Bastards!
-
-Biography:
- mes "Okay, So I'm Darkchild.......";
- mes "^FF00FFAge^000000: 17 years";
- mes "^FF00FFWhat I do^000000: Writing Biography";
- mes "^FF00FFWhy I'm here^000000: I Have NO Idea";
- next;
- mes "Ehm Well..... Whats There To Say About Me.......?";
- mes "I Dunno.... As Long As You Love Me.........";
- mes "Well Okay, A Lil Bit Then:";
- mes "I'm From The Netherlands And Doing Some Wacko Collega Atm";
- mes "More? WTF? YOU WANT MORE? GO BLOW URSELF!";
- next;
-// let it do an npc event on Valaris
-
-// His Npc Event:
- npctalk "DARKCHILD, DON'T YOU SHOUT AT POOR LIL N00BIEZ!!!";
-
-// Back 2 Me :P
- npctalk "Sorry Valaris";
- npctalk "(He Is Da Man!)";
+ADD UR QUOTES HERE FOR DEV EDITION NPCS! +Remember to add map, coords, and sprite number! + +NEW 10-21-04! +Add Biography areas +-Real name +-Age +-Where u live +-What u do here +-Why ur here +-and ur own small self intro. + +Completed people: MC Cameri, Aria, david, mouse + + +Also put some coords so that u walk around +//************************************\\ + +davidsiaw +- put me in payon next to kawaii no kafra with npc sprite no. 1002 +- [davidsiaw] +- Wud are you looking at? +- baka... +- next; +- [davidsiaw] +- *drops 100 Mjolnirs on the floor +- There ya go ;) + +Aria +prontera.gat,156,179,4 script Aria 805,{ +151,175-OMGWTFBBQ +152,182-So its u -> 0 +... That did not look right +158,177-OMGITSJEEBUS!#!@%! +164,176-Evera died. I guess. +147,176-I CLICK THE BUTTON AND THEY DON'T DIE! +155,172-RO? wtf? +Oh yeah. +165,171-omgnoob. DIE! +157,176-WooT! +[@Aria] is that why u bought windows +[@Aria] cuz bill has red hair +bio +Okay, I'm Evera's brother, Aria <- small sentence self-intro +^FF00FFAge^000000: 13 years <-age +^FF00FFWhat I do^000000: Graphics and NPCs <-wtf u do +^FF00FFWhy I'm here^000000: Cuz eAthena ROX <-y + +Anyway, here. I get to talk about myself now <-ur own bio +I'm from California, and I wub MMORPGS +So yeah that's it. GO EA! + +Shinigami +-imma n00b +-lol +-:P +-Shinigami stabs Azndragon +-there you go bitches +-watashi wa Shinigami desu +-huh?, wtf? + +Lord +-Me + ebil = bad me + ebil + power = omg .... +<@Wishy> me + you = you get owns +<@Lord> Me + Revenge = You Got owned +<@Wishy> Me > You +<@Lord> No i own you in bed :3 +<@Wishy> ... + +Codemaster +"Everything begins with Nu and everything ends with Nu. +This is the truth! This is my belief... at least for now." + - Mysteries of Life Volume 184. Chapter 26. + +MouseJstr + +"The only difference between a hurricane and skydiving is +which direction the tree's come at you from.." + +"Wanna be a GM? Write me a C routine that reverses a string + in place.." + +"Wanna be a GM? Write me a C routine that finds me the highest + bit set in a network order 32 bit integer..." + +"I am the dark angel of eAthena.. withen weeks of my arrival, + almost everybody was gone or dead.. fear me..." + +Lupus, I demand you rewrite yours.. + +MC Cameri +morroc.gat,160,97,4 script MC Cameri 706,{ +-I'm the @command guy from oa... +-Can't tell you my name. +-16 years +-Dominican Republic, in the caribbean. +-Mostly work on @commands for GMs... +-Because I like programming... +-I'm a senior student, programmer, body builder(yes, I lift weights), etc. +160,95-I owns you all, under my commands. *lol* +162,95-I forgot what my script, what do I have to say again? *_*U +164,95-¿Donde estoy? *wonders* (<-- Means, where am I?) +164,97-Are you guys my friends? +164,99-My mom told me not to talk to strangers. *stares* +162,99-How can you be SO ugly!? +160,99-I need a friend to play with =(. *sobs* +160,97-I've been kicking this rock for as long as I can remember. +160,95-My computer just broke, and I don't know how to format. *sobs* + +Darkchild + +// Place me Next to Valaris (ELSE I DO IT MYSELF :P) +- I think Aria Has A Lot To Do +- The Darkness Within +- Watch Out For Trucks, They Tend To Drive You Down +- Who Am I? Really? Shure! +- GAH! +- Everyone Lubs Me! (I Hope!) +- I Lub Everyone! + As Long As They Are Female + Hot.... + Goodlooking + Big Boobs + Nice Ass + And Workship Me! +- Wannabe GM? Host Your Own Server +- kRO is €20 A Month! Sick Bastards! + +Biography: + mes "Okay, So I'm Darkchild......."; + mes "^FF00FFAge^000000: 17 years"; + mes "^FF00FFWhat I do^000000: Writing Biography"; + mes "^FF00FFWhy I'm here^000000: I Have NO Idea"; + next; + mes "Ehm Well..... Whats There To Say About Me.......?"; + mes "I Dunno.... As Long As You Love Me........."; + mes "Well Okay, A Lil Bit Then:"; + mes "I'm From The Netherlands And Doing Some Wacko Collega Atm"; + mes "More? WTF? YOU WANT MORE? GO BLOW URSELF!"; + next; +// let it do an npc event on Valaris + +// His Npc Event: + npctalk "DARKCHILD, DON'T YOU SHOUT AT POOR LIL N00BIEZ!!!"; + +// Back 2 Me :P + npctalk "Sorry Valaris"; + npctalk "(He Is Da Man!)"; diff --git a/Dev/resnametable.TXT b/Dev/resnametable.TXT index 411bf6cd0..6c62e2a1b 100644 --- a/Dev/resnametable.TXT +++ b/Dev/resnametable.TXT @@ -1,64 +1,64 @@ -Resnametable reading problem, testcases and description
-by Akaru
-------------------------------------------------------------------
-EDITED Resnametable, add at the end:
-aaa.gnd#valkyrie.gnd#
-aaa.gat#valkyrie.gat#
-aaa.rsw#valkyrie.rsw#
-À¯ÀúÀÎÅÍÆäÀ̽º\map\aaa.bmp#À¯ÀúÀÎÅÍÆäÀ̽º\map\valkyrie.bmp#
-
-At map_athena.conf, add:
-map: aaa.gat
-
-Case 1:
-In data.grf there's the base resnametable without reference of aaa.gat
-In sdata.grf there's no resnametable
-In data folder there's an edited resnametable with aaa.gat reference
-Results: Athena gives aaa.gat not found error
-What this proves: Athena doesn't even use the values in the datafolder resnametable
-
-Case 2:
-In data.grf there's the base resnametable without reference of aaa.gat
-In sdata.grf there's the edited resnametable aaa.gat reference
-In data folder there's an edited resnametable with aaa.gat reference
-Results: Athena loads aaa.gat
-What this proves: Athena only checks for the existance of the datafolder resnametable, but uses value from sdata.grf resnametable
-
-Case 3:
-In data.grf there's the base resnametable without reference of aaa.gat
-In sdata.grf there's the edited resnametable aaa.gat reference
-In data folder there's no resnametable
-BEFORE MY CHANGE: Athena exits, "data/resnametable.txt not found"
-AFTER MY CHANGE: Athena loads aaa.gat
-What this proves: Athena do not need the datafolder resnametable at all and it still runs from the resnametable in the GRFs
-
-Case 4:
-In data.grf there's no resnametable
-In sdata.grf there's no resnametable
-In data folder there's no resnametable
-BEFORE MY CHANGE: Athena exits, "data/resnametable.txt not found"
-AFTER MY CHANGE: Athena exits, "data/resnametable.txt not found"
-
-How it is now:
-- It searches for the datafolder resnametable:
- - If it exist, it continues but only use the resnametable from the GRF
- - If it does not exist,
- - If resnametable isn't found in data.grf/sdata.grf/adata.grf, it errors "resnametable not found" and exits
- - If resnametable is found in data.grf/sdata.grf/adata.grf, it errors "resnametable not found" and exits
-
-What is should do:
-- Check if data_folder in grf-files is enabled:
- - If it is, search for the datafolder resnametable:
- - If it exist:
- - If resnametable isn't found in data.grf/sdata.grf/adata.grf, it continues and uses this resnametable
- - If resnametable is found in data.grf/sdata.grf/adata.grf, it continues and overwrites the GRF resnametable with this one from the datafolder
- - If it does not exist:
- - If resnametable isn't found in data.grf/sdata.grf/adata.grf, it errors "resnametable not found" and exits
- - If resnametable is found in data.grf/sdata.grf/adata.grf, it continues and use the GRF resnametable
- - If it isn't, then:
- - If resnametable isn't found in data.grf/sdata.grf/adata.grf, it errors "resnametable not found" and exits
- - If resnametable is found in data.grf/sdata.grf/adata.grf, it continues and use the GRF resnametable
-
-------------------------------------------------------------------
-Fixes, comments, discussions, etc goes below here:
+Resnametable reading problem, testcases and description +by Akaru +------------------------------------------------------------------ +EDITED Resnametable, add at the end: +aaa.gnd#valkyrie.gnd# +aaa.gat#valkyrie.gat# +aaa.rsw#valkyrie.rsw# +À¯ÀúÀÎÅÍÆäÀ̽º\map\aaa.bmp#À¯ÀúÀÎÅÍÆäÀ̽º\map\valkyrie.bmp# + +At map_athena.conf, add: +map: aaa.gat + +Case 1: +In data.grf there's the base resnametable without reference of aaa.gat +In sdata.grf there's no resnametable +In data folder there's an edited resnametable with aaa.gat reference +Results: Athena gives aaa.gat not found error +What this proves: Athena doesn't even use the values in the datafolder resnametable + +Case 2: +In data.grf there's the base resnametable without reference of aaa.gat +In sdata.grf there's the edited resnametable aaa.gat reference +In data folder there's an edited resnametable with aaa.gat reference +Results: Athena loads aaa.gat +What this proves: Athena only checks for the existance of the datafolder resnametable, but uses value from sdata.grf resnametable + +Case 3: +In data.grf there's the base resnametable without reference of aaa.gat +In sdata.grf there's the edited resnametable aaa.gat reference +In data folder there's no resnametable +BEFORE MY CHANGE: Athena exits, "data/resnametable.txt not found" +AFTER MY CHANGE: Athena loads aaa.gat +What this proves: Athena do not need the datafolder resnametable at all and it still runs from the resnametable in the GRFs + +Case 4: +In data.grf there's no resnametable +In sdata.grf there's no resnametable +In data folder there's no resnametable +BEFORE MY CHANGE: Athena exits, "data/resnametable.txt not found" +AFTER MY CHANGE: Athena exits, "data/resnametable.txt not found" + +How it is now: +- It searches for the datafolder resnametable: + - If it exist, it continues but only use the resnametable from the GRF + - If it does not exist, + - If resnametable isn't found in data.grf/sdata.grf/adata.grf, it errors "resnametable not found" and exits + - If resnametable is found in data.grf/sdata.grf/adata.grf, it errors "resnametable not found" and exits + +What is should do: +- Check if data_folder in grf-files is enabled: + - If it is, search for the datafolder resnametable: + - If it exist: + - If resnametable isn't found in data.grf/sdata.grf/adata.grf, it continues and uses this resnametable + - If resnametable is found in data.grf/sdata.grf/adata.grf, it continues and overwrites the GRF resnametable with this one from the datafolder + - If it does not exist: + - If resnametable isn't found in data.grf/sdata.grf/adata.grf, it errors "resnametable not found" and exits + - If resnametable is found in data.grf/sdata.grf/adata.grf, it continues and use the GRF resnametable + - If it isn't, then: + - If resnametable isn't found in data.grf/sdata.grf/adata.grf, it errors "resnametable not found" and exits + - If resnametable is found in data.grf/sdata.grf/adata.grf, it continues and use the GRF resnametable + +------------------------------------------------------------------ +Fixes, comments, discussions, etc goes below here: ------------------------------------------------------------------
\ No newline at end of file |