* instance_npcname will now error if the NPC being looked up is not found, care of ramsey.

* delitem/2 will now send the close button when failing to find all neccecary items to delete.
- Still do to, items should not be deleted as-found, and should be deleted once counted
and in the event of delitem failure, nothing should be consumed. This is a design flaw
in eathena, and should be fixed as soon as possible.
* Implemented the Endless Tower instance.
* Updated announces and dialogs in KVM.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14395 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
L0ne_W0lf 2010-08-26 22:47:28 +00:00
parent 239a74fc2c
commit aa9990ec16
11 changed files with 4269 additions and 163 deletions

View File

@ -3,6 +3,12 @@ Date Added
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2010/08/26
* Rev. 14395 instance_npcname will now error if the NPC being looked up is not found, care of ramsey. [L0ne_W0lf]
* delitem/2 will now send the close button when failing to find all neccecary items to delete.
- Still do to, items should not be deleted as-found, and should be deleted once counted
and in the event of delitem failure, nothing should be consumed. This is a design flaw
in eathena, and should be fixed as soon as possible.
2010/08/21
* Rev. 14393 Follow up to r14392, forgot to remove the old snprintf. [L0ne_W0lf]
* Rev. 14392 Mob chat now strips "#unique" names off monsters, curtosy of Daegaladh. [L0ne_W0lf]

View File

@ -1289,7 +1289,7 @@
2380,Medic_Robe,Medic's Robe,5,0,,0,,3,,1,0x00008110,7,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2539,2436)) { bonus2 bSubRace,RC_NonDemiHuman,-300; bonus bInt,3; bonus bMaxHPRate,12; bonus2 bCastrate,156,-50; bonus bHealPower,6; autobonus2 "{ bonus bDefEle,Ele_Ghost; }",30,10000,BF_WEAPON,"{ specialeffect2 EF_ENERGYCOAT; }"; }; },{},{}
2381,Elite_Archer_Suit,Elite Archer Suit,5,0,,0,,3,,1,0x00080808,7,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2539,2436)) { bonus2 bSubRace,RC_NonDemiHuman,-300; bonus bDex,3; bonus bMaxHPRate,12; bonus bLongAtkDef,10; bonus bDelayRate,-25; }; },{},{}
2382,Elite_Shooter_Suit,Elite Shooter Suit,5,0,,0,,3,,1,0x01000000,7,2,16,,80,1,0,{ bonus bMaxHP,150; bonus bMdef,2; bonus2 bSubRace,RC_DemiHuman,2; if (isequipped(2540,2437)) { bonus2 bSubRace,RC_NonDemiHuman,-300; bonus bDex,3; bonus bMaxHPRate,12; bonus bLongAtkDef,10; bonus bDelayRate,-25; }; },{},{}
2383,Brynhild,Brynhild,5,0,,400,,,,0,0xFFFFFFFF,7,2,16,,94,0,0,{ bonus bMdef,10; bonus bMaxHP,20*BaseLevel; bonus bMaxSP,5*BaseLevel; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10; bonus bUnbreakableArmor,0; bonus bNoKnockback,0; },{},{}
2383,Brynhild,Brynhild,5,0,,400,,10,,0,0xFFFFFFFF,7,2,16,,94,0,0,{ bonus bMdef,10; bonus bMaxHP,20*BaseLevel; bonus bMaxSP,5*BaseLevel; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10; bonus bUnbreakableArmor,0; bonus bNoKnockback,0; },{},{}
2384,Spritual_Tunic,Spiritual Tunic,5,20,,0,,10,,0,0xFFFFFFFF,7,2,16,,0,0,0,{ bonus bMaxHP,800; bonus2 bResEff,Eff_Freeze,10000; bonus2 bSubEle,Ele_Earth,20; bonus2 bSubEle,Ele_Fire,20; bonus2 bSubEle,Ele_Wind,20; bonus2 bSubEle,Ele_Poison,20; bonus2 bSubEle,Ele_Holy,20; bonus2 bSubEle,Ele_Dark,20; bonus2 bSubEle,Ele_Ghost,20; bonus2 bSubEle,Ele_Undead,20; },{},{}
2385,Recuperative_Armor,Recuperative Armor,5,20,,0,,12,,0,0xFFFFFFFF,7,2,16,,0,0,0,{ bonus bNoRegen,1; bonus bNoRegen,2; bonus bHPGainValue,60; bonus bSPGainValue,6; bonus bMagicHPGainValue,60; bonus bMagicSPGainValue,6; },{},{ heal 0,-100; }
2386,Chameleon_Armor,Chameleon Armor,5,20,,1700,,5,,0,0x000FDF80,2,2,16,,70,1,0,{ bonus bMaxHP,(BaseLevel*7); bonus bMaxSP,(BaseLevel/2); autobonus2 "{ bonus bNoMagicDamage,100; }",10,2000,BF_MAGIC,"{ specialeffect2 EF_ENERGYCOAT; }"; if( BaseClass == Job_Mage || BaseClass == Job_Archer || BaseClass == Job_Acolyte ) bonus bMdef,5; else if( BaseClass == Job_Swordman || BaseClass == Job_Merchant || BaseClass == Job_Thief ) bonus bDef,3; },{},{}

View File

@ -1409,8 +1409,8 @@
60189,0,1365,100,0,0,0,0,"Hunting Apocalypse"
60190,0,1365,150,0,0,0,0,"Hunting Apocalypse"
//
60200,0,0,0,0,0,0,0,"Endless Tower Effect"
60201,0,0,0,0,0,0,0,"Endless Tower Time Limit"
60200,604800,0,0,0,0,0,0,"Endless Tower Effect"
60201,14400,0,0,0,0,0,0,"Endless Tower Time Limit"
60301,0,1155,100,0,0,0,0,"Dragon Hunting"
60302,0,1155,200,0,0,0,0,"Dragon Hunting"
60303,0,1714,100,0,0,0,0,"Dragon Hunting"

View File

@ -1,5 +1,8 @@
Date Added
======
2010/08/26
* Rev. 14395 Implemented the Endless Tower instance. [L0ne_W0lf]
* Updated announces and dialogs in KVM.
2010/08/21
* Rev. 14392 Touched up the Airship scripts. Fixed up some content based on official files. [L0ne_W0lf]
* Rev. 14391 Fixed silly copy paste errors in Tierra Gorge entrance npcs. (bugreport:4401) [L0ne_W0lf]

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= ???, L0ne_W0lf
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= eAthena 1.0
//===== Description: =========================================
@ -14,6 +14,9 @@
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Updated using official Aegis files. [L0ne_W0lf]
//= 1.2 Upated some announces and dialogs from iRO.
//= Changed how the scoreboard works slightly.
//= Removed the areapercentheals, and minor things.
//============================================================
// Waiting Room NPCs
@ -143,12 +146,11 @@ OnGuillaumeDie:
if( $@KvM01BG == 2 )
{
set .Guillaume_Count, .Guillaume_Count - 1;
set .Croix_Score, .Croix_Score + 1;
bg_updatescore "bat_c01",.Guillaume_Score,.Croix_Score;
bg_updatescore "bat_c01",.Guillaume_Count,.Croix_Count;
if( .Guillaume_Count < 1 ) donpcevent "KvM01_BG::OnCroixWin";
else {
mapannounce "bat_c01", "Number of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "Number of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "The number of Guillaumes is "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "The number of Croixes is "+.Croix_Count+".",bc_map,"0x00ff00";
}
}
end;
@ -159,12 +161,11 @@ OnCroixDie:
if( $@KvM01BG == 2 )
{
set .Croix_Count, .Croix_Count - 1;
set .Guillaume_Score, .Guillaume_Score + 1;
bg_updatescore "bat_c01",.Guillaume_Score,.Croix_Score;
bg_updatescore "bat_c01",.Guillaume_Count,.Croix_Count;
if( .Croix_Count < 1 ) donpcevent "KvM01_BG::OnGuillaumeWin";
else {
mapannounce "bat_c01", "Number of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "Number of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "The number of Guillaumes is "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "The number of Croixes is "+.Croix_Count+".",bc_map,"0x00ff00";
}
}
end;
@ -191,9 +192,6 @@ OnStart:
// Warp Teams
bg_warp $@KvM01BG_id1,"bat_c01",53,128;
bg_warp $@KvM01BG_id2,"bat_c01",146,55;
// ScoreBoard
set .Guillaume_Score, 0;
set .Croix_Score, 0;
initnpctimer;
end;
@ -255,34 +253,32 @@ OnTimer61000:
end;
}
set $@KvM01BG, 2; // Playing
areapercentheal "bat_c01",50,123,58,131,100,100;
bg_warp $@KvM01BG_id1,"bat_c01",61,120;
areapercentheal "bat_c01",141,52,149,60,100,100;
bg_warp $@KvM01BG_id2,"bat_c01",138,63;
end;
OnTimer300000:
mapannounce "bat_c01", "KVM will be ending in 1 minute.",bc_map,"0x00ff00";
mapannounce "bat_c01", "1 minute remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer330000:
mapannounce "bat_c01", "KVM will be ending in 30 seconds.",bc_map,"0x00ff00";
mapannounce "bat_c01", "30 seconds remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer345000:
mapannounce "bat_c01", "KVM will be ending in 15 seconds.",bc_map,"0x00ff00";
mapannounce "bat_c01", "15 seconds remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer350000:
mapannounce "bat_c01", "KVM will be ending in 10 seconds.",bc_map,"0x00ff00";
mapannounce "bat_c01", "10 seconds remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer355000:
mapannounce "bat_c01", "KVM will be ending in 5 seconds.",bc_map,"0x00ff00";
mapannounce "bat_c01", "5 seconds remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer360000:
mapannounce "bat_c01", "KVM has ended.",bc_map,"0x00ff00";
mapannounce "bat_c01", "The KVM battle is over.",bc_map,"0x00ff00";
if( .Croix_Count > .Guillaume_Count )
donpcevent "KvM01_BG::OnCroixWin";
else if( .Croix_Count < .Guillaume_Count )
@ -291,9 +287,9 @@ OnTimer360000:
{ // Draw Game
set $@KvM01BG, 3;
set $@KvM01BG_Victory, 3;
mapannounce "bat_c01", "Number of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "Number of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "Regardless of the outcome of the two camps.",bc_map,"0x00ff00";
mapannounce "bat_c01", "The number of Guillaumes is "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "The number of Croixes is "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "This battle has ended in a draw.",bc_map,"0x00ff00";
donpcevent "KvM01_BG::OnStop";
}
end;
@ -301,18 +297,18 @@ OnTimer360000:
OnGuillaumeWin:
set $@KvM01BG, 3;
set $@KvM01BG_Victory, 1;
mapannounce "bat_c01", "Guillaume camp victory.",bc_map,"0x00ff00";
mapannounce "bat_c01", "Congratulations to all Guillaume members.",bc_map,"0x00ff00";
mapannounce "bat_c01", "All personnel move to the starting zone.",bc_map,"0x00ff00";
mapannounce "bat_c01", "Guillaume wins!",bc_map,"0x00ff00";
mapannounce "bat_c01", "Congratulations to Guillaume members.",bc_map,"0x00ff00";
mapannounce "bat_c01", "Everyone will be moved to the start point.",bc_map,"0x00ff00";
donpcevent "KvM01_BG::OnStop";
end;
OnCroixWin:
set $@KvM01BG, 3;
set $@KvM01BG_Victory, 2;
mapannounce "bat_c01", "Croix camp victory.",bc_map,"0x00ff00";
mapannounce "bat_c01", "Congratulations to all Croix members.",bc_map,"0x00ff00";
mapannounce "bat_c01", "All personnel move to the starting zone.",bc_map,"0x00ff00";
mapannounce "bat_c01", "Croix wins!",bc_map,"0x00ff00";
mapannounce "bat_c01", "Congratulations to Croix members.",bc_map,"0x00ff00";
mapannounce "bat_c01", "Everyone will be moved to the start point.",bc_map,"0x00ff00";
donpcevent "KvM01_BG::OnStop";
end;
@ -329,8 +325,6 @@ OnStop:
OnReset:
set .Croix_Count, 0;
set .Guillaume_Count, 0;
set .Croix_Score, 0;
set .Guillaume_Score, 0;
set $@KvM01BG_Victory, 0;
if( $@KvM01BG_id1 ) { bg_destroy $@KvM01BG_id1; set $@KvM01BG_id1, 0; }
if( $@KvM01BG_id2 ) { bg_destroy $@KvM01BG_id2; set $@KvM01BG_id2, 0; }
@ -338,7 +332,7 @@ OnReset:
disablenpc "KVM Officer#KVM01B";
mapwarp "bat_c01","bat_room",154,150;
maprespawnguildid "bat_c01",0,3; // Just in case someone else
bg_updatescore "bat_c01",0,0;
bg_updatescore "bat_c01",5,5;
set $@KvM01BG, 0;
donpcevent "KvM01_BG::OnReadyCheck"; // Maybe a game is ready to start
end;
@ -361,8 +355,12 @@ OnTimer3000:
end;
OnTimer5000:
mapannounce "bat_c01", "If you do not claim your points now, you will not be able to.",bc_map,"0x00ff00";
mapannounce "bat_c01", "Please make sure to collect before the time expires.",bc_map,"0x00ff00";
mapannounce "bat_c01", "Unless you talk to the Officer, you cannot gain the points.",bc_map,"0x00ff00";
mapannounce "bat_c01", "Please be careful.",bc_map,"0x00ff00";
end;
OnTimer:55000:
mapannounce "bat_c01", "You will be sent back.",bc_map,"0x00ff00";
end;
OnTimer60000:
@ -379,19 +377,19 @@ bat_c01,51,130,5 script KVM Officer#KVM01A 419,{
if( $@KvM01BG_Victory == Bat_Team )
{ // Victory
set kvm_point,kvm_point + 5;
mes "[Swandery]";
mes "Blessed Guillaume!!";
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
mes "[KVM Officer]";
mes "Good Game.";
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 5";
close2;
}
else
{ //
set kvm_point,kvm_point + 1;
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat a lesson, and later you would definitely learn.";
mes "[KVM Officer]";
mes "I am so sorry.";
mes "I wish you better luck next time.";
mes "You aquire the losing points: 1";
close2;
}
bg_leave;
@ -408,19 +406,19 @@ bat_c01,148,53,1 script KVM Officer#KVM01B 415,{
if( $@KvM01BG_Victory == Bat_Team )
{ // Victory
set kvm_point,kvm_point + 5;
mes "[Swandery]";
mes "Blessed Croax!!";
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
mes "[KVM Officer]";
mes "Good Game.";
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 5";
close2;
}
else
{ //
set kvm_point,kvm_point + 1;
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next.";
mes "[KVM Officer]";
mes "I am so sorry.";
mes "I wish you better luck next time.";
mes "You aquire the losing points: 1";
close2;
}
bg_leave;

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= ???, L0ne_W0lf
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= eAthena 1.0
//===== Description: =========================================
@ -14,6 +14,9 @@
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Updated using official Aegis files. [L0ne_W0lf]
//= 1.2 Upated some announces and dialogs from iRO.
//= Changed how the scoreboard works slightly.
//= Removed the areapercentheals, and minor things.
//============================================================
// Waiting Room NPCs
@ -143,12 +146,11 @@ OnGuillaumeDie:
if( $@KvM02BG == 2 )
{
set .Guillaume_Count, .Guillaume_Count - 1;
set .Croix_Score, .Croix_Score + 1;
bg_updatescore "bat_c02",.Guillaume_Score,.Croix_Score;
bg_updatescore "bat_c02",.Guillaume_Count,.Croix_Count;
if( .Guillaume_Count < 1 ) donpcevent "KvM02_BG::OnCroixWin";
else {
mapannounce "bat_c02", "Number of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "Number of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "The number of Guillaumes is "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "The number of Croixes is "+.Croix_Count+".",bc_map,"0x00ff00";
}
}
end;
@ -159,12 +161,11 @@ OnCroixDie:
if( $@KvM02BG == 2 )
{
set .Croix_Count, .Croix_Count - 1;
set .Guillaume_Score, .Guillaume_Score + 1;
bg_updatescore "bat_c02",.Guillaume_Score,.Croix_Score;
bg_updatescore "bat_c02",.Guillaume_Count,.Croix_Count;
if( .Croix_Count < 1 ) donpcevent "KvM02_BG::OnGuillaumeWin";
else {
mapannounce "bat_c02", "Number of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "Number of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "The number of Guillaumes is "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "The number of Croixes is "+.Croix_Count+".",bc_map,"0x00ff00";
}
}
end;
@ -191,9 +192,6 @@ OnStart:
// Warp Teams
bg_warp $@KvM02BG_id1,"bat_c02",53,128;
bg_warp $@KvM02BG_id2,"bat_c02",146,55;
// ScoreBoard
set .Guillaume_Score, 0;
set .Croix_Score, 0;
initnpctimer;
end;
@ -255,34 +253,32 @@ OnTimer61000:
end;
}
set $@KvM02BG, 2; // Playing
areapercentheal "bat_c02",50,123,58,131,100,100;
bg_warp $@KvM02BG_id1,"bat_c02",62,119;
areapercentheal "bat_c02",141,52,149,60,100,100;
bg_warp $@KvM02BG_id2,"bat_c02",137,64;
end;
OnTimer300000:
mapannounce "bat_c02", "KVM will be ending in 1 minute.",bc_map,"0x00ff00";
mapannounce "bat_c02", "1 minute remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer330000:
mapannounce "bat_c02", "KVM will be ending in 30 seconds.",bc_map,"0x00ff00";
mapannounce "bat_c02", "30 seconds remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer345000:
mapannounce "bat_c02", "KVM will be ending in 15 seconds.",bc_map,"0x00ff00";
mapannounce "bat_c02", "15 seconds remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer350000:
mapannounce "bat_c02", "KVM will be ending in 10 seconds.",bc_map,"0x00ff00";
mapannounce "bat_c02", "10 seconds remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer355000:
mapannounce "bat_c02", "KVM will be ending in 5 seconds.",bc_map,"0x00ff00";
mapannounce "bat_c02", "5 seconds remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer360000:
mapannounce "bat_c02", "KVM has ended.",bc_map,"0x00ff00";
mapannounce "bat_c02", "The KVM battle is over.",bc_map,"0x00ff00";
if( .Croix_Count > .Guillaume_Count )
donpcevent "KvM02_BG::OnCroixWin";
else if( .Croix_Count < .Guillaume_Count )
@ -291,9 +287,9 @@ OnTimer360000:
{ // Draw Game
set $@KvM02BG, 3;
set $@KvM02BG_Victory, 3;
mapannounce "bat_c02", "Number of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "Number of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "Regardless of the outcome of the two camps.",bc_map,"0x00ff00";
mapannounce "bat_c02", "The number of Guillaumes is "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "The number of Croixes is "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "This battle has ended in a draw.",bc_map,"0x00ff00";
donpcevent "KvM02_BG::OnStop";
}
end;
@ -301,18 +297,18 @@ OnTimer360000:
OnGuillaumeWin:
set $@KvM02BG, 3;
set $@KvM02BG_Victory, 1;
mapannounce "bat_c02", "Guillaume camp victory.",bc_map,"0x00ff00";
mapannounce "bat_c02", "Congratulations to all Guillaume members.",bc_map,"0x00ff00";
mapannounce "bat_c02", "All personnel move to the starting zone.",bc_map,"0x00ff00";
mapannounce "bat_c02", "Guillaume wins!",bc_map,"0x00ff00";
mapannounce "bat_c02", "Congratulations to Guillaume members.",bc_map,"0x00ff00";
mapannounce "bat_c02", "Everyone will be moved to the start point.",bc_map,"0x00ff00";
donpcevent "KvM02_BG::OnStop";
end;
OnCroixWin:
set $@KvM02BG, 3;
set $@KvM02BG_Victory, 2;
mapannounce "bat_c02", "Croix camp victory.",bc_map,"0x00ff00";
mapannounce "bat_c02", "Congratulations to all Croix members.",bc_map,"0x00ff00";
mapannounce "bat_c02", "All personnel move to the starting zone.",bc_map,"0x00ff00";
mapannounce "bat_c02", "Croix wins!",bc_map,"0x00ff00";
mapannounce "bat_c02", "Congratulations to Croix members.",bc_map,"0x00ff00";
mapannounce "bat_c02", "Everyone will be moved to the start point.",bc_map,"0x00ff00";
donpcevent "KvM02_BG::OnStop";
end;
@ -329,8 +325,6 @@ OnStop:
OnReset:
set .Croix_Count, 0;
set .Guillaume_Count, 0;
set .Croix_Score, 0;
set .Guillaume_Score, 0;
set $@KvM02BG_Victory, 0;
if( $@KvM02BG_id1 ) { bg_destroy $@KvM02BG_id1; set $@KvM02BG_id1, 0; }
if( $@KvM02BG_id2 ) { bg_destroy $@KvM02BG_id2; set $@KvM02BG_id2, 0; }
@ -338,7 +332,7 @@ OnReset:
disablenpc "KVM Officer#KVM02B";
mapwarp "bat_c02","bat_room",154,150;
maprespawnguildid "bat_c02",0,3; // Just in case someone else
bg_updatescore "bat_c02",0,0;
bg_updatescore "bat_c02",5,5;
set $@KvM02BG, 0;
donpcevent "KvM02_BG::OnReadyCheck"; // Maybe a game is ready to start
end;
@ -361,8 +355,12 @@ OnTimer3000:
end;
OnTimer5000:
mapannounce "bat_c02", "If you do not claim your points now, you will not be able to.",bc_map,"0x00ff00";
mapannounce "bat_c02", "Please make sure to collect before the time expires.",bc_map,"0x00ff00";
mapannounce "bat_c02", "Unless you talk to the Officer, you cannot gain the points.",bc_map,"0x00ff00";
mapannounce "bat_c02", "Please be careful.",bc_map,"0x00ff00";
end;
OnTimer:55000:
mapannounce "bat_c02", "You will be sent back.",bc_map,"0x00ff00";
end;
OnTimer60000:
@ -379,16 +377,18 @@ bat_c02,51,130,5 script KVM Officer#KVM02A 419,{
if( $@KvM02BG_Victory == Bat_Team )
{ // Victory
set kvm_point,kvm_point + 1;
mes "[Swandery]";
mes "Blessed Guillaume!!";
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
mes "[KVM Officer]";
mes "Good Game.";
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 5";
close2;
}
else
{ //
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
mes "[KVM Officer]";
mes "I am so sorry.";
mes "I wish you better luck next time.";
mes "You aquire the losing points: 0";
close2;
}
bg_leave;
@ -405,19 +405,18 @@ bat_c02,148,53,1 script KVM Officer#KVM02B 415,{
if( $@KvM02BG_Victory == Bat_Team )
{ // Victory
set kvm_point,kvm_point + 1;
mes "[Swandery]";
mes "Blessed Croax!!";
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
mes "Just take this defeat a lesson, and later you would definitely learn.";
mes "[KVM Officer]";
mes "Good Game.";
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 1";
close2;
}
else
{ //
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "Please don't forget this battle. We can win the next.";
mes "[KVM Officer]";
mes "I am so sorry.";
mes "I wish you better luck next time.";
mes "You aquire the losing points: 0";
close2;
}
bg_leave;

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= ???, L0ne_W0lf
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= eAthena 1.0
//===== Description: =========================================
@ -14,6 +14,9 @@
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Updated using official Aegis files. [L0ne_W0lf]
//= 1.2 Upated some announces and dialogs from iRO.
//= Changed how the scoreboard works slightly.
//= Removed the areapercentheals, and minor things.
//============================================================
// Waiting Room NPCs
@ -143,12 +146,11 @@ OnGuillaumeDie:
if( $@KvM03BG == 2 )
{
set .Guillaume_Count, .Guillaume_Count - 1;
set .Croix_Score, .Croix_Score + 1;
bg_updatescore "bat_c03",.Guillaume_Score,.Croix_Score;
bg_updatescore "bat_c03",.Guillaume_Count,.Croix_Count;
if( .Guillaume_Count < 1 ) donpcevent "KvM03_BG::OnCroixWin";
else {
mapannounce "bat_c03", "Number of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "Number of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "The number of Guillaumes is "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "The number of Croixes is "+.Croix_Count+".",bc_map,"0x00ff00";
}
}
end;
@ -159,12 +161,11 @@ OnCroixDie:
if( $@KvM03BG == 2 )
{
set .Croix_Count, .Croix_Count - 1;
set .Guillaume_Score, .Guillaume_Score + 1;
bg_updatescore "bat_c03",.Guillaume_Score,.Croix_Score;
bg_updatescore "bat_c03",.Guillaume_Count,.Croix_Count;
if( .Croix_Count < 1 ) donpcevent "KvM03_BG::OnGuillaumeWin";
else {
mapannounce "bat_c03", "Number of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "Number of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "The number of Guillaumes is "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "The number of Croixes is "+.Croix_Count+".",bc_map,"0x00ff00";
}
}
end;
@ -191,9 +192,6 @@ OnStart:
// Warp Teams
bg_warp $@KvM03BG_id1,"bat_c03",53,128;
bg_warp $@KvM03BG_id2,"bat_c03",146,55;
// ScoreBoard
set .Guillaume_Score, 0;
set .Croix_Score, 0;
initnpctimer;
end;
@ -255,30 +253,28 @@ OnTimer61000:
end;
}
set $@KvM03BG, 2; // Playing
areapercentheal "bat_c03",50,123,58,131,100,100;
bg_warp $@KvM03BG_id1,"bat_c03",62,119;
areapercentheal "bat_c03",141,52,149,60,100,100;
bg_warp $@KvM03BG_id2,"bat_c03",137,64;
end;
OnTimer300000:
mapannounce "bat_c03", "KVM will be ending in 1 minute.",bc_map,"0x00ff00";
mapannounce "bat_c03", "1 minute remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer330000:
mapannounce "bat_c03", "KVM will be ending in 30 seconds.",bc_map,"0x00ff00";
mapannounce "bat_c03", "30 seconds remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer345000:
mapannounce "bat_c03", "KVM will be ending in 15 seconds.",bc_map,"0x00ff00";
mapannounce "bat_c03", "15 seconds remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer350000:
mapannounce "bat_c03", "KVM will be ending in 10 seconds.",bc_map,"0x00ff00";
mapannounce "bat_c03", "10 seconds remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer355000:
mapannounce "bat_c03", "KVM will be ending in 5 seconds.",bc_map,"0x00ff00";
mapannounce "bat_c03", "5 seconds remaining to finish the KVM battle.",bc_map,"0x00ff00";
end;
OnTimer360000:
@ -291,9 +287,9 @@ OnTimer360000:
{ // Draw Game
set $@KvM03BG, 3;
set $@KvM03BG_Victory, 3;
mapannounce "bat_c03", "Number of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "Number of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "Regardless of the outcome of the two camps.",bc_map,"0x00ff00";
mapannounce "bat_c03", "The number of Guillaumes is "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "The number of Croixes is "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "This battle has ended in a draw.",bc_map,"0x00ff00";
donpcevent "KvM03_BG::OnStop";
}
end;
@ -301,18 +297,18 @@ OnTimer360000:
OnGuillaumeWin:
set $@KvM03BG, 3;
set $@KvM03BG_Victory, 1;
mapannounce "bat_c03", "Guillaume camp victory.",bc_map,"0x00ff00";
mapannounce "bat_c03", "Congratulations to all Guillaume members.",bc_map,"0x00ff00";
mapannounce "bat_c03", "All personnel move to the starting zone.",bc_map,"0x00ff00";
mapannounce "bat_c03", "Guillaume wins!",bc_map,"0x00ff00";
mapannounce "bat_c03", "Congratulations to Guillaume members.",bc_map,"0x00ff00";
mapannounce "bat_c03", "Everyone will be moved to the start point.",bc_map,"0x00ff00";
donpcevent "KvM03_BG::OnStop";
end;
OnCroixWin:
set $@KvM03BG, 3;
set $@KvM03BG_Victory, 2;
mapannounce "bat_c03", "Croix camp victory.",bc_map,"0x00ff00";
mapannounce "bat_c03", "Congratulations to all Croix members.",bc_map,"0x00ff00";
mapannounce "bat_c03", "All personnel move to the starting zone.",bc_map,"0x00ff00";
mapannounce "bat_c03", "Croix wins!",bc_map,"0x00ff00";
mapannounce "bat_c03", "Congratulations to Croix members.",bc_map,"0x00ff00";
mapannounce "bat_c03", "Everyone will be moved to the start point.",bc_map,"0x00ff00";
donpcevent "KvM03_BG::OnStop";
end;
@ -329,8 +325,6 @@ OnStop:
OnReset:
set .Croix_Count, 0;
set .Guillaume_Count, 0;
set .Croix_Score, 0;
set .Guillaume_Score, 0;
set $@KvM03BG_Victory, 0;
if( $@KvM03BG_id1 ) { bg_destroy $@KvM03BG_id1; set $@KvM03BG_id1, 0; }
if( $@KvM03BG_id2 ) { bg_destroy $@KvM03BG_id2; set $@KvM03BG_id2, 0; }
@ -338,7 +332,7 @@ OnReset:
disablenpc "VintenarKvM03b";
mapwarp "bat_c03","bat_room",154,150;
maprespawnguildid "bat_c03",0,3; // Just in case someone else
bg_updatescore "bat_c03",0,0;
bg_updatescore "bat_c03",5,5;
set $@KvM03BG, 0;
donpcevent "KvM03_BG::OnReadyCheck"; // Maybe a game is ready to start
end;
@ -361,8 +355,12 @@ OnTimer3000:
end;
OnTimer5000:
mapannounce "bat_c03", "If you do not claim your points now, you will not be able to.",bc_map,"0x00ff00";
mapannounce "bat_c03", "Please make sure to collect before the time expires.",bc_map,"0x00ff00";
mapannounce "bat_c03", "Unless you talk to the Officer, you cannot gain the points.",bc_map,"0x00ff00";
mapannounce "bat_c03", "Please be careful.",bc_map,"0x00ff00";
end;
OnTimer:55000:
mapannounce "bat_c03", "You will be sent back.",bc_map,"0x00ff00";
end;
OnTimer60000:
@ -379,18 +377,19 @@ bat_c03,51,130,5 script KVM Officer#KVM03A 419,{
if( $@KvM03BG_Victory == Bat_Team )
{ // Victory
set kvm_point,kvm_point + 2;
mes "[Swandery]";
mes "Blessed Guillaume!!";
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
mes "[KVM Officer]";
mes "Good Game.";
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 2";
close2;
}
else
{ //
set kvm_point,kvm_point + 1;
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "[KVM Officer]";
mes "I am so sorry.";
mes "I wish you better luck next time.";
mes "You aquire the losing points: 1";
close2;
}
bg_leave;
@ -407,19 +406,19 @@ bat_c03,148,53,1 script KVM Officer#KVM03B 415,{
if( $@KvM03BG_Victory == Bat_Team )
{ // Victory
set kvm_point,kvm_point + 2;
mes "[Swandery]";
mes "Blessed Croax!!";
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
mes "[KVM Officer]";
mes "Good Game.";
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 2";
close2;
}
else
{ //
set kvm_point,kvm_point + 1;
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next.";
mes "[KVM Officer]";
mes "I am so sorry.";
mes "I wish you better luck next time.";
mes "You aquire the losing points: 1";
close2;
}
bg_leave;

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.0
//= 1.1
//===== Compatible With: =====================================
//= eAthena 1.0
//===== Description: =========================================
@ -12,27 +12,33 @@
//= Original NPCs scrapped from bg_common.
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Corrected some typos, and shifted messages around.
//= Corrected iRO style quest log entries, however it's
//= advisable that you not use them, as they conflict.
//============================================================
// KvM Officer - Guillaume
//============================================================
bat_room,164,178,5 script KVM Mercenary Officer#1 418,{
/*
set .@kvm,checkquest(6027,PLAYTIME);
set .@kvm,checkquest(6026,PLAYTIME);
if ((.@kvm == 0) || (.@kvm == 1)) {
mes "[Croix Mercenary Officer]";
mes "It seems you ahve recently participated in a KVM battle. You must wait 5 minutes before signing up again.";
mes "I know that you've already signed with the Croix. Go back and join their team. We will not accept traitors to fight for us.";
close;
}
else if (.@kvm == 2) {
erasequest 6026;
}
*/
set .@permit,checkquest(6025,PLAYTIME);
if ((.@permit == 0) || (.@permit == 1)) {
mes "[Guillaume Mercenary Officer]";
mes "I know that you've already signed with the Croix. Go back and join their team. We will not accept traitors to fight for us.";
mes "It seems you have recently participated in a KVM battle. You must wait 5 minutes before signing up again.";
close;
}
else {
if (checkquest(6025) >= 0) erasequest 6025;
else if (.@permit == 2) {
erasequest 6025;
}
mes "[Guillaume Mercenary Officer]";
mes "Let them know the real might of Guillaume!";
@ -43,6 +49,7 @@ bat_room,164,178,5 script KVM Mercenary Officer#1 418,{
mes "Show them how strong we are.";
mes "Today, everyone will hear the shout of triumph from Guillaume!";
close2;
//setquest 6025;
if (BaseLevel > 79) {
warp "bat_room",169,223;
}
@ -124,21 +131,24 @@ bat_room,167,178,5 script Guillaume Knight#kvm 417,{
//============================================================
bat_room,164,121,1 script KVM Mercenary Officer#2 414,{
/*
set .@kvm,checkquest(6027,PLAYTIME);
set .@kvm,checkquest(6025,PLAYTIME);
if ((.@kvm == 0) || (.@kvm == 1)) {
mes "[Croix Mercenary Officer]";
mes "It seems you ahve recently participated in a KVM battle. You must wait 5 minutes before signing up again.";
mes "I know that you've already signed with the Guillaume. Go back and join their team. We will not accept traitors to fight for us.";
close;
}
else if (.@kvm == 2) {
erasequest 6025;
}
*/
set .@permit,checkquest(6025,PLAYTIME);
if ((.@permit == 0) || (.@permit == 1)) {
mes "[Croix Mercenary Officer]";
mes "I know that you've already signed with the Guillaume. Go back and join their team. We will not accept traitors to fight for us.";
mes "It seems you have recently participated in a KVM battle. You must wait 5 minutes before signing up again.";
close;
}
else {
if (checkquest(6025) >= 0) erasequest 6025;
else if (.@permit == 2) {
erasequest 6025;
}
mes "[Croix Mercenary Officer]";
mes "Let them know the real might of Croix!";
@ -149,6 +159,7 @@ bat_room,164,121,1 script KVM Mercenary Officer#2 414,{
mes "Show them how strong we are.";
mes "Today, everyone will hear the shout of triumph from Croix!";
close2;
//setquest 6026;
if (BaseLevel > 79) {
warp "bat_room",169,207;
}

File diff suppressed because it is too large Load Diff

View File

@ -339,7 +339,7 @@ npc: npc/battleground/kvm/kvm03.txt
// --------------------------------------------------------------
// ------------------------ Instances ---------------------------
npc: npc/instances/SealedShrine.txt
//npc: npc/instances/EndlessTower.txt
npc: npc/instances/EndlessTower.txt
npc: npc/instances/OrcsMemory.txt
//npc: npc/instances/NydhoggsNext.txt
// --------------------------------------------------------------

View File

@ -5721,6 +5721,7 @@ BUILDIN_FUNC(delitem)
ShowError("script:delitem: failed to delete %d items (AID=%d item_id=%d).\n", amount, sd->status.account_id, nameid);
st->state = END;
clif_scriptclose(sd, st->oid);
return 1;
}
@ -5819,6 +5820,7 @@ BUILDIN_FUNC(delitem2)
ShowError("script:delitem2: failed to delete %d items (AID=%d item_id=%d).\n", amount, sd->status.account_id, nameid);
st->state = END;
clif_scriptclose(sd, st->oid);
return 1;
}
@ -14193,7 +14195,11 @@ BUILDIN_FUNC(instance_npcname)
script_pushconststr(st,npcname);
}
else
script_pushconststr(st,"");
{
ShowError("script:instance_npcname: invalid instance NPC (instance_id: %d, NPC name: \"%s\".)\n", instance_id, str);
st->state = END;
return 1;
}
return 0;
}