diff options
Diffstat (limited to 'npc/custom')
28 files changed, 480 insertions, 635 deletions
diff --git a/npc/custom/battleground/bg_common.txt b/npc/custom/battleground/bg_common.txt index 8b99deb39..54b13bb28 100644 --- a/npc/custom/battleground/bg_common.txt +++ b/npc/custom/battleground/bg_common.txt @@ -137,14 +137,14 @@ bat_room,160,140,3 script Prince Croix 4_M_CRU_CRUA,{ // ********************************************************************* function script Time2Str { set .@time_left, getarg(0) - gettimetick(2); - + set .@Days, .@time_left / 86400; set .@time_left, .@time_left - (.@Days * 86400); set .@Hours, .@time_left / 3600; set .@time_left, .@time_left - (.@Hours * 3600); set .@Minutes, .@time_left / 60; set .@time_left, .@time_left - (.@Minutes * 60); - + set .@Time$, ""; if( .@Days > 1 ) set .@Time$, .@Time$ + .@Days + " days, "; @@ -165,7 +165,7 @@ function script Time2Str { set .@Time$, .@Time$ + .@time_left + " seconds."; else if( .@time_left == 1 ) set .@Time$, .@Time$ + .@time_left + " second."; - + return .@Time$; } @@ -203,7 +203,7 @@ bat_room,156,178,5 script Tierra Valley Officer#1 4_M_KY_KNT,{ mes "Please sign up for an army with Prince Croix or General Guillaume!"; close; } - + mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; next; if( select("I want to join your army!:End Conversation") == 2 ) @@ -226,7 +226,7 @@ bat_room,156,178,5 script Tierra Valley Officer#1 4_M_KY_KNT,{ mes "Stand-by for Tierra Gorge Battle until the time limit passes."; close; } - + if( BaseLevel < 80 ) { mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; @@ -343,7 +343,7 @@ bat_room,164,178,5 script Tierra Valley Officer#3 4_M_KY_KNT,{ mes "Please sign up for an army with Prince Croix or General Guillaume!"; close; } - + mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; next; if( select("I want to join your army!:End Conversation") == 2 ) @@ -1260,7 +1260,7 @@ bat_room,160,150,3 script Erundek 4_M_MANAGER,{ case 4: setarray .@Item_DB[0],2376,2377,2378,2379,2380,2381,2382; set .@Value, 80; break; case 5: setarray .@Item_DB[0],2720,2721,2722,2723,2724,2725,2733; set .@Value, 500; break; } - + break; case 3: // Valor Badges mes "[Erundek]"; @@ -1278,7 +1278,7 @@ bat_room,160,150,3 script Erundek 4_M_MANAGER,{ case 4: setarray .@Item_DB[0],2376,2377,2378,2379,2380,2381,2382; set .@Value, 80; break; case 5: setarray .@Item_DB[0],2720,2721,2722,2723,2724,2725,2733; set .@Value, 500; break; } - + break; case 4: // Heroism Badge mes "[Erundek]"; @@ -1286,7 +1286,7 @@ bat_room,160,150,3 script Erundek 4_M_MANAGER,{ mes "This shop is not available at the moment."; close; } - + mes "[Erundek]"; mes "What item do you want to exchange?"; mes "If you are not sure, check the catalog."; @@ -1305,21 +1305,21 @@ bat_room,160,150,3 script Erundek 4_M_MANAGER,{ mes "Remember, Battleground Reward Items are ^FF0000Character Bound^000000."; mes "Are you sure you want this item?"; next; - + if( select("Yes:No") == 2 ) { mes "[Erundek]"; mes "Do you need more time to check the items?"; close; } - + if( countitem(.@Badge) < .@Value ) { mes "[Erundek]"; mes "I'm sorry, but you don't have enough badges to exchange."; close; } - + delitem .@Badge,.@Value; getitem .@Item_ID,1; mes "[Erundek]"; diff --git a/npc/custom/battleground/bg_flavius_01.txt b/npc/custom/battleground/bg_flavius_01.txt index fd0cf9112..30693da21 100644 --- a/npc/custom/battleground/bg_flavius_01.txt +++ b/npc/custom/battleground/bg_flavius_01.txt @@ -54,7 +54,7 @@ OnReadyCheck: end; set .@Guillaume, getwaitingroomstate(0,"Fl1R_Guillaume"); set .@Croix, getwaitingroomstate(0,"Fl1R_Croix"); - + if( .@Guillaume < 10 || .@Croix < 10 ) { mapannounce "bat_room","Battleground -- Flavius [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0x006400; diff --git a/npc/custom/battleground/bg_flavius_02.txt b/npc/custom/battleground/bg_flavius_02.txt index f7b7756f4..c735614c1 100644 --- a/npc/custom/battleground/bg_flavius_02.txt +++ b/npc/custom/battleground/bg_flavius_02.txt @@ -54,7 +54,7 @@ OnReadyCheck: end; set .@Guillaume, getwaitingroomstate(0,"Fl2R_Guillaume"); set .@Croix, getwaitingroomstate(0,"Fl2R_Croix"); - + if( .@Guillaume < 10 || .@Croix < 10 ) { mapannounce "bat_room","Battleground -- Flavius [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0x808000; diff --git a/npc/custom/battleground/bg_kvm01.txt b/npc/custom/battleground/bg_kvm01.txt index aa12759b9..be826215e 100644 --- a/npc/custom/battleground/bg_kvm01.txt +++ b/npc/custom/battleground/bg_kvm01.txt @@ -11,7 +11,7 @@ bat_room,253,227,4 script Registration::KvM01R_Guillaume 4_M_KY_KNT,{ // KvM Gui OnInit: waitingroom "Battle Station 5 Players",5,"KvM01_BG::OnGuillaumeJoin",1; end; - + OnEnterBG: set $@KvM01BG_id1, waitingroom2bg("bat_c01",53,128,"KvM01_BG::OnGuillaumeQuit","KvM01_BG::OnGuillaumeDie"); end; @@ -150,7 +150,7 @@ OnTimer27000: OnTimer28000: donpcevent "::OnKvM01LightB"; end; - + OnTimer29000: donpcevent "::OnKvM01LightC"; end; @@ -205,7 +205,7 @@ OnTimer330000: OnGuillaumeWin: set $@KvM01BG, 3; set $@KvM01BG_Victory, 1; - + stopnpctimer; sleep 2000; mapannounce "bat_c01","The Guillaume Army has won the Battle of Kreiger Von Midgard",1,0x0000FF; diff --git a/npc/custom/battleground/bg_kvm02.txt b/npc/custom/battleground/bg_kvm02.txt index f2f5f7ca1..91e594a90 100644 --- a/npc/custom/battleground/bg_kvm02.txt +++ b/npc/custom/battleground/bg_kvm02.txt @@ -11,7 +11,7 @@ bat_room,225,227,4 script Registration::KvM02R_Guillaume 4_M_KY_KNT,{ // KvM Gui OnInit: waitingroom "Battle Station 5 Players",5,"KvM02_BG::OnGuillaumeJoin",1; end; - + OnEnterBG: set $@KvM02BG_id1, waitingroom2bg("bat_c02",53,128,"KvM02_BG::OnGuillaumeQuit","KvM02_BG::OnGuillaumeDie"); end; @@ -150,7 +150,7 @@ OnTimer27000: OnTimer28000: donpcevent "::OnKvM02LightB"; end; - + OnTimer29000: donpcevent "::OnKvM02LightC"; end; @@ -205,7 +205,7 @@ OnTimer330000: OnGuillaumeWin: set $@KvM02BG, 3; set $@KvM02BG_Victory, 1; - + stopnpctimer; sleep 2000; mapannounce "bat_c02","The Guillaume Army has won the Battle of Kreiger Von Midgard",1,0x0000FF; diff --git a/npc/custom/battleground/bg_kvm03.txt b/npc/custom/battleground/bg_kvm03.txt index f38e81bd1..33edb0be7 100644 --- a/npc/custom/battleground/bg_kvm03.txt +++ b/npc/custom/battleground/bg_kvm03.txt @@ -11,7 +11,7 @@ bat_room,197,227,4 script Registration::KvM03R_Guillaume 4_M_KY_KNT,{ // KvM Gui OnInit: waitingroom "Battle Station 5 Players",5,"KvM03_BG::OnGuillaumeJoin",1; end; - + OnEnterBG: set $@KvM03BG_id1, waitingroom2bg("bat_c03",53,128,"KvM03_BG::OnGuillaumeQuit","KvM03_BG::OnGuillaumeDie"); end; @@ -150,7 +150,7 @@ OnTimer27000: OnTimer28000: donpcevent "::OnKvM03LightB"; end; - + OnTimer29000: donpcevent "::OnKvM03LightC"; end; @@ -205,7 +205,7 @@ OnTimer330000: OnGuillaumeWin: set $@KvM03BG, 3; set $@KvM03BG_Victory, 1; - + stopnpctimer; sleep 2000; mapannounce "bat_c03","The Guillaume Army has won the Battle of Kreiger Von Midgard",1,0x0000FF; diff --git a/npc/custom/battleground/bg_tierra_01.txt b/npc/custom/battleground/bg_tierra_01.txt index 671c2d929..797b3a389 100644 --- a/npc/custom/battleground/bg_tierra_01.txt +++ b/npc/custom/battleground/bg_tierra_01.txt @@ -69,7 +69,7 @@ OnReadyCheck: bg_monster $@TierraBG1_id1,"bat_a01",176,345,"Food Depot",1909,"Tierra_BG1::OnGuillaumeBreak"; bg_monster $@TierraBG1_id2,"bat_a01",167,50,"Food Storage",1910,"Tierra_BG1::OnCroixBreak"; bg_monster 0,"bat_a01",273,204,"Neutrality Flag",1911,"Tierra_BG1::OnNeutralBreak"; - + set .Neutral_Base, 0; set $@TierraBG1_Victory, 0; @@ -94,7 +94,7 @@ OnReadyCheck: mapannounce "bat_a01","Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's food storage",1,0x0000FF; sleep 2000; mapannounce "bat_a01","Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage",1,0xFF0000; - + initnpctimer; end; @@ -120,7 +120,7 @@ OnNeutralBreak: set .Guardian_1, bg_monster(.Neutral_Base,"bat_a01",280,233,"Guardian",1949,"Tierra_BG1::OnGuardian1"); else bg_monster_set_team .Guardian_1, .Neutral_Base; - + if( .Guardian_2 == 0 ) set .Guardian_2, bg_monster(.Neutral_Base,"bat_a01",287,203,"Guardian",1950,"Tierra_BG1::OnGuardian2"); else @@ -294,7 +294,7 @@ OnWall: OnBuild: for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) bg_monster 0,"bat_a01",186+.@i,266,"Barricade",1906,"Croix_TV1B::OnWall"; - + setwall "bat_a01",186,266,16,6,1,"bat_a01_c1"; set .MyMobCount,16; end; diff --git a/npc/custom/battleground/bg_tierra_02.txt b/npc/custom/battleground/bg_tierra_02.txt index c6cebf581..f18d60769 100644 --- a/npc/custom/battleground/bg_tierra_02.txt +++ b/npc/custom/battleground/bg_tierra_02.txt @@ -69,7 +69,7 @@ OnReadyCheck: bg_monster $@TierraBG2_id1,"bat_a02",176,345,"Food Depot",1909,"Tierra_BG2::OnGuillaumeBreak"; bg_monster $@TierraBG2_id2,"bat_a02",167,50,"Food Storage",1910,"Tierra_BG2::OnCroixBreak"; bg_monster 0,"bat_a02",273,204,"Neutrality Flag",1911,"Tierra_BG2::OnNeutralBreak"; - + set .Neutral_Base, 0; set $@TierraBG2_Victory, 0; @@ -94,7 +94,7 @@ OnReadyCheck: mapannounce "bat_a02","Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's food storage",1,0x0000FF; sleep 2000; mapannounce "bat_a02","Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage",1,0xFF0000; - + initnpctimer; end; @@ -120,7 +120,7 @@ OnNeutralBreak: set .Guardian_1, bg_monster(.Neutral_Base,"bat_a02",280,233,"Guardian",1949,"Tierra_BG2::OnGuardian1"); else bg_monster_set_team .Guardian_1, .Neutral_Base; - + if( .Guardian_2 == 0 ) set .Guardian_2, bg_monster(.Neutral_Base,"bat_a02",287,203,"Guardian",1950,"Tierra_BG2::OnGuardian2"); else @@ -294,7 +294,7 @@ OnWall: OnBuild: for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) bg_monster 0,"bat_a02",186+.@i,266,"Barricade",1906,"Croix_TV2B::OnWall"; - + setwall "bat_a02",186,266,16,6,1,"bat_a02_c1"; set .MyMobCount,16; end; diff --git a/npc/custom/bgqueue/flavius.txt b/npc/custom/bgqueue/flavius.txt index 8112be12e..f93821264 100644 --- a/npc/custom/bgqueue/flavius.txt +++ b/npc/custom/bgqueue/flavius.txt @@ -19,7 +19,6 @@ //= 1.5b Adjustments to the team-splitting algorithm [Haruna] //============================================================ - //Tacham, while the script is under testings the original will remain, meaning if you wanna test this you need to disable the other, or they'll conflict. bat_b01,15,15,3 script start#bat_b01 CLEAR_NPC,{ OnInit: @@ -28,22 +27,21 @@ OnInit: //$@bg_queue_id is cleared after this event ends OnPlayerListReady: - - set $@FlaviusBG1_id1, bg_create_team("bat_b01",10,290); + set $@FlaviusBG1_id1, bg_create_team("bat_b01",10,290); set $@FlaviusBG1_id2, bg_create_team("bat_b01",390,10); set $@Croix_QueueBG1, queue(); set $@Guill_QueueBG1, queue(); - + queueopt($@Guill_QueueBG1,HQO_OnLogout,"start#bat_b01::OnGuillaumeQuit"); queueopt($@Croix_QueueBG1,HQO_OnLogout,"start#bat_b01::OnCroixQuit"); - + set .@i, 0; - + copyarray .@bg_member[0],$@bg_member[0],$@bg_member_size; copyarray .@bg_member_group[0],$@bg_member_group[0],$@bg_member_size; copyarray .@bg_member_type[0],$@bg_member_type[0],$@bg_member_size; - + freeloop(1); // Counting all participants and determining sizes, condensing .@bg_member_group set .@nogroupcount, 0; @@ -66,7 +64,7 @@ OnPlayerListReady: set .@bg_count[.@j], 1; } } - + // Now, sorting the group arrays from amount of population descending! Bubble sort powers, I call upon thee! // Type doesn't matter here for precedence checks, but also needs to be sorted the same way along with groups for (set .@i, 0; .@i < getarraysize(.@bg_groups); set .@i, .@i + 1) { @@ -84,7 +82,7 @@ OnPlayerListReady: } } } - + // Add the groups to the queues! :D for (set .@i, 0; .@i < getarraysize(.@bg_groups); set .@i, .@i + 1){ if (queuesize($@Croix_QueueBG1) <= queuesize($@Guill_QueueBG1)){ // Catch'em all and add to the queue! @@ -123,7 +121,7 @@ OnPlayerListReady: set $@FlaviusBG1_Victory, 0; set $@Croix_ScoreBG1, 0; set $@Guill_ScoreBG1, 0; - + bg_updatescore "bat_b01",$@Guill_ScoreBG1,$@Croix_ScoreBG1; donpcevent "OBJ#bat_b01_a::OnKill"; @@ -143,11 +141,11 @@ OnPlayerListReady: disablenpc "Vintenar#bat_b01_bover"; bg_warp $@FlaviusBG1_id1,"bat_b01",87,75; bg_warp $@FlaviusBG1_id2,"bat_b01",311,224; - + /* after warp */ queueopt($@Guill_QueueBG1,HQO_OnMapChange,"start#bat_b01::OnGuillaumeQuit"); queueopt($@Croix_QueueBG1,HQO_OnMapChange,"start#bat_b01::OnCroixQuit"); - + donpcevent "countdown#bat_b01::OnEnable"; end; @@ -180,14 +178,14 @@ OnGuillaumeQuit: queueremove($@Guill_QueueBG1,getcharid(3)); callsub L_OnPlayerQuit; end; - + L_OnPlayerQuit: bg_leave; setd $@bg_delay_var$,gettimetick(2); if( queuesize($@Guill_QueueBG1) == 0 || queuesize($@Croix_QueueBG1) == 0 ) /* todo check score and decide a winner if anyone left */ callsub OnMatchOver; end; - + OnMatchOver: if( $@FlaviusBG1_id1 || $@FlaviusBG1_id2 ) { queuedel($@Croix_QueueBG1); diff --git a/npc/custom/card_remover.txt b/npc/custom/card_remover.txt index e3aa2bb5b..dace8cac0 100644 --- a/npc/custom/card_remover.txt +++ b/npc/custom/card_remover.txt @@ -49,7 +49,7 @@ prt_in,28,73,4 script Wise Old Woman#eAcustom 1_F_ORIENT_04,{ close; } set .@cardcount,getequipcardcnt(.@part); - + if (!checkweight(1202,(.@cardcount+1))) { mes "^3355FFJust a minute!"; mes "I can't offer any of my"; @@ -91,7 +91,7 @@ prt_in,28,73,4 script Wise Old Woman#eAcustom 1_F_ORIENT_04,{ Zeny -= (.zenycost+(.@cardcount * .percardcost)); delitem 1000,1; delitem 715,1; - + // Replace the constants in the next 3 lines with failure chance values defined in refine_db.txt // First value = Total failure chance (item and cards destroyed) // Second value = Partial failure chance (one or the other is destroyed, player decides which one is safe) diff --git a/npc/custom/etc/floating_rates.txt b/npc/custom/etc/floating_rates.txt index ff3b6e8fa..c207c6275 100644 --- a/npc/custom/etc/floating_rates.txt +++ b/npc/custom/etc/floating_rates.txt @@ -35,7 +35,7 @@ OnHour18: setbattleflag("item_rate_equip",$@drate); //we don't change card drops rate, because these values won't change them anyway atcommand "@reloadmobdb"; - + announce "Current Rune-Midgard rates are: 1."+($@brate-100)+"x 1."+($@jrate-100)+"x 1."+($@drate-100)+"x",bc_all,0xFF6060; end; } diff --git a/npc/custom/etc/marriage.txt b/npc/custom/etc/marriage.txt index 0d25be9d5..ab1b48c30 100644 --- a/npc/custom/etc/marriage.txt +++ b/npc/custom/etc/marriage.txt @@ -65,7 +65,7 @@ prt_church,100,123,4 script Vomars 1_M_PASTOR,{ function SF_RetrieveRingF; function SF_RingsAccepted; function SF_StartCeremony; - + if (getpartnerid() > 0) { mes "["+@name$+"]"; mes "You have my blessings, have a wonderful married life."; @@ -81,7 +81,7 @@ prt_church,100,123,4 script Vomars 1_M_PASTOR,{ mes "to prepare for marriage"; close; } // End official iRO dialog - + if (strcharinfo(0) == $wed_groom$) { SF_Groom(); end; @@ -278,7 +278,7 @@ function SF_RetrieveRingM { mes "Here's the wedding ring for your bride."; if ($@wed_ring) delitem $@wed_ring,1; set $wed_groom_progress,4; - + if ($wed_bride_progress == 4) SF_StartCeremony(); else { @@ -336,7 +336,7 @@ function SF_StartCeremony { OnTimer1000: npctalk "Ladies and Gentlemen, We will now join in holy matrimony these two lovers."; end; - + OnTimer5000: npctalk "Now more than ever, will both of your lives be entwined together as so will be your souls."; end; @@ -344,31 +344,31 @@ OnTimer5000: OnTimer10000: npctalk "You will both honor and cherish each other through the best and worst of times."; end; - + OnTimer15000: npctalk "The safety and well being of your other will now also be your responsibility."; end; - + OnTimer20000: npctalk "May in sickness or good health, your love burn bright like no force can extinguish it."; end; - + OnTimer25000: npctalk "Those here stand witness to these vows bestowed upon you, you must act accordingly to them."; end; - + OnTimer30000: npctalk "Understanding that, we are nothing more but mortals on this earth, but this is our triumph."; end; - + OnTimer35000: npctalk "We here will now join these two mortal entities, and create an immortal love."; end; - + OnTimer40000: npctalk $wed_groom$+", you have accepted to take "+$wed_bride$+" as your lawfully wedded wife,"; end; - + OnTimer45000: npctalk "and you, "+$wed_bride$+", have accepted take "+$wed_groom$+" as your lawfully wedded husband."; end; @@ -440,7 +440,7 @@ prt_church,106,99,3 script Happy Marry 1_F_02,{ mes "Isn't marriage beautiful?"; close; } - + function SF_WedProgress; function SF_Principles; function SF_Procedure; @@ -451,7 +451,7 @@ prt_church,106,99,3 script Happy Marry 1_F_02,{ SF_WedProgress(); end; } - + do { mes "["+@name$+"]"; mes "Marriage... is such a beautiful thing."; @@ -529,7 +529,7 @@ function SF_Register { close; } } - + function SF_WedProgress { if (strcharinfo(0) == $wed_groom$) { mes "["+@name$+"]"; @@ -658,7 +658,7 @@ OnTimer60000: npctalk "Registration timed out. Is it that noone wants to marry "+$@msg$+"..?"; emotion e_hmm; - + set $wed_groom$,""; set $wed_groom_sex, 0; set $wed_bride$,""; @@ -675,7 +675,7 @@ function SF_TryRegister { set @type$, "groom"; if (@bride) set @type$, "bride"; - + mes "["+@name$+"]"; mes "Before registering as "+@type$+", let me check if you meet all the requirements..."; next; @@ -689,7 +689,7 @@ function SF_TryRegister { set @item, 7170; else set @item, 2338; - + if (getequipid(2) != @item) { mes "["+@name$+"]"; mes "You should be wearing a "+getitemname(@item)+" if you want to get married."; @@ -814,12 +814,12 @@ prt_church,94,99,4 script Sister Lisa 1_F_PRIEST,{ function SF_DivorceEnd; function SF_InProgress; - + if ($@divorce_progress==1) { goto SF_InProgress; end; } - + do { mes "["+@name$+"]"; mes "Divorcing can be such a sad event..."; diff --git a/npc/custom/etc/monster_arena.txt b/npc/custom/etc/monster_arena.txt index 82f764977..9c00b67a5 100644 --- a/npc/custom/etc/monster_arena.txt +++ b/npc/custom/etc/monster_arena.txt @@ -195,7 +195,6 @@ L_Exit: } gon_test,56,91,6 duplicate(monsterreferee) Referee#01 1_M_PUBMASTER - // Usher // gon_test,58,94,6 script Usher 4_M_04,{ set @marena,1; @@ -332,7 +331,6 @@ L_Sell: mes "You earned ^0000FF" + @sellearn + "^000000z."; close; - L_NoExp: mes "[Monster Trainer]"; mes "You do not have enough experience."; @@ -761,8 +759,6 @@ OnTouch: gon_test,43,87,5 duplicate(SummonPad) Summon Pad 2 HIDDEN_NPC,2,2 gon_test,72,87,5 duplicate(SummonPad) Summon Pad 3 HIDDEN_NPC,2,2 - - // Skill Disabler // gon_test mapflag noskill diff --git a/npc/custom/etc/penal_servitude.txt b/npc/custom/etc/penal_servitude.txt index b83bf3f83..30aaf17e2 100644 --- a/npc/custom/etc/penal_servitude.txt +++ b/npc/custom/etc/penal_servitude.txt @@ -134,7 +134,7 @@ sec_in02,137,57,1 script Overseer 4_M_PAY_SOLDIER,{ delitem 4009,countitem(4009);//Items: Chonchon_Card, delitem 4022,countitem(4022);//Items: Spore_Card, delitem 4048,countitem(4048);//Items: Poison_Spore_Card, - + if (PRISON_Q <= 0 ) goto L_GET_Q; mes "I want you to gather ^FF0000"+PRISON_Q+" Orange Net Mushroom^000000."; @@ -170,7 +170,6 @@ L_GET_Q: close; } - sec_in02 mapflag nomemo sec_in02 mapflag nosave SavePoint sec_in02 mapflag noteleport diff --git a/npc/custom/etc/quest_warper.txt b/npc/custom/etc/quest_warper.txt index 3526cde5c..fd6865a54 100644 --- a/npc/custom/etc/quest_warper.txt +++ b/npc/custom/etc/quest_warper.txt @@ -71,10 +71,10 @@ function script Q_Warpra { mes "Hello,"; mes "I can warp you to any town or dungeon, but you need to unlock them first by visiting us."; mes "What do you need?"; - + if(getarg(0) == 0) callfunc "QWS_MMarray",0; if(getarg(0) == 1) callfunc "QWS_MMarray",1; - + set @MMenu,select(@Mmenulist$[0],@Mmenulist$[1],@Mmenulist$[2],@Mmenulist$[3],@Mmenulist$[4],@Mmenulist$[5],@Mmenulist$[6],@Mmenulist$[7],@Mmenulist$[8],@Mmenulist$[9],@Mmenulist$[10],@Mmenulist$[11]); switch(@Mmenuref[@MMenu-1]+1){ @@ -167,7 +167,7 @@ Setprice: if (!$QW_S_PRICE) mes "Storage = ^FF0000 Free ^000000"; if ($QW_S_PRICE == 60) mes "Storage = ^0000FF Kafra Mode ^000000"; mes "Guild Storage = "+(($QW_GS_PRICE)?"^00FF00"+$QW_GS_PRICE:"^FF0000Free")+"^000000"; - + switch(select("Basic - Warps","Advanced - Warps","Overseas - Warps","Basic Dungeon warp fee","Advanced Dungeon warp fee","Overseas Dungeon warp fee","Full Healing","Part Healing","Storage","Guild Storage","Back","Exit")) { case 1: next; @@ -388,7 +388,7 @@ L_heal_Part: if (@healchoice == 2) callsub PHeal,1,0; if (@healchoice == 3) callsub PHeal,0,1; goto L_End; - + PHeal: next; set @Hp, MaxHp-Hp; @@ -499,7 +499,7 @@ L_GStorage: close2; guildopenstorage; end; - + L_End: close; end; @@ -523,7 +523,7 @@ L_NoUnlock: mes "I don't unlock this location, my assistant deeper in the dungeon will unlock this place."; close; end; - + //=========================Short=On=Zeny=========================== L_Short_on_zeny: next; @@ -536,7 +536,7 @@ L_Short_on_zeny: } close; end; - + //===========================Stamp=Card============================ stampcard: // Counting of the ammount of places you have unlocked @@ -978,7 +978,6 @@ function script QWS_Tarray { set @Tmenuref[@Tj],57005; // 57005='dead' in hex return; - //----------------Make Town Menu Function function QWS_Make_Town_Menu { @@ -1450,7 +1449,6 @@ function script QWS_Darray { set @Dmenuref[@Dj],57005; // 57005='dead' in hex return; - //----------------Make Dungeon Menu Function function QWS_Make_Dungeon_Menu { @@ -1525,7 +1523,7 @@ function script QWS_DLarray { function script QWS_Dungeon_Warpra { function QWS_D_getbin; function QWS_D_setbin; - + if ((QWS_D_getbin(getarg(0)) == 0) && (getarg(1) != "")) { mes "[Warpra]"; mes getarg(1)+" unlocked!"; @@ -1538,7 +1536,6 @@ function script QWS_Dungeon_Warpra { debugmes "QWS_Dungeon_Warpra error, improper syntax?"; return; - function QWS_D_setbin { set @tempsetbindata,1; if (getarg(0) == 0) goto binset; @@ -1571,7 +1568,7 @@ binget: function script QWS_Town_Warpra { function QWS_T_getbin; function QWS_T_setbin; - + if ((QWS_T_getbin(getarg(0)) == 0) && (getarg(1) != "")) { mes "[Warpra]"; mes getarg(1)+" unlocked!"; diff --git a/npc/custom/etc/rpsroulette.txt b/npc/custom/etc/rpsroulette.txt index 22123580d..e0f8b8952 100644 --- a/npc/custom/etc/rpsroulette.txt +++ b/npc/custom/etc/rpsroulette.txt @@ -4,6 +4,8 @@ //= acky //===== Current Version: ===================================== //= 1.2 +//===== Compatible With: ===================================== +//= Hercules SVN //===== Description: ========================================= //= Plays a hybrid Russian Roulette Rock Scissors Paper game. //===== Additional Comments: ================================= @@ -12,273 +14,113 @@ //============================================================ cmd_in02,182,126,2 script Crazy Boris 4_M_03,{ - mes "Crazy Boris"; - set @counter,1; mes "Hey you! Up for Rock Scissors Roulette?"; next; - menu "Let me play.",PLAY,"Explain the rules.",L_Rules,"Leave",LEAVE; - SAME: - mes "Draw! Again!"; - next; - goto PLAY; - -WIN: - mes "Damnit, You Win!"; - emotion 19; - next; - goto OPPPULL; - -LOSE: - emotion 18; - mes "Boorah! You Lose!"; - next; - goto YOUPULL; - -PLAY: - mes "Rock... Paper..."; - set @opp,rand (1,3); - menu "^0000FFROCK!",L_Rock,"^FF0000SCISSORS!",SCISSORS,"^00FF00PAPER!^000000",PAPER; - -L_Rock: - if (@lastchoice == 1) set @opp,rand (1,3); - if (@opp == 1) emotion 11; - if (@opp == 2) emotion 10; - if (@opp == 3) emotion 12; - set @lastchoice,1; - if (@opp == 1) goto SAME; - if (@opp == 2) goto WIN; - if (@opp == 3) goto LOSE; - -SCISSORS: - if (@lastchoice == 2) set @opp,rand (1,2); - if (@opp == 1) emotion 11; - if (@opp == 2) emotion 10; - if (@opp == 3) emotion 12; - set @lastchoice,2; - if (@opp == 1) goto LOSE; - if (@opp == 2) goto SAME; - if (@opp == 3) goto WIN; - -PAPER: - if (@lastchoice == 3) set @opp,rand (2,3); - if (@opp == 1) emotion 11; - if (@opp == 2) emotion 10; - if (@opp == 3) emotion 12; - set @lastchoice,3; - if (@opp == 1) goto WIN; - if (@opp == 2) goto LOSE; - if (@opp == 3) goto SAME; - -YOUPULL: - if (@counter == 1) goto ONE; - if (@counter == 2) goto TWO; - if (@counter == 3) goto THREE; - if (@counter == 4) goto FOUR; - if (@counter == 5) goto FIVE; - if (@counter == 6) goto SIX; - -OPPPULL: - if (@counter == 1) goto ONEa; - if (@counter == 2) goto TWOa; - if (@counter == 3) goto THREEa; - if (@counter == 4) goto FOURa; - if (@counter == 5) goto FIVEa; - if (@counter == 6) goto SIXa; - -ONE: - set @counter,2; - mes "1 of 6"; - set @pull,rand (1,6); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -TWO: - set @counter,3; - mes "2 of 6"; - set @pull,rand (1,5); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -THREE: - set @counter,4; - mes "3 of 6"; - set @pull,rand (1,4); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -FOUR: - set @counter,5; - mes "4 of 6"; - set @pull,rand (1,3); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -FIVE: - set @counter,6; - mes "5 of 6"; - set @pull,rand (1,2); - if (@pull == 1) set @pull,rand (1,2); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -SIX: - mes "6 of 6"; - mes "Say your prayers"; - set @pull,1; - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -ONEa: - set @counter,2; - mes "1 of 6"; - set @pull,rand (1,6); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -TWOa: - set @counter,3; - mes "2 of 6"; - set @pull,rand (1,5); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -THREEa: - set @counter,4; - mes "3 of 6"; - set @pull,rand (1,4); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -FOURa: - set @counter,5; - mes "4 of 6"; - set @pull,rand (1,3); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -FIVEa: - set @counter,6; - mes "5 of 6"; - set @pull,rand (1,2); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -SIXa: - mes "6 of 6"; - mes "Say your prayers"; - set @pull,1; - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -SAFE: - emotion 32; - mes "*^0000FFClick^000000* whew..."; - goto PLAY; - -DIE: - specialeffect2 183; - emotion 29; - percentheal -100,-100; - mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; - mes "You're dead!"; - close; - -KILL: - specialeffect 183; - emotion 23; - mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; - mes "OWWW @#$%^!! THAT HURT LIKE HELL!!"; - next; - goto PRIZE; - -L_Rules: - mes "Ok here are the rules:"; - mes "I have with me a ^FF00006^000000 chamber pistol with ^FF00001^000000 round. First we play ^FF0000Scissors ^00FF00Paper ^0000FFRock^000000. The loser pulls the trigger. The winner is whoever comes out best."; - mes "Beat me to win a prize."; - menu "Let me play.",CONT,"No thanks.",LEAVE; - -CONT: - mes "Ok here we go..."; - next; - goto PLAY; - -PRIZE: - mes "Congratulations! You have won..."; - set @prize,rand (1,10); - if (@prize == 1) goto P1; - if (@prize == 2) goto P2; - if (@prize == 3) goto P3; - if (@prize == 4) goto P4; - if (@prize == 5) goto P5; - if (@prize == 6) goto P6; - if (@prize == 7) goto P7; - if (@prize == 8) goto P8; - if (@prize == 9) goto P9; - if (@prize == 10) goto P10; - -P1: - mes "10x Oridicon!"; - getitem 984,10; - close; - -P2: - mes "10x Elunium!"; - getitem 985,10; - close; - -P3: - mes "100x Fly Wings!"; - getitem 601,100; - close; - -P4: - mes "8x Old Blue Box!"; - getitem 603,8; - close; - -P5: - mes "4x Old Violet Box!"; - getitem 617,4; - close; - -P6: - mes "1x Old Card Album!"; - getitem 616,1; - close; - -P7: - mes "10x Dead Branch!"; - getitem 604,10; - close; - -P8: - mes "3x Gold!"; - getitem 969,3; - close; - -P9: - mes "10x Elunium!"; - getitem 985,10; - close; - -P10: - mes "20x Blue Potion!"; - getitem 505,20; - close; - -LEAVE: - mes "Pansy."; - close; + switch (select("Let me play.","Explain the rules.","Leave")) { + case 1: + break; + case 2: + mes "Ok here are the rules:"; + mes "I have with me a ^FF00006^000000 chamber pistol with ^FF00001^000000 round. First we play ^FF0000Scissors ^00FF00Paper ^0000FFRock^000000. The loser pulls the trigger. The winner is whoever comes out best."; + mes "Beat me to win a prize."; + next; + if (select("Let me play.","No thanks.") == 1) { + mes "Ok here we go..."; + break; + } + // else fall through + case 3: + mes "Pansy."; + close; + } + .@counter = 1; + while(true) { + mes "Rock... Paper..."; + + .@choice = select("^0000FFROCK!","^0000FFSCISSORS!","^0000FFPAPER!"); + if (.@lastchoice == .@choice) { + if (.@lastchoice == 1) + .@opponent = rand(1,3); + else if (.@lastchoice == 2) + .@opponent = rand(1,2); + else + .@opponent = rand(2,3); + } else { + .@opponent = rand(1,3); + } + .@lastchoice = .@choice; + + if (.@opponent == 1) + emotion e_rock; + else if (.@opponent == 2) + emotion e_scissors; + else + emotion e_paper; + + if (.@opponent == .@choice) { + // SAME + mes "Draw! Again!"; + continue; + } + + if ((.@choice == 1 && .@opponent == 3) + || (.@choice == 2 && .@opponent == 1) + || (.@choice == 3 && .@opponent == 2) + ) { + // LOSE + emotion e_heh; + mes "Boorah! You Lose!"; + next; + .@win = false; + } else { + //WIN + mes "Damnit, You Win!"; + emotion e_swt2; + next; + .@win = true; + } + + mes .@counter +" of 6"; + if (.@counter == 6) + mes "Say your prayers"; + .@pull = rand(1, 7 - .@counter); + ++.@counter; + next; + if (.@pull > 1) { + emotion e_pif; + mes "*^0000FFClick^000000* whew..."; + continue; + } + if (!.@win) { + specialeffect EF_SUI_EXPLOSION; + mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; + mes "You're dead!"; + emotion e_gg; + percentheal -100,-100; + close; + } + specialeffect EF_SUI_EXPLOSION; + mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; + mes "OWWW @#$%^!! THAT HURT LIKE HELL!!"; + emotion e_omg; + next; + mes "Congratulations! You have won..."; + switch (rand(1,10)) { + case 1: setarray .@reward[0], 10,984; break; + case 3: setarray .@reward[0],100,601; break; // 100x Fly Wings + case 4: setarray .@reward[0], 8,603; break; // 8x Old Blue Box + case 5: setarray .@reward[0], 4,617; break; // 4x Old Violet Box + case 6: setarray .@reward[0], 1,616; break; // 1x Old Card Album + case 7: setarray .@reward[0], 10,604; break; // 10x Dead Branch + case 8: setarray .@reward[0], 3,969; break; // 3x Gold + case 10: setarray .@reward[0],20,505; break; // 20x Blue Potion + case 2: + case 9: + setarray .@reward[0], 10,985; + } + mes .@reward[0] +"x "+ getitemname(.@reward[1]) +"!"; + getitem .@reward[1], .@reward[0]; + close; + } + end; } diff --git a/npc/custom/etc/stock_market.txt b/npc/custom/etc/stock_market.txt index 060228317..078ce5137 100644 --- a/npc/custom/etc/stock_market.txt +++ b/npc/custom/etc/stock_market.txt @@ -431,7 +431,7 @@ S_Buy: mes $S10N$; next; menu "Continue",-,"Cancel",S_Start; - + mes "Enter the name of the share company"; mes "Transaction fee of ^FF0000" + $S_Trans + "z^000000 will apply."; set @buyname$,"0"; @@ -645,7 +645,6 @@ ACCS11: next; goto S_Start; - // GM MENU // GM_Menu: mes "[Stock Market]"; diff --git a/npc/custom/events/mushroom_event.txt b/npc/custom/events/mushroom_event.txt index 1d632d3e9..29faaf979 100644 --- a/npc/custom/events/mushroom_event.txt +++ b/npc/custom/events/mushroom_event.txt @@ -14,13 +14,13 @@ prontera,142,228,6 script Find the Mushroom BLACK_MUSHROOM,{ mes "[ Find The Mushroom ]"; - if (!.Status) + if (!.status) mes "There is no event at the moment!"; else { mes "There are "+.Spawn+" Mushrooms left in "+.Map$+"!"; mes "Find and kill the mushrooms to gain "+getitemname(.Prize)+"!"; } - if (.Status || getgmlevel() < .GM) close; + if (.status || getgmlevel() < .GM) close; mes "Start the event?"; next; if(select("- No:- Yes") == 1) close; @@ -33,14 +33,14 @@ OnInit: set .Prize,512; // Reward item ID set .Amount,10; // Reward item amount set .GM,60; // GM level required to access NPC - setarray .Maps$[0],"izlude","geffen","morocc","prontera"; // Possible maps + setarray .maps$[0],"izlude","geffen","morocc","prontera"; // Possible maps end; OnMinute10: // Start time (every hour) - if (.Status) end; - set .Status,1; + if (.status) end; + set .status,1; set .Spawn,rand(1,10); // How many Mushrooms should spawn? - set .Map$,.Maps$[rand(getarraysize(.Maps$))]; + set .Map$,.maps$[rand(getarraysize(.maps$))]; killmonster .Map$,"All"; monster .Map$,0,0,"Please don't kill me!",1084,.Spawn,strnpcinfo(0)+"::OnMobKilled"; announce "Find the Mushroom : Total of "+.Spawn+" Mushrooms have been spawned in "+.Map$+"!",0; @@ -54,7 +54,7 @@ OnMobKilled: if (.Spawn) announce "[ "+strcharinfo(0)+" ] has killed a Mushroom. There are now "+.Spawn+" Mushroom(s) left.",bc_map; else { announce "The Find the Mushroom Event has ended. All the Mushrooms have been killed.",0; - set .Status,0; + set .status,0; } end; } diff --git a/npc/custom/events/valentinesdayexp.txt b/npc/custom/events/valentinesdayexp.txt index 5a94bc913..4ed24012d 100644 --- a/npc/custom/events/valentinesdayexp.txt +++ b/npc/custom/events/valentinesdayexp.txt @@ -200,7 +200,7 @@ prt_castle,54,34,4 script Carl Orleans#val1 1_M_01,{ mes "Yes? What can I cook for you?"; next; menu "Black handmade Chocolate, please",-,"I want a White handmade Chocolate...",M_WHITE,"I'm lost, sorry to bother you.",M_End; - + mes "[Carl Orleans]"; mes "Well, I just might be able to fulfill your needs..."; next; diff --git a/npc/custom/item_signer.txt b/npc/custom/item_signer.txt index 243ca29c2..ee03c16eb 100644 --- a/npc/custom/item_signer.txt +++ b/npc/custom/item_signer.txt @@ -12,7 +12,6 @@ //============================================================ prt_in,24,61,7 script Perchik 1_M_01,{ - setarray .@item[0],644,3; // Item requirements: <ID>,<Count>{,...} (0 to disable) setarray .@cost[0],0,5000; // Zeny requirements: <base price>,<price per refine> diff --git a/npc/custom/jobmaster.txt b/npc/custom/jobmaster.txt index ca102ed76..c497ceef3 100644 --- a/npc/custom/jobmaster.txt +++ b/npc/custom/jobmaster.txt @@ -73,7 +73,7 @@ prontera,153,193,6 script Job Master 2_F_MAGICMASTER,{ if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) { .@newclass = roclass(.@eac|EAJL_THIRD); .@required_jlevel = 99; - } else if (Class == Job_Ninja) { + } else if (Class == Job_Ninja || Class == Job_Gunslinger) { .@newclass = .@job1; .@required_jlevel = 70; } @@ -253,7 +253,7 @@ OnInit: .rebirth_jlevel = 50; // Minimum base job level to reborn OR change to third class .jobchange_first = 10; // Minimum job level to turn into 1st class .jobchange_second = 40; // Minimum job level to turn into 2nd class - .third_classes = 1; // Enable third classes? (1: yes / 0: no) + .third_classes = 1; // Enable third classes/Extended Classes? (1: yes / 0: no) .supernovice_level = 45; // Minimum base level to turn into Super Novice .linear_jobchange = 1; // Enforce linear class changes? (1: yes / 0: no) .skill_point_check = 1; // Force player to use up all skill points? (1: yes / 0: no) diff --git a/npc/custom/quests/kaho_balmung.txt b/npc/custom/quests/kaho_balmung.txt index 4e598922d..ff581825b 100644 --- a/npc/custom/quests/kaho_balmung.txt +++ b/npc/custom/quests/kaho_balmung.txt @@ -12,10 +12,9 @@ //============================================================ prontera,158,356,4 script Royal Messenger 8W_SOLDIER,{ - setarray .@Req1[0],1161,999,120,984,10,996,10,994,10,995,10,997,10; setarray .@Req2[0],5013,2298,1,1001,10,996,10,994,10,995,10,997,10; - + mes "[Royal Messenger]"; mes "Welcome to Prontera."; mes "I am the messenger in charge of the Royal Quests."; diff --git a/npc/custom/quests/may_hats.txt b/npc/custom/quests/may_hats.txt index ce2c09764..1739fee07 100644 --- a/npc/custom/quests/may_hats.txt +++ b/npc/custom/quests/may_hats.txt @@ -36,7 +36,7 @@ gonryun,187,140,4 script Yakima 4_F_EINWOMAN,{ next; menu "Yeah.",-,"Nay.",M_Exit; - if(countitem(5067) < 1 || countitem(916) < 920 || countitem(925) < 310) goto L_NOITEM;//Items: Sombrero, Feather_of_Birds, Bill_of_Birds, + if(countitem(5067) < 1 || countitem(916) < 920 || countitem(925) < 310) goto l_noitem;//Items: Sombrero, Feather_of_Birds, Bill_of_Birds, delitem 5067,1;//Items: Sombrero, delitem 916,920;//Items: Feather_of_Birds, delitem 925,310;//Items: Bill_of_Birds, @@ -63,7 +63,7 @@ M_2: next; menu "Yeah.",-,"Nay.",M_Exit; - if(countitem(5098) < 1 || countitem(1030) < 10 || countitem(1029) < 30 || countitem(7267) < 300) goto L_NOITEM;//Items: Tiger_Mask, Tiger_Skin, Tiger's_Footskin, Tiger_Panty, + if(countitem(5098) < 1 || countitem(1030) < 10 || countitem(1029) < 30 || countitem(7267) < 300) goto l_noitem;//Items: Tiger_Mask, Tiger_Skin, Tiger's_Footskin, Tiger_Panty, delitem 5098,1;//Items: Tiger_Mask, delitem 1030,10;//Items: Tiger's_Footskin, delitem 1029,30;//Items: Tiger_Skin, @@ -92,7 +92,7 @@ M_3: next; menu "Yeah.",-,"Nay.",M_Exit; - if(countitem(2508) < 1 || countitem(2506) < 2 || countitem(2609) < 3 || countitem(7207) < 10) goto L_NOITEM;//Items: Ragamuffin_Manteau, Manteau_, Skull_Ring, Old_Manteau, + if(countitem(2508) < 1 || countitem(2506) < 2 || countitem(2609) < 3 || countitem(7207) < 10) goto l_noitem;//Items: Ragamuffin_Manteau, Manteau_, Skull_Ring, Old_Manteau, delitem 2508,1;//Items: Ragamuffin_Manteau, delitem 2506,2;//Items: Manteau_, delitem 2609,3;//Items: Skull_Ring, @@ -121,7 +121,7 @@ M_4: next; menu "Yeah.",-,"Nay.",M_Exit; - if(countitem(2269) < 3 || countitem(2207) < 3 || countitem(2612) < 2 || countitem(2287)<3 ) goto L_NOITEM;//Items: Romantic_Flower, Fancy_Flower, Flower_Ring, + if(countitem(2269) < 3 || countitem(2207) < 3 || countitem(2612) < 2 || countitem(2287)<3 ) goto l_noitem;//Items: Romantic_Flower, Fancy_Flower, Flower_Ring, delitem 2269,3;//Items: Romantic_Flower, delitem 2207,3;//Items: Fancy_Flower, delitem 2612,2;//Items: Flower_Ring, @@ -152,7 +152,7 @@ M_5: next; menu "Yeah.",-,"Nay.",M_Exit; - if(countitem(975) < 1 || countitem(980) < 1 || countitem(2272) < 2 || countitem(2262) < 3 || countitem(7298) < 180 || countitem(7164) < 20) goto L_NOITEM;//Items: Scarlet_Dyestuff, Orange_Dyestuff, Stop_Post, Clown_Nose, Fig_Leaf, Solid_Peach, + if(countitem(975) < 1 || countitem(980) < 1 || countitem(2272) < 2 || countitem(2262) < 3 || countitem(7298) < 180 || countitem(7164) < 20) goto l_noitem;//Items: Scarlet_Dyestuff, Orange_Dyestuff, Stop_Post, Clown_Nose, Fig_Leaf, Solid_Peach, delitem 975,1;//Items: Scarlet_Dyestuff, delitem 980,1;//Items: Orange_Dyestuff, delitem 2272,2;//Items: Stop_Post, @@ -165,7 +165,7 @@ M_5: mes callfunc("F_Bye"); close; -L_NOITEM: +l_noitem: mes "[Yakima]"; mes "You are lack of items. Please, get all the items."; emotion e_sry; diff --git a/npc/custom/quests/questboard.txt b/npc/custom/quests/questboard.txt index 3e7a90d9d..e4336a67a 100644 --- a/npc/custom/quests/questboard.txt +++ b/npc/custom/quests/questboard.txt @@ -16,7 +16,6 @@ //============================================================ prontera,129,215,5 script Questboard 4_BOARD3,{ - if(c_run==1){ mes "[^FF7700Questboard^000000]"; mes "^0000FF"+getd("." + currentquest$ + "_collectionname$")+"^000000"; @@ -40,7 +39,7 @@ prontera,129,215,5 script Questboard 4_BOARD3,{ } goto L_checkitems; } - + if(h_run==1){ mes "[^FF7700Questboard^000000]"; mes "^0000FF"+getd("." + currentquest$ + "_huntingname$")+"^000000"; @@ -69,114 +68,112 @@ prontera,129,215,5 script Questboard 4_BOARD3,{ } goto L_checkmobs; } - + L_questmenu: mes "[^FF7700Questboard^000000]"; mes "Select category:"; next; - + switch(select((.collection)?"Collection Quests":"", - (.hunting)?"Hunting Quests":"", - "Exit")) { - -case 1: - set .@collectmenu$, ""; - for( set .@i,0; .@i < .collectionquestcount; set .@i,.@i+1) { - if (.@i) set .@collectmenu$,.@collectmenu$+":"; - set .@collectmenu$, .@collectmenu$ + "[" + getd("." +(.@i+1)+"_collectionmin") + " - " + getd("." +(.@i+1)+"_collectionmax") + "] " + getd("." + (.@i+1) + "_collectionname$"); - } - set .@selection,select(.@collectmenu$); - if(gettimetick(2) < getd(.@selection + "_collection_delay")){ - set .@time_left, getd(.@selection + "_collection_delay")-gettimetick(2); - mes "[^FF7700Questboard^000000]"; - if(.@time_left < 60) mes "You have to wait ^0000FF"+.@time_left+" seconds^000000 to do this quest again."; - if(.@time_left < 3600) mes "You have to wait ^0000FF"+.@time_left/60+" minutes^000000 to do this quest again."; - mes "You have to wait ^0000FF"+.@time_left/60/60+" hours^000000 to do this quest again."; - close; - } - mes "[^FF7700Questboard^000000]"; - mes "^0000FF"+getd("." + .@selection + "_collectionname$")+"^000000"; - mes "--------------------------------"; - for( set .@j, 0; .@j < getarraysize(getd("."+ .@selection + "_collectionitem")); set .@j,.@j+2) { - mes "^FF0000"+getitemname(getd("."+.@selection+"_collectionitem["+.@j+"]"))+" - "+getd("."+.@selection+"_collectionitem["+(.@j+1)+"]")+" ea.^000000"; - } - mes "--------------------------------"; - mes "[Reward]"; - mes "Item: ^0000FF"+((getd("." +.@selection+"_collectionprize"))?getitemname(getd("." +.@selection+"_collectionprize"))+" - "+getd("." +.@selection+"_collectionamount")+" ea.^000000":"Nothing^000000"); - mes "Zeny: ^0000FF"+getd("." +.@selection+"_collectionzeny")+"^000000"; - mes "Base EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+0+"]")+"^000000"; - mes "Job EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+1+"]")+"^000000"; - next; - if(select("Accept:Decline") == 2){ - close; - } - if(BaseLevel >= getd("." +.@selection+"_collectionmin") && BaseLevel <= getd("." +.@selection+"_collectionmax")) - { - mes "[^FF7700Questboard^000000]"; - mes "Quest accepted."; - set c_run, 1; - set currentquest$, .@selection; - close; - } - else - { - mes "[^FF7700Questboard^000000]"; - mes "You don't have the required"; - mes "level to do this quest."; - close; - } - -case 2: - set .@huntmenu$, ""; - for( set .@i,0; .@i < .huntingquestcount; set .@i,.@i+1) { - if (.@i) set .@huntmenu$,.@huntmenu$+":"; - set .@huntmenu$, .@huntmenu$ + "[" + getd("." +(.@i+1)+"_huntingmin") + " - " + getd("." +(.@i+1)+"_huntingmax") + "] " + getd("." + (.@i+1) + "_huntingname$"); - } - set .@selection,select(.@huntmenu$); - if(gettimetick(2) < getd(.@selection + "_hunting_delay")){ - set .@time_left, getd(.@selection + "_hunting_delay")-gettimetick(2); - mes "[^FF7700Questboard^000000]"; - if(.@time_left < 60) mes "You have to wait ^0000FF"+.@time_left+" seconds^000000 to do this quest again."; - if(.@time_left < 3600) mes "You have to wait ^0000FF"+.@time_left/60+" minutes^000000 to do this quest again."; - mes "You have to wait ^0000FF"+.@time_left/60/60+" hours^000000 to do this quest again."; - close; - } - mes "[^FF7700Questboard^000000]"; - mes "^0000FF"+getd("." + .@selection + "_huntingname$")+"^000000"; - mes "--------------------------------"; - for( set .@j, 0; .@j < getarraysize(getd("."+ .@selection + "_huntingmob")); set .@j,.@j+2) { - mes "^FF0000"+strmobinfo(1,getd("."+.@selection+"_huntingmob["+.@j+"]"))+" - "+getd("."+.@selection+"_huntingmob["+(.@j+1)+"]")+" ea.^000000"; - } - mes "--------------------------------"; - mes "[Reward]"; - mes "Item: ^0000FF"+((getd("." +.@selection+"_huntingprize"))?getitemname(getd("." +.@selection+"_huntingprize"))+" - "+getd("." +.@selection+"_huntingamount")+" ea.^000000":"Nothing^000000"); - mes "Zeny: ^0000FF"+getd("." +.@selection+"_huntingzeny")+"^000000"; - mes "Base EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+0+"]")+"^000000"; - mes "Job EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+1+"]")+"^000000"; - next; - if(select("Accept:Decline") == 2){ - close; - } - if(BaseLevel >= getd("." +.@selection+"_huntingmin") && BaseLevel <= getd("." +.@selection+"_huntingmax")) - { + (.hunting)?"Hunting Quests":"", + "Exit")) { + case 1: + set .@collectmenu$, ""; + for( set .@i,0; .@i < .collectionquestcount; set .@i,.@i+1) { + if (.@i) set .@collectmenu$,.@collectmenu$+":"; + set .@collectmenu$, .@collectmenu$ + "[" + getd("." +(.@i+1)+"_collectionmin") + " - " + getd("." +(.@i+1)+"_collectionmax") + "] " + getd("." + (.@i+1) + "_collectionname$"); + } + set .@selection,select(.@collectmenu$); + if(gettimetick(2) < getd(.@selection + "_collection_delay")){ + set .@time_left, getd(.@selection + "_collection_delay")-gettimetick(2); + mes "[^FF7700Questboard^000000]"; + if(.@time_left < 60) mes "You have to wait ^0000FF"+.@time_left+" seconds^000000 to do this quest again."; + if(.@time_left < 3600) mes "You have to wait ^0000FF"+.@time_left/60+" minutes^000000 to do this quest again."; + mes "You have to wait ^0000FF"+.@time_left/60/60+" hours^000000 to do this quest again."; + close; + } mes "[^FF7700Questboard^000000]"; - mes "Quest accepted."; - set h_run, 1; - set currentquest$, .@selection; - close; - } - else - { + mes "^0000FF"+getd("." + .@selection + "_collectionname$")+"^000000"; + mes "--------------------------------"; + for( set .@j, 0; .@j < getarraysize(getd("."+ .@selection + "_collectionitem")); set .@j,.@j+2) { + mes "^FF0000"+getitemname(getd("."+.@selection+"_collectionitem["+.@j+"]"))+" - "+getd("."+.@selection+"_collectionitem["+(.@j+1)+"]")+" ea.^000000"; + } + mes "--------------------------------"; + mes "[Reward]"; + mes "Item: ^0000FF"+((getd("." +.@selection+"_collectionprize"))?getitemname(getd("." +.@selection+"_collectionprize"))+" - "+getd("." +.@selection+"_collectionamount")+" ea.^000000":"Nothing^000000"); + mes "Zeny: ^0000FF"+getd("." +.@selection+"_collectionzeny")+"^000000"; + mes "Base EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+0+"]")+"^000000"; + mes "Job EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+1+"]")+"^000000"; + next; + if(select("Accept:Decline") == 2){ + close; + } + if(BaseLevel >= getd("." +.@selection+"_collectionmin") && BaseLevel <= getd("." +.@selection+"_collectionmax")) + { + mes "[^FF7700Questboard^000000]"; + mes "Quest accepted."; + set c_run, 1; + set currentquest$, .@selection; + close; + } + else + { + mes "[^FF7700Questboard^000000]"; + mes "You don't have the required"; + mes "level to do this quest."; + close; + } + + case 2: + set .@huntmenu$, ""; + for( set .@i,0; .@i < .huntingquestcount; set .@i,.@i+1) { + if (.@i) set .@huntmenu$,.@huntmenu$+":"; + set .@huntmenu$, .@huntmenu$ + "[" + getd("." +(.@i+1)+"_huntingmin") + " - " + getd("." +(.@i+1)+"_huntingmax") + "] " + getd("." + (.@i+1) + "_huntingname$"); + } + set .@selection,select(.@huntmenu$); + if(gettimetick(2) < getd(.@selection + "_hunting_delay")){ + set .@time_left, getd(.@selection + "_hunting_delay")-gettimetick(2); + mes "[^FF7700Questboard^000000]"; + if(.@time_left < 60) mes "You have to wait ^0000FF"+.@time_left+" seconds^000000 to do this quest again."; + if(.@time_left < 3600) mes "You have to wait ^0000FF"+.@time_left/60+" minutes^000000 to do this quest again."; + mes "You have to wait ^0000FF"+.@time_left/60/60+" hours^000000 to do this quest again."; + close; + } mes "[^FF7700Questboard^000000]"; - mes "You don't have the required"; - mes "level to do this quest."; + mes "^0000FF"+getd("." + .@selection + "_huntingname$")+"^000000"; + mes "--------------------------------"; + for( set .@j, 0; .@j < getarraysize(getd("."+ .@selection + "_huntingmob")); set .@j,.@j+2) { + mes "^FF0000"+strmobinfo(1,getd("."+.@selection+"_huntingmob["+.@j+"]"))+" - "+getd("."+.@selection+"_huntingmob["+(.@j+1)+"]")+" ea.^000000"; + } + mes "--------------------------------"; + mes "[Reward]"; + mes "Item: ^0000FF"+((getd("." +.@selection+"_huntingprize"))?getitemname(getd("." +.@selection+"_huntingprize"))+" - "+getd("." +.@selection+"_huntingamount")+" ea.^000000":"Nothing^000000"); + mes "Zeny: ^0000FF"+getd("." +.@selection+"_huntingzeny")+"^000000"; + mes "Base EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+0+"]")+"^000000"; + mes "Job EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+1+"]")+"^000000"; + next; + if(select("Accept:Decline") == 2){ + close; + } + if(BaseLevel >= getd("." +.@selection+"_huntingmin") && BaseLevel <= getd("." +.@selection+"_huntingmax")) + { + mes "[^FF7700Questboard^000000]"; + mes "Quest accepted."; + set h_run, 1; + set currentquest$, .@selection; + close; + } + else + { + mes "[^FF7700Questboard^000000]"; + mes "You don't have the required"; + mes "level to do this quest."; + close; + } + case 3: close; } - -case 3: - close; - } - + L_checkitems: for( set .@k,0; .@k < getarraysize(getd("."+currentquest$+"_collectionitem")); set .@k,.@k+2) { if(countitem(getd("."+currentquest$+"_collectionitem["+.@k+"]"))>=getd("."+currentquest$+"_collectionitem["+(.@k+1)+"]")){ @@ -200,7 +197,7 @@ L_checkitems: set currentquest$, ""; set c_run, 0; close; - + L_checkmobs: set .@goal, (getarraysize(getd("."+currentquest$+"_huntingmob"))/2); for(set .@i, 1; .@i < getarraysize(getd("."+currentquest$+"_huntingmob")); set .@i,.@i+2){ @@ -214,7 +211,7 @@ L_checkmobs: } goto L_checkmobs2; } - + L_checkmobs2: if(.@checkmonster<.@goal){ mes "[^FF7700Questboard^000000]"; @@ -248,33 +245,30 @@ OnNPCKillEvent: continue; } end; - -OnInit: +OnInit: function AddCollection; function AddHunting; //Activate/Deactive quest categories here set .collection, 1; set .hunting, 1; - + //Quest Delay (seconds) //24 hours = 86400 seconds set .quest_delay, 0; - + //Checks if quests are loaded (prevents out of index) if(.questsloaded==1) end; - set .questsloaded, 1; - - //Add Collection Quests here - //AddCollection("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Item ID>,<Item Amount>,...); - - - //Add Hunting Quests here - //AddHunting("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Monster ID>,<Monster Amount>,...); - - end; - + set .questsloaded, 1; + + //Add Collection Quests here + //AddCollection("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Item ID>,<Item Amount>,...); + + //Add Hunting Quests here + //AddHunting("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Monster ID>,<Monster Amount>,...); + + end; function AddCollection { set .collectionquestcount,.collectionquestcount+1; diff --git a/npc/custom/quests/tha_statues.txt b/npc/custom/quests/tha_statues.txt index c4787fcd3..00a7c9a8f 100644 --- a/npc/custom/quests/tha_statues.txt +++ b/npc/custom/quests/tha_statues.txt @@ -38,7 +38,6 @@ done: mes "[Thalos]"; mes "Go search the 2nd Statue!"; close; - } tha_t09,84,99,4 script Mediane HIDDEN_NPC,{ diff --git a/npc/custom/quests/thq/THQS_QuestNPC.txt b/npc/custom/quests/thq/THQS_QuestNPC.txt index 76790221b..d4e058fb4 100644 --- a/npc/custom/quests/thq/THQS_QuestNPC.txt +++ b/npc/custom/quests/thq/THQS_QuestNPC.txt @@ -66,7 +66,7 @@ N_NewQuest: mes "Would you like me to asign you a Quest?"; next; menu "Yes I would like a Quest Please.",-,"Sorry Guy no time today.",N_NoTime; - + mes "[Guy]"; mes "Ok lets see what quest we can give you today."; mes "The quest names in ^FF0000This Colour^000000 mean that they are more challanging then the rest, but have better rewards."; diff --git a/npc/custom/warper.txt b/npc/custom/warper.txt index 4e85119dd..0f28ef40b 100644 --- a/npc/custom/warper.txt +++ b/npc/custom/warper.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Euphy //===== Current Version: ===================================== -//= 1.4 +//= 1.4b //===== Description: ========================================= //= A complete - but very condensed - warper script. //= Some coordinates written by Tekno-Kanix and ToastOfDoom. @@ -14,6 +14,8 @@ //= 1.3 Added Renewal checks and Instances menu. //= Aligned coordinates with @go. //= 1.4 Added new Guild Dungeons. +//= 1.4a Slight edits. +//= 1.4b Added Wolfchev's Laboratory warp. //============================================================ - script Warper -1,{ @@ -24,15 +26,19 @@ function Go; function Disp; function Pick; function Restrict; // -------------------------------------------------- menu "Last Warp ^777777["+lastwarp$+"]^000000",-, - " ~ Towns",Towns, " ~ Fields",Fields, " ~ Dungeons",Dungeons, - " ~ Guild Castles",Castles, " ~ Guild Dungeons",Guild_Dungeons, - " ~ Instances",Instances, " ~ Special Areas",Special; + " ~ Towns",Towns, + " ~ Fields",Fields, + " ~ Dungeons",Dungeons, + " ~ Guild Castles",Castles, + " ~ Guild Dungeons",Guild_Dungeons, + " ~ Instances",Instances, + " ~ Special Areas",Special; if (lastwarp$ == "") message strcharinfo(0),"You haven't warped anywhere yet."; else warp lastwarp$,lastwarpx,lastwarpy; - close; + end; // ------------------- Functions ------------------- // * Go("<map>",<x>,<y>); @@ -58,50 +64,51 @@ menu "Last Warp ^777777["+lastwarp$+"]^000000",-, // -------------------------------------------------- function Go { + lastwarp$ = getarg(0); + lastwarpx = getarg(1,0); + lastwarpy = getarg(2,0); warp getarg(0),getarg(1,0),getarg(2,0); - getmapxy(lastwarp$,lastwarpx,lastwarpy,0); end; } function Disp { if (getargcount() < 3) - set @menu$, getarg(0); + @menu$ = getarg(0); else { - set @menu$,""; - for(set .@i,getarg(1); .@i<=getarg(2); set .@i,.@i+1) - set @menu$, @menu$+getarg(0)+" "+.@i+":"; + @menu$ = ""; + for (.@i = getarg(1); .@i <= getarg(2); .@i++) + @menu$ = @menu$+getarg(0)+" "+.@i+":"; } return; } function Pick { - set .@warp_block,@warp_block; - set @warp_block,0; + .@warp_block = @warp_block; + @warp_block = 0; + .@select = select(@menu$); if (getarg(0) == "") { - set .@select, select(@menu$); - set .@i, .@select; - set .@map$, getarg(.@i); + .@i = .@select; + .@map$ = getarg(.@i); } else { - set .@select, select(@menu$); - set .@i, .@select-getarg(1,0); - set .@map$, getarg(0)+((.@i<10)?"0":"")+.@i; + .@i = .@select-getarg(1,0); + .@map$ = getarg(0)+((.@i<10)?"0":"")+.@i; } if (.@warp_block & (1<<.@select)) { message strcharinfo(0),"This map is not enabled in "+(RENEWAL?"":"Pre-")+"Renewal."; - close; + end; } - warp .@map$,@c[.@i*2],@c[.@i*2+1]; - getmapxy(lastwarp$,lastwarpx,lastwarpy,0); + .@x = @c[.@i*2]; + .@y = @c[.@i*2+1]; deletearray @c[0],getarraysize(@c); - end; + Go(.@map$,.@x,.@y); } function Restrict { if ((getarg(0) == "RE" && !RENEWAL) || (getarg(0) == "Pre-RE" && RENEWAL)) { if (getarg(1,0)) { - set @warp_block,0; - for(set .@i,1; .@i<getargcount(); set .@i,.@i+1) - set @warp_block, @warp_block | (1<<getarg(.@i)); + @warp_block = 0; + for (.@i = 1; .@i < getargcount(); .@i++) + @warp_block = @warp_block | (1<<getarg(.@i)); } else { message strcharinfo(0),"This map is not enabled in "+(RENEWAL?"":"Pre-")+"Renewal."; - close; + end; } } return; @@ -111,13 +118,13 @@ function Restrict { Towns: // -------------------------------------------------- menu "Prontera",T1, "Alberta",T2, "Aldebaran",T3, "Amatsu",T4, "Ayothaya",T5, - "Brasilis",T6, "Comodo",T7, "Dewata",T8, "Eclage",T9, "Einbech",T10, - "Einbroch",T11, "El Dicastes",T12, "Geffen",T13, "Gonryun",T14, "Hugel",T15, - "Izlude",T16, "Jawaii",T17, "Lighthalzen",T18, "Louyang",T19, "Lutie",T20, - "Malangdo",T21, "Malaya",T22, "Manuk",T23, "Midgarts Expedition Camp",T24, - "Mora",T25, "Morroc",T26, "Moscovia",T27, "Nameless Island",T28, - "Niflheim",T29, "Payon",T30, "Rachel",T31, "Splendide",T32, "Thor Camp",T33, - "Umbala",T34, "Veins",T35, "Yuno",T36; + "Brasilis",T6, "Comodo",T7, "Dewata",T8, "Eclage",T9, "Einbech",T10, + "Einbroch",T11, "El Dicastes",T12, "Geffen",T13, "Gonryun",T14, "Hugel",T15, + "Izlude",T16, "Jawaii",T17, "Lighthalzen",T18, "Louyang",T19, "Lutie",T20, + "Malangdo",T21, "Malaya",T22, "Manuk",T23, "Midgarts Expedition Camp",T24, + "Mora",T25, "Morroc",T26, "Moscovia",T27, "Nameless Island",T28, + "Niflheim",T29, "Payon",T30, "Rachel",T31, "Splendide",T32, "Thor Camp",T33, + "Umbala",T34, "Veins",T35, "Yuno",T36; T1: Go("prontera",155,183); T2: Go("alberta",28,234); @@ -134,23 +141,23 @@ T9: Restrict("RE"); T10: Go("einbech",63,35); T11: Go("einbroch",64,200); T12: Restrict("RE"); - Go("dicastes01",198,187); + Go("dicastes01",198,187); T13: Go("geffen",119,59); T14: Go("gonryun",160,120); T15: Go("hugel",96,145); -T16: Go("izlude",128,114); +T16: Go("izlude",128,(RENEWAL?146:114)); T17: Go("jawaii",251,132); T18: Go("lighthalzen",158,92); T19: Go("louyang",217,100); T20: Go("xmas",147,134); T21: Restrict("RE"); - Go("malangdo",140,114); + Go("malangdo",140,114); T22: Restrict("RE"); - Go("malaya",212,206); + Go("malaya",231,200); T23: Go("manuk",282,138); T24: Go("mid_camp",210,288); T25: Restrict("RE"); - Go("mora",55,146); + Go("mora",55,146); T26: Go("morocc",156,93); T27: Go("moscovia",223,184); T28: Go("nameless_n",256,215); @@ -167,15 +174,15 @@ T36: Go("yuno",157,51); Fields: // -------------------------------------------------- menu "Amatsu Fields",F1, "Ayothaya Fields",F2, "Bifrost Fields", F3, - "Brasilis Fields",F4, "Comodo Fields",F5, "Dewata Fields",F6, - "Eclage Fields",F7, "Einbroch Fields",F8, "El Dicastes Fields",F9, - "Geffen Fields",F10, "Gonryun Fields",F11, "Hugel Fields",F12, - "Lighthalzen Fields",F13, "Louyang Field",F14, "Lutie Field",F15, - "Malaya Fields",F16, "Manuk Fields",F17, "Mjolnir Fields",F18, - "Moscovia Fields",F19, "Niflheim Fields",F20, "Payon Forests",F21, - "Prontera Fields",F22, "Rachel Fields",F23, "Sograt Deserts",F24, - "Splendide Fields",F25, "Umbala Fields",F26, "Veins Fields",F27, - "Yuno Fields",F28; + "Brasilis Fields",F4, "Comodo Fields",F5, "Dewata Fields",F6, + "Eclage Fields",F7, "Einbroch Fields",F8, "El Dicastes Fields",F9, + "Geffen Fields",F10, "Gonryun Fields",F11, "Hugel Fields",F12, + "Lighthalzen Fields",F13, "Louyang Field",F14, "Lutie Field",F15, + "Malaya Fields",F16, "Manuk Fields",F17, "Mjolnir Fields",F18, + "Moscovia Fields",F19, "Niflheim Fields",F20, "Payon Forests",F21, + "Prontera Fields",F22, "Rachel Fields",F23, "Sograt Deserts",F24, + "Splendide Fields",F25, "Umbala Fields",F26, "Veins Fields",F27, + "Yuno Fields",F28; F1: setarray @c[2],190,197; Disp("Amatsu Field",1,1); Pick("ama_fild"); @@ -203,67 +210,67 @@ F9: Restrict("RE"); setarray @c[2],143,132,143,217; Disp("El Dicastes Field",1,2); Pick("dic_fild"); F10: Restrict("Pre-RE",13,15); - setarray @c[0],46,199,213,204,195,212,257,192,188,171,166,263,248,158,195,191,186,183,221,117,178,218,136,328,240,181,235,235,211,185; - Disp("Geffen Field",0,14); Pick("gef_fild",1); + setarray @c[0],46,199,213,204,195,212,257,192,188,171,166,263,248,158,195,191,186,183,221,117,178,218,136,328,240,181,235,235,211,185; + Disp("Geffen Field",0,14); Pick("gef_fild",1); F11: setarray @c[2],220,227; - Disp("Gonryun Field",1,1); Pick("gon_fild"); + Disp("Gonryun Field",1,1); Pick("gon_fild"); F12: Restrict("Pre-RE",3,7); - setarray @c[2],268,101,222,193,232,185,252,189,196,106,216,220,227,197; - Disp("Hugel Field",1,7); Pick("hu_fild"); + setarray @c[2],268,101,222,193,232,185,252,189,196,106,216,220,227,197; + Disp("Hugel Field",1,7); Pick("hu_fild"); F13: setarray @c[2],240,179,185,235,240,226; - Disp("Lighthalzen Field",1,3); Pick("lhz_fild"); + Disp("Lighthalzen Field",1,3); Pick("lhz_fild"); F14: setarray @c[2],229,187; - Disp("Louyang Field",1,1); Pick("lou_fild"); + Disp("Louyang Field",1,1); Pick("lou_fild"); F15: setarray @c[2],115,145; - Disp("Lutie Field",1,1); Pick("xmas_fild"); + Disp("Lutie Field",1,1); Pick("xmas_fild"); F16: Restrict("RE"); - setarray @c[2],40,272,207,180; - Disp("Malaya Field",1,2); Pick("ma_fild"); + setarray @c[2],40,272,207,180; + Disp("Malaya Field",1,2); Pick("ma_fild"); F17: setarray @c[2],35,236,35,262,84,365; - Disp("Manuk Field",1,3); Pick("man_fild"); + Disp("Manuk Field",1,3); Pick("man_fild"); F18: setarray @c[2],204,120,175,193,208,213,179,180,181,240,195,270,235,202,188,215,205,144,245,223,180,206,196,208; - Disp("Mjolnir Field",1,12); Pick("mjolnir_"); + Disp("Mjolnir Field",1,12); Pick("mjolnir_"); F19: setarray @c[2],82,104,131,147; - Disp("Moscovia Field",1,2); Pick("mosk_fild"); + Disp("Moscovia Field",1,2); Pick("mosk_fild"); F20: setarray @c[2],215,229,167,234; - Disp("Niflheim Field",1,2); Pick("nif_fild"); + Disp("Niflheim Field",1,2); Pick("nif_fild"); F21: Restrict("Pre-RE",5,11); - setarray @c[2],158,206,151,219,205,148,186,247,134,204,193,235,200,177,137,189,201,224,160,205,194,150; - Disp("Payon Forest",1,11); Pick("pay_fild"); + setarray @c[2],158,206,151,219,205,148,186,247,134,204,193,235,200,177,137,189,201,224,160,205,194,150; + Disp("Payon Forest",1,11); Pick("pay_fild"); F22: setarray @c[0],208,227,190,206,240,206,190,143,307,252,239,213,185,188,193,194,187,218,210,183,195,149,198,164; - Disp("Prontera Field",0,11); Pick("prt_fild",1); + Disp("Prontera Field",0,11); Pick("prt_fild",1); F23: Restrict("Pre-RE",2,7,9,10,11,13); - setarray @c[2],192,162,235,166,202,206,202,208,225,202,202,214,263,196,217,201,87,121,277,181,221,185,175,200,174,197; - Disp("Rachel Field",1,13); Pick("ra_fild"); + setarray @c[2],192,162,235,166,202,206,202,208,225,202,202,214,263,196,217,201,87,121,277,181,221,185,175,200,174,197; + Disp("Rachel Field",1,13); Pick("ra_fild"); F24: setarray @c[2],219,205,177,206,194,182,224,170,198,216,156,187,185,263,206,228,208,238,209,223,85,97,207,202,31,195,38,195; - Disp("Sograt Desert 1:Sograt Desert 2:Sograt Desert 3:Sograt Desert 7:Sograt Desert 11:Sograt Desert 12:Sograt Desert 13:Sograt Desert 16:Sograt Desert 17:Sograt Desert 18:Sograt Desert 19:Sograt Desert 20:Sograt Desert 21:Sograt Desert 22"); - Pick("","moc_fild01","moc_fild02","moc_fild03","moc_fild07","moc_fild11","moc_fild12","moc_fild13","moc_fild16","moc_fild17","moc_fild18","moc_fild19","moc_fild20","moc_fild21","moc_fild22"); + Disp("Sograt Desert 1:Sograt Desert 2:Sograt Desert 3:Sograt Desert 7:Sograt Desert 11:Sograt Desert 12:Sograt Desert 13:Sograt Desert 16:Sograt Desert 17:Sograt Desert 18:Sograt Desert 19:Sograt Desert 20:Sograt Desert 21:Sograt Desert 22"); + Pick("","moc_fild01","moc_fild02","moc_fild03","moc_fild07","moc_fild11","moc_fild12","moc_fild13","moc_fild16","moc_fild17","moc_fild18","moc_fild19","moc_fild20","moc_fild21","moc_fild22"); F25: setarray @c[2],175,186,236,184,188,204; - Disp("Splendide Field",1,3); Pick("spl_fild"); + Disp("Splendide Field",1,3); Pick("spl_fild"); F26: setarray @c[2],217,206,223,221,237,215,202,197; - Disp("Umbala Field",1,4); Pick("um_fild"); + Disp("Umbala Field",1,4); Pick("um_fild"); F27: Restrict("Pre-RE",5); - setarray @c[2],186,175,196,370,222,45,51,250,202,324,150,223,149,307; - Disp("Veins Field",1,7); Pick("ve_fild"); + setarray @c[2],186,175,196,370,222,45,51,250,202,324,150,223,149,307; + Disp("Veins Field",1,7); Pick("ve_fild"); F28: Restrict("Pre-RE",5,10); - setarray @c[2],189,224,192,207,221,157,226,199,223,177,187,232,231,174,196,203,183,214,200,124,195,226,210,304; - Disp("Yuno Field",1,12); Pick("yuno_fild"); + setarray @c[2],189,224,192,207,221,157,226,199,223,177,187,232,231,174,196,203,183,214,200,124,195,226,210,304; + Disp("Yuno Field",1,12); Pick("yuno_fild"); // -------------------------------------------------- Dungeons: // -------------------------------------------------- menu "Abyss Lakes",D1, "Amatsu Dungeon",D2, "Anthell",D3, - "Ayothaya Dungeon",D4, "Beach Dungeon",D5, "Bio Labs",D6, - "Brasilis Dungeon",D7, "Byalan Dungeon",D8, "Clock Tower",D9, - "Coal Mines",D10, "Culvert",D11, "Cursed Abbey",D12, "Dewata Dungeon",D13, - "Einbroch Dungeon",D14, "Gefenia",D15, "Geffen Dungeon",D16, - "Glast Heim",D17, "Gonryun Dungeon",D18, "Hidden Dungeon",D19, - "Ice Dungeon",D20, "Juperos",D21, "Kiel Dungeon",D22, "Louyang Dungeon",D23, - "Magma Dungeon",D24, "Malangdo Dungeon",D25, "Moscovia Dungeon",D26, - "Nidhogg's Dungeon",D27, "Odin Temple",D28, "Orc Dungeon",D29, - "Payon Dungeon",D30, "Pyramids",D31, "Rachel Sanctuary",D32, - "Scaraba Hole",D33, "Sphinx",D34, "Sunken Ship",D35, "Thanatos Tower",D36, - "Thor Volcano",D37, "Toy Factory",D38, "Turtle Dungeon",D39, "Umbala Dungeon",D40; + "Ayothaya Dungeon",D4, "Beach Dungeon",D5, "Bifrost Tower",D41, + "Bio Labs",D6, "Brasilis Dungeon",D7, "Byalan Dungeon",D8, "Clock Tower",D9, + "Coal Mines",D10, "Culvert",D11, "Cursed Abbey",D12, "Dewata Dungeon",D13, + "Einbroch Dungeon",D14, "Gefenia",D15, "Geffen Dungeon",D16, + "Glast Heim",D17, "Gonryun Dungeon",D18, "Hidden Dungeon",D19, + "Ice Dungeon",D20, "Juperos",D21, "Kiel Dungeon",D22, "Louyang Dungeon",D23, + "Magma Dungeon",D24, "Malangdo Dungeon",D25, "Moscovia Dungeon",D26, + "Nidhogg's Dungeon",D27, "Odin Temple",D28, "Orc Dungeon",D29, + "Payon Dungeon",D30, "Pyramids",D31, "Rachel Sanctuary",D32, + "Scaraba Hole",D33, "Sphinx",D34, "Sunken Ship",D35, "Thanatos Tower",D36, + "Thor Volcano",D37, "Toy Factory",D38, "Turtle Dungeon",D39, "Umbala Dungeon",D40; D1: setarray @c[2],261,272,275,270,116,27; Disp("Abyss Lakes",1,3); Pick("abyss_"); @@ -288,80 +295,85 @@ D9: setarray @c[2],199,159,148,283,65,147,56,155,297,25,127,169,277,178,268,74; Disp("Clock Tower 1:Clock Tower 2:Clock Tower 3:Clock Tower 4:Basement 1:Basement 2:Basement 3:Basement 4"); Pick("","c_tower1","c_tower2","c_tower3","c_tower4","alde_dun01","alde_dun02","alde_dun03","alde_dun04"); D10: setarray @c[2],52,17,381,343,302,262; - Disp("Coal Mines",1,3); Pick("mjo_dun"); + Disp("Coal Mines",1,3); Pick("mjo_dun"); D11: setarray @c[2],131,247,19,19,180,169,100,92; - Disp("Culvert",1,4); Pick("","prt_sewb1","prt_sewb2","prt_sewb3","prt_sewb4"); + Disp("Culvert",1,4); Pick("","prt_sewb1","prt_sewb2","prt_sewb3","prt_sewb4"); D12: setarray @c[2],51,14,150,11,120,10; - Disp("Cursed Abbey",1,3); Pick("abbey"); + Disp("Cursed Abbey",1,3); Pick("abbey"); D13: Restrict("RE"); - setarray @c[2],285,160,299,29; - Disp("Dewata Dungeon",1,2); Pick("dew_dun"); + setarray @c[2],285,160,299,29; + Disp("Dewata Dungeon",1,2); Pick("dew_dun"); D14: setarray @c[2],22,14,292,290; - Disp("Einbroch Dungeon",1,2); Pick("ein_dun"); + Disp("Einbroch Dungeon",1,2); Pick("ein_dun"); D15: setarray @c[2],40,103,203,34,266,168,130,272; - Disp("Gefenia",1,4); Pick("gefenia",0); + Disp("Gefenia",1,4); Pick("gefenia",0); D16: setarray @c[0],104,99,115,236,106,132,203,200; - Disp("Geffen Dungeon",1,4); Pick("gef_dun",1); + Disp("Geffen Dungeon",1,4); Pick("gef_dun",1); D17: setarray @c[2],370,304,199,29,104,25,150,15,157,287,147,15,258,255,108,291,171,283,68,277,156,7,12,7,133,271,224,274,14,70,150,14; - Disp("Entrance:Castle 1:Castle 2:Chivalry 1:Chivalry 2:Churchyard:Culvert 1:Culvert 2:Culvert 3:Culvert 4:St. Abbey:Staircase Dungeon:Underground Cave 1:Underground Cave 2:Underground Prison 1:Underground Prison 2"); - Pick("","glast_01","gl_cas01","gl_cas02","gl_knt01","gl_knt02","gl_chyard","gl_sew01","gl_sew02","gl_sew03","gl_sew04","gl_church","gl_step","gl_dun01","gl_dun02","gl_prison","gl_prison1"); + Disp("Entrance:Castle 1:Castle 2:Chivalry 1:Chivalry 2:Churchyard:Culvert 1:Culvert 2:Culvert 3:Culvert 4:St. Abbey:Staircase Dungeon:Underground Cave 1:Underground Cave 2:Underground Prison 1:Underground Prison 2"); + Pick("","glast_01","gl_cas01","gl_cas02","gl_knt01","gl_knt02","gl_chyard","gl_sew01","gl_sew02","gl_sew03","gl_sew04","gl_church","gl_step","gl_dun01","gl_dun02","gl_prison","gl_prison1"); D18: setarray @c[2],153,53,28,113,68,16; - Disp("Gonryun Dungeon",1,3); Pick("gon_dun"); + Disp("Gonryun Dungeon",1,3); Pick("gon_dun"); D19: setarray @c[2],176,7,93,20,23,8; - Disp("Hidden Dungeon",1,3); Pick("prt_maze"); + Disp("Hidden Dungeon",1,3); Pick("prt_maze"); D20: setarray @c[2],157,14,151,155,149,22,33,158; - Disp("Ice Dungeon",1,4); Pick("ice_dun"); + Disp("Ice Dungeon",1,4); Pick("ice_dun"); D21: setarray @c[2],140,51,53,247,37,63,150,285; - Disp("Entrance:Juperos 1:Juperos 2:Core"); - Pick("","jupe_cave","juperos_01","juperos_02","jupe_core"); + Disp("Entrance:Juperos 1:Juperos 2:Core"); + Pick("","jupe_cave","juperos_01","juperos_02","jupe_core"); D22: setarray @c[2],28,226,41,198; - Disp("Kiel Dungeon",1,2); Pick("kh_dun"); + Disp("Kiel Dungeon",1,2); Pick("kh_dun"); D23: setarray @c[2],218,196,282,20,165,38; - Disp("The Royal Tomb:Inside the Royal Tomb:Suei Long Gon"); Pick("lou_dun"); + Disp("The Royal Tomb:Inside the Royal Tomb:Suei Long Gon"); Pick("lou_dun"); D24: setarray @c[2],126,68,47,30; - Disp("Magma Dungeon",1,2); Pick("mag_dun"); + Disp("Magma Dungeon",1,2); Pick("mag_dun"); D25: Restrict("RE"); - setarray @c[2],33,230; - Disp("Malangdo Dungeon",1,1); Pick("mal_dun"); + setarray @c[2],33,230; + Disp("Malangdo Dungeon",1,1); Pick("mal_dun"); D26: setarray @c[2],189,48,165,30,32,135; - Disp("Moscovia Dungeon",1,3); Pick("mosk_dun"); + Disp("Moscovia Dungeon",1,3); Pick("mosk_dun"); D27: setarray @c[2],61,239,60,271; - Disp("Nidhogg's Dungeon",1,2); Pick("nyd_dun"); + Disp("Nidhogg's Dungeon",1,2); Pick("nyd_dun"); D28: setarray @c[2],298,167,224,149,266,280; - Disp("Odin Temple",1,3); Pick("odin_tem"); + Disp("Odin Temple",1,3); Pick("odin_tem"); D29: setarray @c[2],32,170,21,185; - Disp("Orc Dungeon",1,2); Pick("orcsdun"); + Disp("Orc Dungeon",1,2); Pick("orcsdun"); D30: setarray @c[0],21,183,19,33,19,63,155,159,201,204; - Disp("Payon Dungeon",1,5); Pick("pay_dun",1); -D31: setarray @c[2],192,9,10,192,100,92,181,11,94,96,192,8; - Disp("Pyramids 1:Pyramids 2:Pyramids 3:Pyramids 4:Basement 1:Basement 2"); Pick("moc_pryd"); -D32: setarray @c[2],140,11,32,21,4,149,204,218,150,9; - Disp("Rachel Sanctuary",1,5); Pick("ra_san"); + Disp("Payon Dungeon",1,5); Pick("pay_dun",1); +D31: Restrict("RE",7,8); + setarray @c[2],192,9,10,192,100,92,181,11,94,96,192,8,94,96,192,8; + Disp("Pyramids 1:Pyramids 2:Pyramids 3:Pyramids 4:Basement 1:Basement 2:Basement 1 - Nightmare Mode:Basement 2 - Nightmare Mode"); + Pick("","moc_pryd01","moc_pryd02","moc_pryd03","moc_pryd04","moc_pryd05","moc_pryd06","moc_prydn1","moc_prydn2"); +D32: setarray @c[2],140,11,32,21,8,149,204,218,150,9; + Disp("Rachel Sanctuary",1,5); Pick("ra_san"); D33: Restrict("RE"); - setarray @c[2],364,44,101,141; - Disp("Scaraba Hole",1,2); Pick("dic_dun"); + setarray @c[2],364,44,101,141; + Disp("Scaraba Hole",1,2); Pick("dic_dun"); D34: setarray @c[2],288,9,149,81,210,54,10,222,100,99; - Disp("Sphinx",1,5); Pick("","in_sphinx1","in_sphinx2","in_sphinx3","in_sphinx4","in_sphinx5"); + Disp("Sphinx",1,5); Pick("","in_sphinx1","in_sphinx2","in_sphinx3","in_sphinx4","in_sphinx5"); D35: setarray @c[2],69,24,102,27; - Disp("Sunken Ship",1,2); Pick("treasure"); + Disp("Sunken Ship",1,2); Pick("treasure"); D36: setarray @c[2],150,39,150,136,220,158,59,143,62,11,89,221,35,166,93,148,29,107,159,138,19,20,130,52; - Disp("Thanatos Tower",1,12); Pick("tha_t"); + Disp("Thanatos Tower",1,12); Pick("tha_t"); D37: setarray @c[2],21,228,75,205,34,272; - Disp("Thor Volcano",1,3); Pick("thor_v"); + Disp("Thor Volcano",1,3); Pick("thor_v"); D38: setarray @c[2],205,15,129,133; - Disp("Toy Factory",1,2); Pick("xmas_dun"); + Disp("Toy Factory",1,2); Pick("xmas_dun"); D39: setarray @c[2],154,49,148,261,132,189,100,192; - Disp("Entrance:Turtle Dungeon 1:Turtle Dungeon 2:Turtle Dungeon 3"); Pick("tur_dun"); + Disp("Entrance:Turtle Dungeon 1:Turtle Dungeon 2:Turtle Dungeon 3"); Pick("tur_dun"); D40: Restrict("Pre-RE",1,2); - setarray @c[2],42,31,48,30,204,78; - Disp("Carpenter's Shop in the Tree:Passage to a Foreign World:Hvergermil's Fountain"); - Pick("","um_dun01","um_dun02","yggdrasil01"); + setarray @c[2],42,31,48,30,204,78; + Disp("Carpenter's Shop in the Tree:Passage to a Foreign World:Hvergermil's Fountain"); + Pick("","um_dun01","um_dun02","yggdrasil01"); +D41: Restrict("RE"); + setarray @c[2],57,13,64,88,45,14,26,23; + Disp("Bifrost Tower",1,4); Pick("ecl_tdun"); // -------------------------------------------------- Castles: // -------------------------------------------------- menu "Aldebaran Castles",C1, "Geffen Castles",C2, "Payon Castles",C3, - "Prontera Castles",C4, "Arunafeltz Castles",C5, "Schwaltzvalt Castles",C6; + "Prontera Castles",C4, "Arunafeltz Castles",C5, "Schwaltzvalt Castles",C6; C1: setarray @c[2],48,83,95,249,142,85,239,242,264,90; Disp("Neuschwanstein:Hohenschwangau:Nuenberg:Wuerzburg:Rothenburg"); @@ -386,7 +398,7 @@ C6: setarray @c[2],293,100,288,252,97,196,137,90,71,315; Guild_Dungeons: // -------------------------------------------------- menu "Baldur",G1, "Luina",G2, "Valkyrie",G3, "Britoniah",G4, - "Arunafeltz",G5, "Schwaltzvalt",G6; + "Arunafeltz",G5, "Schwaltzvalt",G6; G1: Restrict("RE",2,3); setarray @c[2],119,93,119,93,120,130; @@ -410,26 +422,37 @@ G6: Go("schg_dun01",200,124); // -------------------------------------------------- Instances: // -------------------------------------------------- +menu "Bakonawa Lake",I1, "Bangungot Hospital 2F",I2, "Buwaya Cave",I3, + "Endless Tower",I4, "Hazy Forest",I5, "Malangdo Culvert",I6, "Nidhoggur's Nest",I7, + "Octopus Cave",I8, "Old Glast Heim",I9, "Orc's Memory",I10, "Sealed Shrine",I11, + "Wolfchev's Laboratory",I12; -menu "Endless Tower",I1, "Hazy Forest",I2, "Malangdo Culvert",I3, - "Nidhoggur's Nest",I4, "Octopus Cave",I5, "Orc's Memory",I6, "Sealed Shrine",I7; - -I1: Go("e_tower",72,112); +I1: Restrict("RE"); + Go("ma_scene01",172,175); I2: Restrict("RE"); - Go("bif_fild01",161,334); + Go("ma_dun01",151,8); I3: Restrict("RE"); - Go("mal_in01",164,21); -I4: Go("nyd_dun02",95,193); + Go("ma_fild02",316,317); +I4: Go("e_tower",72,112); I5: Restrict("RE"); + Go("bif_fild01",161,334); +I6: Restrict("RE"); + Go("mal_in01",164,21); +I7: Go("nyd_dun02",95,193); +I8: Restrict("RE"); Go("mal_dun01",152,230); -I6: Go("gef_fild10",240,198); -I7: Go("monk_test",306,143); +I9: Restrict("RE"); + Go("glast_01",204,268); +I10: Go("gef_fild10",240,198); +I11: Go("monk_test",306,143); +I12: Restrict("RE"); + Go("lhz_dun04",148,269); // -------------------------------------------------- Special: // -------------------------------------------------- menu "Auction Hall",S1, "Battlegrounds",S2, "Casino",S3, "Eden Group Headquarters",S4, - "Gonryun Arena",S5, "Izlude Arena",S6, "Monster Race Arena",S7, "Turbo Track",S8; + "Gonryun Arena",S5, "Izlude Arena",S6, "Monster Race Arena",S7, "Turbo Track",S8; S1: Go("auction_01",22,68); S2: Go("bat_room",154,150); @@ -456,10 +479,10 @@ einbroch,69,202,4 duplicate(Warper) Warper#einbr 4_F_VALKYRIE gef_fild10,71,339,4 duplicate(Warper) Warper#orc 4_F_VALKYRIE geffen,124,72,4 duplicate(Warper) Warper#gef 4_F_VALKYRIE glast_01,372,308,4 duplicate(Warper) Warper#glh 4_F_VALKYRIE -gonryun,165,126,4 duplicate(Warper) Warper#gon 4_F_VALKYRIE +gonryun,162,122,4 duplicate(Warper) Warper#gon 4_F_VALKYRIE hugel,101,151,4 duplicate(Warper) Warper#hug 4_F_VALKYRIE izlu2dun,110,92,4 duplicate(Warper) Warper#izd 4_F_VALKYRIE -izlude,132,120,4 duplicate(Warper) Warper#izl 4_F_VALKYRIE +izlude,134,150,4 duplicate(Warper) Warper#izl 4_F_VALKYRIE //Pre-RE: (132,120) jawaii,253,138,4 duplicate(Warper) Warper#jaw 4_F_VALKYRIE lighthalzen,162,102,4 duplicate(Warper) Warper#lhz 4_F_VALKYRIE louyang,208,103,6 duplicate(Warper) Warper#lou 4_F_VALKYRIE @@ -491,5 +514,5 @@ dewata,204,186,6 duplicate(Warper) Warper#dew 4_F_VALKYRIE dicastes01,194,194,6 duplicate(Warper) Warper#dic 4_F_VALKYRIE ecl_in01,51,60,4 duplicate(Warper) Warper#ecl 4_F_VALKYRIE malangdo,134,117,6 duplicate(Warper) Warper#mal 4_F_VALKYRIE -malaya,210,205,4 duplicate(Warper) Warper#ma 4_F_VALKYRIE +malaya,231,204,4 duplicate(Warper) Warper#ma 4_F_VALKYRIE mora,57,152,4 duplicate(Warper) Warper#mora 4_F_VALKYRIE diff --git a/npc/custom/woe_controller.txt b/npc/custom/woe_controller.txt index 824fa4a4f..ec5bb3d81 100644 --- a/npc/custom/woe_controller.txt +++ b/npc/custom/woe_controller.txt @@ -11,8 +11,8 @@ //= and "rewards" function originally by Goddameit. //===== Additional Comments: ================================= //= Be sure to disable the default agit controllers! -//== npc\guild\agit_controller.txt -//== npc\guild2\agit_start_se.txt +//== npc\woe-fe\agit_controller.txt +//== npc\woe-se\agit_start_se.txt //============================================================ // Information NPC |