From 4589a4d1351361ab1edc055756601c3f12054ccb Mon Sep 17 00:00:00 2001 From: euphyy Date: Wed, 10 Jul 2013 05:11:53 +0000 Subject: [PATCH] * Updated Eden Quests 71-85 to its latest version. (translation: Muad_Dib) * Updated all 1st class training quests, mostly experience changes. (credits: Muad_Dib, partial revert of r17210) * Added Pre-Renewal support to 1st class training quests. (bugreport:7808) * Corrected level 10 AL_HEAL lines in 'npcskill' to use MVP heal. * Corrected EXP checks in 'checkre' to use RENEWAL_EXP instead of RENEWAL. * Fixed Hunter skill quest not accepting Rangers. * Fixed a bug in Hall of Abyss. (bugreport:7815) * Fix unable to move when cloaking in levels less than 3. (credits: Akinari, bugreport:7810) * Idle timer now resets on continuous attacks, i.e. /noctrl or ctrl+click. (Hercules 19f0fcd) * Idle timer is now initialized upon login, fixing a bug with the 'checkidle' command. (credits: Akinari) git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17409 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/quest_db.txt | 4 +- npc/pre-re/quests/first_class/tu_archer.txt | 16 + npc/pre-re/scripts_athena.conf | 3 + npc/quests/first_class/tu_acolyte.txt | 86 ++- npc/quests/first_class/tu_archer.txt | 306 +++++--- npc/quests/first_class/tu_ma_th01.txt | 8 +- npc/quests/first_class/tu_magician01.txt | 113 ++- npc/quests/first_class/tu_merchant.txt | 9 +- npc/quests/first_class/tu_sword.txt | 131 +++- npc/quests/first_class/tu_thief01.txt | 72 +- npc/quests/quests_13_1.txt | 32 +- npc/quests/quests_13_2.txt | 10 +- npc/quests/skills/hunter_skills.txt | 7 +- npc/quests/skills/knight_skills.txt | 2 +- npc/quests/thana_quest.txt | 2 +- npc/re/guild/invest_main.txt | 6 +- npc/re/jobs/novice/novice.txt | 6 +- npc/re/quests/eden/71-85.txt | 738 +++++--------------- npc/re/quests/eden/eden_quests.txt | 44 +- npc/re/quests/first_class/tu_archer.txt | 16 + npc/re/scripts_athena.conf | 3 + src/map/battle.c | 4 +- src/map/clif.c | 3 + src/map/map.c | 2 + src/map/unit.c | 7 +- 25 files changed, 715 insertions(+), 915 deletions(-) create mode 100644 npc/pre-re/quests/first_class/tu_archer.txt create mode 100644 npc/re/quests/first_class/tu_archer.txt diff --git a/db/quest_db.txt b/db/quest_db.txt index dec98e50450..9f55d5c74ca 100644 --- a/db/quest_db.txt +++ b/db/quest_db.txt @@ -640,7 +640,9 @@ 5052,0,0,0,0,0,0,0,"Traditional Weapon" 5053,0,0,0,0,0,0,0,"Traditional Weapon" 5054,0,0,0,0,0,0,0,"Traditional Weapon" - +5055,0,2071,15,0,0,0,0,"Local Rising - Headless Horse" +5056,0,1584,15,0,0,0,0,"Local Rising - Tamruan" +5057,0,0,0,0,0,0,0,"Local Rising - Ready the Festival" 5058,0,0,0,0,0,0,0,"The mood of the players-(1)" 5059,0,0,0,0,0,0,0,"The mood of the players-(2)" 5060,180,0,0,0,0,0,0,"Cat Shock" diff --git a/npc/pre-re/quests/first_class/tu_archer.txt b/npc/pre-re/quests/first_class/tu_archer.txt new file mode 100644 index 00000000000..3f02ba9fb1e --- /dev/null +++ b/npc/pre-re/quests/first_class/tu_archer.txt @@ -0,0 +1,16 @@ +//===== rAthena Script ======================================= +//= Archer Class Tutorial and Job Specific Quest +//===== By: ================================================== +//= Euphy +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= [Official Conversion] +//= Archer training quest. +//===== Additional Comments: ================================= +//= 1.0 First version. [Euphy] +//============================================================ + +mjolnir_11,27,223,3 duplicate(Acolyte_Tu) Acolyte#tu 95 diff --git a/npc/pre-re/scripts_athena.conf b/npc/pre-re/scripts_athena.conf index b28c012e668..dd967b679ea 100644 --- a/npc/pre-re/scripts_athena.conf +++ b/npc/pre-re/scripts_athena.conf @@ -76,6 +76,9 @@ npc: npc/pre-re/other/mercenary_rent.txt //npc: npc/pre-re/quests/collection/quest_pupa.txt //npc: npc/pre-re/quests/collection/quest_zhupolong.txt // -------------------------------------------------------------- +// - Quests-Tutorials for basic classes (1st class quests) ------ +npc: npc/pre-re/quests/first_class/tu_archer.txt +// -------------------------------------------------------------- npc: npc/pre-re/quests/monstertamers.txt npc: npc/pre-re/quests/mrsmile.txt npc: npc/pre-re/quests/quests_13_1.txt diff --git a/npc/quests/first_class/tu_acolyte.txt b/npc/quests/first_class/tu_acolyte.txt index 56cc86d3888..f11e5ddb237 100644 --- a/npc/quests/first_class/tu_acolyte.txt +++ b/npc/quests/first_class/tu_acolyte.txt @@ -3,15 +3,15 @@ //===== By: ================================================== //= Fix up by Jukka //===== Current Version: ===================================== -//= 1.7 +//= 1.8 //===== Compatible With: ===================================== -//= rAthena SVN (Testet in Trunk 88xx) +//= rAthena SVN //===== Description: ========================================= -//= +//= [Official Conversion] +//= Acolyte training quest. //===== Additional Comments: ================================= //= 1.0 Fully working //= 1.1 optimized [Lupus] -//= TODO: Test, Add correct misceffects numbers //= 1.2 Fixed experience gains to match upcoming rate adjustments. [SinSloth] //= 1.3 Fixed bad NPC header data to comply with rev. 11603. [L0ne_W0lf] //= 1.4 Misc. updates. [L0ne_W0lf] @@ -19,6 +19,7 @@ //= 1.6 Fixed a wrong placed curly bracket. [Joseph] //= 1.6a Added 'npcskill' command. [Euphy] //= 1.7 Fixed exp, texts, and requirements in pre-renewal [Daegaladh] +//= 1.8 Updated to match the official script. [Euphy] //============================================================ // Priest Praupin @@ -291,13 +292,10 @@ prt_monk,230,106,3 script Asthe#tu 79,{ next; mes "[Asthe]"; mes "HEAL !!"; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; set tu_acolyte01, 3; if(getskilllv("AL_HEAL") == 0){ - if(checkre(3)) - getexp 0,10; - else - getexp 0,100; + getexp 0,100; specialeffect2 EF_CONE; } close; @@ -386,17 +384,11 @@ prt_monk,230,106,3 script Asthe#tu 79,{ set tu_acolyte01, 5; delitem 1504, 1; //Mace if(Class == Job_Acolyte_High) { - if(checkre(3)) - getexp 200,100; - else - getexp 2000,1000; + getexp 2000,1000; specialeffect2 EF_CONE; close; } else { - if(checkre(3)) - getexp 100,50; - else - getexp 1000,500; + getexp 1000,500; specialeffect2 EF_CONE; close; } @@ -785,8 +777,8 @@ prt_monk,230,106,3 script Asthe#tu 79,{ mes "[Asthe]"; mes "Well, please don't forget what I've taught you. I hope you look back with fondness at our time together amongst these beautiful flowers. May God bless you~"; set tu_acolyte01, 25; - if(checkre(3)) - getexp 500,300; + if (checkre(3)) + getexp 1000,1000; else getexp 5000,3000; specialeffect2 EF_CONE; @@ -842,8 +834,8 @@ monk_in,18,38,6 script Priest Gardron#tu 110,{ close; } } else if(tu_acolyte01 == 8){ - if(countitem(checkre(0)?939:957) > 4){ - mes "Oh..!"; + if(countitem((checkre(0)?939:957)) > 4){ + mes "Oh...!"; mes "You've returned!"; mes "Let's see... One..."; mes "Two... Three..."; @@ -864,45 +856,48 @@ monk_in,18,38,6 script Priest Gardron#tu 110,{ mes "Acolyte training."; set tu_acolyte01, 9; percentheal 100,100; - if(checkre(3)) - getexp 200,200; + if (checkre(3)) + getexp 1000,1000; else getexp 2000,2000; specialeffect2 EF_CONE; //getitem 505,1; //Blue_Potion close; } else { - if(checkre(0)) { - mes "A little while ago, a Prontera Sister sent me a message. Apparently,"; - mes "the residents of Prontera are being plagued by Hornets."; + if (checkre(0)) { + mes "A few days ago, a sister in Prontera"; + mes "sent me a telegram that citizens had been harmed"; + mes "by Hornets in the western field,"; + mes "so she asked the abbey to help with them."; next; mes "[Priest Gardron]"; - mes "She has requested the convent for help, but we've got a big problem. We're running out of people here that can deal with this situation..."; + mes "But at this time,"; + mes "we are also short of hands..."; + mes "so it's a big problem."; next; mes "[Priest Gardron]"; mes "....!"; emotion e_gasp; next; mes "[Priest Gardron]"; - mes ""+strcharinfo(0)+","; - mes "may I ask"; - mes "you to take care"; - mes "of this task? Exterminate the Hornets west of Prontera."; + mes "May I entrust you, acolyte "+strcharinfo(0)+","; + mes "this urgent matter?"; + mes "Please dispose of Hornets"; + mes "which are causint trouble on ^FF0000the western field of Prontera^000000."; next; mes "[Priest Gardron]"; - mes "Since you're still in basic training, I will give you some"; - mes "help if you return with"; - mes "^3131FF5 Bee Stings^000000."; + mes "I know that you are undergoing the discipline,"; + mes "So I will give you something to help you"; + mes "if you bring me ^3131FF 5^000000 ^3131FFBee Sting^000000."; next; mes "[Priest Gardron]"; - mes "Now then..."; mes "Will you go to Prontera?"; next; - if(select("Let's go to Prontera!:Um, let me get ready first.")==1) { + if(select("Let's go to Prontera!:I'll be back after doing some preparation.") == 1) { mes "[Priest Gardron]"; - mes "Good, good."; - mes "I shall send you"; - mes "there to fight the monsters west of Prontera so that you can return with 5 Bee Stings. May God bless you..."; + mes "Okay, I will send you to Prontera."; + mes "Please dispose of Hornets and bring me 5 Bee Stings for confirmation."; + mes "My Lord, please protect this acolyte from evil monsters."; close2; warp "prontera",116,72; end; @@ -964,8 +959,7 @@ prt_monk,235,245,5 script Dog#tu 81,{ mes "Woof woof!^000000"; next; if(tu_acolyte01 == 10){ - set .@dog_food, 0; - while((1)){ + while(1) { switch(select("Give a treat.:Pet the dog.:End actions.")){ case 1: set .@dog_food, .@dog_food + 1; @@ -1051,7 +1045,6 @@ prt_monk,226,257,6 script Ill Girl#tu 93,{ mes "H-hurts..."; next; select("Are you alright?"); - mes "[Angelic]"; mes "My sister..."; mes "She was so beautiful..."; @@ -1079,8 +1072,9 @@ prt_monk,226,257,6 script Ill Girl#tu 93,{ next; mes "["+strcharinfo(0)+"]"; mes "Are you alright?"; + mes "................"; next; - specialeffect EF_CURSEATTACK ; + specialeffect EF_CURSEATTACK; soundeffectall "_curse.wav",0; emotion e_omg; mes "["+strcharinfo(0)+"]"; @@ -1112,7 +1106,7 @@ prt_monk,226,257,6 script Ill Girl#tu 93,{ mes "["+strcharinfo(0)+"]"; mes "H..."; mes "Heal !!"; - specialeffect EF_HEAL ; + specialeffect EF_HEAL; next; mes "^3355FFNothing happened."; mes "It doesn't look like"; @@ -1137,8 +1131,8 @@ prt_monk,226,257,6 script Ill Girl#tu 93,{ mes "It seemed that this good"; mes "deed has improved your skills.^000000"; set tu_acolyte01, 13; - if(checkre(3)) - getexp 0,100; + if (checkre(3)) + getexp 0,500; else getexp 0,1000; specialeffect2 EF_CONE; diff --git a/npc/quests/first_class/tu_archer.txt b/npc/quests/first_class/tu_archer.txt index 2f95cf11adc..e60bdf6b3fd 100644 --- a/npc/quests/first_class/tu_archer.txt +++ b/npc/quests/first_class/tu_archer.txt @@ -3,17 +3,18 @@ //===== By: ================================================== //= Fix up by Jukka //===== Current Version: ===================================== -//= 1.9a +//= 2.0 //===== Compatible With: ===================================== -//= rAthena SVN (Testet in Trunk 88xx) +//= rAthena SVN //===== Description: ========================================= -//= +//= [Official Conversion] +//= Archer training quest. //===== Additional Comments: ================================= //= 1.0 Fully working -//= 1.1 optimized [Lupus] 1.2 fixed Weight check -//= TODO: Test, Add correct misceffects numbers +//= 1.1 optimized [Lupus] +//= 1.2 fixed Weight check //= 1.3 Moved Master Kavaruk (overlapped Phantasmic Arrow -//= Skill quest NPC) [Lupus] +//= Skill quest NPC) [Lupus] //= 1.4 Fixed experience gains to match upcoming rate adjustments. [SinSloth] //= 1.5 Fixed bad NPC header data to comply with rev. 11603. [L0ne_W0lf] //= 1.6 Fixed infinate loop. (bugreport:2393) [L0ne_W0lf] @@ -21,6 +22,8 @@ //= 1.8 Updated slightly, removed additional emotions from Reiden. [L0ne_W0lf] //= 1.9 Misc. updates. [L0ne_W0lf] //= 1.9a Added 'npcskill' command. [Euphy] +//= 2.0 Updated to match the official script. [Euphy] +//= Added Pre-Renewal support. //============================================================ // Bard Jet @@ -278,7 +281,7 @@ payon_in02,54,13,3 script Master Kavaruk 55,{ next; mes "[Master Kavaruk]"; mes "I asked a member of Icarus to"; - mes "wander about the Rune-Midgarts Kingdom and gather news and information about what has been going on recenty."; + mes "wander about the Rune-Midgarts Kingdom and gather news and information about what has been going on recently."; next; mes "[Master Kavaruk]"; mes "He has been sending me letters containing detailed information, but all of a sudden, I've lost contact with him. I'm concerned over what may have happened."; @@ -305,7 +308,10 @@ payon_in02,54,13,3 script Master Kavaruk 55,{ mes "for bringing me the news. As Arthail has said, I shall wait until he has more news for me."; mes "You should also train and prepare for the future as well."; set tu_archer02, 10; - getexp 200,100; + if (checkre(3)) + getexp 1000,1000; + else + getexp 2000,1000; close; } } @@ -543,7 +549,10 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ set tu_archer01, 6; mes "Now, your first assignment"; mes "is to learn ^3131FFLevel 3 Owl's Eye^000000!"; - mes "From Morroc, if you travel south, you can fight Condors for your training."; + if (checkre(0)) + mes "From Morroc, if you travel south, you can fight Condors for your training."; + else + mes "From Prontera, if you travel south, south and then west, you can fight Condors for your training."; next; mes "[Reidin Corse]"; mes "You can head somewhere"; @@ -553,11 +562,20 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ switch(select("I'll follow your advice, Chief!:I'll hunt somewhere else...")) { case 1: mes "[Reidin Corse]"; - mes "I'll send you to"; - mes "Morroc for now,"; - mes "so don't forget the"; - mes "directions I gave you."; - mes "Travel ^3131FFsouth^000000."; + if (checkre(0)) { + mes "I'll send you to"; + mes "Morroc for now,"; + mes "so don't forget the"; + mes "directions I gave you."; + mes "Travel ^3131FFsouth^000000."; + } else { + mes "I'll send you to"; + mes "Prontera for now,"; + mes "so don't forget the"; + mes "directions I gave you."; + mes "Travel ^3131FFsouth^000000, ^3131FFsouth^000000,"; + mes "and then ^3131FFwest^000000."; + } next; switch(select("Leave right away~:W-wait, let me get ready!")) { case 1: @@ -573,9 +591,15 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ mes "[Reidin Corse]"; mes "Okay...!"; mes "Off you go!"; - mes "To Morroc!"; - close2; - warp "morocc",156,46; + if (checkre(0)) { + mes "To Morroc!"; + close2; + warp "morocc",156,46; + } else { + mes "To Prontera!"; + close2; + warp "prontera",116,72; + } end; case 2: mes "[Reidin Corse]"; @@ -601,7 +625,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ emotion e_ag; mes "Huh. So you already know a little about Owl's Eye already, huh? Well then, I guess I oughta talk about something you don't know about!"; set tu_archer01, 7; - getexp 50,0; + getexp 500,0; close; } break; @@ -628,7 +652,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ mes "Here, this is a small, special reward for you."; specialeffect2 EF_WIND; set tu_archer01, 7; - getexp 50,0; + getexp 500,0; next; emotion e_pif; mes "[Reidin Corse]"; @@ -709,7 +733,10 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ set .@eagle, getskilllv("AC_VULTURE"); if(.@eagle < 3){ - mes "Alright, Mandagora usually live around Geffen. I can send you to Geffen, so just travel north from there to find"; + if (checkre(0)) + mes "Alright, Mandagora usually live around Geffen. I can send you to Geffen, so just travel north from there to find"; + else + mes "Alright, Mandagora usually live around Mt. Mjolnir. I can send you to Prontera, so just travel north, then east from there to find"; mes "some of them."; next; mes "[Reidin Corse]"; @@ -738,7 +765,10 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ mes "Alright...!"; mes "Get a move on!"; close2; - warp "geffen",120,39; + if (checkre(0)) + warp "geffen",120,39; + else + warp "prontera",116,72; end; case 2: mes "[Reidin Corse]"; @@ -763,7 +793,10 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ } else if(tu_archer01 == 8){ set .@eagle, getskilllv("AC_VULTURE"); if(.@eagle < 3){ - mes "Mandagora lives in the area north of Geffen. Learn up to Level 3 Vulture's Eye and get acquainted with your attack range."; + if (checkre(0)) + mes "Mandagora lives in the area north of Geffen. Learn up to Level 3 Vulture's Eye and get acquainted with your attack range."; + else + mes "Mandagora lives in the area north and east of Prontera. Learn up to Level 3 Vulture's Eye and get acquainted with your attack range."; next; mes "[Reidin Corse]"; mes "Okay..."; @@ -776,7 +809,10 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ mes "Alright...!"; mes "Get a move on!"; close2; - warp "geffen",120,39; + if (checkre(0)) + warp "geffen",120,39; + else + warp "prontera",116,72; end; case 2: mes "[Reidin Corse]"; @@ -843,7 +879,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ if(.@eagle == 0){ specialeffect2 EF_WIND; set tu_archer01, 10; - getexp 0,50; + getexp 0,500; } emotion e_no1; next; @@ -857,48 +893,75 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ close; } } else if(tu_archer01 == 10){ - mes "Now, I've taught you a lot of stuff and I wanna make sure you retain all of it. That's why I want you to take this midterm. Your mission: ^FF0000Attack the Rockers^000000!"; - emotion e_no1; - next; - mes "[Reidin Corse]"; - mes "Rockers live just southwest of Prontera."; - next; - mes "[Reidin Corse]"; - mes "Be aware that Rockers are earth element monsters!! ^3131FFSo they should be weak against fire^000000."; - next; - mes "[Reidin Corse]"; - mes "Now go and bring ^3131FF10 Grasshopper's Leg^000000 from hunting Rockers."; - mes "Bring all of that and you pass~"; - next; - mes "[Reidin Corse]"; - mes "It's easier to find them if you pass by the southern gate of Prontera and then head west. Alright, off you go, " + strcharinfo(0) + "~"; + if (checkre(0)) { + mes "Now, I've taught you a lot of stuff and I wanna make sure you retain all of it. That's why I want you to take this midterm. Your mission: ^FF0000Attack the Rockers^000000!"; + emotion e_no1; + next; + mes "[Reidin Corse]"; + mes "Rockers live just southwest of Prontera."; + next; + mes "[Reidin Corse]"; + mes "Be aware that Rockers are earth element monsters!! ^3131FFSo they should be weak against fire^000000."; + next; + mes "[Reidin Corse]"; + mes "Now go and bring ^3131FF10 Grasshopper's Leg^000000 from hunting Rockers."; + mes "Bring all of that and you pass~"; + next; + mes "[Reidin Corse]"; + mes "It's easier to find them if you pass by the southern gate of Prontera and then head west. Alright, off you go, " + strcharinfo(0) + "~"; + } else { + mes "Now, I've taught you a lot of stuff and I wanna make sure you retain all of it. That's why I want you to take this midterm. Your mission: ^FF0000Attack the Rockers^000000!"; + emotion e_no1; + next; + mes "[Reidin Corse]"; + mes "There's a ship that"; + mes "leads to Byalan Island in Izlude, Prontera's satellite city. Ride that ship to Byalan Island."; + next; + mes "[Reidin Corse]"; + mes "In the center of that island is the entrance to a dungeon where a lot of Hydras live. Remember that it's a water dungeon, and that ^3131FFWater resists Fire^000000, ^3131FFbut is weak against Wind^000000."; + next; + mes "[Reidin Corse]"; + mes "Now go and bring ^3131FF10 Tentacles^000000"; + mes "from hunting Hydra and ^3131FF1 Crystal Blue^000000, which you can get from hunting the Mushrooms there."; + mes "Bring all of that and you pass~"; + next; + mes "[Reidin Corse]"; + mes "It's easier to find Izlude if you pass by Prontera, so head towards the fields near Prontera. Alright, off you go, " + strcharinfo(0) + "~"; + } set tu_archer01,11; close; } else if(tu_archer01 == 11){ - if(countitem(940) > 9){ - if(MaxWeight - Weight < 1000){ - mes "Why are you carrying"; - mes "so much stuff? You better put everything you don't need into Kafra Storage."; - close; - } else { - mes "Hey, you're back!"; - mes "Let's see now..."; - next; - emotion e_no1; - mes "[Reidin Corse]"; - mes "Good! You pass."; - mes "Don't forget that you gotta keep training and improve your skills. Before you know it, you'll be an expert almost as good as me!"; - specialeffect2 EF_WIND; - set tu_archer01, 12; - getexp 100,100; - getitem 1707,1; //Great_Bow - close; - } - } else { + if (checkre(0) && countitem(940) < 10) { mes "Hey..."; mes "You gotta bring"; mes "^3131FF10 Grasshopper's Leg^000000 to pass my midterm! Go back to the southwest area of Prontera and get them!"; close; + } else if (!checkre(0) && (countitem(962) < 10 || countitem(991) == 0)) { + mes "Hey..."; + mes "You gotta bring"; + mes "^3131FF10 Tentacles^000000 and"; + mes "^3131FF1 Crystal Blue^000000 to pass my midterm! Go back to the dungeon on Byalan Island and get them!"; + close; + } + if(MaxWeight - Weight < 1000){ + mes "Why are you carrying"; + mes "so much stuff? You better put everything you don't need into Kafra Storage."; + close; + } else { + mes "Hey, you're back!"; + mes "Let's see now..."; + next; + emotion e_no1; + mes "[Reidin Corse]"; + mes "Good! You pass."; + mes "Don't forget that you gotta keep training and improve your skills. Before you know it, you'll be an expert almost as good as me!"; + specialeffect2 EF_WIND; + set tu_archer01, 12; + if (checkre(0)) + delitem 940,10; //Grasshopper's_Leg + getexp 1000,1000; + getitem 1707,1; //Great_Bow + close; } } else if(tu_archer01 == 12){ mes "Alright, now there's only"; @@ -940,8 +1003,13 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ mes "no need for you to fret."; next; mes "[Reidin Corse]"; - mes "Now, go into the forest east of Payon and hunt Spores and Wormtails. Your test will be to bring back ^3131FF10 Mushroom Spores^000000 and"; - mes "^3131FF10 Pointed Scales^000000."; + if (checkre(0)) { + mes "Now, go into the forest east of Payon and hunt Spores and Wormtails. Your test will be to bring back ^3131FF10 Mushroom Spores^000000 and"; + mes "^3131FF10 Pointed Scales^000000."; + } else { + mes "Now, go to Mt. Mjolnir and hunt Floras. Your test will be to bring back ^3131FF5 Maneater Blossoms^000000 and"; + mes "^3131FF20 Stems^000000."; + } next; mes "[Reidin Corse]"; mes "I know it's a little dangerous,"; @@ -968,49 +1036,81 @@ pay_arche,103,165,5 script Reidin Corse#tu 832,{ close; } } else if((tu_archer01 == 14) || (tu_archer01 == 15)){ - if((countitem(906) > 9) && (countitem(921) > 9)){ - mes "Ha-ha~!"; - mes "You look more like"; - mes "a veteran than a rookie"; - mes "now! Yeap, I can see it"; - mes "in your eyes."; - next; - mes "[Reidin Corse]"; - mes "Right, did you get a chance to meet my Acolyte pal, Mafra? She's pretty shy, but I hope you two got along."; - next; - mes "[Reidin Corse]"; - mes "I'm happy to tell"; - mes "you that you've passed"; - mes "my final exam! Here, take"; - mes "this little reward!"; - specialeffect2 EF_WIND; - set tu_archer01,16; - getexp 300,300; - getitem 1770,500; //Iron_Arrow - next; - mes "[Reidin Corse]"; - mes "Well, it's like you're a full fledged Archer now. Honestly,"; - mes "I've got nothing more to teach you. Well, about archery, anyway."; - emotion e_heh; - next; - mes "[Reidin Corse]"; - mes "Well, if you talk to him, Master Kavaruk might have something for you to do. He happens to have me running around to doing errands"; - mes "for him too. That creep!"; - emotion e_pif; - next; - mes "[Reidin Corse]"; - mes "Well, "+ strcharinfo(0) +","; - mes "It'd make me really happy if you get to the point where you develop a true love for the art of archery. I'll see you sometime, okay?"; - emotion e_no1; - close; - } else { + if (checkre(0) && (countitem(906) < 10 || countitem(921) < 10)) { mes "Remember, you"; mes "need to head into"; mes "the forest east of Payon and get me"; mes "^3131FF10 Mushroom Spores^000000"; mes "and ^3131FF10 Pointed Scales^000000."; close; + } else if (!checkre(0) && (countitem(1032) < 5 || countitem(905) < 20)) { + mes "Remember, you"; + mes "need to head over to"; + mes "Mt. Mjolnir and get me"; + mes "^3131FF5 Maneater Blossoms^000000"; + mes "and ^3131FF20 Stems^000000."; + next; + mes "[Reidin Corse]"; + mes "From Prontera, you'd get to Mt. Mjolnir by traveling ^3131FFnorth^000000, ^3131FFnorth^000000 and then ^3131FFeast^000000. But if you want,"; + mes "I can just send you there."; + next; + switch(select("Go!:W-Wait!")) { + case 1: + mes "[Reidin Corse]"; + mes "Alright!"; + mes "Oh, and if you get"; + mes "the chance, give a hello to my Acolyte pal over there for me~"; + emotion e_heh; + close2; + warp "mjolnir_11",25,221; + end; + case 2: + mes "[Reidin Corse]"; + mes "Huh?"; + mes "Um, sure. But"; + mes "there's no reason to"; + mes "get so nervous, even if"; + mes "this my final exam for you."; + close; + } } + mes "Ha-ha~!"; + mes "You look more like"; + mes "a veteran than a rookie"; + mes "now! Yeap, I can see it"; + mes "in your eyes."; + next; + mes "[Reidin Corse]"; + mes "Right, did you get a chance to meet my Acolyte pal, Mafra? She's pretty shy, but I hope you two got along."; + next; + mes "[Reidin Corse]"; + mes "I'm happy to tell"; + mes "you that you've passed"; + mes "my final exam! Here, take"; + mes "this little reward!"; + specialeffect2 EF_WIND; + set tu_archer01,16; + if (checkre(3)) + getexp 1000,1000; + else + getexp 3000,3000; + getitem 1770,500; //Iron_Arrow + next; + mes "[Reidin Corse]"; + mes "Well, it's like you're a full fledged Archer now. Honestly,"; + mes "I've got nothing more to teach you. Well, about archery, anyway."; + emotion e_heh; + next; + mes "[Reidin Corse]"; + mes "Well, if you talk to him, Master Kavaruk might have something for you to do. He happens to have me running around to doing errands"; + mes "for him too. That creep!"; + emotion e_pif; + next; + mes "[Reidin Corse]"; + mes "Well, "+ strcharinfo(0) +","; + mes "It'd make me really happy if you get to the point where you develop a true love for the art of archery. I'll see you sometime, okay?"; + emotion e_no1; + close; } else if(tu_archer01 == 16){ mes "I really like this town."; mes "There's so much lush greenery"; @@ -1280,13 +1380,13 @@ pay_arche,84,139,3 script Seisner 727,{ specialeffect2 EF_WIND; set tu_archer01, 3; if(JobLevel == 1){ - getexp 0,5; + getexp 0,30; } else if((JobLevel > 1) && (JobLevel < 11)){ - getexp 0,10; + getexp 0,80; } else if((JobLevel > 10) && (JobLevel < 21)){ - getexp 0,25; + getexp 0,100; } else { - getexp 0,50; + getexp 0,120; } end; } @@ -1295,11 +1395,11 @@ pay_arche,84,139,3 script Seisner 727,{ // Target //============================================================ -pay_arche,76,135,3 script Target#Target 111,{ end; } // empty NPC?? [Jukka] +pay_arche,76,135,3 script #Target 111,{ end; } // Acolyte //============================================================ -pay_fild08,40,83,5 script Acolyte#tu 95,{ +- script ::Acolyte_Tu -1,{ mes "[Acolyte]"; if(tu_archer01 == 14){ if(gettime(3) >= 18 && gettime(3) < 22){ diff --git a/npc/quests/first_class/tu_ma_th01.txt b/npc/quests/first_class/tu_ma_th01.txt index 72c1d491497..ffbab2ed1d0 100644 --- a/npc/quests/first_class/tu_ma_th01.txt +++ b/npc/quests/first_class/tu_ma_th01.txt @@ -1,17 +1,17 @@ //===== rAthena Script ======================================= -//= Theif Mage Quest Story Mode +//= Thief Mage Quest Story Mode //===== By: ================================================== //= Fix up by Jukka //===== Current Version: ===================================== //= 1.3 //===== Compatible With: ===================================== -//= rAthena SVN (Testet in Trunk 88xx) +//= rAthena SVN //===== Description: ========================================= -//= +//= [Official Conversion] +//= Battle Traces from Thief and Magician training quests. //===== Additional Comments: ================================= //= 1.0 Fully working //= 1.1 optimized [Lupus] -//= TODO: Test, Add correct misceffects numbers //= 1.2 Changed "battle_trace" to "Trace of Battle". [L0ne_W0lf] //= 1.3 Misc. updates. [L0ne_W0lf] //============================================================ diff --git a/npc/quests/first_class/tu_magician01.txt b/npc/quests/first_class/tu_magician01.txt index 9beb55b5b0a..808da49335f 100644 --- a/npc/quests/first_class/tu_magician01.txt +++ b/npc/quests/first_class/tu_magician01.txt @@ -1,19 +1,20 @@ //===== rAthena Script ======================================= -//= Magican Class Tutorial and Job Specific Quest +//= Magician Class Tutorial and Job Specific Quest //===== By: ================================================== //= Fix up by Jukka //===== Current Version: ===================================== -//= 1.3 +//= 1.4 //===== Compatible With: ===================================== -//= rAthena SVN (Testet in Trunk 88xx) +//= rAthena SVN //===== Description: ========================================= -//= +//= [Official Conversion] +//= Magician training quest. //===== Additional Comments: ================================= //= 1.0 Fully working //= 1.1 Optimized [Lupus] -//= TODO: Test, Add proper misceffects //= 1.2 Fixed experience gains to match upcoming rate adjustments. [SinSloth] //= 1.3 Misc. updates. [L0ne_W0lf] +//= 1.4 Updated to match the official script. [Euphy] //============================================================ // Sign @@ -45,9 +46,14 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "anyone can do what you do~"; close; } - if(eaclass()&(EAJL_UPPER|EAJL_2) && tu_magician01 < 7){ + if(eaclass()&(EAJL_UPPER|EAJL_2|EAJL_THIRD) && tu_magician01 < 7){ mes "[Mana]"; - mes "My training isn't very helpful to those that are already skilled in magic. I'm afraid you'll have to rely on yourself to improve your skills."; + mes "Although I offer magic"; + mes "training, it's not very helpful"; + mes "if you're already experienced"; + mes "in the use of magic. I'm sorry,"; + mes "but you'll have to rely on your"; + mes "own self to hone your skills."; close; } switch(tu_magician01){ @@ -128,7 +134,10 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "time for a break. But we'll"; mes "continue this later, okay?"; set tu_magician01, 1; - getexp BaseLevel*3,BaseLevel*2; + if (checkre(3)) + getexp BaseLevel*3,BaseLevel*2; + else + getexp BaseLevel*30,BaseLevel*15; specialeffect2 EF_HIT5; close; case 1: @@ -202,7 +211,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "only slightly injured and the"; mes "Fire Wall won't necessarily"; mes "block its approach. So beware!"; - set tu_mana,tu_mana|1; + set .@eread_1,1; next; break; case 2: @@ -237,7 +246,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "afterwards, like Fire Bolt and"; mes "Fire Ball, to take advantage of"; mes "the monster's Earth property."; - set tu_mana,tu_mana|2; + set .@eread_2,1; next; break; case 3: @@ -275,8 +284,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "the ^93DB70Wind^000000 property skills"; mes "that we Mages can use are"; mes "Lighning Bolt and Thunder Storm."; - next; - set tu_mana,tu_mana|4; + set .@eread_3,1; next; break; case 4: @@ -313,7 +321,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "actually freeze monsters."; mes "While monsters are frozen by"; mes "Frost Diver, they're considered Water monsters. Interesting, huh?"; - set tu_mana,tu_mana|8; + set .@eread_4,1; next; break; case 5: @@ -346,7 +354,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "shield against long range"; mes "attacks or strong property"; mes "attacks, so be really careful!"; - set tu_mana,tu_mana|16; + set .@eread_5,1; next; break; case 6: @@ -358,32 +366,18 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "ready, we'll cover some new"; mes "material for you to learn."; next; - switch(select("W-wait, not yet!:I'm ready to go on.")) { - case 1: - break; - case 2: + if(select("W-wait, not yet!:I'm ready to go on.") == 2) { mes "[Mana]"; mes "Alrighty, we'll"; mes "move on to the next"; mes "subject then. Ho ho ho~!"; set tu_magician01,2; specialeffect2 EF_HIT5; - if(tu_mana&1){ - getexp 15,7; - } - if(tu_mana&2){ - getexp 15,7; - } - if(tu_mana&4){ - getexp 15,7; - } - if(tu_mana&8){ - getexp 15,7; - } - if(tu_mana&16){ - getexp 15,7; - } - set tu_mana,0; + if(.@eread_1) getexp 150,70; + if(.@eread_2) getexp 150,70; + if(.@eread_3) getexp 150,70; + if(.@eread_4) getexp 150,70; + if(.@eread_5) getexp 150,70; } close; } @@ -465,7 +459,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "10 Chrysalis from them."; mes "Then bring them to me, okay?"; set tu_magician01, 3; - getexp 40,20; + getexp 400,200; specialeffect2 EF_HIT5; close; case 3: @@ -493,7 +487,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "used to using your skills, huh?"; mes "Anyway, let me know when you're ready for the next lesson, okay?"; set tu_magician01, 5; - getexp 40,20; + getexp 400,200; specialeffect2 EF_HIT5; close; } @@ -521,7 +515,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "used to using your skills, huh?"; mes "Anyway, let me know when you're ready for the next lesson, okay?"; set tu_magician01, 5; - getexp 40,20; + getexp 400,200; specialeffect2 EF_HIT5; close; } @@ -550,7 +544,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "of Soul Strike and increase"; mes "that skill's level, it will grow in strength and you'll be able"; mes "to cast it much more quickly."; - set tu_mana,tu_mana|1; + set .@skill_e1,1; next; break; case 2: @@ -570,7 +564,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "certain number of attacks,"; mes "depending on the level of the"; mes "Safety Wall skill that you use."; - set tu_mana,tu_mana|2; + set .@skill_e2,1; next; break; case 3: @@ -590,7 +584,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "good use of the destructive"; mes "power of the Fire Ball!"; next; - set tu_mana,tu_mana|4; + set .@skill_e3,1; break; case 4: mes "[Mana]"; @@ -616,7 +610,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "skill, its damage and chance"; mes "of freezing monsters will also"; mes "increase. Pretty dangerous, eh? ^FFFFFFkamenriderblack^000000"; - set tu_mana,tu_mana|8; + set .@skill_e4,1; next; break; case 5: @@ -635,7 +629,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "within a certain range."; mes "It's an incredibly potent"; mes "ground targeting attack."; - set tu_mana,tu_mana|16; + set .@skill_e5,1; next; break; case 6: @@ -661,7 +655,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "Fire Well strategically"; mes "and effectively, it can"; mes "be a very powerful skill~"; - set tu_mana,tu_mana|32; + set .@skill_e6,1; next; break; case 7: @@ -680,7 +674,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ mes "learn Energy Coat, I'm"; mes "sure Blizardis will tell"; mes "you all you need to know."; - set tu_mana,tu_mana|64; + set .@skill_e7,1; next; break; case 8: @@ -701,28 +695,13 @@ geffen,67,180,4 script New Mage Manager#M 102,{ set tu_magician01, 6; getitem 1604,1; //Wand specialeffect2 EF_HIT5; - if(tu_mana&1){ - getexp 30,10; - } - if(tu_mana&2){ - getexp 30,10; - } - if(tu_mana&4){ - getexp 30,10; - } - if(tu_mana&8){ - getexp 30,10; - } - if(tu_mana&16){ - getexp 30,10; - } - if(tu_mana&32){ - getexp 30,10; - } - if(tu_mana&64){ - getexp 30,10; - } - set tu_mana,0; + if(.@skill_e1) getexp 300,100; + if(.@skill_e2) getexp 300,100; + if(.@skill_e3) getexp 300,100; + if(.@skill_e4) getexp 300,100; + if(.@skill_e5) getexp 300,100; + if(.@skill_e6) getexp 300,100; + if(.@skill_e7) getexp 300,100; close; default: break; @@ -810,7 +789,7 @@ geffen,67,180,4 script New Mage Manager#M 102,{ set tu_magician01, 28; getitem 2321,1; //Silk_Robe set Zeny, Zeny + 3000; - getexp 300,100; + getexp 3000,1000; close; default: if(tu_magician01 < 27){ diff --git a/npc/quests/first_class/tu_merchant.txt b/npc/quests/first_class/tu_merchant.txt index 95810e2c9cc..4781f247017 100644 --- a/npc/quests/first_class/tu_merchant.txt +++ b/npc/quests/first_class/tu_merchant.txt @@ -5,13 +5,14 @@ //===== Current Version: ===================================== //= 1.3 //===== Compatible With: ===================================== -//= rAthena SVN (Testet in Trunk 88xx) +//= rAthena SVN //===== Description: ========================================= -//= +//= [Official Conversion] +//= Merchant training quest. //===== Additional Comments: ================================= //= 1.0 Fully working -//= 1.1 Fixed bugs, optimized [Lupus] 1.2 fixed Weight check -//= TODO: Test, add missing misceffects +//= 1.1 Fixed bugs, optimized [Lupus] +//= 1.2 fixed Weight check //= 1.2 Fixed experience gains to match upcoming rate adjustments. [SinSloth] //= 1.3 Misc. updates. [L0ne_W0lf] //============================================================ diff --git a/npc/quests/first_class/tu_sword.txt b/npc/quests/first_class/tu_sword.txt index c3f7b2b1c30..84d74771d5b 100644 --- a/npc/quests/first_class/tu_sword.txt +++ b/npc/quests/first_class/tu_sword.txt @@ -3,19 +3,20 @@ //===== By: ================================================== //= Fix up by Jukka //===== Current Version: ===================================== -//= 1.5 +//= 1.6 //===== Compatible With: ===================================== -//= rAthena SVN (Testet in Trunk 88xx) +//= rAthena SVN //===== Description: ========================================= -//= +//= [Official Conversion] +//= Swordman training quest. //===== Additional Comments: ================================= //= 1.0 Fully working //= 1.1 optimized [Lupus] -//= TODO: Test, Add correct misceffects numbers //= 1.2 Fixed a typo on NPC name. [SinSloth] //= 1.3 Fixed experience gains to match upcoming rate adjustments. [SinSloth] //= 1.4 Misc. updates. [L0ne_W0lf] //= 1.5 Added Renewal Izlude coordinates. +//= 1.6 Added Pre-Renewal support. [Euphy] //============================================================ // Shurank @@ -42,7 +43,7 @@ izlude_in,82,163,3 script Shurank 733,{ mes "come back to me..."; close; } - if(BaseClass == Job_Swordman && eaclass()&(EAJL_2|EAJL_UPPER)){ + if(BaseClass == Job_Swordman && eaclass()&(EAJL_2|EAJL_UPPER|EAJL_THIRD)){ mes "From your raiment,"; mes "I see that you are"; if(Sex) @@ -109,7 +110,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "your great efforts. But do not let your talents allow you to grow arrogant!"; set tu_swordman, 23; completequest 8228; - getexp 186,0; + if (checkre(3)) + getexp 186,0; + else + getexp 1860,0; getitem 1113,1; //Scimiter next; mes "[Shurank]"; @@ -197,7 +201,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "your accomplishment."; set tu_swordman, 22; changequest 8227,8228; - getexp 186,0; + if (checkre(3)) + getexp 186,0; + else + getexp 1860,0; next; mes "[Shurank]"; mes "Next time, I will tell you more about the Magnum Break skill."; @@ -224,7 +231,10 @@ izlude_in,82,163,3 script Shurank 733,{ set tu_swordman, 13; erasequest 8221; setquest 8222; - getexp 126,0; + if (checkre(3)) + getexp 126,0; + else + getexp 1260,0; next; mes "[Shurank]"; mes "Ah, once again, I have"; @@ -286,7 +296,10 @@ izlude_in,82,163,3 script Shurank 733,{ set tu_swordman, 13; erasequest 8221; setquest 8222; - getexp 126,0; + if (checkre(3)) + getexp 126,0; + else + getexp 1260,0; next; mes "[Shurank]"; mes "Ah, once again, I have"; @@ -363,7 +376,10 @@ izlude_in,82,163,3 script Shurank 733,{ set tu_swordman, 13; erasequest 8221; setquest 8222; - getexp 126,0; + if (checkre(3)) + getexp 126,0; + else + getexp 1260,0; next; mes "[Shurank]"; mes "Ah, once again, I have"; @@ -384,7 +400,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "[Shurank]"; mes "Ah, I see that you have a fairly good understanding of the Provoke skill. Let me reward you in this small way for your efforts."; set tu_swordman, 10; - getexp 112,0; + if (checkre(3)) + getexp 112,0; + else + getexp 1120,0; next; mes "[Shurank]"; mes "Next time we speak, I will tell you what I know about the ^5D478BEndure^000000 skill. When you're ready to learn, come back to me."; @@ -398,7 +417,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "an outstanding Swordman."; mes "Here is a small reward..."; set tu_swordman, 10; - getexp 126,0; + if (checkre(3)) + getexp 126,0; + else + getexp 1260,0; next; mes "[Shurank]"; mes "Next time we speak, I will tell you what I know about the ^5D478BEndure^000000 skill. When you're ready to learn, come back to me."; @@ -447,7 +469,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "[Shurank]"; mes "Ah, I see that you have a fairly good understanding of the Provoke skill. Let me reward you in this small way for your efforts."; set tu_swordman, 10; - getexp 112,0; + if (checkre(3)) + getexp 112,0; + else + getexp 1120,0; next; mes "[Shurank]"; mes "Next time we speak, I will tell you what I know about the ^5D478BEndure^000000 skill. When you're ready to learn, come back to me."; @@ -461,7 +486,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "an outstanding Swordman."; mes "Here is a small reward..."; set tu_swordman, 10; - getexp 126,0; + if (checkre(3)) + getexp 126,0; + else + getexp 1260,0; next; mes "Next time we speak, I will tell you what I know about the ^5D478BEndure^000000 skill. When you're ready to learn, come back to me."; close; @@ -543,7 +571,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "Ah, I see that you have a fairly good understanding of the Provoke skill. Let me reward you in this small way for your efforts."; set tu_swordman, 10; changequest 8219,8220; - getexp 112,0; + if (checkre(3)) + getexp 112,0; + else + getexp 1120,0; next; mes "[Shurank]"; mes "Next time we speak, I will tell you what I know about the ^5D478BEndure^000000 skill. When you're ready to learn, come back to me."; @@ -561,7 +592,10 @@ izlude_in,82,163,3 script Shurank 733,{ completequest 8219; completequest 8220; setquest 8221; - getexp 126,0; + if (checkre(3)) + getexp 126,0; + else + getexp 1260,0; next; mes "[Shurank]"; mes "Next time we speak, I will tell you what I know about the ^5D478BEndure^000000 skill. When you're ready to learn, come back to me."; @@ -650,7 +684,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "Ah! That healthy glow!"; mes "I see that you've mastered this skill already. Let me give you a little reward for your hard training!"; set tu_swordman, 5; - getexp 112,0; + if (checkre(3)) + getexp 112,0; + else + getexp 1120,0; next; } else { mes "[Shurank]"; @@ -690,7 +727,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "Here's a small prize in recognition of your efforts thus far. But don't relax yet! You still have a long way to go before grasping"; mes "all of the basics."; set tu_swordman, 4; - getexp 97,0; + if (checkre(3)) + getexp 97,0; + else + getexp 970,0; getitem 2503,1; //Muffler close; } else { @@ -725,7 +765,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "Here's a little reward for all of your hard work. I hope you realize the importance of using Bash as"; mes "you grow stronger."; set tu_swordman, 3; - getexp 83,0; + if (checkre(3)) + getexp 83,0; + else + getexp 830,0; close; } else if(.@chk_bash == 10){ mes "[Shurank]"; @@ -736,7 +779,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "Here's a small prize in recognition of your efforts thus far. But don't relax yet! You still have a long way to go before grasping"; mes "all of the basics."; set tu_swordman, 4; - getexp 97,0; + if (checkre(3)) + getexp 97,0; + else + getexp 970,0; getitem 2503,1; //Muffler close; } else { @@ -771,7 +817,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "Still, for your training efforts, let me give you a humble reward. But remember, we still have more"; mes "of the fundamentals to cover!"; set tu_swordman, 2; - getexp 58,0; + if (checkre(3)) + getexp 58,0; + else + getexp 580,0; close; } else if((.@chk_bash > 4) && (.@chk_bash < 10)){ mes "[Shurank]"; @@ -801,7 +850,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "For your efforts and patience, I offer you this small reward. Please take it and grow even stronger..."; set tu_swordman, 3; setquest 8211; - getexp 83,0; + if (checkre(3)) + getexp 83,0; + else + getexp 830,0; next; mes "[Shurank]"; mes "I believe that every true Swordman should master the Bash skill. If you ever do master the skill as a Swordman, come back to me."; @@ -815,7 +867,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "Here's a small prize in recognition of your efforts thus far. But don't relax yet! You still have a long way to go before grasping"; mes "all of the basics."; set tu_swordman, 4; - getexp 97,0; + if (checkre(3)) + getexp 97,0; + else + getexp 970,0; getitem 2503,1; //Muffler close; } else { @@ -848,7 +903,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "[Shurank]"; mes "Now, if you wish to become a true Swordman, you must learn the Bash skill. There's no question about it: You've got to know these basics! Take this, and learn to Bash!"; set tu_swordman, 1; - getexp 49,0; + if (checkre(3)) + getexp 49,0; + else + getexp 490,0; setquest 8211; close; } else if((.@chk_bash > 0) && (.@chk_bash < 5)){ @@ -873,7 +931,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "of the fundamentals to cover!"; set tu_swordman, 2; changequest 8211,8212; - getexp 58,0; + if (checkre(3)) + getexp 58,0; + else + getexp 580,0; close; } else if((.@chk_bash > 4) && (.@chk_bash < 10)){ mes "[Shurank]"; @@ -896,7 +957,10 @@ izlude_in,82,163,3 script Shurank 733,{ mes "of the fundamentals to cover!"; set tu_swordman, 3; changequest 8212,8213; - getexp 83,0; + if (checkre(3)) + getexp 83,0; + else + getexp 830,0; next; mes "[Shurank]"; mes "But if you wish to become an expert Swordman in my eyes, you must master Bash!"; @@ -914,7 +978,10 @@ izlude_in,82,163,3 script Shurank 733,{ completequest 8212; completequest 8213; setquest 8214; - getexp 97,0; + if (checkre(3)) + getexp 97,0; + else + getexp 970,0; getitem 2503,1; //Muffler close; } @@ -1067,7 +1134,10 @@ geffen,154,143,3 script Dequ'ee 734,{ mes "Hurry over to Morroc and monitor Bankley in case he does anything desperate. If something happens, report to me right away!"; set tu_swordman, 19; changequest 8224,8225; - getexp 162,0; + if (checkre(3)) + getexp 162,0; + else + getexp 1620,0; close2; warp "moc_fild07",359,201; end; @@ -2113,7 +2183,10 @@ geffen,154,143,3 script Dequ'ee 734,{ mes "Thank you for taking the trouble to come this far. Let me reward you with some experience points."; set tu_swordman, 7; changequest 8216,8217; - getexp 112,0; + if (checkre(3)) + getexp 112,0; + else + getexp 1120,0; next; mes "[Dequ'ee]"; mes "Take care"; diff --git a/npc/quests/first_class/tu_thief01.txt b/npc/quests/first_class/tu_thief01.txt index fe0d52f875d..080a38a0eac 100644 --- a/npc/quests/first_class/tu_thief01.txt +++ b/npc/quests/first_class/tu_thief01.txt @@ -3,18 +3,19 @@ //===== By: ================================================== //= Fix up by Jukka //===== Current Version: ===================================== -//= 1.4 +//= 1.5 //===== Compatible With: ===================================== -//= rAthena SVN (Testet in Trunk 88xx) +//= rAthena SVN //===== Description: ========================================= -//= +//= [Official Conversion] +//= Thief training quest. //===== Additional Comments: ================================= //= 1.0 Fully working //= 1.1 optimized [Lupus] -//= TODO: Test, Add correct misceffects numbers //= 1.2 Fixed experience gains to match upcoming rate adjustments. [SinSloth] //= 1.3 Fixed a few minor mistakes [Playtester] //= 1.4 Misc. updates. [L0ne_W0lf] +//= 1.5 Added Pre-Renewal support. [Euphy] //============================================================ // Thief Trainer @@ -88,7 +89,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ mes "[Yierhan]"; mes "So if you're feeling like the damage you're making is pretty weak, you might want more stat points in ^2F4F2FSTR^000000. How high your raise your own STR is really up to you."; set tu_thief01, 1; - getexp 20,10; + getexp 200,100; specialeffect2 EF_HIT5; close; case 2: @@ -104,7 +105,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ mes "Sure, ^23238EDEX^000000 and LUK can"; mes "also increase your attack damage, but they're insignificant compared to STR. I repeat: ^660000insignificant^000000."; set tu_thief01, 1; - getexp 40,20; + getexp 400,200; specialeffect2 EF_HIT5; close; case 3: @@ -119,7 +120,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ mes "[Yierhan]"; mes "So if you're feeling like the damage you're making is pretty weak, you might want more stat points in ^2F4F2FSTR^000000. How high your raise your own STR is really up to you."; set tu_thief01, 1; - getexp 20,10; + getexp 200,100; specialeffect2 EF_HIT5; close; } @@ -229,7 +230,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ mes "about any other skills,"; mes "I can explain real quick."; set tu_thief01, 3; - getexp BaseLevel*3,BaseLevel*2; + getexp BaseLevel*30,BaseLevel*15; specialeffect2 EF_HIT5; close; } else if(tu_thief01 == 3){ @@ -328,24 +329,12 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ mes "Now that you're such an expert on skills, I want you to level up your skills and come back, got it?"; set tu_thief01, 4; specialeffect2 EF_HIT5; - if(.@read_d){ - getexp 30,10; - } - if(.@read_f){ - getexp 30,10; - } - if(.@read_s){ - getexp 30,10; - } - if(.@read_p){ - getexp 30,10; - } - if(.@read_h){ - getexp 30,10; - } - if(.@read_r){ - getexp 30,10; - } + if(.@read_d) getexp 300,100; + if(.@read_f) getexp 300,100; + if(.@read_s) getexp 300,100; + if(.@read_p) getexp 300,100; + if(.@read_h) getexp 300,100; + if(.@read_r) getexp 300,100; close; } } @@ -362,7 +351,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ set tu_thief01, 5; savepoint "moc_ruins",80,164; getitem 602,1; //Wing_Of_Butterfly - getexp 10,5; + getexp 100,50; specialeffect2 EF_HIT5; close2; warp "moc_fild12",158,373; @@ -420,7 +409,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ mes "is pretty strong!"; set tu_thief01, 8; getitem 1207,1; //Main_Gauche - getexp 100,50; + getexp 1000,500; specialeffect2 EF_HIT5; close; case 2: @@ -430,7 +419,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ mes "Alright, you better get stronger the next time I see you. Oh, and you can have this stuff. You know, since you're so gangster and all."; set tu_thief01, 7; getitem 1207,1; //Main_Gauche - getexp 50,20; + getexp 500,200; specialeffect2 EF_HIT5; close; } @@ -447,22 +436,19 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ mes "you so much, kid,"; mes "you can have this."; mes "Take it, it's yours!"; - set tu_thief01, 7; - getitem 1207,1; //Main_Gauche - getexp 50,20; - specialeffect2 EF_HIT5; - close; + break; case 2: mes "[Yierhan]"; mes "Good!"; mes "Less work for me!"; mes "Alright, you better get stronger the next time I see you. Oh, and you can have this stuff. You know, since you're so gangster and all."; - set tu_thief01, 7; - getitem 1207,1; //Main_Gauche - getexp 50,20; - specialeffect2 EF_HIT5; - close; + break; } + set tu_thief01, 7; + getitem 1207,1; //Main_Gauche + getexp 500,200; + specialeffect2 EF_HIT5; + close; } } } else if(tu_thief01 == 7){ @@ -503,7 +489,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ mes "out, be real careful"; mes "other there, okay?"; set tu_thief01, 8; - getexp 20,10; + getexp 200,100; specialeffect2 EF_HIT5; close; } else if(tu_thief01 == 8){ @@ -587,7 +573,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ set tu_thief01, 27; getitem 2307,1; //Mantle set Zeny, Zeny + 5000; - getexp 800,300; + getexp 8000,3000; close; } } else { @@ -668,7 +654,6 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ mes "[Yierhan]"; mes "Ah, gotcha. Well, that's understandable. I mean, these things take time, you know?"; close; - break; case 2: mes "[Yierhan]"; mes "Yeah...?"; @@ -676,7 +661,6 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ mes "I guess these kinds of things require patience. And thinking."; mes "You know, things I'm horrible at."; close; - break; case 3: mes "[Yierhan]"; mes "Alright...!"; @@ -712,7 +696,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 84,{ mes "Hey, this stuff is yours. Think of it as a reward for helping us out. Right, and I'll let Mana know you did a great job. Take care of yourself now~"; set tu_magician01, 27; set Zeny, Zeny + 5000; - getexp 500,200; + getexp 5000,2000; close; } } else { diff --git a/npc/quests/quests_13_1.txt b/npc/quests/quests_13_1.txt index 49fc2e401b3..8cfda8cd7ee 100644 --- a/npc/quests/quests_13_1.txt +++ b/npc/quests/quests_13_1.txt @@ -293,7 +293,7 @@ prt_castle,83,67,5 script Recruiter for the Brave 109,{ next; changequest 10064,10065; set ep13_ryu,9; - if (checkre(0)) + if (checkre(3)) getexp 66000,21000; else getexp 660000,210000; @@ -1808,7 +1808,7 @@ moc_fild22b,230,197,5 script Munkenro#2 967,{ next; completequest 10078; set ep13_ryu,100; - if (checkre(0)) + if (checkre(3)) getexp 66000,21000; else getexp 660000,210000; @@ -2704,7 +2704,7 @@ mid_camp,261,284,4 script Instructor#ep13bs 405,{ set ep13_newbs,100; getitem 617,1; //Old_Violet_Box getitem 12322,5; //Chocolate_Pie - if (checkre(0)) + if (checkre(3)) getexp 100000,10000; else getexp 1000000,100000; @@ -4237,7 +4237,7 @@ mid_camp,188,254,3 script Monster Scholar#ep13 883,{ mes "I hope you'll make yourself known in Ash Vacuum with your great accomplishments."; set ep13_animal,15; completequest 2157; - if (checkre(0)) + if (checkre(3)) getexp 100000,0; else getexp 1500000,0; @@ -4338,7 +4338,7 @@ mid_camp,188,254,3 script Monster Scholar#ep13 883,{ mes "- You pat his shoulder gently, it's worrying that Rumis is not able to return to his country. -"; set ep13_animal,100; delitem 6033,1; //Horn_Of_Tendrilion - if (checkre(0)) + if (checkre(3)) getexp 50000,0; else getexp 1000000,0; @@ -5173,7 +5173,7 @@ mid_camp,212,237,5 script Camp Guard Captain#man1 852,{ mes "I'll discuss this more with the expedition management."; mes "Thank you for your valuable information."; completequest 2158; - if (checkre(0)) + if (checkre(3)) getexp 90000,0; else getexp 900000,0; @@ -5197,7 +5197,7 @@ mid_camp,212,237,5 script Camp Guard Captain#man1 852,{ mes "I'll discuss this more with the expedition management."; mes "Thank you for your valuable information."; completequest 2159; - if (checkre(0)) + if (checkre(3)) getexp 90000,0; else getexp 900000,0; @@ -5626,7 +5626,7 @@ OnTouch: mes "- You feel so refreshed and light, as you drink the tea that the Official offered. -"; specialeffect2 EF_ABSORBSPIRITS; set ep13_1_rhea,100; - if (checkre(0)) + if (checkre(3)) getexp 80000,3000; else getexp 300000,10000; @@ -7446,7 +7446,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 946,{ next; delitem 579,50; //Delicious_Fish set ep13_alba,6; - if (checkre(0)) + if (checkre(3)) getexp 8000,3000; else getexp 80000,30000; @@ -7482,7 +7482,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 946,{ delitem 7198,30; //Great_Leaf delitem 7188,30; //Browny_Root set ep13_alba,6; - if (checkre(0)) + if (checkre(3)) getexp 9000,4000; else getexp 90000,40000; @@ -7523,7 +7523,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 946,{ delitem 528,20; //Monster's_Feed delitem 537,30; //Pet_Food set ep13_alba,6; - if (checkre(0)) + if (checkre(3)) getexp 8000,3000; else getexp 80000,30000; @@ -7561,7 +7561,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 946,{ delitem 517,50; //Meat delitem 537,30; //Pet_Food set ep13_alba,6; - if (checkre(0)) + if (checkre(3)) getexp 8000,3000; else getexp 80000,30000; @@ -7596,7 +7596,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 946,{ next; delitem 6020,30; //Fur set ep13_alba,6; - if (checkre(0)) + if (checkre(3)) getexp 8000,3000; else getexp 80000,30000; @@ -9113,7 +9113,7 @@ mid_campin,90,121,5 script Hibba Agip 459,{ mes "And please take this small reward."; mes "Thank you for your help so far."; next; - if (checkre(0)) + if (checkre(3)) getexp 30000,0; else getexp 2500000,0; @@ -10898,7 +10898,7 @@ mid_campin,68,185,3 script Pursuit Party Leader#1 803,{ mes "[Echinacea]"; mes "Keep up the good work assisting the explorers in this camp."; set mao_morocc2,100; - if (checkre(0)) + if (checkre(3)) getexp 120000,20000; else getexp 1200000,200000; @@ -11278,7 +11278,7 @@ mid_camp,199,311,7 script Mr. Kidd#ep13_dan01 884,{ delitem 6029,1; //Morocc_Tracing_Log delitem 6027,1; //Crystal_Of_Feardoom set mao_morocc2,10; - if (checkre(0)) + if (checkre(3)) getexp 20000,1000; else getexp 200000,10000; diff --git a/npc/quests/quests_13_2.txt b/npc/quests/quests_13_2.txt index 618d81cd53b..99bd41b40ff 100644 --- a/npc/quests/quests_13_2.txt +++ b/npc/quests/quests_13_2.txt @@ -2454,7 +2454,7 @@ spl_in02,236,92,5 script Arc#ep13md_l02 447,{ mes "I'm sorry this is all I can give you for now."; set ep13_mdrama,27; getitem 6081,25; //Splendide_Coin - if (checkre(0)) + if (checkre(3)) getexp 120000,10000; else getexp 1200000,100000; @@ -2776,7 +2776,7 @@ manuk,252,116,3 script Manuk Galtun#ep13_2day 450,{ completequest 7074; completequest 7075; set ep13_2_days01,2; - if (checkre(0)) + if (checkre(3)) getexp 50000,30000; else getexp 500000,300000; @@ -3702,7 +3702,7 @@ mid_camp,197,237,3 script Schwartzvalt Mechanic#1 869,{ mes "I hope this ring would be a big help for your journey through the other world."; completequest 8253; set ep13_2_rhea,100; - if (checkre(0)) + if (checkre(3)) getexp 200000,5000; else getexp 1000000,300000; @@ -4799,7 +4799,7 @@ man_in01,372,221,5 script Scientist#lifeguard 449,{ delitem 6078,.@stoneelse_chk; //Stone_Fragments delitem 6076,1; //Portable_Toolbox getitem 6080,3; //Manuk_Coin - if (checkre(0) == 0) + if (checkre(3) == 0) getexp 0,700000; changequest 2179+(ep13_2_tre-2),2182; set ep13_2_tre,100; @@ -5667,7 +5667,7 @@ spl_in01,30,324,3 script High Laphine#grenouille 446,{ set ep13_2_tre1,6; changequest 2185,2186; getitem 6081,3; //Splendide_Coin - if (checkre(0) == 0) + if (checkre(3) == 0) getexp 0,700000; close; } diff --git a/npc/quests/skills/hunter_skills.txt b/npc/quests/skills/hunter_skills.txt index e6f9f9d41a2..6b003674414 100644 --- a/npc/quests/skills/hunter_skills.txt +++ b/npc/quests/skills/hunter_skills.txt @@ -20,15 +20,14 @@ //= 1.3b Splitted into different files [DracoRPG] //= 1.3c Fixed some typos [IVBela] //= 1.3d Changed NPC Name to the official [Lupus] -//= 1.4 Moved Arpesto from tu_archer and added his script. [Kisuka] +//= 1.4 Moved Arpesto from tu_archer and added his script. [Kisuka] //============================================================ - //============================================================ // HUNTER SKILL - PHANTASMIC ARROW //============================================================ pay_arche,109,169,3 script Arpesto 712,{ - if (Class == Job_Hunter || Class == Job_Sniper) { + if (BaseJob == Job_Hunter) { if (qskill_hunter == 100) { if (getskilllv("HT_PHANTASMIC")) { mes "[Arpesto]"; @@ -241,7 +240,7 @@ pay_arche,109,169,3 script Arpesto 712,{ set qskill_hunter,100; close; } - if (JobLevel < 40) { + if (BaseJob == Job_Hunter && JobLevel < 40) { mes "[Arpesto]"; mes "Did the master send you"; mes "to me? Hmm... You're still"; diff --git a/npc/quests/skills/knight_skills.txt b/npc/quests/skills/knight_skills.txt index c616ae8947c..32830964ae3 100644 --- a/npc/quests/skills/knight_skills.txt +++ b/npc/quests/skills/knight_skills.txt @@ -14,7 +14,7 @@ //============================================================ prt_in,85,99,3 script Knight#kabuto 734,{ - if (BaseJob == job_Knight) { + if (BaseJob == Job_Knight) { if (KNGT_SK == 10) { mes "[Essofeit]"; mes "Ah, it must be grand to"; diff --git a/npc/quests/thana_quest.txt b/npc/quests/thana_quest.txt index 362695bef85..cc7e79b4d8e 100644 --- a/npc/quests/thana_quest.txt +++ b/npc/quests/thana_quest.txt @@ -823,7 +823,7 @@ tha_t02,231,161,5 script Entrance Guide 874,{ mes "Is there a Phantom on the top of this tower?"; if (rand(3) == 1) { mes "You look tired. This isn't a big deal, but it's for you."; - npcskill "AL_HEAL",10,50,70; + npcskill "AL_HEAL",11,50,70; } close; } diff --git a/npc/re/guild/invest_main.txt b/npc/re/guild/invest_main.txt index e8c2a011af3..ede868440f4 100644 --- a/npc/re/guild/invest_main.txt +++ b/npc/re/guild/invest_main.txt @@ -1147,7 +1147,7 @@ OnAgitInvest: callfunc "F_Invest_Abyss","$fund_"+.@npc$+"0"+.@id,"[Gate Manager]"; end; case 2: - callsub L_Enter,1,.@realm$; + callsub L_Enter,1,.@realm$,.@npc$; mes "[Gate Manager]"; mes "You are interested in exploring the "+.@realm$+" Guild Dungeon Deepest Layer (2F)."; mes "Let me guide you. Good luck."; @@ -1187,7 +1187,7 @@ OnAgitInvest: } end; case 3: - callsub L_Enter,2,.@realm$; + callsub L_Enter,2,.@realm$,.@npc$; mes "[Gate Manager]"; mes "Let me guide you to the Abyss Gap connected with "+.@realm$+", the Abyss Gate 'Way of the Warrior'."; close2; @@ -1235,7 +1235,7 @@ OnAgitInvest: L_Enter: set .@invest_status, callfunc("F_Invest_Status"); if (.@invest_status == 3) { - set .@status, getd("$"+.@npc$+"_invest_result"); + set .@status, getd("$"+getarg(2)+"_invest_result"); if ((getarg(0) == 1 && .@status == 2) || .@status == 3) return; else { diff --git a/npc/re/jobs/novice/novice.txt b/npc/re/jobs/novice/novice.txt index ebefaff48b6..86873003a4b 100644 --- a/npc/re/jobs/novice/novice.txt +++ b/npc/re/jobs/novice/novice.txt @@ -933,7 +933,8 @@ new_1-2,35,176,4 script Soldier#nv 105,{ mes "Kill enough Porings."; mes "Porings are easy to deal with, so cheer up."; mes "Try again."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; + percentheal 100,100; close; } mes "[Brade]"; @@ -946,7 +947,8 @@ new_1-2,35,176,4 script Soldier#nv 105,{ mes "[Brade]"; mes "Try using the job manuals to find out the characteristics of each job's skills."; mes "I will restore your HP and SP... Keep it up."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; + percentheal 100,100; close; } diff --git a/npc/re/quests/eden/71-85.txt b/npc/re/quests/eden/71-85.txt index ecdb8abac3a..ccb8bd83f11 100644 --- a/npc/re/quests/eden/71-85.txt +++ b/npc/re/quests/eden/71-85.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= L0ne_W0lf //===== Current Version: ===================================== -//= 1.2 +//= 1.3 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= @@ -12,6 +12,7 @@ //= 1.0 First Version. //= 1.1 Some little optimization here and there. [Masao] //= 1.2 Optimized. [Euphy] +//= 1.3 Updated to match the official scripts. [Euphy] //============================================================ moc_para01,44,38,3 script Mission [71 - 85] 857,{ @@ -21,586 +22,205 @@ moc_para01,44,38,3 script Mission [71 - 85] 857,{ mes "- this bulletin board. -"; close; } - mes "- Many hunting missions -"; - mes "- are on the bulletin board. -"; - next; - if ((BaseLevel > 70) && (BaseLevel < 86)) { - switch (select("Sphinx Dungeon:Glast Heim:Juno Area:Clock Tower:Localized Islands")) { - case 1: - mes "- Sphinx Dungeon -"; - mes "- I am Meidi who lives -"; - mes "- in Morocc. I want to hunt -"; - mes "- monsters in the Sphinx -"; - mes "- Dungeon. I will wait for -"; - mes "- you in front of the -"; - mes "- western gate. -"; - callsub L_Quest,10102,1; - mes "- Good. Now go find Meidi -"; - mes "- at the western gate -"; - mes "- in Morroc. -"; - close; - case 2: - mes "- Glast Heim -"; - mes "- I am Ancellia. -"; - mes "- I need some help -"; - mes "- hunting monsters -"; - mes "- in Glast Heim.-"; - mes "- Please help me. -"; - callsub L_Quest,10103,2; - mes "- Look for Ancellia. -"; - mes "- in Geffen. -"; - close; - case 3: - mes "- Juno Area -"; - mes "- I want to go to Juno, -"; - mes "- but the monsters on -"; - mes "- the way there are too -"; - mes "- strong for me. Come -"; - mes "- visit me in Al De Baran. -"; - mes "- My name is Jeanbai. -"; - callsub L_Quest,10104,3; - mes "- Look for Jeanbai -"; - mes "- in Al De Baran. -"; - close; - case 4: - mes "- Clock Tower -"; - mes "- A Clock is the best thing! -"; - mes "- I'm asking you to hunt -"; - mes "- some monster inside of.-"; - mes "- the Clock Tower, -"; - mes "- Lisingshetter. -"; - callsub L_Quest,10105,4; - mes "- Look for Lisingshetter -"; - mes "- in front of the -"; - mes "- Clock Tower. -"; - close; - case 5: - mes "- Localized Islands -"; - mes "- I need someone who -"; - mes "- can hunt monsters -"; - mes "- for Funfi in Alberta. -"; - callsub L_Quest,10106,5; - mes "- Loof for Funfi -"; - mes "- in Alberta. -"; - close; - } - } - mes "- Only members of the -"; - mes "- right level can read -"; - mes "- this bulletin board. -"; - mes "- Try to find a board -"; - mes "- that suits your level. -"; - close; -L_Quest: - next; - if(select("Accept mission.:Decline mission.") == 2) { - mes "- I don't want to do -"; - mes "- a mission right now. -"; - close; - } - if (slv_quest && slv_quest != getarg(1)) { - mes "- You are already on -"; - mes "- another mission. -"; - mes "- You can't do multiple -"; - mes "- missions. Finish your -"; - mes "- current mission first. -"; - close; - } - if (checkquest(getarg(0)) <= 0) { - setquest getarg(0); - set slv_quest,getarg(1); - return; - } - mes "- You are already on -"; - mes "- or have recently -"; - mes "- completed a mission. -"; - mes "- You can't do anymore -"; - mes "- missions right now. -"; - close; -} -morocc,35,174,5 script Meidi 729,{ - - if ((checkquest(10107) == 2) && (checkquest(10108) == 2) && (checkquest(10109) == 2) && (slv_quest == 6)) { - set slv_quest,0; - mes "[Meidi]"; - mes "You have completed the hunting missions."; - mes "I don't have anymore missions for you."; - mes "Thanks, you did a great job!"; - close; - } - if (checkquest(10107) == 1 || checkquest(10108) == 1 || checkquest(10109) == 1) { - mes "[Meidi]"; - mes "Wow! How did you come back so fast?"; - mes "What monster did you hunt?"; - next; - setarray .@monsters$[0],"Requiem","Marduk","Pasana"; - set .@i, select(implode(.@monsters$,":"))-1; - if (checkquest(10107+.@i,HUNTING) == 2) { - mes "[Meidi]"; - mes "You've hunted all 10 "+.@monsters$[.@i]+"."; - mes "Thank you very much."; - next; - mes "[Meidi]"; - mes "I know it isn't much but here's a small gift."; - mes "I hope that it will be helpful to you."; - next; - completequest 10107+.@i; - getexp 48000,0; - mes "[Meidi]"; - mes "Wooohoo!"; - mes "Good luck."; - close; + // Clear the original quest data (no longer used). + if (slv_quest) set slv_quest,0; + if (checkquest(10102) > -1 || checkquest(10103) > -1 || checkquest(10104) > -1 || checkquest(10105) > -1 || checkquest(10106) > -1) { + for(set .@quest,10102; .@quest<=10106; set .@quest,.@quest+1) { + if (checkquest(.@quest) > -1) + erasequest .@quest; } - mes "[Meidi]"; - mes "You didn't hunt 10 "+.@monsters$[.@i]+" yet."; - mes "You should make sure that you hunt all of them."; - mes "Can you check again?"; - close; - } - if (slv_quest == 6) { - mes "[Meidi]"; - mes "Sphinx Dungeon... many adventurers came back with great injuries."; - mes "That place is very dangerous."; - mes "Someone should go inside an make it safer for everyone."; - mes "Hopefully, very soon!"; - close; - } - mes "[Meidi]"; - mes "Sphinx Dungeon... many adventurers came back with great injuries."; - mes "That place is very dangerous."; - mes "Someone should go inside an make it safer for everyone."; - mes "Hopefully, very soon!"; - if (slv_quest == 1) { - next; - mes "[Meidi]"; - mes "Oh! Are you from the Eden Group?"; - mes "Are you here for my mission?"; - mes "You came right on time."; - mes "I was worried that noone would accept the mission that I posted."; + mes "- Since the client has moved -"; + mes "- to another place, -"; + mes "- the application form has been removed. -"; next; - mes "[Meidi]"; - mes "So, I need help hunting 3 monsters"; - mes "inside of the Sphinx Dungeon."; - mes "Got it? Its too dangerous for me so that's why I posted the mission."; - next; - mes "[Meidi]"; - mes "Requiem, Marduk and Pasana..."; - mes "I heard they are very dangerous monsters."; - mes "Can you hunt 10 of those monsters?"; - mes "10 of each sounds good enough, right?"; - next; - mes "[Meidi]"; - mes "If you succeed, I will give you a small reward for your help."; - next; - switch (select("Accept mission.:Decline mission.")) { - case 1: - mes "[Meidi]"; - mes "Oh. Thank you so much."; - mes "How can I pay you backf or your effort?"; - mes "May Freya bless you~"; - next; - completequest 10102; - setquest 10107; - setquest 10108; - setquest 10109; - set slv_quest,6; - mes "[Meidi]"; - mes "Requiem, Marduk and Pasana."; - mes "Don't forget and good luck."; - close; - case 2: - set slv_quest,0; - erasequest 10102; - mes "[Meidi]"; - mes "I see. There is no other way."; - mes "I will send a message to the Eden Group."; - mes "Don't worry and nevermind."; - close; - } } - close; -} -geffen,146,132,3 script Ancellia 906,{ - if ((checkquest(10110 == 2)) && (checkquest(10111) == 2) && (checkquest(10112) == 2) && (checkquest(10113) == 2) && (slv_quest == 6)) { - set slv_quest,0; - mes "[Ancellia]"; - mes "Wow. You've finished all"; - mes "of my missions. Great!"; - mes "You are of great help."; - mes "I will inform the Eden Group of your assistance."; - mes "You can go back, don't worry."; - close; - } - if (checkquest(10110) == 1 || checkquest(10111) == 1 || checkquest(10112) == 1 || checkquest(10113) == 1) { - mes "[Ancellia]"; - mes "You seem to have hunted all of the monsters."; - mes "What monster have you hunted?"; - mes "Do you remember its name?"; - next; - setarray .@monsters$[0],"Dark Frame","Evil Druid","Wraith","Raydric Archer"; - set .@i, select(implode(.@monsters$,":"))-1; - if (checkquest(10110+.@i,HUNTING) == 2) { - mes "[Ancellia]"; - mes "Ah, you've hunted 10 "+.@monsters$[.@i]+"s."; - mes "That was pretty difficult!"; - mes "Thank you very much."; + if (BaseLevel < 71) { + mes "- Only members of the -"; + mes "- right level can read -"; + mes "- this bulletin board. -"; + mes "- Try to find a board -"; + mes "- that suits your level. -"; + close; + } else if (BaseLevel > 85) { + // Quest IDs: 10107-10123, 5055-5057 + setarray .@quests[0], + 10107,10108,10109, + 10110,10111,10112,10113, + 10114,10115,10116,10117, + 10118,10119,10120, + 10121,10122,10123,5055,5056; + for(set .@i,0; .@i -1 && countitem(7187) >= 30) + set .@complete[getarraysize(.@complete)],5057; + if (getarraysize(.@complete)) { + mes "You have quests in progress."; + mes "Do you want to turn them in?"; next; - completequest 10110+.@i; - getexp 48000,0; - mes "[Ancellia]"; - mes "Perhaps you can hunt the rest as well."; - mes "I will wait for you here."; + if(select("Of course.:No.") == 2) + close; + for(set .@i,0; .@i{,"",""}; +L_Quest: + set .@quest, getarg(0); + switch(.@quest) { + case 10107: set .@name$,"Hunt Requiem"; set .@exp,15000; break; + case 10108: set .@name$,"Hunt Marduk"; set .@exp,15000; break; + case 10109: set .@name$,"Hunt Pasana"; set .@exp,15000; break; + case 10110: set .@name$,"Hunt Dark Frame"; set .@exp,20000; break; + case 10111: set .@name$,"Hunt Evil Druid"; set .@exp,20000; break; + case 10112: set .@name$,"Hunt Wraith"; set .@exp,20000; break; + case 10113: set .@name$,"Hunt Raydric Archer"; set .@exp,20000; break; + case 10114: set .@name$,"Hunt Grand Peco"; set .@exp,30000; break; + case 10115: set .@name$,"Hunt Sleeper"; set .@exp,30000; break; + case 10116: set .@name$,"Hunt Goat"; set .@exp,30000; break; + case 10117: set .@name$,"Hunt Harpy"; set .@exp,30000; break; + case 10118: set .@name$,"Hunt Clock"; set .@exp,25000; break; + case 10119: set .@name$,"Hunt Punk"; set .@exp,25000; break; + case 10120: set .@name$,"Hunt Rideword"; set .@exp,25000; break; + case 10121: set .@name$,"Hunt Kikimora"; set .@exp,30000; break; + case 10122: set .@name$,"Hunt Miyabi Doll"; set .@exp,30000; break; + case 10123: set .@name$,"Hunt Mi Gao"; set .@exp,30000; break; + case 5055: set .@name$,"Hunt Headless Mule"; set .@exp,30000; break; + case 5056: set .@name$,"Hunt Tamruan"; set .@exp,30000; break; + case 5057: set .@name$,"Gather Festival Masks for the Festival"; set .@exp,30000; break; + } + if (getargcount() == 1) { + mes "'"+.@name$+"' completed. Do you want to turn it in and receive your reward?"; + next; + if(select("Turn in quest.:Cancel.") == 1) { + if (.@quest == 5057) delitem 7187,30; //Festival_Mask + erasequest .@quest; + getexp .@exp,0; + mes "You've received EXP for finishing the quest."; next; - completequest 10121+.@i; - getexp 48000,0; - mes "[Funfi]"; - mes "Please hunt the others as well."; - mes "I have faith in you!"; - close; + return; } - mes "[Funfi]"; - mes "Oh~ No no~!!"; - mes "Listen carefully! Hunt 15 "+.@monsters$[.@i]+"."; close; - } - if (slv_quest == 6) { - mes "[Funfi]"; - mes "Moscovia's Kikimore,"; - mes "Miyabi Dolls from Amatsu"; - mes "and Mi Gaos from Louyang."; - mes "Please hunt 15 of each of those monsters."; - close; - } - mes "[Funfi]"; - mes "I am a man who wants to experience adventures. But for some reason I can't..."; - next; - mes "[Funfi]"; - mes "There are a lot of funny things in the world... Wooo!"; - if (slv_quest == 5) { - next; - mes "[Funfi]"; - mes "Anyway are you from the Eden Group?"; - mes "You are? Cool! I've been waiting for you~!"; - next; - mes "[Funfi]"; - mes "No questions! Just do it now!"; - mes "Hunt Kikimora in Moscovia,"; - mes "Miyabi Dolls in Amatsu"; - mes "and Mi Gaos in Louyang!"; - mes "Hunt 15 each of those monsters!"; - next; - mes "[Funfi]"; - mes "Please~!! haha."; - mes "Hurry up!"; - next; - switch (select("Accept mission.:Decline mission.")) { - case 1: - completequest 10106; - setquest 10121; - setquest 10122; - setquest 10123; - set slv_quest,6; - getitem 7167,10; //Mystery_Iron_Bit - mes "[Funfi]"; - mes "Ok! Good! Hurry up."; - mes "Hunt the monsters on each of those 3 islands."; + } else { + if (.@quest == 5057) { + // Quest 5057 is the only collection quest, so separate conditions are unnecessary. + if (checkquest(5057) == -1) + set .@hunting,-1; + else if (countitem(7187) >= 30) + set .@hunting,2; + } else + set .@hunting, checkquest(.@quest,HUNTING); + if (.@hunting == 0 || .@hunting == 1) { + mes getarg(1); + mes getarg(2); next; - mes "[Funfi]"; - mes "I will give you some materials for use in Moscovia."; - mes "Go as soon as you can!"; - close; - case 2: - set slv_quest,0; - erasequest 10106; - mes "[Funfi]"; - mes "What? You don't want to work?! Gosh!"; - mes "I will inform the Eden Group of this!"; - close; + mes "Return here when you've finished the quest."; + } else if (.@hunting == 2) { + mes "You have completed the quest."; + next; + if(select("Turn in quest.:Cancel.") == 1) { + if (.@quest == 5057) delitem 7187,30; //Festival_Mask + erasequest .@quest; + getexp .@exp,0; + mes "You've received EXP for finishing the quest."; + } + }/* else if (.@hunting == 3) { +// recall_completequest .@quest + erasequest .@quest; + mes "You have re-accepted the quest '"+.@name$+"'."; + }*/ else { + mes getarg(1); + mes getarg(2); + next; + mes "Do you want to accept the quest?"; + next; + if(select("Yes.:No.") == 1) { + mes "You've received the quest '"+.@name$+"'. View your quest info for more details."; + setquest .@quest; + } } + close; } - close; } diff --git a/npc/re/quests/eden/eden_quests.txt b/npc/re/quests/eden/eden_quests.txt index 21a4b55fb77..75708dab8dd 100644 --- a/npc/re/quests/eden/eden_quests.txt +++ b/npc/re/quests/eden/eden_quests.txt @@ -1182,7 +1182,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 972,{ mes "Oh, if you are tired I will help you."; next; mes "-When the dog barked, your HP and SP recovered.-"; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -1220,7 +1220,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 972,{ mes "Oh, if you are tired I will help you."; next; mes "-When the dog barked, your HP and SP recovered.-"; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -1276,7 +1276,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 972,{ mes "Oh, if you are tired I will help you."; next; mes "-When the dog barked, your HP and SP recovered.-"; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -1422,8 +1422,8 @@ prt_sewb1,131,262,3 script Timid Cat#para04 422,{ mes "[Timid Cat]"; mes "Take care to check your map so you don't get lost."; mes "It's a service meeow."; - npcskill "AL_HEAL",10,99,60; - percentheal 0,100; + npcskill "AL_HEAL",11,99,60; + percentheal 100,100; close; } if (para_suv01 == 8) { @@ -1460,7 +1460,7 @@ prt_sewb1,131,262,3 script Timid Cat#para04 422,{ mes "[Timid Cat]"; mes "I will help you a little."; mes "Here, I have recovered your strengh meow.."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -1495,8 +1495,8 @@ prt_sewb1,131,262,3 script Timid Cat#para04 422,{ mes "It's the last course so cheer up."; mes "I will help you a little."; mes "Here, I have recovered your strengh meow.."; - npcskill "AL_HEAL",10,99,60; - percentheal 0,100; + npcskill "AL_HEAL",11,99,60; + percentheal 100,100; close; } if (para_suv01 >= 10) { @@ -1607,7 +1607,7 @@ pay_arche,41,136,3 script Eden Member Karl#para05 904,{ mes "[Karl]"; mes "Just in case I will recover all your energy."; mes "It's the last step so be careful."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -1638,8 +1638,8 @@ pay_arche,41,136,3 script Eden Member Karl#para05 904,{ mes "[Karl]"; mes "Just in case I will recover all your energy."; mes "It's the last step so be careful."; - npcskill "AL_HEAL",10,99,60; - percentheal 0,100; + npcskill "AL_HEAL",11,99,60; + percentheal 100,100; close; } if (para_suv01 >= 16) { @@ -1760,7 +1760,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 899,{ mes "What do you think of Ant Hell?"; mes "Can you stay longer?"; mes "Ok, I will recover your strengh so, keep going."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -1799,7 +1799,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 899,{ mes "[Cloud]"; mes "See, to cheer you up I will heal you until you finish the training."; mes "Chin up and cheer up."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -1827,7 +1827,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 899,{ mes "[Cloud]"; mes "Just Vitata, isn't that an easy opponent?"; mes "If you see Maya just run away."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -1942,7 +1942,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 803,{ mes "[Hooksha]"; mes "You look tired I will recover your health."; mes "If you are in trouble just come back here to safety."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -1973,7 +1973,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 803,{ mes "[Hooksha]"; mes "You look tired, I will recover your health."; mes "If you are in trouble just come back here to safety."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -1999,7 +1999,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 803,{ mes "[Hooksha]"; mes "You look tired, I will recover your health."; mes "If you are in trouble just come back here to safety."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -2072,7 +2072,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 803,{ mes "Can you stay longer?"; mes "You look tired, I will recover your health."; mes "If you are in trouble just come back here to safety."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -2096,7 +2096,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 803,{ mes "Can you stay longer?"; mes "You look tired I will recover your health."; mes "If you are in trouble just come back here to safety."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } @@ -2199,8 +2199,8 @@ iz_dun04,43,46,3 script Eden Member Callandiva 745,{ mes "Oh are you tired?"; mes "Mermans are not easy opponents."; mes "I will help you recover so cheer up."; - npcskill "AL_HEAL",10,99,60; - percentheal 0,100; + npcskill "AL_HEAL",11,99,60; + percentheal 100,100; close; } if (para_suv01 == 35) { @@ -2233,7 +2233,7 @@ iz_dun04,43,46,3 script Eden Member Callandiva 745,{ mes "Oh are you tired?"; mes "Strouf are not easy opponents."; mes "I can help you recover so cheer up."; - npcskill "AL_HEAL",10,99,60; + npcskill "AL_HEAL",11,99,60; percentheal 100,100; close; } diff --git a/npc/re/quests/first_class/tu_archer.txt b/npc/re/quests/first_class/tu_archer.txt new file mode 100644 index 00000000000..273aa9acbde --- /dev/null +++ b/npc/re/quests/first_class/tu_archer.txt @@ -0,0 +1,16 @@ +//===== rAthena Script ======================================= +//= Archer Class Tutorial and Job Specific Quest +//===== By: ================================================== +//= Euphy +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= [Official Conversion] +//= Archer training quest. +//===== Additional Comments: ================================= +//= 1.0 First version. [Euphy] +//============================================================ + +pay_fild08,40,83,5 duplicate(Acolyte_Tu) Acolyte#tu 95 diff --git a/npc/re/scripts_athena.conf b/npc/re/scripts_athena.conf index 8312b164c6d..bcb7c7b8863 100644 --- a/npc/re/scripts_athena.conf +++ b/npc/re/scripts_athena.conf @@ -93,6 +93,9 @@ npc: npc/re/quests/eden/eden_quests.txt npc: npc/re/quests/eden/eden_service.txt npc: npc/re/quests/eden/eden_tutorial.txt // -------------------------------------------------------------- +// - Quests-Tutorials for basic classes (1st class quests) ------ +npc: npc/re/quests/first_class/tu_archer.txt +// -------------------------------------------------------------- //npc: npc/re/quests/cupet.txt npc: npc/re/quests/homun_s.txt npc: npc/re/quests/magic_books.txt diff --git a/src/map/battle.c b/src/map/battle.c index 11d5fc0dd24..6f3d5215913 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -4356,9 +4356,9 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl #ifdef RENEWAL if(is_attack_critical(wd, src, target, skill_id, skill_lv, false)) { if(sd) // check for player so we don't crash out, monsters don't have bonus crit rates [helvetica] - wd.damage = (int32)floor(wd.damage * 1.4 * ((100 + sd->bonus.crit_atk_rate) / 100)); + wd.damage = (int32)floor((double)wd.damage * 1.4 * ((100 + sd->bonus.crit_atk_rate) / 100)); else - wd.damage = (int32)floor(wd.damage * 1.4); + wd.damage = (int32)floor((double)wd.damage * 1.4); } #endif diff --git a/src/map/clif.c b/src/map/clif.c index 4aeabfcd21a..46466bf5c8a 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -9329,6 +9329,9 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) // Notify everyone that this char logged in [Skotlex]. map_foreachpc(clif_friendslist_toggle_sub, sd->status.account_id, sd->status.char_id, 1); + // Set the initial idle time + sd->idletime = last_tick; + //Login Event npc_script_event(sd, NPCE_LOGIN); } else { diff --git a/src/map/map.c b/src/map/map.c index afd166cf967..5f02921fa08 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -425,6 +425,8 @@ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick) if (sc->data[SC_DANCING]) skill_unit_move_unit_group(skill_id2group(sc->data[SC_DANCING]->val2), bl->m, x1-x0, y1-y0); else { + if (sc->data[SC_CLOAKING] && !skill_check_cloaking(bl, NULL)) + status_change_end(bl, SC_CLOAKING, INVALID_TIMER); if (sc->data[SC_WARM]) skill_unit_move_unit_group(skill_id2group(sc->data[SC_WARM]->val4), bl->m, x1-x0, y1-y0); if (sc->data[SC_BANDING]) diff --git a/src/map/unit.c b/src/map/unit.c index 889d925c4e4..bb573a99ff0 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -7,6 +7,7 @@ #include "../common/db.h" #include "../common/malloc.h" #include "../common/random.h" +#include "../common/socket.h" #include "map.h" #include "path.h" @@ -987,7 +988,6 @@ int unit_can_move(struct block_list *bl) { (sc->data[SC_DANCING]->val1&0xFFFF) == CG_MOONLIT || (sc->data[SC_DANCING]->val1&0xFFFF) == CG_HERMODE ) ) - || (sc->data[SC_CLOAKING] && sc->data[SC_CLOAKING]->val1 < 3) // Can't move at level less than 3 ) return 0; @@ -1927,8 +1927,11 @@ static int unit_attack_timer_sub(struct block_list* src, int tid, unsigned int t unit_set_walkdelay(src, tick, sstatus->amotion, 1); } - if(ud->state.attack_continue) + if(ud->state.attack_continue) { + if( src->type == BL_PC ) + ((TBL_PC*)src)->idletime = last_tick; ud->attacktimer = add_timer(ud->attackabletime,unit_attack_timer,src->id,0); + } if( sd ) sd->canlog_tick = gettick();