diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
commit | a7c45a192268da2601cef47a4cdba987ae2327ca (patch) | |
tree | c5fb5b97db109fe7106496dd96498c475881046b /npc/003-3 | |
download | serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2 serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip |
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/003-3')
-rw-r--r-- | npc/003-3/_import.txt | 4 | ||||
-rw-r--r-- | npc/003-3/_warps.txt | 3 | ||||
-rw-r--r-- | npc/003-3/malindou.txt | 862 |
3 files changed, 869 insertions, 0 deletions
diff --git a/npc/003-3/_import.txt b/npc/003-3/_import.txt new file mode 100644 index 0000000..d371450 --- /dev/null +++ b/npc/003-3/_import.txt @@ -0,0 +1,4 @@ +// Map 003-3: Tulimshar Storage +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/003-3/_warps.txt", +"npc/003-3/malindou.txt", diff --git a/npc/003-3/_warps.txt b/npc/003-3/_warps.txt new file mode 100644 index 0000000..3f24581 --- /dev/null +++ b/npc/003-3/_warps.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 003-3: Tulimshar Storage warps +003-3,39,41,0 warp #003-3_39_41 0,0,003-1,56,100 diff --git a/npc/003-3/malindou.txt b/npc/003-3/malindou.txt new file mode 100644 index 0000000..e6d1c03 --- /dev/null +++ b/npc/003-3/malindou.txt @@ -0,0 +1,862 @@ +// TMW-2 Script. +// Author: +// Saulc +// Jesusalva +// Notes: +// Tulim banker, and also handles PCLogin events: CheckClientVersion, and bank +// Take care of server updates, but instances are defined on their ships. + +003-3,36,34,0 script Malindou NPC_LLOYD,{ + Banker(.name$, "Tulimshar", 9000); + close; + +OnInit: + .sex = G_MALE; + .distance = 4; + + // Update handler (use `date +%s` for this) + // Current UPDATE value: Qui Jun 7 08:10:55 -03 2018 + if ($UPDATE < 1528369855) { + $UPDATE=1528369855; + debugmes "Warning."; + debugmes "Warning."; + debugmes "Warning: This introduces a server update:"; + debugmes ""; + debugmes "* Automatic variable setup"; + debugmes ""; + $HASAN_GP=2000; + $MANA_BINT=10; + $MANA_BLVL=40; + $MANA_JLVL=20; + $VAULT_01738039=25; + $TULIM_MAYOR$="Jesus Saves"; + $TULIM_TAX=100; + $TULIM_EXPORT=5000; + $TULIM_REPUTATION=50; + $HALIN_MAYOR$="Jesus Saves"; + $HALIN_TAX=100; + $HALIN_EXPORT=2000; + $HALIN_REPUTATION=50; + $HURNS_MAYOR$="Jesus Saves"; + $HURNS_TAX=100; + $HURNS_EXPORT=3000; + $HURNS_REPUTATION=50; + $LOF_MAYOR$="Jesus Saves"; + $LOF_TAX=100; + $LOF_EXPORT=4000; + $LOF_REPUTATION=50; + $NIVAL_MAYOR$="Jesus Saves"; + $NIVAL_TAX=100; + $NIVAL_EXPORT=3000; + $NIVAL_REPUTATION=50; + $FROSTIA_MAYOR$="Jesus Saves"; + $FROSTIA_TAX=100; + $FROSTIA_EXPORT=3000; + $FROSTIA_REPUTATION=50; + $CANDOR_MAYOR$="Jesus Saves"; + $CANDOR_TAX=1000; + $CANDOR_EXPORT=0; + $CANDOR_REPUTATION=100; + $BCONFN_SPAWN = 70; + $BCONFD_SPAWN = 100; + $BCONFN_MOBHP = 100; + $BCONFD_MOBHP = 90; + $BCONFB_EXPR = 100; + $BCONFN_EXPR = 5; + $BCONFD_EXPR = 0; + $BCONFB_DROP = 100; + $BCONFN_DROP = 7; + $BCONFD_DROP = 0; + $BETASERVER = false; + $AUTORESTART = false; + $ALLIANCE_TAX1 = 7500; + $ALLIANCE_TAX2 = 60; + $FIRESOFSTEAM[1] = 2000; + $FIRESOFSTEAM[2] = 2000; + $FIRESOFSTEAM[3] = 2000; + $FIRESOFSTEAM[4] = 2000; + $FIRESOFSTEAM[5] = 2000; + } + /* + // Current UPDATE value: Dom Jun 17 21:32:45 -03 2018 + if ($UPDATE < 1529281965) { + $UPDATE=1529281965; + debugmes ""; + debugmes "* Please set #BankP for bankers"; + debugmes "* Automatically creatining minimal GP reserves for Hasan Autumn's Quest"; + debugmes ""; + $HASAN_GP=rand(3,12)+rand(3,12)+rand(3,12); + } + // Current UPDATE value: Dom Jun 30 22:44:46 -03 2018 + if ($UPDATE < 1530409486) { + $UPDATE=1530409486; + debugmes ""; + debugmes "* Clearing invalid (deleted) items"; + debugmes ""; + DelItemFromEveryPlayer(729); + } + // Current UPDATE value: Qui Jul 12 02:40:02 -03 2018 + if ($UPDATE < 1531374002) { + $UPDATE=1531374002; + debugmes ""; + debugmes "* WARNING! WARNING! WARNING!"; + debugmes "* ITEM ID VIOLATION DETECTED!"; + debugmes ""; + debugmes "* ALL POLISHED EMERALDS BECOME POLISHED AMETHYSTS, AND VICE-VERSA!"; + debugmes "* This should not have an effect ingame."; + debugmes ""; + } + // Current UPDATE value: Qui Ago 2 13:58:17 -03 2018 + if ($UPDATE < 1533229097) { + $UPDATE=1533229097; + debugmes ""; + debugmes "* ERASING all victories with Fafi Dragon"; + debugmes ""; + query_sql("UPDATE `quest` SET `count1` = '1' WHERE `quest`.`quest_id`="+LoFQuest_Fairy+" AND `count1` = '2'"); + query_sql("UPDATE `quest` SET `count1` = '2' WHERE `quest`.`quest_id`="+LoFQuest_Fairy+" AND `count1` = '3'"); + DelItemFromEveryPlayer(SkullMask); + } + // Current UPDATE value: Qua Ago 8 11:04:10 -03 2018 + if ($UPDATE < 1533737050) { + $UPDATE=1533737050; + debugmes ""; + debugmes "* REMOVING now rare items."; + debugmes ""; + DelItemFromEveryPlayer(SilverMirror); + } + // Current UPDATE value: Seg Ago 27 20:20:21 -03 2018 + if ($UPDATE < 1535412021) { + $UPDATE=1535412021; + debugmes ""; + debugmes "* SETUP mana stone default values."; + debugmes ""; + $MANA_BINT=30; + $MANA_BLVL=30; + $MANA_JLVL=15; + } + // Current UPDATE value: Qui Set 06 13:50:37 -03 2018 + if ($UPDATE < 1536252637) { + $UPDATE=1536252637; + debugmes ""; + debugmes "* Clearing invalid (deleted) items"; + debugmes "* Initial Vault Values"; + debugmes ""; + DelItemFromEveryPlayer(802); + DelItemFromEveryPlayer(557); + $VAULT_01738039=rand(5,25); + } + // Current UPDATE value: Qui Set 13 14:17:50 -03 2018 + if ($UPDATE < 1536859070) { + $UPDATE=1536859070; + debugmes ""; + debugmes "* Aisen already have a completed node at PETMEMO."; + debugmes "* This was handled automatically, no special care is required."; + debugmes ""; + } + // Current UPDATE value: Dom Set 16 22:21:05 -03 2018 + if ($UPDATE < 1537147265) { + $UPDATE=1537147265; + debugmes ""; + debugmes "* My Money quest state modified"; + debugmes "* Foxhound Famine quest state modified"; + debugmes "* Life Delight quest state modified"; // “A True Chef” is the LoF version of this quest + debugmes ""; + query_sql("UPDATE `quest` SET `count1` = '1' WHERE `quest`.`quest_id`="+ShipQuests_ArpanMoney+" AND `count1` = '2'"); + query_sql("UPDATE `quest` SET `count2` = `count1` WHERE `quest`.`quest_id`="+HalinarzoQuest_Foxhound+" AND `count1` >= '6'"); + query_sql("UPDATE `quest` SET `count1` = '6' WHERE `quest`.`quest_id`="+HalinarzoQuest_Foxhound+" AND `count1` > '6'"); + query_sql("UPDATE `quest` SET `count2` = `count1` WHERE `quest`.`quest_id`="+HalinarzoQuest_LifeDelight); + query_sql("UPDATE `quest` SET `count1` = '1' WHERE `quest`.`quest_id`="+HalinarzoQuest_LifeDelight+" AND `count1` > '1'"); + } + // Current UPDATE value: Seg Set 17 16:02:27 -03 2018 + if ($UPDATE < 1537210947) { + $UPDATE=1537210947; + debugmes ""; + debugmes "* Referral Hack System"; + debugmes ""; + setarray $REFERRAL_IDS, 0; + } + // Current UPDATE value: Ter Out 16 17:17:20 -03 2018 + // This is a hack because I'm too lazy to be bothered with standard SQL Upgrade system + if ($UPDATE < 1539721040) { + query_sql("CREATE TABLE IF NOT EXISTS `discord` (`account_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',`discord_id` VARCHAR(255) NOT NULL DEFAULT '',`discord_name` VARCHAR(255) NOT NULL DEFAULT '',`verified` ENUM('0', '1') NOT NULL DEFAULT '0') ENGINE=MyISAM"); + $UPDATE=1539721040; + //$NIVALIS_LIBDATE=1539721040; + debugmes ""; + debugmes "* SQL Upgrade (no effect on new installations)"; + //debugmes "* Nivalis Liberation Day event skipped"; + debugmes ""; + } + // Current UPDATE value: Dom Nov 18 17:40:30 -02 2018 + // Update players position + if ($UPDATE < 1542570030) { + query_sql("UPDATE `char` SET `last_x` = '35' WHERE `char`.`last_map`='005-1'"); + query_sql("UPDATE `char` SET `last_y` = '102' WHERE `char`.`last_map`='005-1'"); + query_sql("UPDATE `char` SET `save_x` = '35' WHERE `char`.`save_map`='005-1'"); + query_sql("UPDATE `char` SET `save_y` = '102' WHERE `char`.`save_map`='005-1'"); + $UPDATE=1542570030; + debugmes ""; + debugmes "* Update Candor players position"; + debugmes ""; + } + // Current UPDATE value: Sab Dez 15 21:45:15 -02 2018 + // Upgrade every Wooden Sword in a Bug Slayer + if ($UPDATE < 1544917515) { + ReplaceItemFromEveryPlayer(WoodenSword, BugSlayer); + $UPDATE=1544917515; + debugmes ""; + debugmes "* Replaced Wooden Swords with Bug Slayer"; + debugmes ""; + } + // Current UPDATE value: Sab Dez 17 13:52:54 -02 2018 + // Fix a critical bug because Nard's ship doors logic was changed. Upgrade premium weapons in rare weapons + if ($UPDATE < 1545061974) { + //query_sql("UPDATE `quest` SET `count1` = '3' WHERE `quest`.`quest_id`='0' AND `quest`.`count1` = '2' AND `quest`.`char_id` IN (SELECT `quest`.`char_id` WHERE `quest`.`quest_id` = '12' AND `quest`.`count1`>='1')"); + + ReplaceItemFromEveryPlayer(MiereCleaver, LEGACY_MiereCleaver); + ReplaceItemFromEveryPlayer(Broadsword, LEGACY_Broadsword); + $UPDATE=1545061974; + debugmes ""; + debugmes "* Replaced Miere Cleaver and Broad Sword with a special version specific for old players"; + debugmes "* Fix critical bug with Nard (not needed on Main Server)"; + debugmes ""; + } + // Current UPDATE value: Qua Dez 26 21:45:10 -02 2018 + // Update item id + if ($UPDATE < 1545867910) { + ReplaceItemFromEveryPlayer(6000, 9990); + ReplaceItemFromEveryPlayer(6001, 9991); + ReplaceItemFromEveryPlayer(6004, 9994); + ReplaceItemFromEveryPlayer(6005, 9995); + + ReplaceItemFromEveryPlayer(9990, 6001); + ReplaceItemFromEveryPlayer(9991, 6000); + ReplaceItemFromEveryPlayer(9994, 6005); + ReplaceItemFromEveryPlayer(9995, 6004); + + $UPDATE=1545867910; + debugmes ""; + debugmes "* Update Bows IDs"; + debugmes ""; + } + // Current UPDATE value: Seg Dez 31 11:45:35 -02 2018 + // Update players position (002-x). Update Peter Quest. Update Main quest. + if ($UPDATE < 1546263935) { + query_sql("UPDATE `char` SET `last_x` = '53' WHERE `char`.`last_map`='002-1'"); + query_sql("UPDATE `char` SET `last_y` = '38' WHERE `char`.`last_map`='002-1'"); + query_sql("UPDATE `char` SET `last_x` = '53' WHERE `char`.`last_map`='002-3'"); + query_sql("UPDATE `char` SET `last_y` = '38' WHERE `char`.`last_map`='002-3'"); + query_sql("UPDATE `char` SET `last_x` = '53' WHERE `char`.`last_map`='002-4'"); + query_sql("UPDATE `char` SET `last_y` = '38' WHERE `char`.`last_map`='002-4'"); + + query_sql("UPDATE `quest` SET `count1` = '2' WHERE `quest`.`quest_id`="+ShipQuests_Peter+" AND `count1` >= '3'"); + query_sql("UPDATE `quest` SET `count1` = '1' WHERE `quest`.`quest_id`="+General_Narrator+" AND `count1` >= '2'"); + $UPDATE=1546263935; + debugmes ""; + debugmes "* Update players position (Nard's Ship)"; + debugmes "* Update Peter Quest"; + debugmes ""; + } + // Current UPDATE value: Ter Jan 8 11:14:04 -02 2019 + // Update arrow IDs + if ($UPDATE < 1546953244) { + ReplaceItemFromEveryPlayer(CursedArrow, 9990); + ReplaceItemFromEveryPlayer(IronArrow, 9991); + ReplaceItemFromEveryPlayer(9990, IronArrow); + ReplaceItemFromEveryPlayer(9991, CursedArrow); + + // Maybe we should make Tolchi Arrow greater than Training Arrow? + + // PlatinumQuiver - DragonStar - MichelSoul + // Terranite Quiver was broken in two, they'll keep the weaker version + ReplaceItemFromEveryPlayer(1174, 9991); + ReplaceItemFromEveryPlayer(1175, 9992); + ReplaceItemFromEveryPlayer(1176, 9993); + + ReplaceItemFromEveryPlayer(9991, 1175); + ReplaceItemFromEveryPlayer(9992, 1176); + ReplaceItemFromEveryPlayer(9993, 1177); + + $UPDATE=1546953244; + debugmes ""; + debugmes "* Update Arrows IDs"; + debugmes "* Update Quiver IDs"; + debugmes ""; + } + // Current UPDATE value: Ter Jan 15 02:07:40 -02 2019 + // Reset all thief/merc ranks back to 1. + // If + if ($UPDATE < 1547525260) { + + // Already rank 2? Give enough exp to get rank 2 easily. + query_sql("UPDATE `char_reg_num_db` SET `value` = '30' WHERE `char_reg_num_db`.`key`='THIEF_EXP' AND `char_reg_num_db`.`char_id` IN (SELECT `char_reg_num_db`.`char_id` WHERE `char_reg_num_db`.`key` = 'THIEF_RANK' AND `char_reg_num_db`.`value`>='2')"); + // Didn't wanted to rank up? Reset exp to 30! + query_sql("UPDATE `char_reg_num_db` SET `value` = '30' WHERE `char_reg_num_db`.`key`='THIEF_EXP' AND `char_reg_num_db`.`value` >= '32' AND `char_reg_num_db`.`char_id` IN (SELECT `char_reg_num_db`.`char_id` WHERE `char_reg_num_db`.`key` = 'THIEF_RANK' AND `char_reg_num_db`.`value`<='1')"); + // Already rank 2? Return to rank 1. + query_sql("UPDATE `char_reg_num_db` SET `value` = '1' WHERE `char_reg_num_db`.`key`='THIEF_RANK' AND `char_reg_num_db`.`value` >= '2'"); + + // The same thing, now for merchants + + // Already rank 2? Give enough exp to get rank 2 easily. + query_sql("UPDATE `char_reg_num_db` SET `value` = '30' WHERE `char_reg_num_db`.`key`='MERC_EXP' AND `char_reg_num_db`.`char_id` IN (SELECT `char_reg_num_db`.`char_id` WHERE `char_reg_num_db`.`key` = 'MERC_RANK' AND `char_reg_num_db`.`value`>='2')"); + // Didn't wanted to rank up? Reset exp to 30! + query_sql("UPDATE `char_reg_num_db` SET `value` = '30' WHERE `char_reg_num_db`.`key`='MERC_EXP' AND `char_reg_num_db`.`value` >= '32' AND `char_reg_num_db`.`char_id` IN (SELECT `char_reg_num_db`.`char_id` WHERE `char_reg_num_db`.`key` = 'MERC_RANK' AND `char_reg_num_db`.`value`<='1')"); + // Already rank 2? Return to rank 1. + query_sql("UPDATE `char_reg_num_db` SET `value` = '1' WHERE `char_reg_num_db`.`key`='MERC_RANK' AND `char_reg_num_db`.`value` >= '2'"); + + $UPDATE=1547525260; + debugmes ""; + debugmes "* Merc/Thief ranks reset to 1"; + debugmes "Improving past rank 2 helps on minigame"; + debugmes ""; + } + // Current UPDATE value: Qui Fev 28 19:42:12 -03 2019 + // Late fix for Nard Ship Bug + if ($UPDATE < 1551393732) { + query_sql("UPDATE `quest` SET `count1` = '3' WHERE `quest`.`quest_id`="+ShipQuests_Julia+" AND `count1` <= '2'"); + $UPDATE=1551393732; + debugmes ""; + debugmes "* Late fix for Nard Ship Bug"; + debugmes ""; + } + // Current UPDATE value: Qui Mar 7 23:15:54 -03 2019 + // Map Update + if ($UPDATE < 1552011354) { + query_sql("UPDATE `char` SET `last_x` = '22' WHERE `char`.`last_map`='014-3'"); + query_sql("UPDATE `char` SET `last_y` = '22' WHERE `char`.`last_map`='014-3'"); + query_sql("UPDATE `char` SET `last_map` = '000-1' WHERE `char`.`last_map`='014-3'"); + + query_sql("UPDATE `char` SET `last_x` = '22' WHERE `char`.`last_map`='003-1'"); + query_sql("UPDATE `char` SET `last_y` = '22' WHERE `char`.`last_map`='003-1'"); + query_sql("UPDATE `char` SET `last_map` = '000-1' WHERE `char`.`last_map`='003-1'"); + $UPDATE=1552011354; + debugmes ""; + debugmes "* Map Updates"; + debugmes ""; + } + // Current UPDATE value: Sáb Mar 23 11:11:32 -03 2019 + // Soul Menhir savepoint replaced + if ($UPDATE < 1553350292) { + query_sql("UPDATE `char` SET `save_map` = '000-1'"); + query_sql("UPDATE `char` SET `save_x` = '22'"); + query_sql("UPDATE `char` SET `save_y` = '22'"); + $UPDATE=1553350292; + debugmes ""; + debugmes "* Soul Menhir Save Point replaced"; + debugmes ""; + } + // Current UPDATE value: Sex Abr 26 00:12:35 -03 2019 + // Monster King & Main Storyline System + if ($UPDATE < 1556248355) { + query_sql("UPDATE `quest` SET `count3` = '0' WHERE `quest`.`quest_id`="+HurnscaldQuest_Arkim); + query_sql("UPDATE `quest` SET `count2` = '0' WHERE `quest`.`quest_id`="+HurnscaldQuest_Arkim); + $GAME_STORYLINE=2; + + $UPDATE=1556248355; + debugmes ""; + debugmes "* Main Storyline system updated"; + debugmes "* Arkim updated"; + debugmes ""; + } + // Current UPDATE value: Sab Mai 04 02:21:58 -03 2019 + // Remove Return Crystals + if ($UPDATE < 1556947318) { + query_sql("UPDATE `quest` SET `count2` = '7' WHERE `quest`.`quest_id`="+General_Narrator+" AND `count1` >= '6'"); + query_sql("UPDATE `quest` SET `count1` = '5' WHERE `quest`.`quest_id`="+General_Narrator+" AND `count1` >= '6'"); + + DelItemFromEveryPlayer(ReturnPotion); + + $UPDATE=1556947318; + debugmes ""; + debugmes "* Player Storyline modified"; + debugmes "* Return Crystals removed"; + debugmes ""; + } + // Current UPDATE value: Seg mai 06 08:54:55 -03 2019 + // Remove Legendary Weapons + if ($UPDATE < 1557143695) { + DelItemFromEveryPlayer(Lightbringer); + //DelItemFromEveryPlayer(DemureAxe); // Demure's Exception! + DelItemFromEveryPlayer(Tyranny); + DelItemFromEveryPlayer(Runestaff); + DelItemFromEveryPlayer(AegisShield); + + $UPDATE=1557143695; + debugmes ""; + debugmes "* Legendary Weapons removed"; + debugmes ""; + } + // Current UPDATE value: Dom mai 26 23:00:52 -03 2019 + // Shovel Update + if ($UPDATE < 1558922452) { + DelItemFromEveryPlayer(527); // Old pumpkish juice nobody have + ReplaceItemFromEveryPlayer(526, 527); + + $UPDATE=1558922452; + debugmes ""; + debugmes "* Shovel Update"; + debugmes ""; + } + // Current UPDATE value: Seg mai 27 10:57:02 -03 2019 + // Picklog Update + if ($UPDATE < 1558965422) { + query_sql("ALTER TABLE picklog MODIFY COLUMN `opt_val0` SMALLINT(5) NOT NULL DEFAULT '0';"); + query_sql("ALTER TABLE picklog MODIFY COLUMN `opt_val1` SMALLINT(5) NOT NULL DEFAULT '0';"); + query_sql("ALTER TABLE picklog MODIFY COLUMN `opt_val2` SMALLINT(5) NOT NULL DEFAULT '0';"); + query_sql("ALTER TABLE picklog MODIFY COLUMN `opt_val3` SMALLINT(5) NOT NULL DEFAULT '0';"); + query_sql("ALTER TABLE picklog MODIFY COLUMN `opt_val4` SMALLINT(5) NOT NULL DEFAULT '0';"); + + // Replace all BugSlayer, ShortGladius, RealBronzeGladius and Backsword + // With a version containing the critical damage option (bCritAtkRate) + // auction table have no faulty items, nor do carts nor do I care w/ rodex + // by the time this query was writen + // IOPT_CRITDMG id is 199 + query_sql("UPDATE `inventory` SET `opt_idx0` = '199', `opt_val0` = '30'"+ + " WHERE `nameid`="+BugSlayer); + query_sql("UPDATE `storage` SET `opt_idx0` = '199', `opt_val0` = '30'"+ + " WHERE `nameid`="+BugSlayer); + query_sql("UPDATE `guild_storage` SET `opt_idx0` = '199', `opt_val0` = '30'"+ + " WHERE `nameid`="+BugSlayer); + + query_sql("UPDATE `inventory` SET `opt_idx0` = '199', `opt_val0` = '30'"+ + " WHERE `nameid`="+ShortGladius); + query_sql("UPDATE `storage` SET `opt_idx0` = '199', `opt_val0` = '30'"+ + " WHERE `nameid`="+ShortGladius); + query_sql("UPDATE `guild_storage` SET `opt_idx0` = '199', `opt_val0` = '30'"+ + " WHERE `nameid`="+ShortGladius); + + query_sql("UPDATE `inventory` SET `opt_idx0` = '199', `opt_val0` = '30'"+ + " WHERE `nameid`="+RealBronzeGladius); + query_sql("UPDATE `storage` SET `opt_idx0` = '199', `opt_val0` = '30'"+ + " WHERE `nameid`="+RealBronzeGladius); + query_sql("UPDATE `guild_storage` SET `opt_idx0` = '199', `opt_val0` = '30'"+ + " WHERE `nameid`="+RealBronzeGladius); + + query_sql("UPDATE `inventory` SET `opt_idx0` = '199', `opt_val0` = '30'"+ + " WHERE `nameid`="+Backsword); + query_sql("UPDATE `storage` SET `opt_idx0` = '199', `opt_val0` = '30'"+ + " WHERE `nameid`="+Backsword); + query_sql("UPDATE `guild_storage` SET `opt_idx0` = '199', `opt_val0` = '30'"+ + " WHERE `nameid`="+Backsword); + + $UPDATE=1558965422; + debugmes ""; + debugmes "* picklog options Update"; + debugmes ""; + } + // Current UPDATE value: Sex Jun 21 13:20:21 -03 2019 + // Tulimshar Sailors quest was split in two + if ($UPDATE < 1561134021) { + query_sql("UPDATE `quest` SET `count1` = '4' WHERE `quest`.`quest_id`="+TulimsharQuest_Sailors+" AND `count1` >= '2'"); + + query_sql("UPDATE `char` SET `last_x` = '22' WHERE `char`.`last_map`='005-1'"); + query_sql("UPDATE `char` SET `last_y` = '22' WHERE `char`.`last_map`='005-1'"); + query_sql("UPDATE `char` SET `last_map` = '000-1' WHERE `char`.`last_map`='005-1'"); + $UPDATE=1561134021; + debugmes ""; + debugmes "* Tulimshar Sailors split in two"; + debugmes ""; + } + // Current UPDATE value: Seg Jul 15 22:10:00 -03 2019 + // Candor Redesign + if ($UPDATE < 1563239400) { + query_sql("UPDATE `char` SET `last_x` = '22' WHERE `char`.`last_map`='005-1'"); + query_sql("UPDATE `char` SET `last_y` = '22' WHERE `char`.`last_map`='005-1'"); + query_sql("UPDATE `char` SET `last_map` = '000-1' WHERE `char`.`last_map`='005-1'"); + query_sql("UPDATE `skill` SET `id` = '20010' WHERE `skill`.`id`='20011'"); + $UPDATE=1563239400; + debugmes ""; + debugmes "* Candor Redesign"; + debugmes "* Magic Class Removed"; + debugmes ""; + } + // Current UPDATE value: Sab Ago 24 17:42:24 -03 2019 + // Political System + if ($UPDATE < 1566679344) { + $UPDATE=1566679344; + // $LOC_MAYOR$ - Stores the name of current Hurnscald Mayor + // $LOC_MONEY - Total money reserves of Hurnscald + // $LOC_TAX - How much in % is charged as taxes. (OnBuy income) + // $LOC_EXPORT - Defines how much Hurnscald exports (weekly income) + // $LOC_REPUTATION - Town reputation. Affects Max Tax and Weekly Income. + + // Tulim + $TULIM_MAYOR$="Saulc GM"; + $TULIM_TAX=100; + $TULIM_EXPORT=5000; + $TULIM_REPUTATION=50; + // Halin + $HALIN_MAYOR$="Saulc GM"; + $HALIN_TAX=100; + $HALIN_EXPORT=2000; + $HALIN_REPUTATION=50; + // Hurns + $HURNS_MAYOR$="Saulc GM"; + $HURNS_TAX=100; + $HURNS_EXPORT=3000; + $HURNS_REPUTATION=50; + // LoF + $LOF_MAYOR$="Jesus Saves"; + $LOF_TAX=100; + $LOF_EXPORT=4000; + $LOF_REPUTATION=50; + // Nival + $NIVAL_MAYOR$="Jesus Saves"; + $NIVAL_TAX=100; + $NIVAL_EXPORT=3000; + $NIVAL_REPUTATION=50; + // Frostia + $FROSTIA_MAYOR$="Jesus Saves"; + $FROSTIA_TAX=100; + $FROSTIA_EXPORT=3000; + $FROSTIA_REPUTATION=50; + + debugmes ""; + debugmes "* Political System Base"; + debugmes ""; + } + // Current UPDATE value: Sex Jan 17 14:42:37 BRT 2020 + // Remove Junk + if ($UPDATE < 1579282957) { + DelItemFromEveryPlayer(748); + DelItemFromEveryPlayer(1166); + $UPDATE=1579282957; + debugmes ""; + debugmes "* Blanket fix"; + debugmes ""; + } + // Current UPDATE value: Dom Fev 16 14:54:30 BRT 2020 + // Language over simplification + if ($UPDATE < 1581875670) { + $UPDATE=1581875670; + query_sql("DELETE FROM `char_reg_num_db` WHERE `key`='INN_REGISTER'"); + DelAccRegFromEveryPlayer("#RARE_POINTS"); + debugmes ""; + debugmes "* Variable cleanup"; + debugmes ""; + } + // Current UPDATE value: Sex Fev 24 12:15:12 BRT 2020 + // Release 11.1 final + if ($UPDATE < 1582557312) { + $UPDATE=1582557312; + ReplaceItemFromEveryPlayer(RiceHat, BullHelmet); + DelItemFromEveryPlayer(SilverEasteregg); + query_sql("UPDATE `quest` SET `count1` = '2' WHERE `quest`.`quest_id`="+General_Narrator+" AND `count1` = '3'"); + query_sql("UPDATE `quest` SET `count2` = '0' WHERE `quest`.`quest_id`="+General_Narrator+" AND `count1` = '2'"); + $BCONFN_SPAWN = 70; + $BCONFD_SPAWN = 100; + $BCONFN_MOBHP = 95; + $BCONFD_MOBHP = 85; + $BCONFB_EXPR = 100; + $BCONFN_EXPR = 5; + $BCONFD_EXPR = 0; + $BCONFB_DROP = 100; + $BCONFN_DROP = 7; + $BCONFD_DROP = 0; + debugmes ""; + debugmes "* Bull Helmet Fix"; + debugmes "* Remove Silver Easter Eggs"; + debugmes "* Lua Quest Reset"; + debugmes "* Battle Configuration is now volatile"; + debugmes ""; + } + // Current UPDATE value: Dom Abr 26 12:41:55 BRT 2020 [1587915715] + // Current UPDATE value: Qua Mai 27 18:56:15 BRT 2020 + // Fix Tolchi mess + if ($UPDATE < 1590616575) { + if ($UPDATE < 1587915715) { + query_sql("UPDATE `inventory` SET `opt_val0` = '20', `opt_val1` = '0', `opt_idx1` = '0' WHERE (`opt_idx0`='189' OR `opt_idx0`='200') AND (`opt_idx1`='189' OR `opt_idx1`='200') AND (`opt_val0` > '18' AND `opt_val1` > '18')"); + query_sql("UPDATE `cart_inventory` SET `opt_val0` = '20', `opt_val1` = '0', `opt_idx1` = '0' WHERE (`opt_idx0`='189' OR `opt_idx0`='200') AND (`opt_idx1`='189' OR `opt_idx1`='200') AND (`opt_val0` > '18' AND `opt_val1` > '18')"); + query_sql("UPDATE `storage` SET `opt_val0` = '20', `opt_val1` = '0', `opt_idx1` = '0' WHERE (`opt_idx0`='189' OR `opt_idx0`='200') AND (`opt_idx1`='189' OR `opt_idx1`='200') AND (`opt_val0` > '18' AND `opt_val1` > '18')"); + query_sql("UPDATE `guild_storage` SET `opt_val0` = '20', `opt_val1` = '0', `opt_idx1` = '0' WHERE (`opt_idx0`='189' OR `opt_idx0`='200') AND (`opt_idx1`='189' OR `opt_idx1`='200') AND (`opt_val0` > '18' AND `opt_val1` > '18')"); + query_sql("UPDATE `rodex_items` SET `opt_val0` = '20', `opt_val1` = '0', `opt_idx1` = '0' WHERE (`opt_idx0`='189' OR `opt_idx0`='200') AND (`opt_idx1`='189' OR `opt_idx1`='200') AND (`opt_val0` > '18' AND `opt_val1` > '18')"); + query_sql("UPDATE `auction` SET `opt_val0` = '20', `opt_val1` = '0', `opt_idx1` = '0' WHERE (`opt_idx0`='189' OR `opt_idx0`='200') AND (`opt_idx1`='189' OR `opt_idx1`='200') AND (`opt_val0` > '18' AND `opt_val1` > '18')"); + } + + // Destroy duplicates (should not exist) + query_sql("UPDATE `inventory` SET `opt_val0` = '15', `opt_val1` = '0', `opt_idx1` = '0' WHERE (`opt_idx1`=`opt_idx0`) AND (`opt_val0` > '15' AND `opt_val1` > '15')"); + query_sql("UPDATE `storage` SET `opt_val0` = '15', `opt_val1` = '0', `opt_idx1` = '0' WHERE (`opt_idx1`=`opt_idx0`) AND (`opt_val0` > '15' AND `opt_val1` > '15')"); + query_sql("UPDATE `guild_storage` SET `opt_val0` = '15', `opt_val1` = '0', `opt_idx1` = '0' WHERE (`opt_idx1`=`opt_idx0`) AND (`opt_val0` > '15' AND `opt_val1` > '15')"); + query_sql("UPDATE `rodex_items` SET `opt_val0` = '15', `opt_val1` = '0', `opt_idx1` = '0' WHERE (`opt_idx1`=`opt_idx0`) AND (`opt_val0` > '15' AND `opt_val1` > '15')"); + + // Magic v3 + $REBIRTH_WINNER$="Crazyfefe"; + DelChrRegFromEveryPlayer("MAGIC_SUBCLASS"); + ReplaceSkillFromEveryPlayer(MG_FIREBALL, TMW2_FIREARROW); // 1 MSP + + // These skills MSP cost was switched + ReplaceSkillFromEveryPlayer(AL_HOLYLIGHT, TMW2_NAPALMBEAT); + ReplaceSkillFromEveryPlayer(MG_NAPALMBEAT, TMW2_HOLYLIGHT); + + ReplaceSkillFromEveryPlayer(MG_SOULSTRIKE, TMW2_MAGICSTRIKE); + ReplaceSkillFromEveryPlayer(WZ_EARTHSPIKE, TMW2_METEORSTRIKE); + + ReplaceSkillFromEveryPlayer(MG_COLDBOLT, TMW2_FROSTDIVER); + ReplaceSkillFromEveryPlayer(MG_FROSTDIVER, TMW2_FROSTNOVA); + ReplaceSkillFromEveryPlayer(WZ_FROSTNOVA, TMW2_NILFHEIM); + + ReplaceSkillFromEveryPlayer(AL_HEAL, TMW2_FIRSTAID); + ReplaceSkillFromEveryPlayer(AB_HIGHNESSHEAL, TMW2_HEALING); + + debugmes ""; + debugmes "* Tolchi mess cleanup"; + debugmes "* Rebirth Hero"; + debugmes ""; + $UPDATE=1590616575; + } + // Current UPDATE value: Ter Jul 28 22:49:52 BRT 2020 + // Tulimshar Volcano + if ($UPDATE < 1595987392) { + $UPDATE=1595987392; + ReplaceItemFromEveryPlayer(816, IcedBottle); + debugmes ""; + debugmes "* Iced Water re-id"; + debugmes ""; + } + // Current UPDATE value: Ter Mar 9 18:45:00 BRT 2021 + // Easter Upgrade + if ($UPDATE < 1615326300) { + $UPDATE=1615326300; + DelChrRegFromEveryPlayer("EASTER_EVENT"); + debugmes ""; + debugmes "* Easter changes"; + debugmes ""; + } + // Current UPDATE value: Qua Abr 7 13:32:35 BRT 2021 + // Skill Update + if ($UPDATE < 1617813155) { + $UPDATE=1617813155; + ReplaceSkillFromEveryPlayer(SM_BASH, TMW2_FALKONSTRIKE); + ReplaceSkillFromEveryPlayer(ASC_METEORASSAULT, TMW2_GROUNDSTRIKE); + ReplaceSkillFromEveryPlayer(MC_MAMMONITE, TMW2_SUPREMEATTACK); + ReplaceSkillFromEveryPlayer(AC_CHARGEARROW, TMW2_CHARGEDARROW); + ReplaceSkillFromEveryPlayer(AC_SHOWER, TMW2_ARROWSHOWER); + debugmes ""; + debugmes "* Skill changes"; + debugmes ""; + } + */ + // Current UPDATE value: Qui Set 23 18:46:36 BRT 2021 + // Variable Update + if ($UPDATE < 1632433596) { + $UPDATE=1632433596; + $ALLIANCE_TAX1 = 7500; + $ALLIANCE_TAX2 = 60; + debugmes ""; + debugmes "* New global variables"; + debugmes ""; + } + // Current UPDATE value: Qui Dez 20 13:47:10 BRT 2021 + // Homun Skill Update + if ($UPDATE < 1640882830) { + $UPDATE=1640882830; + query_sql("UPDATE IGNORE `skill_homunculus` SET `id`=8047 WHERE `id`=8013"); // HVAN_CAPRICE + query_sql("UPDATE IGNORE `skill_homunculus` SET `id`=8048 WHERE `id`=8002"); // HLIF_AVOID + query_sql("UPDATE IGNORE `skill_homunculus` SET `id`=8050 WHERE `id`=8008"); // HAMI_BLOODLUST + query_sql("UPDATE IGNORE `skill_homunculus` SET `id`=8049 WHERE `id`=8006"); // HAMI_DEFENSE + query_sql("UPDATE IGNORE `skill_homunculus` SET `id`=8051 WHERE `id`=8009"); // HFLI_MOON + query_sql("UPDATE IGNORE `skill_homunculus` SET `id`=8053 WHERE `id`=8011"); // HFLI_SPEED + query_sql("UPDATE IGNORE `skill_homunculus` SET `id`=8052 WHERE `id`=8010"); // HFLI_FLEET + query_sql("UPDATE IGNORE `skill_homunculus` SET `id`=8054 WHERE `id`=8020"); // MH_POISON_MIST + query_sql("UPDATE IGNORE `skill_homunculus` SET `id`=8055 WHERE `id`=8032"); // MH_GOLDENE_FERSE + query_sql("UPDATE IGNORE `skill_homunculus` SET `id`=8056 WHERE `id`=8031"); // MH_STAHL_HORN + debugmes ""; + debugmes "* New homunculus skills"; + debugmes ""; + } + + + // This mensures Contributors Credits, and changes only during updates. + // All names in lower case. Only TMW2 direct work! Non-TMW2 contributors + // should be disregarded if they're not involved with the project. + // Standard patch (DIY); 10 points + // Reports: 1 point if relevant enough + + // You may get more points for complexity, difficulty, usability, etc. + // You may get less points if you don't do it yourself, eg. a bug report. + // Relevance of the contribution is also to be taken in account. + + // See 003-2/lua.txt for rewards + + $@CONTRIBUTORS = htnew; + htput($@CONTRIBUTORS, "jesusalva", 250); + htput($@CONTRIBUTORS, "saulc", 250); + htput($@CONTRIBUTORS, "lawncable", 180); + htput($@CONTRIBUTORS, "crazyfefe", 70); + htput($@CONTRIBUTORS, "mishana", 70); + htput($@CONTRIBUTORS, "esteria", 60); + htput($@CONTRIBUTORS, "arthur", 50); + htput($@CONTRIBUTORS, "rakinorf", 40); + htput($@CONTRIBUTORS, "dangerduck", 40); + htput($@CONTRIBUTORS, "pookie", 36); + htput($@CONTRIBUTORS, "xanofire", 32); + htput($@CONTRIBUTORS, "kolchak", 30); + htput($@CONTRIBUTORS, "jak1", 30); + htput($@CONTRIBUTORS, "dustman", 18); + htput($@CONTRIBUTORS, "povo", 10); + htput($@CONTRIBUTORS, "minegamerbr", 10); + htput($@CONTRIBUTORS, "yuckfou", 10); + htput($@CONTRIBUTORS, "kytty", 10); + htput($@CONTRIBUTORS, "ledmitz", 10); + htput($@CONTRIBUTORS, "liangtai", 4); + htput($@CONTRIBUTORS, "demure", 2); + htput($@CONTRIBUTORS, "seeds", 2); + htput($@CONTRIBUTORS, "lilanna", 1); + + htput($@CONTRIBUTORS, "manatauro reborn", 10); + htput($@CONTRIBUTORS, "hocus pocus fidibus", 40); + htput($@CONTRIBUTORS, "cadis etrama di raizel", 20); + //htput($@CONTRIBUTORS, "", 1); + end; + +OnClock0500: + if (gettime(GETTIME_DAYOFMONTH) >= 7) + query_sql("DELETE FROM `chatlog` WHERE `time` < '"+sqldate(-7)+"'"); + query_sql("DELETE FROM `picklog` WHERE `time` < '"+sqldate(0, -3)+"'"); + end; + +// This is for HUB +OnSkillInvoke: + if (!playerattached()) + end; + HUB_SkillInvoke(); + @skillId=0; + end; + +OnPCBonusEvent: + if (!playerattached()) + end; + HUB_PCBonus(); + end; + +OnGlobalChat: + .@msg$ = @chat$; + + // We don't care with punctuation or capitalization + .@msg$ = strtolower(.@msg$); + .@msg$ = replacestr(.@msg$, ",", ""); + .@msg$ = replacestr(.@msg$, ".", ""); + .@msg$ = replacestr(.@msg$, "!", ""); + .@msg$ = replacestr(.@msg$, ":", ""); + .@msg$ = replacestr(.@msg$, ";", ""); + .@msg$ = replacestr(.@msg$, "(", ""); + .@msg$ = replacestr(.@msg$, ")", ""); + .@msg$ = replacestr(.@msg$, "<", ""); + .@msg$ = replacestr(.@msg$, ">", ""); + .@msg$ = replacestr(.@msg$, "*", ""); + + SK_Scripture(.@msg$); + end; + +// Level up events +OnPCBaseLvUpEvent: + switch (BaseLevel) { + case 3: + case 5: + case 7: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + // Recalculate the bonus + NewcomerEXPDROPUP(); + break; + case 20: + if (!REBIRTH) { + sc_end SC_CASH_PLUSEXP; + sc_end SC_CASH_RECEIVEITEM; + } + break; + // Events + case 40: + if (countitem(MercCard_EH)) + delitem MercCard_EH, countitem(MercCard_EH); + break; + // Referral and Eisten + case 25: + if (#REFERRAL_PROG && BaseLevel == 25 && #REFERRAL_CTRL < 1) { + #REFERRAL_CTRL=1; + rodex_sendmail(atoi(gf_charid(#REFERRAL_PROG)), "TMW2 Team", "Recruited Player got Lv 25!", strcharinfo(0)+" just got level 25!\nAs they get stronger, more rewards will be sent to you!", 0, SilverGift, 1); + } + case 50: + if (#REFERRAL_PROG && BaseLevel == 50 && #REFERRAL_CTRL < 2) { + #REFERRAL_CTRL=2; + rodex_sendmail(atoi(gf_charid(#REFERRAL_PROG)), "TMW2 Team", "Recruited Player got Lv 50!", strcharinfo(0)+" just got level 50!\nAs they get stronger, more rewards will be sent to you!", 0, ArcmageBoxset, 1); + } + case 75: + if (#REFERRAL_PROG && BaseLevel == 75 && #REFERRAL_CTRL < 3) { + #REFERRAL_CTRL=3; + rodex_sendmail(atoi(gf_charid(#REFERRAL_PROG)), "TMW2 Team", "Recruited Player got Lv 75!", strcharinfo(0)+" just got level 75!\nAs they get stronger, more rewards will be sent to you!", 0, PrismGift, 1); + } + case 100: + if (#REFERRAL_PROG && BaseLevel == 100 && #REFERRAL_CTRL < 4) { + #REFERRAL_CTRL=4; + rodex_sendmail(atoi(gf_charid(#REFERRAL_PROG)), "TMW2 Team", "Recruited Player got Lv 100!", strcharinfo(0)+" just got level 100!\nTime to reap what you've sow for so long!", 0, SupremeGift, 1); + } + case 125: + case 150: + dispbottom l("Milestone levelup: A reward can now be claimed in Tulimshar."); + break; + } + end; + +// Every time the server starts, clean up possibly broken data about treasures. +// NPC ID might have changed. +OnInterIfInitOnce: + atcommand("@channel setopt #world MessageDelay 1"); + $@HAS_API=apiasync("PING", ""); + query_sql("DELETE FROM `char_reg_num_db` WHERE `key`='RNGTREASURE_DATE'"); + query_sql("DELETE FROM `char_reg_num_db` WHERE `key`='PVP_COOLDOWN'"); + query_sql("DELETE FROM `char_reg_num_db` WHERE `key`='CHAREG_CLEANUP'"); + end; + +// This control all PC Login events +// Position matters! +OnPCLoginEvent: + // Vault override + if (#MerchantBank) { + if (#MerchantBank < 0) + consolebug("Negative bank data for %s!", strcharinfo(0)); + BankVault += #MerchantBank; + #MerchantBank = 0; + } + + // Cannot login with outdated client + checkclientversion(); + + // Message of the Day have priority + MOTDHandler(); + + // Scheduled Announces + StoneBoardRead(); + + // TODO: npc/commands/rate-management.txt + + // Main update handler + clientupdater(); + + // Position and gameplay fixes + HUB_Login(); + + // Alcohol system reset + ALCReset(); + + // Newbie bonuses recalc + if (BaseLevel < 20 || REBIRTH) NewcomerEXPDROPUP(); + + // Daily rewards (The first with dialog interactions) + daily_login_bonus_handler(); + + // Guild Weekly Login Bonus + guild_login_bonus(); + + // Thanksgiving Event + sThanksgiving(); + end; +} + |