Initial implementation of pet evolution system + Pet DB conversion to YAML (#3544)

* Implemented official pet evolution system
* Added evolved pets to pet database
* Corrected various pet system mechanics
* Migrated pet database to YAML format and the converter from CSV format

Thanks to @Lemongrass3110 @aleos89 and @Atemo for their suggestions and additional fixes
This commit is contained in:
Jittapan Pluemsumran
2019-03-26 22:51:57 +07:00
committed by GitHub
parent e4b41ef7e0
commit ac558d7c1e
48 changed files with 4675 additions and 690 deletions

View File

@@ -1361,7 +1361,7 @@ Affected files:
-- battleconf: battle_athena.conf, battle_conf.txt
-- instancedb: instance_db.txt
-- itemdb: item_db.txt, item_group_db.txt, item_trade.txt, item_noequip.txt, item_nouse.txt, item_combo_db.txt, item_avail.txt, item_stack.txt, item_delay.txt, item_buyingstore.txt, item_flag.txt
-- mobdb: mob_db.txt, mob_item_ratio.txt, mob_chat_db.txt, mob_avail.txt, mob_race2_db.txt, mob_branch.txt, mob_poring.txt, mob_boss.txt, mob_pouch.txt, mob_classchange.txt, pet_db.txt, homunculus_db.txt, homun_skill_tree.txt, exp_homun.txt, mercenary_db.txt, mercenary_skill_db.txt, elemental_db.txt, elemental_skill_db.txt
-- mobdb: mob_db.txt, mob_item_ratio.txt, mob_chat_db.txt, mob_avail.txt, mob_race2_db.txt, mob_branch.txt, mob_poring.txt, mob_boss.txt, mob_pouch.txt, mob_classchange.txt, pet_db.yml, homunculus_db.txt, homun_skill_tree.txt, exp_homun.txt, mercenary_db.txt, mercenary_skill_db.txt, elemental_db.txt, elemental_skill_db.txt
-- motd: motd.txt
-- msgconf: atcommand_athena.conf
-- pcdb: statpoint.txt, job_exp.txt, skill_tree.txt, attr_fix.txt, job_db1.txt, job_db2.txt, job_basehpsp_db.txt, job_maxhpsp_db.txt, job_param_db.txt, level_penalty.txt

View File

@@ -9380,7 +9380,7 @@ monster as long as it is in the pet database and the targeted monster requires t
item used.
See 'doc/mob_db_mode_list.txt' for more information about monster modes.
A full list of pet IDs can be found inside 'db/(pre-)re/pet_db.txt'.
A full list of pet IDs can be found inside 'db/(pre-)re/pet_db.yml'.
---------------------------------------
@@ -9388,7 +9388,7 @@ A full list of pet IDs can be found inside 'db/(pre-)re/pet_db.txt'.
This command will create a pet egg and put it in the invoking character's
inventory. The kind of pet is specified by pet ID numbers listed in
'db/(pre-)re/pet_db.txt'. The egg is created exactly as if the character just successfully
'db/(pre-)re/pet_db.yml'. The egg is created exactly as if the character just successfully
caught a pet in the normal way.
// This will make you a poring:
@@ -9406,16 +9406,40 @@ This function will return pet information for the pet the invoking character
currently has active. Valid types are:
PETINFO_ID - Pet ID
PETINFO_CLASS - Pet class number as per 'db/(pre-)re/pet_db.txt' - will tell you what kind of a pet it
is.
PETINFO_CLASS - Pet class number as per 'db/(pre-)re/pet_db.yml' - will tell you what kind of a pet it is.
PETINFO_NAME - Pet name. Will return "null" if there's no pet.
PETINFO_INTIMATE - Pet friendly level (intimacy score). 1000 is full loyalty.
PETINFO_HUNGRY - Pet hungry level. 100 is completely full.
PETINFO_HUNGRY - Pet hungry level. 100 is full hunger.
PETINFO_RENAMED - Pet rename flag. 0 means this pet has not been named yet.
PETINFO_LEVEL - Pet level
PETINFO_BLOCKID - Pet Game ID
PETINFO_EGGID - Pet egg item id
PETINFO_FOODID - Pet food item id
PETINFO_EGGID - Pet egg item ID
PETINFO_FOODID - Pet food item ID
PETINFO_INTIMATE can be used with the following constants for checking values:
PET_INTIMATE_NONE = 0
PET_INTIMATE_AWKWARD = 1 ~ 99
PET_INTIMATE_SHY = 100 ~ 249
PET_INTIMATE_NEUTRAL = 250 ~ 749
PET_INTIMATE_CORDIAL = 750 ~ 909
PET_INTIMATE_LOYAL = 910 ~ 1000
PETINFO_HUNGRY can be used with the following constants for checking values:
PET_HUNGRY_NONE = 0
PET_HUNGRY_VERY_HUNGRY = 1 ~ 10
PET_HUNGRY_HUNGRY = 11 ~ 25
PET_HUNGRY_NEUTRAL = 26 ~ 75
PET_HUNGRY_SATISFIED = 76 ~ 90
PET_HUNGRY_STUFFED = 91 ~ 100
Example:
mes "[Vet]";
mes "Your pet + " getpetinfo(PETINFO_NAME);
if (getpetinfo(PETINFO_INTIMATE) < PET_INTIMATE_LOYAL)
mes "has some growing to do on you!";
else
mes "seems to love you very much!";
close;
---------------------------------------