Merge branch 'rathena/master'
This commit is contained in:
commit
f756d7e249
@ -138,7 +138,7 @@
|
||||
2479:2580:2890:15042,{ bonus bAspd,2; bonus2 bSkillAtk,"RA_ARROWSTORM",50; bonus bLongAtkRate,30; bonus3 bAutoSpell,"AC_DOUBLE",(getskilllv("AC_DOUBLE") < 3)?3:getskilllv("AC_DOUBLE"),20; }
|
||||
2480:2581:2891:15043,{ bonus bMaxHPRate,15; bonus bFlee2,20; bonus2 bSkillAtk,"RA_CLUSTERBOMB",20; bonus bLongAtkRate,-30; bonus bAspd,-7; }
|
||||
2483:2586:15046,{ bonus2 bSubRace,RC_DemiHuman,15; bonus2 bSubRace,RC_Player,15; }
|
||||
2484:2587:15047,{ bonus bDex,5; bonus2 bSubRace,RC_DemiHuman,15; bonus2 bSubRace,RC_Player,15; }
|
||||
2484:2586:15047,{ bonus bDex,5; bonus2 bSubRace,RC_DemiHuman,15; bonus2 bSubRace,RC_Player,15; }
|
||||
2485:2587:15048,{ bonus bInt,5; bonus bMdef,10; bonus2 bSubRace,RC_DemiHuman,15; bonus2 bSubRace,RC_Player,15; }
|
||||
2518:2648:2649:5126,{ bonus bInt,5; bonus bMdef,11; bonus bMaxSPrate,20; bonus bNoCastCancel,0; bonus bVariableCastrate,25; }
|
||||
2519:2650:2651:5127,{ bonus bStr,2; bonus bLuk,9; bonus bCritical,13; bonus bBaseAtk,18; bonus bFlee2,13; }
|
||||
|
@ -2579,12 +2579,12 @@
|
||||
4571,Gertie_Card,Gertie Card,6,20,,10,,,,,,,,4,,,,,{ bonus bFlee,10; skill "RG_CLOSECONFINE",1; },{},{}
|
||||
4572,Randel_Card,Randel Card,6,20,,10,,,,,,,,4,,,,,{ bonus bFlee,10; skill "CR_AUTOGUARD",3; },{},{}
|
||||
4573,Trentini_Card,Trentini Card,6,20,,10,,,,,,,,4,,,,,{ bonus bFlee,10; if(BaseJob==Job_Dancer) { bonus bMaxHPrate,10; bonus bMaxSPrate,5;} },{},{}
|
||||
4574,General_Daehyon_Card,General Daehyon Card,6,20,,10,,,,,,,,2,,,,,{ if((getiteminfo(getequipid(EQI_HAND_R),14) == 3) || (getiteminfo(getequipid(EQI_HAND_R),14) == 4)) { bonus bBaseAtk,100; } },{},{}
|
||||
4575,Armed_Guard_Soheon_Card,Armed Guard Soheon Card,6,20,,10,,,,,,,,2,,,,,{ bonus bBaseAtk,10; if(getiteminfo(getequipid(EQI_HAND_R),14) == 1) { if(getrefine()>=10) { bonus bAspd,1; } if(getrefine()>=14) { bonus bAspd,1; } } },{},{}
|
||||
4574,General_Daehyon_Card,General Daehyon Card,6,20,,10,,,,,,,,2,,,,,{ if((getiteminfo(getequipid(EQI_HAND_R),11) == 3) || (getiteminfo(getequipid(EQI_HAND_R),11) == 4)) { bonus bBaseAtk,100; } },{},{}
|
||||
4575,Armed_Guard_Soheon_Card,Armed Guard Soheon Card,6,20,,10,,,,,,,,2,,,,,{ bonus bBaseAtk,10; if(getiteminfo(getequipid(EQI_HAND_R),11) == 1) { if(getrefine()>=10) { bonus bAspd,1; } if(getrefine()>=14) { bonus bAspd,1; } } },{},{}
|
||||
4576,Gioia_Card,Gioia Card,6,20,,10,,,,,,,,4,,,,,{ bonus2 bMagicAtkEle,4,100; bonus2 bMagicAtkEle,8,100; bonus2 bSubEle,0,-30; bonus2 bSubEle,1,-30; bonus2 bSubEle,2,-30; bonus2 bSubEle,3,-30; bonus2 bSubEle,4,-30; bonus2 bSubEle,5,-30; bonus2 bSubEle,6,-30; bonus2 bSubEle,7,-30; bonus2 bSubEle,8,-30; bonus2 bSubEle,9,-30; },{},{}
|
||||
4577,Elvira_Card,Elvira Card,6,20,,10,,,,,,,,136,,,,,{ bonus2 bMagicAtkEle,4,20; bonus2 bMagicAtkEle,8,20; },{},{}
|
||||
4578,Angry_Student_Pyuriel_Card,Angry Student Pyuriel Card,6,20,,10,,,,,,,,2,,,,,{ bonus bCritAtkRate,30; bonus2 bSubRace,0,-10; bonus2 bSubRace,1,-10; bonus2 bSubRace,2,-10; bonus2 bSubRace,3,-10; bonus2 bSubRace,4,-10; bonus2 bSubRace,5,-10; bonus2 bSubRace,6,-10; bonus2 bSubRace,7,-10; bonus2 bSubRace,8,-10; bonus2 bSubRace,9,-10; },{},{}
|
||||
4579,Warrior_Lola_Card,Warrior Lola Card,6,20,,10,,,,,,,,2,,,,,{ if(getiteminfo(getequipid(EQI_HAND_R),14) == 8) { bonus bBaseAtk,20; bonus bCritical,10; } bonus bBaseAtk,getrefine(); bonus bCritical,getrefine(); },{},{}
|
||||
4579,Warrior_Lola_Card,Warrior Lola Card,6,20,,10,,,,,,,,2,,,,,{ if(getiteminfo(getequipid(EQI_HAND_R),11) == 8) { bonus bBaseAtk,20; bonus bCritical,10; } bonus bBaseAtk,getrefine(); bonus bCritical,getrefine(); },{},{}
|
||||
4580,Dark_Guardian_Kades_Card,Dark Guardian Kades Card,6,20,,10,,,,,,,,4,,,,,{ bonus2 bSubEle,1,50; bonus2 bSubEle,2,50; bonus2 bSubEle,3,50; bonus2 bSubEle,4,50; bonus2 bSubEle,7,50; bonus2 bSubEle,9,50; bonus2 bSubEle,6,-100; bonus2 bSubEle,8,-100; },{},{}
|
||||
4581,Rudo_Card,Rudo Card,6,20,,10,,,,,,,,64,,,,,{ /* TODO: { heal 0,-40; bonus_script "{ bonus bAgi,44; }",3,15,0; sc_start SC_SpeedUp1,3000,0; } */},{},{}
|
||||
4582,Bungisngis_Card,Bungisngis Card,6,20,,10,,,,,,,,769,,,,,{ bonus bMaxHPrate,(getrefine()/2); },{},{}
|
||||
@ -2612,7 +2612,7 @@
|
||||
4604,Realized_Corruption_Root_Card,Realized Corruption Root Card,6,20,,10,,,,,,,,2,,,,,{ bonus bBaseAtk,30; bonus5 bAutoSpellWhenHit,"NPC_WIDESTONE",2,70,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"NPC_WIDESLEEP",2,70,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"NPC_WIDECURSE",2,70,BF_WEAPON,0; },{},{}
|
||||
4605,Agony_Of_Royal_Knight_Card,Agony Of Royal Knight Card,6,20,,10,,,,,,,,16,,,,,{ bonus bMaxHPrate,-44; bonus bHPGainValue,200+10*getrefine(); },{},{}
|
||||
4606,Grudge_of_Royal_Knight_Card,Grudge of Royal Knight Card,6,20,,10,,,,,,,,4,,,,,{ bonus bMaxSPrate,-44; bonus bSPGainValue,20+(getrefine()/2); },{},{ heal 0,-444; }
|
||||
4607,Faithful_Manager_Card,Faithful Manager Card,6,20,,10,,,,,,,,2,,,,,{ bonus bBaseAtk,5; bonus bMatk,5; if(getiteminfo(getequipid(EQI_HAND_R),14) == 15) { if(getrefine()>=10) { bonus bBaseAtk,20; bonus bMatk,20; } if(getrefine()>=14) { bonus bBaseAtk,20; bonus bMatk,20; } } },{},{}
|
||||
4607,Faithful_Manager_Card,Faithful Manager Card,6,20,,10,,,,,,,,2,,,,,{ bonus bBaseAtk,5; bonus bMatk,5; if(getiteminfo(getequipid(EQI_HAND_R),11) == 15) { if(getrefine()>=10) { bonus bBaseAtk,20; bonus bMatk,20; } if(getrefine()>=14) { bonus bBaseAtk,20; bonus bMatk,20; } } },{},{}
|
||||
4608,White_Knight_Card,White Knight Card,6,20,,10,,,,,,,,2,,,,,{ bonus bBaseAtk,15; bonus2 bAddSize,Size_Medium,20; bonus2 bAddSize,Size_Large,20; },{},{}
|
||||
4609,Khalitzburg_Knight_Card,Khalitzburg Knight Card,6,20,,10,,,,,,,,32,,,,,{ bonus bDef,20; bonus2 bSubSize,Size_Medium,25; bonus2 bSubSize,Size_Large,25; },{},{}
|
||||
|
||||
|
@ -1964,6 +1964,64 @@ with this command when a script is parsed.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
*switch (expression);
|
||||
|
||||
The switch statement is similar to a series of if statements on the same expression.
|
||||
In many occasions, you may want to compare the same variable (or expression)
|
||||
with many different values, and execute a different piece of code depending
|
||||
on which value it equals to. This is exactly what the switch statement is for.
|
||||
|
||||
It is important to understand how the switch statement is executed in order
|
||||
to avoid mistakes. The switch statement executes line by line (actually, statement by statement).
|
||||
In the beginning, no code is executed. Only when a case statement is found
|
||||
with a value that matches the value of the switch expression the case statement(s)
|
||||
will to executed. The parser continues to execute the statements until the end
|
||||
of the switch block, or the first time it sees a break statement. If you don't
|
||||
write a break statement at the end of a case's statement list, the parser will
|
||||
go on executing the statements of the following case (fall-through).
|
||||
|
||||
Example 1:
|
||||
|
||||
switch(select("Yes:No")) {
|
||||
case 1:
|
||||
mes "You said yes!";
|
||||
break;
|
||||
case 2:
|
||||
mes "Aww, why?";
|
||||
break;
|
||||
}
|
||||
close;
|
||||
|
||||
The example above would work like a menu and would go to the first case if
|
||||
the user selects option, otherwise, would go to the second one.
|
||||
|
||||
Example 2:
|
||||
|
||||
switch(getgroupid()) {
|
||||
case 1:
|
||||
mes "Wow, you're super!";
|
||||
break;
|
||||
case 2:
|
||||
mes "A helping hand!";
|
||||
break;
|
||||
case 3:
|
||||
mes "10001010010011";
|
||||
break;
|
||||
case 4:
|
||||
mes "Yes, milord?";
|
||||
break;
|
||||
default:
|
||||
mes "Hello there!";
|
||||
break;
|
||||
}
|
||||
|
||||
The example above would print a message depending on the player's groupid.
|
||||
If there is no statement declared for the corresponding groupid, the script
|
||||
would use the 'default' statement that applies to rest of possible values,
|
||||
similar to 'else' in the if-else statement.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
*while (<condition>) <statement>;
|
||||
|
||||
This is probably the simplest and most frequently used loop structure. The 'while'
|
||||
|
@ -49,7 +49,7 @@ bat_room,164,178,5 script KVM Mercenary Officer#1 418,{
|
||||
if (BaseLevel > 79) warp "bat_room",169,223;
|
||||
else if (BaseLevel < 60) warp "bat_room",197,223;
|
||||
else warp "bat_room",225,223;
|
||||
close;
|
||||
end;
|
||||
case 2:
|
||||
mes "[Guillaume Mercenary Officer]";
|
||||
mes "We will win!";
|
||||
@ -149,7 +149,7 @@ bat_room,164,121,1 script KVM Mercenary Officer#2 414,{
|
||||
if (BaseLevel > 79) warp "bat_room",169,207;
|
||||
else if (BaseLevel < 60) warp "bat_room",197,207;
|
||||
else warp "bat_room",225,207;
|
||||
close;
|
||||
end;
|
||||
case 2:
|
||||
mes "[Croix Mercenary Officer]";
|
||||
mes "We will win!";
|
||||
|
@ -224,7 +224,7 @@ function script F_Invest_Abyss {
|
||||
}
|
||||
}
|
||||
|
||||
// Script Core
|
||||
// Script Core :: agit_fund
|
||||
//============================================================
|
||||
prt_gld,1,1,0 script #fund_master 844,{
|
||||
end;
|
||||
@ -1252,7 +1252,7 @@ L_Enter:
|
||||
}
|
||||
}
|
||||
|
||||
// Item Investments
|
||||
// Item Investments :: tooja_namis
|
||||
//============================================================
|
||||
malangdo,218,126,4 script Cat Paw Merchants Notice 857,{
|
||||
mes "<< Cat Paw Merchants Notice >>";
|
||||
@ -1458,7 +1458,7 @@ OnTouch:
|
||||
end;
|
||||
}
|
||||
|
||||
// Investment Rewards
|
||||
// Investment Rewards :: tooja_japanki
|
||||
//============================================================
|
||||
malangdo,215,119,4 script Thanks Ticket Machine 564,{
|
||||
if (MaxWeight - Weight < 4500 || checkweight(1201,1) == 0) {
|
||||
|
@ -18,6 +18,8 @@
|
||||
//= 1.0 Added Malangdo Refiner "Holink". [Euphy]
|
||||
//============================================================
|
||||
|
||||
// Main NPC :: mal_jerun
|
||||
//============================================================
|
||||
malangdo,221,174,6 script Holink#mal_cash 559,{
|
||||
disable_items;
|
||||
mes "[Holink]";
|
||||
|
@ -14,6 +14,8 @@
|
||||
//= Updated dialogue to match the official script.
|
||||
//============================================================
|
||||
|
||||
// Main NPC :: craft_book_alche_skill_npc
|
||||
//============================================================
|
||||
alde_alche,31,186,3 script Craft Book Merchant#alde 883,{
|
||||
mes "[Craft Book Merchant]";
|
||||
mes "Welcome.";
|
||||
|
@ -17,6 +17,8 @@
|
||||
//= 1.0 First version. [Euphy]
|
||||
//============================================================
|
||||
|
||||
// Main NPC :: new_smelting612
|
||||
//============================================================
|
||||
- script ::BlacksmithDister -1,{
|
||||
disable_items;
|
||||
mes "[Blacksmith Dister]";
|
||||
|
@ -1,5 +1,5 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Cash Shop NPCs
|
||||
//= idRO Cash Shop NPCs
|
||||
//===== By: ==================================================
|
||||
//= Cydh
|
||||
//===== Current Version: =====================================
|
||||
@ -7,7 +7,7 @@
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena Project
|
||||
//===== Description: =========================================
|
||||
//= Sell Cash shop items based on idRO's Cash shop
|
||||
//= Sells cash shop items based on idRO's cash shop.
|
||||
//===== Additional Comments: =================================
|
||||
//= 1.0 Initial release. 2014-Jan-13 [Cydh]
|
||||
//= 1.1 2014-Jan-18 [Cydh]
|
||||
@ -17,8 +17,7 @@
|
||||
// - Added Cash Trader with special offer for Chinese New Year
|
||||
//============================================================
|
||||
|
||||
//============================================================
|
||||
//Main NPCs
|
||||
// Main NPCs
|
||||
//============================================================
|
||||
- cashshop idROCK::idRO_kafra 721,12202:150,12203:150,12204:150,12205:150,12206:150,12207:150,12208:200,12209:250,12909:375,12910:375,12213:25000,12214:250,12215:150,12216:150,12217:150,12218:150,12219:150,12220:150,7619:200,7620:150,7621:100,12210:200,5210:20000,2234:10000,2235:10000,2271:10000,5229:7500,5227:7500,5229:7500,5233:7500,5231:7500,5232:7500,5230:7500,5236:7500,5235:7500,5237:7500,5241:7500,5240:7500,5238:7500,5239:7500,5242:7500,5294:12500,5292:12500,5291:12500,5284:12500,5139:12500,5140:12500,13569:350,13849:250,13850:450,13851:250,13852:450,13853:250,13854:450,13855:205,13856:450,13857:400,13858:750,13905:5500,13906:32500,13907:2750,13908:20000,13909:1000,13910:3750,5478:12500,5385:12500,5137:12500,5491:12500,5335:12500,5463:12500,5293:12500,5198:12500,5289:12500,5258:12500,5143:12500,5334:12500,5099:12500,5211:12500,5333:12500,5288:12500,5257:12500,5285:12500,5189:12500,5146:12500,5142:12500,5138:12500,5188:12500,5212:12500,5181:12500,5182:12500,5129:12500,5185:12500,5186:12500,5253:12500,5256:12500,5287:12500,5490:12500,5501:12500,5502:12500,5498:12500,5495:12500,5503:12500,5499:12500,5505:12500,5496:12500,2289:5000,5066:5000,5003:5000,5497:12500,5504:6250,5508:12500,5467:12500,13420:12500,5364:12500,5546:12500,5545:12500,2291:725,2274:4250,5550:12500,5549:12500,5547:12500,5657:7500,5548:7500,5537:12500,5538:12500,5539:12500,5470:12500,5471:12500,5511:12500,5526:12500,5529:12500,5527:12500,5509:12500,5363:12500,5395:12500,5464:12500,5563:12500,5528:12500,5558:12500,5554:12500,5555:12500,5556:12500,5557:12500,5514:12500,5515:12500,5316:12500,6240:7500,6241:10000,5396:12500,5573:12500,15008:12500,7823:100,5584:12500,5765:12500,5766:12500,5767:12500,2855:12500,5789:12500,5790:12500,5776:12500,5413:12500,5594:12500,5585:12500,17079:12500,18533:12500,5777:12500,18531:12500,6114:100,6115:100,5148:12500,5530:12500,5359:15000,18616:7500,18618:10000,18626:15000,18589:12500,18596:12500,18619:12500,18620:12500,19507:12500,19515:12500,19517:12500,19516:12500,19509:12500,19510:10000,19513:7500,19514:7500,6046:2500,6047:2500
|
||||
- cashshop idROCK2::idRO_kafra2 80,19518:12500,19519:12500,19520:12500,19521:12500,19522:12500,15058:12500,2888:5000,2751:5000,2573:35000,18630:12500,18636:12500,18665:12500,18666:12500,18676:12500,18679:12500,18681:12500,5575:12500,5591:12500,18872:12500,17126:2250,6225:15000,6226:11250,6104:100,6108:100,6112:100,6097:100,18574:12500,18697:12500,18698:12500,18729:12500,2936:12500,2177:12500,18692:12500,18694:12500,18695:12500,17106:15000,7776:2000,5045:12500,14616:250,14617:250,14618:250,14619:250,14620:250,14621:250,16770:4750,16771:19000,16979:2000,18642:12500,18643:12500,18644:12500,7825:5000,5403:12500,5020:12500,18713:12500,18759:12500
|
||||
@ -32,8 +31,7 @@
|
||||
- cashshop idROCA2::idRO_acc2 80,4253:7500,4113:3750,4268:2000,2888:5000,2751:5000
|
||||
- cashshop idROCR::idRO_rental 874,12936:625,13775:925,13770:1000,13767:1000,13772:625,13768:925,12944:925,12940:625,13956:925,13954:1000,13955:1000,13958:1000,13957:1000,12951:625,12953:625,13783:625,13784:925,13953:652,12947:652,12948:652,12949:652,13502:652,13778:925,13779:625,13782:925,12938:1000,13952:925,12937:1000,13766:1000,13773:625,14321:1000,14322:925,14323:925,14324:925,14325:925,14326:925,14327:925,14328:925,14329:925,14330:925,14426:925,14427:925,14428:925,14429:1000,14430:1000,14431:1000,14432:1250,14433:1500,14434:1500,14435:625,14436:625,14437:925,14242:925,14243:925,14244:925,14245:925,14246:925,14247:925,14248:925,14249:925,14250:925,14251:925,14252:1500,14253:1500,14254:1500,14255:1500,14256:1500,14257:1500,14258:1500,14259:1500,14260:1500,14261:1500,13771:1000,13654:925,13656:625,13653:925,13663:625,13671:925,13672:925,13673:925,13674:925,13675:925,13650:925,13657:925,16638:625,16639:1000,16374:625,16389:1000,16372:625,16385:1000,17396:1250,17397:7000,17398:1250,17399:7000,17416:1250,17417:7000,17422:1250,17423:7000,16628:10000,17311:2000,17404:1250,17405:7000,17408:1250,17409:7000,17418:1250,17419:7000,17420:1250,17421:7000,16625:10000,17308:2000,17400:1250,17401:7000,17406:1250,17407:7000,17410:1250,17411:7000,17412:1250,17413:7000,17414:1250,17415:7000,17424:1250,17425:7000,17426:1250,17427:7000,16682:2500
|
||||
|
||||
//============================================================
|
||||
//Payon
|
||||
// Payon
|
||||
//============================================================
|
||||
payon,172,128,3 duplicate(idRO_kafra) Kafra Shop#pay 721
|
||||
payon,172,130,3 duplicate(idRO_kafra2) Kafra Shop 2#pay 80
|
||||
@ -55,33 +53,35 @@ payon,177,226,3 duplicate(idRO_kafra) Kafra Shop#pay-2 721
|
||||
payon,178,226,3 duplicate(idRO_kafra2) Kafra Shop 2#pay-2 80
|
||||
payon,181,226,3 duplicate(idRO_rental) Rental Shop#pay-2 874
|
||||
|
||||
//============================================================
|
||||
//Archer Village
|
||||
// Archer Village
|
||||
//============================================================
|
||||
pay_arche,57,125,3 duplicate(idRO_kafra) Kafra Shop#payarc 721
|
||||
pay_arche,58,125,1 duplicate(idRO_kafra2) Kafra Shop 2#payarc 80
|
||||
pay_arche,61,125,8 duplicate(idRO_rental) Rental Shop#payarc 874
|
||||
|
||||
// Prontera
|
||||
//============================================================
|
||||
//Prontera
|
||||
//============================================================
|
||||
//East-Gate
|
||||
// East-Gate
|
||||
prontera,282,198,1 duplicate(idRO_kafra) Kafra Shop#prt-1 721
|
||||
prontera,282,197,1 duplicate(idRO_kafra2) Kafra Shop 2#prt-1 80
|
||||
prontera,282,194,1 duplicate(idRO_rental) Rental Shop#prt-1 874
|
||||
//West-Gate
|
||||
|
||||
// West-Gate
|
||||
prontera,29,209,5 duplicate(idRO_kafra) Kafra Shop#prt-2 721
|
||||
prontera,29,210,5 duplicate(idRO_kafra2) Kafra Shop 2#prt-2 80
|
||||
prontera,32,212,5 duplicate(idRO_rental) Rental Shop#prt-2 874
|
||||
//South
|
||||
|
||||
// South
|
||||
prontera,146,91,5 duplicate(idRO_kafra) Kafra Shop#prt-3 721
|
||||
prontera,146,92,5 duplicate(idRO_kafra2) Kafra Shop 2#prt-3 80
|
||||
prontera,146,95,5 duplicate(idRO_rental) Rental Shop#prt-3 874
|
||||
//South-Gate
|
||||
|
||||
// South-Gate
|
||||
prontera,149,29,8 duplicate(idRO_kafra) Kafra Shop#prt-4 721
|
||||
prontera,148,29,8 duplicate(idRO_kafra2) Kafra Shop 2#prt-4 80
|
||||
prontera,145,29,8 duplicate(idRO_rental) Rental Shop#prt-4 874
|
||||
//Center
|
||||
|
||||
// Center
|
||||
prontera,164,183,3 duplicate(idRO_kafra) Kafra Shop#prt 721
|
||||
prontera,164,185,3 duplicate(idRO_kafra2) Kafra Shop 2#prt 80
|
||||
prontera,151,183,3 duplicate(idRO_cons) Consumable#prt 721
|
||||
@ -94,32 +94,13 @@ prontera,161,183,3 duplicate(idRO_acc) Acc and Kartu#prt 721
|
||||
prontera,161,185,3 duplicate(idRO_acc2) Acc and Kartu 2#prt 80
|
||||
prontera,148,183,3 duplicate(idRO_rental) Rental Shop#prt 874
|
||||
|
||||
//============================================================
|
||||
//Izlude-Old (Use this if use old Izlude Map)
|
||||
//============================================================
|
||||
//izlude,134,86,3 duplicate(idRO_kafra) Kafra Shop#izl-1 721
|
||||
//izlude,134,85,3 duplicate(idRO_kafra2) Kafra Shop 2#izl-1 80
|
||||
//izlude,134,91,3 duplicate(idRO_rental) Rental Shop#izl-1 874
|
||||
//Center
|
||||
//izlude,136,113,3 duplicate(idRO_kafra) Kafra Shop#izl 721
|
||||
//izlude,136,115,3 duplicate(idRO_kafra2) Kafra Shop 2#izl 80
|
||||
//izlude,124,113,3 duplicate(idRO_cons) Consumable#izl 721
|
||||
//izlude,124,115,3 duplicate(idRO_cons2) Consumable 2#izl 80
|
||||
//izlude,127,113,3 duplicate(idRO_gear) Headgear#izl 721
|
||||
//izlude,127,115,3 duplicate(idRO_gear2) Headgear 2#izl 80
|
||||
//izlude,130,113,3 duplicate(idRO_eq) Equipment#izl 721
|
||||
//izlude,130,115,3 duplicate(idRO_eq2) Equipment 2#izl 80
|
||||
//izlude,133,113,3 duplicate(idRO_acc) Acc and Kartu#izl 721
|
||||
//izlude,133,115,3 duplicate(idRO_acc2) Acc and Kartu 2#izl 80
|
||||
//izlude,121,113,3 duplicate(idRO_rental) Rental Shop#izl 874
|
||||
|
||||
//============================================================
|
||||
//Izlude-New
|
||||
// Izlude
|
||||
//============================================================
|
||||
izlude,135,99,3 duplicate(idRO_kafra) Kafra Shop#izl-1 721
|
||||
izlude,135,100,3 duplicate(idRO_kafra2) Kafra Shop 2#izl-1 80
|
||||
izlude,135,102,3 duplicate(idRO_rental) Rental Shop#izl-1 874
|
||||
//Center
|
||||
|
||||
// Center
|
||||
izlude,135,142,3 duplicate(idRO_kafra) Kafra Shop#izl 721
|
||||
izlude,135,144,3 duplicate(idRO_kafra2) Kafra Shop 2#izl 80
|
||||
izlude,124,142,3 duplicate(idRO_cons) Consumable#izl 721
|
||||
@ -132,21 +113,39 @@ izlude,133,142,3 duplicate(idRO_acc) Acc and Kartu#izl 721
|
||||
izlude,133,144,3 duplicate(idRO_acc2) Acc and Kartu 2#izl 80
|
||||
izlude,121,142,3 duplicate(idRO_rental) Rental Shop#izl 874
|
||||
|
||||
//============================================================
|
||||
//Byalan
|
||||
/* Pre-Renewal locations */
|
||||
|
||||
//izlude,134,86,3 duplicate(idRO_kafra) Kafra Shop#izl-1 721
|
||||
//izlude,134,85,3 duplicate(idRO_kafra2) Kafra Shop 2#izl-1 80
|
||||
//izlude,134,91,3 duplicate(idRO_rental) Rental Shop#izl-1 874
|
||||
|
||||
// Center
|
||||
//izlude,136,113,3 duplicate(idRO_kafra) Kafra Shop#izl 721
|
||||
//izlude,136,115,3 duplicate(idRO_kafra2) Kafra Shop 2#izl 80
|
||||
//izlude,124,113,3 duplicate(idRO_cons) Consumable#izl 721
|
||||
//izlude,124,115,3 duplicate(idRO_cons2) Consumable 2#izl 80
|
||||
//izlude,127,113,3 duplicate(idRO_gear) Headgear#izl 721
|
||||
//izlude,127,115,3 duplicate(idRO_gear2) Headgear 2#izl 80
|
||||
//izlude,130,113,3 duplicate(idRO_eq) Equipment#izl 721
|
||||
//izlude,130,115,3 duplicate(idRO_eq2) Equipment 2#izl 80
|
||||
//izlude,133,113,3 duplicate(idRO_acc) Acc and Kartu#izl 721
|
||||
//izlude,133,115,3 duplicate(idRO_acc2) Acc and Kartu 2#izl 80
|
||||
//izlude,121,113,3 duplicate(idRO_rental) Rental Shop#izl 874
|
||||
|
||||
// Byalan
|
||||
//============================================================
|
||||
izlu2dun,108,57,3 duplicate(idRO_kafra) Kafra Shop#byl 721
|
||||
izlu2dun,109,57,3 duplicate(idRO_kafra2) Kafra Shop 2#byl 80
|
||||
izlu2dun,104,57,3 duplicate(idRO_rental) Rental Shop#byl 874
|
||||
|
||||
// Alberta
|
||||
//============================================================
|
||||
//Alberta
|
||||
//============================================================
|
||||
//Center
|
||||
// Center
|
||||
alberta,113,63,5 duplicate(idRO_kafra) Kafra Shop#alb-1 721
|
||||
alberta,114,64,3 duplicate(idRO_kafra2) Kafra Shop 2#alb-1 80
|
||||
alberta,110,59,5 duplicate(idRO_rental) Rental Shop#alb-1 874
|
||||
//Left-Top
|
||||
|
||||
// Left-Top
|
||||
alberta,32,229,8 duplicate(idRO_kafra) Kafra Shop#alb-2 721
|
||||
alberta,31,229,8 duplicate(idRO_kafra2) Kafra Shop 2#alb-2 80
|
||||
alberta,34,229,8 duplicate(idRO_rental) Rental Shop#alb-2 874
|
||||
@ -163,8 +162,7 @@ alberta,37,238,3 duplicate(idRO_acc) Acc and Kartu#alb 721
|
||||
alberta,37,240,3 duplicate(idRO_acc2) Acc and Kartu 2#alb 80
|
||||
alberta,40,238,3 duplicate(idRO_rental) Rental Shop#alb 874
|
||||
|
||||
//============================================================
|
||||
//Brasilis
|
||||
// Brasilis
|
||||
//============================================================
|
||||
brasilis,199,218,3 duplicate(idRO_kafra) Kafra Shop#bra 721
|
||||
brasilis,198,220,3 duplicate(idRO_kafra2) Kafra Shop 2#bra 80
|
||||
@ -178,29 +176,25 @@ brasilis,197,218,3 duplicate(idRO_acc) Acc and Kartu#bra 721
|
||||
brasilis,196,220,3 duplicate(idRO_acc2) Acc and Kartu 2#bra 80
|
||||
brasilis,201,218,3 duplicate(idRO_rental) Rental Shop#bra 874
|
||||
|
||||
//============================================================
|
||||
//Amatsu
|
||||
// Amatsu
|
||||
//============================================================
|
||||
amatsu,101,147,3 duplicate(idRO_kafra) Kafra Shop#ama 721
|
||||
amatsu,100,146,5 duplicate(idRO_kafra2) Kafra Shop 2#ama 80
|
||||
amatsu,100,144,5 duplicate(idRO_rental) Rental Shop#ama 874
|
||||
|
||||
//============================================================
|
||||
//Ayothaya
|
||||
// Ayothaya
|
||||
//============================================================
|
||||
ayothaya,212,171,5 duplicate(idRO_kafra) Kafra Shop#ayo 721
|
||||
ayothaya,212,172,5 duplicate(idRO_kafra2) Kafra Shop 2#ayo 80
|
||||
ayothaya,212,175,5 duplicate(idRO_rental) Rental Shop#ayo 874
|
||||
|
||||
//============================================================
|
||||
//Louyang
|
||||
// Louyang
|
||||
//============================================================
|
||||
louyang,208,102,3 duplicate(idRO_kafra) Kafra Shop#lou 721
|
||||
louyang,207,102,3 duplicate(idRO_kafra2) Kafra Shop 2#lou 80
|
||||
louyang,205,102,3 duplicate(idRO_rental) Rental Shop#lou 874
|
||||
|
||||
//============================================================
|
||||
//Dewata
|
||||
// Dewata
|
||||
//============================================================
|
||||
dewata,204,178,3 duplicate(idRO_kafra) Kafra Shop#dew 721
|
||||
dewata,204,180,3 duplicate(idRO_kafra2) Kafra Shop 2#dew 80
|
||||
@ -214,26 +208,26 @@ dewata,201,178,3 duplicate(idRO_acc) Acc and Kartu#dew 721
|
||||
dewata,201,180,3 duplicate(idRO_acc2) Acc and Kartu 2#dew 80
|
||||
dewata,207,178,3 duplicate(idRO_rental) Rental Shop#dew 874
|
||||
|
||||
// Juno
|
||||
//============================================================
|
||||
//Juno
|
||||
//============================================================
|
||||
//Center
|
||||
// Center
|
||||
yuno,149,187,3 duplicate(idRO_kafra) Kafra Shop#yun-1 721
|
||||
yuno,148,187,3 duplicate(idRO_kafra2) Kafra Shop 2#yun-1 80
|
||||
yuno,146,187,3 duplicate(idRO_rental) Rental Shop#yun-1 874
|
||||
//Right
|
||||
|
||||
// Right
|
||||
yuno,329,108,3 duplicate(idRO_kafra) Kafra Shop#yun-2 721
|
||||
yuno,330,108,3 duplicate(idRO_kafra2) Kafra Shop 2#yun-2 80
|
||||
yuno,332,108,3 duplicate(idRO_rental) Rental Shop#yun-2 874
|
||||
|
||||
// Morocc
|
||||
//============================================================
|
||||
//Morocc
|
||||
//============================================================
|
||||
//Center
|
||||
// Center
|
||||
morocc,154,97,3 duplicate(idRO_kafra) Kafra Shop#moc-1 721
|
||||
morocc,153,97,3 duplicate(idRO_kafra2) Kafra Shop 2#moc-1 80
|
||||
morocc,151,97,3 duplicate(idRO_rental) Rental Shop#moc-1 874
|
||||
//Top
|
||||
|
||||
// Top
|
||||
morocc,163,258,3 duplicate(idRO_kafra) Kafra Shop#moc-2 721
|
||||
morocc,162,258,3 duplicate(idRO_kafra2) Kafra Shop 2#moc-2 80
|
||||
morocc,165,258,3 duplicate(idRO_rental) Rental Shop#moc-2 874
|
||||
@ -250,25 +244,25 @@ morocc,164,261,3 duplicate(idRO_acc) Acc and Kartu#moc 721
|
||||
morocc,164,263,3 duplicate(idRO_acc2) Acc and Kartu 2#moc 80
|
||||
morocc,152,261,3 duplicate(idRO_rental) Rental Shop#moc 874
|
||||
|
||||
//============================================================
|
||||
//Gonryun
|
||||
// Gonryun
|
||||
//============================================================
|
||||
gonryun,156,122,3 duplicate(idRO_kafra) Kafra Shop#gon 721
|
||||
gonryun,155,122,3 duplicate(idRO_kafra2) Kafra Shop 2#gon 80
|
||||
gonryun,153,122,3 duplicate(idRO_rental) Rental Shop#gon 874
|
||||
|
||||
// Geffen
|
||||
//============================================================
|
||||
//Geffen
|
||||
//============================================================
|
||||
//South
|
||||
// South
|
||||
geffen,122,62,8 duplicate(idRO_kafra) Kafra Shop#gef-1 721
|
||||
geffen,122,60,3 duplicate(idRO_kafra2) Kafra Shop 2#gef-1 80
|
||||
geffen,124,62,8 duplicate(idRO_rental) Rental Shop#gef-1 874
|
||||
//East
|
||||
|
||||
// East
|
||||
geffen,200,124,1 duplicate(idRO_kafra) Kafra Shop#gef-2 721
|
||||
geffen,201,124,3 duplicate(idRO_kafra2) Kafra Shop 2#gef-2 80
|
||||
geffen,198,124,1 duplicate(idRO_rental) Rental Shop#gef-2 874
|
||||
//Center
|
||||
|
||||
// Center
|
||||
geffen,129,103,3 duplicate(idRO_kafra) Kafra Shop#gef 721
|
||||
geffen,129,105,3 duplicate(idRO_kafra2) Kafra Shop 2#gef 80
|
||||
geffen,117,103,3 duplicate(idRO_cons) Consumable#gef 721
|
||||
@ -281,62 +275,55 @@ geffen,126,103,3 duplicate(idRO_acc) Acc and Kartu#gef 721
|
||||
geffen,126,105,3 duplicate(idRO_acc2) Acc and Kartu 2#gef 80
|
||||
geffen,114,103,3 duplicate(idRO_rental) Rental Shop#gef 874
|
||||
|
||||
//============================================================
|
||||
//Aldebaran
|
||||
// Aldebaran
|
||||
//============================================================
|
||||
aldebaran,146,119,3 duplicate(idRO_kafra) Kafra Shop#alde 721
|
||||
aldebaran,145,119,3 duplicate(idRO_kafra2) Kafra Shop 2#alde 80
|
||||
aldebaran,148,119,3 duplicate(idRO_rental) Rental Shop#alde 874
|
||||
|
||||
//============================================================
|
||||
//Comodo
|
||||
// Comodo
|
||||
//============================================================
|
||||
comodo,198,148,3 duplicate(idRO_kafra) Kafra Shop#cmd 721
|
||||
comodo,200,148,3 duplicate(idRO_kafra2) Kafra Shop 2#cmd 80
|
||||
comodo,202,148,3 duplicate(idRO_rental) Rental Shop#cmd 874
|
||||
|
||||
//============================================================
|
||||
//Umbala
|
||||
// Umbala
|
||||
//============================================================
|
||||
umbala,90,159,3 duplicate(idRO_kafra) Kafra Shop#um 721
|
||||
umbala,89,159,3 duplicate(idRO_kafra2) Kafra Shop 2#um 80
|
||||
umbala,94,158,3 duplicate(idRO_rental) Rental Shop#um 874
|
||||
|
||||
//============================================================
|
||||
//Hugel
|
||||
// Hugel
|
||||
//============================================================
|
||||
hugel,97,167,3 duplicate(idRO_kafra) Kafra Shop#hu 721
|
||||
hugel,95,167,3 duplicate(idRO_kafra2) Kafra Shop 2#hu 80
|
||||
hugel,100,167,3 duplicate(idRO_rental) Rental Shop#hu 874
|
||||
|
||||
// Einbroch
|
||||
//============================================================
|
||||
//Einbroch
|
||||
//============================================================
|
||||
//West
|
||||
// West
|
||||
einbroch,58,200,8 duplicate(idRO_kafra) Kafra Shop#einbr 721
|
||||
einbroch,58,201,8 duplicate(idRO_kafra2) Kafra Shop 2#einbr 80
|
||||
einbroch,58,197,8 duplicate(idRO_rental) Rental Shop#einbr 874
|
||||
//East
|
||||
|
||||
// East
|
||||
einbroch,245,205,3 duplicate(idRO_kafra) Kafra Shop#einbr-1 721
|
||||
einbroch,244,205,3 duplicate(idRO_kafra2) Kafra Shop 2#einbr-1 80
|
||||
einbroch,248,205,3 duplicate(idRO_rental) Rental Shop#einbr-1 874
|
||||
|
||||
//============================================================
|
||||
//Einbeich
|
||||
// Einbech
|
||||
//============================================================
|
||||
einbech,174,132,8 duplicate(idRO_kafra) Kafra Shop#ein 721
|
||||
einbech,175,132,8 duplicate(idRO_kafra2) Kafra Shop 2#ein 80
|
||||
einbech,170,132,8 duplicate(idRO_rental) Rental Shop#ein 874
|
||||
|
||||
//============================================================
|
||||
//Lighthalzen
|
||||
// Lighthalzen
|
||||
//============================================================
|
||||
lighthalzen,167,101,3 duplicate(idRO_kafra) Kafra Shop#lhz 721
|
||||
lighthalzen,166,101,3 duplicate(idRO_kafra2) Kafra Shop 2#lhz 80
|
||||
lighthalzen,169,103,3 duplicate(idRO_rental) Rental Shop#lhz 874
|
||||
|
||||
//============================================================
|
||||
//Rachel
|
||||
// Rachel
|
||||
//============================================================
|
||||
rachel,98,131,3 duplicate(idRO_kafra) Kafra Shop#ra 721
|
||||
rachel,98,133,3 duplicate(idRO_kafra2) Kafra Shop 2#ra 80
|
||||
@ -350,8 +337,7 @@ rachel,100,131,3 duplicate(idRO_acc) Acc and Kartu#ra 721
|
||||
rachel,100,133,3 duplicate(idRO_acc2) Acc and Kartu 2#ra 80
|
||||
rachel,95,131,3 duplicate(idRO_rental) Rental Shop#ra 874
|
||||
|
||||
//===========================================================
|
||||
//Special Prices of Chinese New Year 2014
|
||||
//===========================================================
|
||||
- cashshop idROC2014::idRO_C2014 721,2936:6250,2177:6250,18574:6250,6225:7500,6226:5625,5381:7500,5210:10000,5294:6250,5463:6250,5335:6250,5256:6250,5495:6250,18630:6250,19518:6250,19519:6250,19520:6250,2573:6250,15058:6250,5490:6250,5498:6250,5253:6250,5502:6250,5526:6250,5529:6250,19509:6250,5359:7500,18729:6250,18666:6250,5284:6250,5471:6250,5467:6250,5363:6250,5546:6250,5334:6250,1472:5000,13420:6250,1392:5000,15008:6250,1731:3750,1825:2500,1261:1875,5545:6250,5550:6250,5549:6250,5515:6250,5514:6250,5470:6250,5505:6250,18695:6250,18694:6250
|
||||
prontera,156,178,3 duplicate(idRO_C2014) Kafra Shop#C2014_prt 721
|
||||
// Special Prices for Chinese New Year 2014
|
||||
//============================================================
|
||||
//- cashshop idROC2014::idRO_C2014 721,2936:6250,2177:6250,18574:6250,6225:7500,6226:5625,5381:7500,5210:10000,5294:6250,5463:6250,5335:6250,5256:6250,5495:6250,18630:6250,19518:6250,19519:6250,19520:6250,2573:6250,15058:6250,5490:6250,5498:6250,5253:6250,5502:6250,5526:6250,5529:6250,19509:6250,5359:7500,18729:6250,18666:6250,5284:6250,5471:6250,5467:6250,5363:6250,5546:6250,5334:6250,1472:5000,13420:6250,1392:5000,15008:6250,1731:3750,1825:2500,1261:1875,5545:6250,5550:6250,5549:6250,5515:6250,5514:6250,5470:6250,5505:6250,18695:6250,18694:6250
|
||||
//prontera,156,178,3 duplicate(idRO_C2014) Kafra Shop#C2014_prt 721
|
||||
|
@ -18,6 +18,8 @@
|
||||
//= 1.5 Added This Version History (#15429)
|
||||
//============================================================
|
||||
|
||||
// Main NPC :: diamond
|
||||
//============================================================
|
||||
- script RareDiamondMerchant 58,{
|
||||
|
||||
set .@npc$, "[Rare Diamond Merchant]";
|
||||
|
@ -14,6 +14,8 @@
|
||||
//= 1.1 Standardizing, grammar and bug fixes. [Euphy]
|
||||
//============================================================
|
||||
|
||||
// Main NPC :: 201105_luk_enc
|
||||
//============================================================
|
||||
prt_in,28,73,3 script Devil Enchant Master#prq 63,{
|
||||
disable_items;
|
||||
if (checkweight(1201,1) == 0) {
|
||||
|
@ -15,6 +15,7 @@
|
||||
//= 1.2 Added Wolf Flute trader, optimized. [Euphy]
|
||||
//= 1.2a Fixed some conditions. [Euphy]
|
||||
//============================================================
|
||||
|
||||
// Falcon Flute :: falcon_flute
|
||||
//============================================================
|
||||
- script Falcon Flute Trader::fflute -1,{
|
||||
|
@ -18,7 +18,7 @@
|
||||
//= 1.0 First version. [Euphy]
|
||||
//============================================================
|
||||
|
||||
// Blacksmith Mighty Hammer (+7~9)
|
||||
// Blacksmith Mighty Hammer (+7~9) :: cash_smelting79
|
||||
//============================================================
|
||||
- script ::MightyHammer -1,{
|
||||
disable_items;
|
||||
@ -153,7 +153,7 @@ lhz_in02,280,19,3 duplicate(MightyHammer) Mighty Hammer#lhz 826
|
||||
// iRO NPC locations:
|
||||
// payon,174,133,4 duplicate(MightyHammer) Mighty Hammer#im 826
|
||||
|
||||
// Basta (+10 and up)
|
||||
// Basta (+10 and up) :: cash_smelting
|
||||
//============================================================
|
||||
- script ::Basta -1,{
|
||||
disable_items;
|
||||
|
@ -19,6 +19,8 @@
|
||||
//= 1.1 Updated to match the official scripts. [Euphy]
|
||||
//============================================================
|
||||
|
||||
// Mora :: ep14_1_tre
|
||||
//============================================================
|
||||
mora,106,117,3 script Quiver Maker#mora 516,{
|
||||
if (checkweight(1201,1) == 0) {
|
||||
mes "[Quiver Maker]";
|
||||
|
@ -2610,12 +2610,12 @@ REPLACE INTO `item_db_re` VALUES (4570,'Flamel_Card','Flamel Card',6,20,NULL,10,
|
||||
REPLACE INTO `item_db_re` VALUES (4571,'Gertie_Card','Gertie Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus bFlee,10; skill "RG_CLOSECONFINE",1;',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4572,'Randel_Card','Randel Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus bFlee,10; skill "CR_AUTOGUARD",3;',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4573,'Trentini_Card','Trentini Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus bFlee,10; if(BaseJob==Job_Dancer) { bonus bMaxHPrate,10; bonus bMaxSPrate,5;}',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4574,'General_Daehyon_Card','General Daehyon Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'if((getiteminfo(getequipid(EQI_HAND_R),14) == 3) || (getiteminfo(getequipid(EQI_HAND_R),14) == 4)) { bonus bBaseAtk,100; }',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4575,'Armed_Guard_Soheon_Card','Armed Guard Soheon Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bBaseAtk,10; if(getiteminfo(getequipid(EQI_HAND_R),14) == 1) { if(getrefine()>=10) { bonus bAspd,1; } if(getrefine()>=14) { bonus bAspd,1; } }',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4574,'General_Daehyon_Card','General Daehyon Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'if((getiteminfo(getequipid(EQI_HAND_R),11) == 3) || (getiteminfo(getequipid(EQI_HAND_R),11) == 4)) { bonus bBaseAtk,100; }',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4575,'Armed_Guard_Soheon_Card','Armed Guard Soheon Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bBaseAtk,10; if(getiteminfo(getequipid(EQI_HAND_R),11) == 1) { if(getrefine()>=10) { bonus bAspd,1; } if(getrefine()>=14) { bonus bAspd,1; } }',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4576,'Gioia_Card','Gioia Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus2 bMagicAtkEle,4,100; bonus2 bMagicAtkEle,8,100; bonus2 bSubEle,0,-30; bonus2 bSubEle,1,-30; bonus2 bSubEle,2,-30; bonus2 bSubEle,3,-30; bonus2 bSubEle,4,-30; bonus2 bSubEle,5,-30; bonus2 bSubEle,6,-30; bonus2 bSubEle,7,-30; bonus2 bSubEle,8,-30; bonus2 bSubEle,9,-30;',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4577,'Elvira_Card','Elvira Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bMagicAtkEle,4,20; bonus2 bMagicAtkEle,8,20;',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4578,'Angry_Student_Pyuriel_Card','Angry Student Pyuriel Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bCritAtkRate,30; bonus2 bSubRace,0,-10; bonus2 bSubRace,1,-10; bonus2 bSubRace,2,-10; bonus2 bSubRace,3,-10; bonus2 bSubRace,4,-10; bonus2 bSubRace,5,-10; bonus2 bSubRace,6,-10; bonus2 bSubRace,7,-10; bonus2 bSubRace,8,-10; bonus2 bSubRace,9,-10;',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4579,'Warrior_Lola_Card','Warrior Lola Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'if(getiteminfo(getequipid(EQI_HAND_R),14) == 8) { bonus bBaseAtk,20; bonus bCritical,10; } bonus bBaseAtk,getrefine(); bonus bCritical,getrefine();',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4579,'Warrior_Lola_Card','Warrior Lola Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'if(getiteminfo(getequipid(EQI_HAND_R),11) == 8) { bonus bBaseAtk,20; bonus bCritical,10; } bonus bBaseAtk,getrefine(); bonus bCritical,getrefine();',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4580,'Dark_Guardian_Kades_Card','Dark Guardian Kades Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus2 bSubEle,1,50; bonus2 bSubEle,2,50; bonus2 bSubEle,3,50; bonus2 bSubEle,4,50; bonus2 bSubEle,7,50; bonus2 bSubEle,9,50; bonus2 bSubEle,6,-100; bonus2 bSubEle,8,-100;',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4581,'Rudo_Card','Rudo Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'/* TODO: { heal 0,-40; bonus_script "{ bonus bAgi,44; }",3,15,0; sc_start SC_SpeedUp1,3000,0; } */',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4582,'Bungisngis_Card','Bungisngis Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus bMaxHPrate,(getrefine()/2);',NULL,NULL);
|
||||
@ -2643,7 +2643,7 @@ REPLACE INTO `item_db_re` VALUES (4603,'Corruption_Root_Card','Corruption Root C
|
||||
REPLACE INTO `item_db_re` VALUES (4604,'Realized_Corruption_Root_Card','Realized Corruption Root Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bBaseAtk,30; bonus5 bAutoSpellWhenHit,"NPC_WIDESTONE",2,70,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"NPC_WIDESLEEP",2,70,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"NPC_WIDECURSE",2,70,BF_WEAPON,0;',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4605,'Agony_Of_Royal_Knight_Card','Agony Of Royal Knight Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bMaxHPrate,-44; bonus bHPGainValue,200+10*getrefine();',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4606,'Grudge_of_Royal_Knight_Card','Grudge of Royal Knight Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus bMaxSPrate,-44; bonus bSPGainValue,20+(getrefine()/2);',NULL,'heal 0,-444;');
|
||||
REPLACE INTO `item_db_re` VALUES (4607,'Faithful_Manager_Card','Faithful Manager Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bBaseAtk,5; bonus bMatk,5; if(getiteminfo(getequipid(EQI_HAND_R),14) == 15) { if(getrefine()>=10) { bonus bBaseAtk,20; bonus bMatk,20; } if(getrefine()>=14) { bonus bBaseAtk,20; bonus bMatk,20; } }',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4607,'Faithful_Manager_Card','Faithful Manager Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bBaseAtk,5; bonus bMatk,5; if(getiteminfo(getequipid(EQI_HAND_R),11) == 15) { if(getrefine()>=10) { bonus bBaseAtk,20; bonus bMatk,20; } if(getrefine()>=14) { bonus bBaseAtk,20; bonus bMatk,20; } }',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4608,'White_Knight_Card','White Knight Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bBaseAtk,15; bonus2 bAddSize,Size_Medium,20; bonus2 bAddSize,Size_Large,20;',NULL,NULL);
|
||||
REPLACE INTO `item_db_re` VALUES (4609,'Khalitzburg_Knight_Card','Khalitzburg Knight Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,'bonus bDef,20; bonus2 bSubSize,Size_Medium,25; bonus2 bSubSize,Size_Large,25;',NULL,NULL);
|
||||
|
||||
|
@ -1646,6 +1646,9 @@ int map_quit(struct map_session_data *sd) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (sd->expiration_tid != INVALID_TIMER)
|
||||
delete_timer(sd->expiration_tid, pc_expiration_timer);
|
||||
|
||||
if (sd->npc_timer_id != INVALID_TIMER) //Cancel the event timer.
|
||||
npc_timerevent_quit(sd);
|
||||
|
||||
|
76
src/map/pc.c
76
src/map/pc.c
@ -62,8 +62,10 @@ static unsigned int level_penalty[3][CLASS_MAX][MAX_LEVEL*2+1];
|
||||
// h-files are for declarations, not for implementations... [Shinomori]
|
||||
struct skill_tree_entry skill_tree[CLASS_COUNT][MAX_SKILL_TREE];
|
||||
// timer for night.day implementation
|
||||
int day_timer_tid;
|
||||
int night_timer_tid;
|
||||
int day_timer_tid = INVALID_TIMER;
|
||||
int night_timer_tid = INVALID_TIMER;
|
||||
|
||||
int pc_expiration_tid = INVALID_TIMER;
|
||||
|
||||
struct fame_list smith_fame_list[MAX_FAME_LIST];
|
||||
struct fame_list chemist_fame_list[MAX_FAME_LIST];
|
||||
@ -1033,6 +1035,7 @@ bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_tim
|
||||
sd->invincible_timer = INVALID_TIMER;
|
||||
sd->npc_timer_id = INVALID_TIMER;
|
||||
sd->pvp_timer = INVALID_TIMER;
|
||||
sd->expiration_tid = INVALID_TIMER;
|
||||
|
||||
#ifdef SECURE_NPCTIMEOUT
|
||||
// Initialize to defaults/expected
|
||||
@ -1138,12 +1141,8 @@ bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_tim
|
||||
clif_displaymessage(sd->fd, motd_text[i]);
|
||||
}
|
||||
|
||||
// message of the limited time of the account
|
||||
if (expiration_time != 0) { // don't display if it's unlimited or unknow value
|
||||
char tmpstr[1024];
|
||||
strftime(tmpstr, sizeof(tmpstr) - 1, msg_txt(sd,501), localtime(&expiration_time)); // "Your account time limit is: %d-%m-%Y %H:%M:%S."
|
||||
clif_wis_message(sd->fd, wisp_server_name, tmpstr, strlen(tmpstr)+1);
|
||||
}
|
||||
if (expiration_time != 0)
|
||||
sd->expiration_time = expiration_time;
|
||||
|
||||
/**
|
||||
* Fixes login-without-aura glitch (the screen won't blink at this point, don't worry :P)
|
||||
@ -1345,6 +1344,15 @@ int pc_reg_received(struct map_session_data *sd)
|
||||
clif_parse_LoadEndAck(sd->fd, sd);
|
||||
}
|
||||
|
||||
if (sd->expiration_time != 0) { // don't display if it's unlimited or an unknown value
|
||||
time_t exp_time = sd->expiration_time;
|
||||
char tmpstr[1024];
|
||||
strftime(tmpstr, sizeof(tmpstr) - 1, msg_txt(sd,501), localtime(&sd->expiration_time)); // "Your account time limit is: %d-%m-%Y %H:%M:%S."
|
||||
clif_wis_message(sd->fd, wisp_server_name, tmpstr, strlen(tmpstr)+1);
|
||||
|
||||
pc_expire_check(sd);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -10501,6 +10509,56 @@ void pc_damage_log_clear(struct map_session_data *sd, int id)
|
||||
}
|
||||
}
|
||||
|
||||
int pc_expiration_timer(int tid, unsigned int tick, int id, intptr_t data) {
|
||||
struct map_session_data *sd = map_id2sd(id);
|
||||
|
||||
if( !sd ) return 0;
|
||||
|
||||
sd->expiration_tid = INVALID_TIMER;
|
||||
|
||||
if( sd->fd )
|
||||
clif_authfail_fd(sd->fd,10);
|
||||
|
||||
map_quit(sd);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* this timer exists only when a character with a expire timer > 24h is online */
|
||||
/* it loops thru online players once an hour to check whether a new < 24h is available */
|
||||
int pc_global_expiration_timer(int tid, unsigned int tick, int id, intptr_t data) {
|
||||
struct s_mapiterator* iter;
|
||||
struct map_session_data* sd;
|
||||
|
||||
iter = mapit_getallusers();
|
||||
|
||||
for( sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); sd = (TBL_PC*)mapit_next(iter) )
|
||||
if( sd->expiration_time )
|
||||
pc_expire_check(sd);
|
||||
|
||||
mapit_free(iter);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void pc_expire_check(struct map_session_data *sd) {
|
||||
/* ongoing timer */
|
||||
if( sd->expiration_tid != INVALID_TIMER )
|
||||
return;
|
||||
|
||||
/* not within the next 24h, enable the global check */
|
||||
if( sd->expiration_time > (time(NULL) + ((60 * 60) * 24)) ) {
|
||||
|
||||
/* global check not running, enable */
|
||||
if( pc_expiration_tid == INVALID_TIMER ) /* Starts in 1h, repeats every hour */
|
||||
pc_expiration_tid = add_timer_interval(gettick() + ((1000 * 60) * 60), pc_global_expiration_timer, 0, 0, ((1000 * 60) * 60));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
sd->expiration_tid = add_timer(gettick() + (unsigned int)(sd->expiration_time - time(NULL)) * 1000, pc_expiration_timer, sd->bl.id, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deposit some money to bank
|
||||
* @param sd
|
||||
@ -10734,6 +10792,8 @@ void do_init_pc(void) {
|
||||
add_timer_func_list(pc_follow_timer, "pc_follow_timer");
|
||||
add_timer_func_list(pc_endautobonus, "pc_endautobonus");
|
||||
add_timer_func_list(pc_talisman_timer, "pc_talisman_timer");
|
||||
add_timer_func_list(pc_global_expiration_timer, "pc_global_expiration_timer");
|
||||
add_timer_func_list(pc_expiration_timer, "pc_expiration_timer");
|
||||
|
||||
add_timer(gettick() + autosave_interval, pc_autosave, 0, 0);
|
||||
|
||||
|
11
src/map/pc.h
11
src/map/pc.h
@ -587,8 +587,15 @@ struct map_session_data {
|
||||
int16 icon;
|
||||
int tid;
|
||||
} bonus_script[MAX_PC_BONUS_SCRIPT];
|
||||
|
||||
/* Expiration Timer ID */
|
||||
int expiration_tid;
|
||||
time_t expiration_time;
|
||||
};
|
||||
|
||||
/* Global Expiration Timer ID */
|
||||
extern int pc_expiration_tid;
|
||||
|
||||
enum weapon_type {
|
||||
W_FIST, //Bare hands
|
||||
W_DAGGER, //1
|
||||
@ -831,6 +838,10 @@ int pc_checkskill(struct map_session_data *sd,uint16 skill_id);
|
||||
short pc_checkequip(struct map_session_data *sd,int pos);
|
||||
bool pc_checkequip2(struct map_session_data *sd,int nameid,int min, int max);
|
||||
|
||||
int pc_expiration_timer(int tid, unsigned int tick, int id, intptr_t data);
|
||||
int pc_global_expiration_timer(int tid, unsigned tick, int id, intptr_t data);
|
||||
void pc_expire_check(struct map_session_data *sd);
|
||||
|
||||
int pc_calc_skilltree(struct map_session_data *sd);
|
||||
int pc_calc_skilltree_normalize_job(struct map_session_data *sd);
|
||||
void pc_clean_skilltree(struct map_session_data *sd);
|
||||
|
Loading…
x
Reference in New Issue
Block a user