diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/000-0/sailors.txt | 10 | ||||
-rw-r--r-- | npc/001-7/celestia_bossfight.txt | 1 | ||||
-rw-r--r-- | npc/002-3/nard.txt | 104 | ||||
-rw-r--r-- | npc/003-0-1/statues.txt | 6 | ||||
-rw-r--r-- | npc/003-1/aahna.txt | 69 | ||||
-rw-r--r-- | npc/003-2/lua.txt | 20 | ||||
-rw-r--r-- | npc/017-1/town.txt | 30 | ||||
-rw-r--r-- | npc/018-2-2/main.txt | 1 | ||||
-rw-r--r-- | npc/021-4/main.txt | 1 | ||||
-rw-r--r-- | npc/boss/throne.txt | 7 | ||||
-rw-r--r-- | npc/commands/rate-management.txt | 46 | ||||
-rw-r--r-- | npc/functions/clientversion.txt | 23 | ||||
-rw-r--r-- | npc/functions/daily.txt | 11 | ||||
-rw-r--r-- | npc/functions/mobpoint.txt | 14 | ||||
-rw-r--r-- | npc/functions/scoreboards.txt | 51 | ||||
-rw-r--r-- | npc/functions/siege.txt | 2 |
16 files changed, 296 insertions, 100 deletions
diff --git a/npc/000-0/sailors.txt b/npc/000-0/sailors.txt index 85fab4553..de33b9d59 100644 --- a/npc/000-0/sailors.txt +++ b/npc/000-0/sailors.txt @@ -24,6 +24,16 @@ OnTouch: .@lang = requestlang(); if (.@lang >= 0 && .@lang <= 9) Lang = .@lang; + // Test Server + mesn "TMW 2 Staff"; + mesc l("Before we start, to be eligible for rewards, please insert your CHARACTER NAME on Live Server."), 1; + mesc l("You can leave it blank if you wish no reward."), 1; + mesc l("This can be changed later, don't worry."), 1; + mesc l("(Click next button to advance dialogs)"), 3; + next; + input OFFICIAL_NICKNAME$; + clear; + showavatar 3; mesn "Narrator"; diff --git a/npc/001-7/celestia_bossfight.txt b/npc/001-7/celestia_bossfight.txt index 66eddd809..6ea951075 100644 --- a/npc/001-7/celestia_bossfight.txt +++ b/npc/001-7/celestia_bossfight.txt @@ -36,6 +36,7 @@ L_Survivor: channelmes("#world", $YETIKING_WINNER$+" is the first player to finish Yeti King Quest!! GG, dude! %%N"); announce "All hail ##B"+$YETIKING_WINNER$+"##b, first to complete the ##3Yeti King Quest!", bc_all|bc_npc; getexp 0, 2000; + getitembound Runestaff, 1, 1; getitem PrismGift, 1; mesc l("CONGRATULATIONS! You are the first player to finish Yeti King quest!!"), 2; mesc l("You just gained a Prism Gift, and 2000 Job Exp for your bravery!"), 2; diff --git a/npc/002-3/nard.txt b/npc/002-3/nard.txt index 24f300405..f4b08c1cf 100644 --- a/npc/002-3/nard.txt +++ b/npc/002-3/nard.txt @@ -77,8 +77,6 @@ L_Checker: next; mesn; mesq l("The Alliance can help you in finding out about who you are, why you are here, or from where you came from. So, about the tasks I want completed."); - LOCATION$ = "Candor"; - setq ShipQuests_Julia, 3; next; .@price=800; mesc b(l(".:: Main Quest 1-3 ::.")), 3; @@ -87,61 +85,49 @@ L_Checker: msObjective(getq(CandorQuest_Barrel) >= 4, l("* Ask Zegas, the mayoress, if she needs help.")); msObjective(Zeny >= .@price, l("* Collect @@/@@ GP", Zeny, .@price)); -L_Referral: - // Referral program - if (#REFERRAL_PROG == 0 && $REFERRAL_ENABLED) { - next; - clear; - showavatar NPC_LOF_RICH; - mesc l("But before, a message from our developers!"), 3; - next; - mesn l("TMW2 Staff"); - mesc l("Hello, and welcome to TMW2: Moubootaur Legends!"), 3; - next; - mesn l("TMW2 Staff"); - mesc l("Did you came here by someone advise? If yes, write their name down here!"), 3; - next; - mesc l("If this is not the case, just click on \"Send\"."), 3; - .@ref$=""; - do - { - input .@ref$; - //debugmes "Player invite: "+.@ref$; - mes ""; - if (.@ref$ != "") { - .@ref=gf_accid(strip(.@ref$)); - if (.@ref > 0) { - if (.@ref == getcharid(3)) { - mesn l("TMW2 Staff"); - mesc l("Hahah, silly, that's yourself!"), 3; - mesc l("Try again!"), 3; - next; - .@ref$=""; - } else { - #REFERRAL_PROG=.@ref; - getitembound FriendGift, 1, 1; - mesn l("TMW2 Staff"); - mesc l("Well, welcome to the game! If you have any doubt, shout on #world for help!"), 3; - mesc l("Your friend also sent you a gift - open it when you get level 5!"), 3; - next; - } - } else { - mesn l("TMW2 Staff"); - mesc l("Oops, there is nobody known as @@ on this game.", .@ref$), 3; - mesc l("Could you try again? There could be a typo!"), 3; - next; - .@ref$=""; - } - } else { - .@ref$="None"; - mesn l("TMW2 Staff"); - mesc l("I see. Well, welcome to the game! If you have any doubt, shout on #world for help!"), 3; - next; +L_FirstLogin: + next; + clear; + showavatar NPC_LOF_RICH; + mesc l("But before, a message from our developers!"), 3; + next; + mesn l("TMW2 Staff"); + mesc l("First of all: Thank you for playing during this event."), 1; + mesc l("You may now choose your bonus."), 1; + mesc l("The bonus will be added to a @@, you must equip it.", getitemlink(PlushMouboo)), 3; + mesc b(l("IT CANNOT BE CHANGED LATER")), 1; + next; + do { + select + l("I'm just skipping dialogs, sorry"), + l("HP +75% (not recommended)"), + l("EXP +50%"), + l("DMG +50%"); + mes ""; + if (@menu != 1) { + getitembound(PlushMouboo, 1, 4); + delinventorylist(); // Needed, because we'll rely on rfind() + getinventorylist(); + .@index=array_rfind(@inventorylist_id, PlushMouboo); + switch (@menu) { + case 2: + .@vartp=VAR_MAXHPPERCENT; .@bonus=75; break; + case 3: + .@vartp=IOPT_EXPGAIN; .@bonus=50; break; + case 4: + .@vartp=VAR_ATKPERCENT; .@bonus=50; break; + default: + Exception("Invalid menu entry: "+@menu, RB_SPEECH|RB_DEBUGMES|RB_PLEASEREPORT); .@vartp=any(VAR_ATKPERCENT, IOPT_EXPGAIN); .@bonus=50; break; } - } while (.@ref$ == ""); - showavatar NPC_NARD; - } - + setitemoptionbyindex(.@index, 0, .@vartp, .@bonus); + } + } while (@menu == 1); + Zeny+=50000; + getitem TimeFlask, 1; + getitem FatesPotion, 30; + getitem ReturnPotion, 100; + LOCATION$ = "Candor"; + setq ShipQuests_Julia, 3; close; @@ -175,18 +161,14 @@ L_NotYet: mes ""; select rif(Zeny >= .@price, l("I've brought the money you've asked for.")), - rif(#REFERRAL_PROG == 0 && $REFERRAL_ENABLED && BaseLevel <= 10, - l("I forgot to say earlier, but indeed, I was invited by someone!")), l("Captain, why have you brought me to a deserted boring island?!"), l("I don't want to help your \"friends\", bring me to somewhere useful!"), l("Please excuse me, captain."); mes ""; if (@menu == 2) - goto L_Referral; - if (@menu == 3) goto L_CandorIsland; - if (@menu == 4) + if (@menu == 3) goto L_NeedHelp; mesn; diff --git a/npc/003-0-1/statues.txt b/npc/003-0-1/statues.txt index 1f6fec071..cd57b40cd 100644 --- a/npc/003-0-1/statues.txt +++ b/npc/003-0-1/statues.txt @@ -10,6 +10,8 @@ .rate_limit=gettimetick(2); HallOfFortune(); + next; + HallOfCraft(); close; OnInit: @@ -72,6 +74,10 @@ OnInit: 003-0-1,60,26,0 script Worker Statue NPC_STATUE_CONTRIBUTOR,{ HallOfSponsor(); + next; + HallOfMobpt(); + next; + HallOfPVP(); close; OnInit: diff --git a/npc/003-1/aahna.txt b/npc/003-1/aahna.txt index 94fff454a..6d89ccf35 100644 --- a/npc/003-1/aahna.txt +++ b/npc/003-1/aahna.txt @@ -22,6 +22,75 @@ OnInit: .distance = 5; end; +// Test Server Utilities +OnClock0000: + if (gettime(GETTIME_DAYOFMONTH) != 31) + end; + kamibroadcast("It's the last event day! Server shutting down in 20 hours!"); + end; + +OnClock1000: + if (gettime(GETTIME_DAYOFMONTH) != 31) + end; + kamibroadcast("Event Server shutting down in 10 hours!"); + end; + +OnClock1500: + if (gettime(GETTIME_DAYOFMONTH) != 31) + end; + kamibroadcast("Event Server shutting down in 5 hours!"); + end; + +OnClock1800: + if (gettime(GETTIME_DAYOFMONTH) != 31) + end; + kamibroadcast("Event Server shutting down in 2 hours!"); + end; + +OnClock1900: + if (gettime(GETTIME_DAYOFMONTH) != 31) + end; + kamibroadcast("Event Server shutting down in 1 hour!"); + end; + +OnClock1930: + if (gettime(GETTIME_DAYOFMONTH) != 31) + end; + kamibroadcast("Event Server shutting down in 30 minutes!"); + end; + +OnClock1945: + if (gettime(GETTIME_DAYOFMONTH) != 31) + end; + kamibroadcast("Event Server shutting down in 15 minutes!"); + end; + +OnClock1955: + if (gettime(GETTIME_DAYOFMONTH) != 31) + end; + kamibroadcast("Event Server shutting down in 5 minutes!"); + end; + +OnClock1957: + if (gettime(GETTIME_DAYOFMONTH) != 31) + end; + kamibroadcast("##1ATTENTION: THIS IS THE LAST OPPORTUNITY TO SELL STORAGE ITEMS AND EMPTY THE BANK."); + end; + +OnClock2000: + if (gettime(GETTIME_DAYOFMONTH) != 31) + end; + kamibroadcast("Wp everyone", "Saulc"); + sleep(500); + kamibroadcast("Thanks everyone for participating on the event.", "Jesusalva"); + sleep(2000); + kamibroadcast("Event Server will now shutdown, I hope to be handing out the rewards within the next 15 days.", "Jesusalva"); + sleep(5000); + kamibroadcast("Stay tuned with the updates!", "Jesusalva"); + sleep(3000); + atcommand "@serverexit 100"; + end; + // Server Happy Hour OnSun1800: $@EXP_EVENT=rand2(15, 20); diff --git a/npc/003-2/lua.txt b/npc/003-2/lua.txt index 5cd30f0c4..557d6dfee 100644 --- a/npc/003-2/lua.txt +++ b/npc/003-2/lua.txt @@ -25,13 +25,31 @@ L_Menu: rif(is_staff(), l("Tell people the name of a new hero.")), L_NewHero, rif((getgmlevel() == 1 || is_admin()) && #T_SPONSOR <= gettimetick(2), l("I want a Sponsor Necklace.")), L_Sponsor, l("Do you have any tips for beginners?"), L_Tips, - l("I am a contributor, and I want contributor stuff."), L_Contributor, + //l("I am a contributor, and I want contributor stuff."), L_Contributor, + l("I would like to change my ML rewards account"), L_TestServer, l("What alliance?"),-; mes ""; mesn; mesq l("The Alliance which was formed after the war!"); close; +L_TestServer: + mesn "TMW 2 Staff"; + mesc l("Before we start, to be eligible for rewards, please insert your CHARACTER NAME on Live Server."), 1; + mesc l("Your current official server account: ")+strip(OFFICIAL_NICKNAME$); + next; + mesc l("Change it?"); + if (askyesno() == ASK_NO) + close; + mesc l("You can leave it blank if you wish no reward."), 1; + mesc l("This can be changed later, don't worry."), 1; + mesc l("(Click next button to advance dialogs)"), 3; + next; + input OFFICIAL_NICKNAME$; + next; + mesc l("Your current official server account: ")+strip(OFFICIAL_NICKNAME$); + close; + L_GMItems: getitembound GMRobe, 1, 1; getitembound GMCap, 1, 1; diff --git a/npc/017-1/town.txt b/npc/017-1/town.txt index a475d1400..585d58860 100644 --- a/npc/017-1/town.txt +++ b/npc/017-1/town.txt @@ -8,3 +8,33 @@ OnTouch: EnterTown("LoF"); end; } + + +017-1,86,62,0 script #Airship NPC_AIRSHIP,{ + if ($@MK_CHALLENGE) { + mesc l("The following players are currently challenging the Monster King:"), 1; + .@c = getunits(BL_PC, .@players, false, "boss"); + for (.@i = 0; .@i < .@c; .@i++) { + mes "* "+strcharinfo(0, "", .@players[.@i]); + } + close; + } + mesc l("Challenge the Monster King?"), 1; + mesc l("Everyone in a 15x15 radius from this NPC will be warped!"), 1; + mesc l("This NPC is at coordinates 86,62"); + next; + if (askyesno() == ASK_YES) { + if (!$@MK_CHALLENGE) { + areawarp("017-1", 71, 47, 101, 77, "boss", 34, 32, 41, 35); + donpcevent("#monsterthrone::OnBegin"); + } + closeclientdialog; + } + close; + +OnInit: + .distance=15; + end; + +} + diff --git a/npc/018-2-2/main.txt b/npc/018-2-2/main.txt index e0b2bf951..5bd683233 100644 --- a/npc/018-2-2/main.txt +++ b/npc/018-2-2/main.txt @@ -60,6 +60,7 @@ OnMasterBossKilled: channelmes("#world", $HEROESHOLD_WINNER$+" is the first player to finish HEROES HOLD Master Dungeon!! GG, dude! %%N"); announce "All hail ##B"+$HEROESHOLD_WINNER$+"##b, first to complete the ##3HEROES HOLD Master Dungeon!", bc_all|bc_npc; getexp 0, 2000; + getitembound Tyranny, 1, 1; getitem PrismGift, 1; mesc l("CONGRATULATIONS! You are the first player to finish Heroes Hold Master Dungeon!!"), 2; mesc l("You just gained a Prism Gift, and 2000 Job Exp for your bravery!"), 2; diff --git a/npc/021-4/main.txt b/npc/021-4/main.txt index 862636260..2bbbda804 100644 --- a/npc/021-4/main.txt +++ b/npc/021-4/main.txt @@ -198,6 +198,7 @@ L_Winner: channelmes("#world", $CINDY_WINNER$+" is the first player to finish Cindy Quest!! GG, dude! %%N"); announce "All hail ##B"+$CINDY_WINNER$+"##b, first to complete the ##3Cindy Quest!", bc_all|bc_npc; getexp 0, 2000; + getitembound DemureAxe, 1, 1; getitem PrismGift, 1; mesc l("CONGRATULATIONS! You are the first player to finish Cindy Quest!!"), 2; mesc l("You just gained a Prism Gift, and 2000 Job Exp for your bravery!"), 2; diff --git a/npc/boss/throne.txt b/npc/boss/throne.txt index 668fd0a86..ebf2a29cc 100644 --- a/npc/boss/throne.txt +++ b/npc/boss/throne.txt @@ -9,8 +9,8 @@ boss,45,45,0 script #monsterthrone NPC_HIDDEN,0,0,{ OnTouch: if (strcharinfo(2) == "Monster King") end; - warp "boss", 45, 48; - percentheal -15,0; + //warp "boss", 45, 48; + percentheal -5,0; dispbottom "The throne is cursed, only the Monster King may seat on it."; end; @@ -110,6 +110,7 @@ OnVictory: stopnpctimer; mapwarp("boss", "017-1", 120, 88); $GAME_STORYLINE=5; + disablenpc "#Airship"; // Without the Monster King to rule monsters... TODO Isbamuth setbattleflag("monster_ai", 0x209); setbattleflag("monster_active_enable", false); @@ -158,4 +159,6 @@ boss,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap03 NPC_TRAP,0,0 boss,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap04 NPC_TRAP,0,0 boss,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap05 NPC_TRAP,0,0 +boss mapflag zone MMO + diff --git a/npc/commands/rate-management.txt b/npc/commands/rate-management.txt index c7945cd78..c98f8eeb9 100644 --- a/npc/commands/rate-management.txt +++ b/npc/commands/rate-management.txt @@ -131,7 +131,7 @@ OnInit: bindatcmd "exprate", "@exprate::OnCall", 80, 80, 1; // change exp rate // WARNING: using @reloadscript will change the "original" value - .original_exp_rate = 100;//getbattleflag("base_exp_rate"); + .original_exp_rate = 300;//getbattleflag("base_exp_rate"); .current_rate = .original_exp_rate; // XXX: maybe in the future: @@ -158,17 +158,17 @@ OnReload: stopnpctimer; .hours = 0; .max_hours = 0; - .current_rate = 100; - setbattleflag("item_rate_common", 100); - setbattleflag("item_rate_common_boss", 100); - setbattleflag("item_rate_heal", 100); - setbattleflag("item_rate_heal_boss", 100); - setbattleflag("item_rate_use", 100); - setbattleflag("item_rate_use_boss", 100); - setbattleflag("item_rate_equip", 100); - setbattleflag("item_rate_equip_boss", 100); - setbattleflag("item_rate_card", 100); - setbattleflag("item_rate_card_boss", 100); + .current_rate = 1000; + setbattleflag("item_rate_common", 1000); + setbattleflag("item_rate_common_boss", 1000); + setbattleflag("item_rate_heal", 1000); + setbattleflag("item_rate_heal_boss", 1000); + setbattleflag("item_rate_use", 1000); + setbattleflag("item_rate_use_boss", 1000); + setbattleflag("item_rate_equip", 1000); + setbattleflag("item_rate_equip_boss", 1000); + setbattleflag("item_rate_card", 1000); + setbattleflag("item_rate_card_boss", 1000); charcommand("@reloadmobdb"); // this is on purpose (callable without RID) - no idea what is the purpose SeasonReload(1); channelmes("#world", "The Drop Rate Bonus is now over."); @@ -259,17 +259,17 @@ OnInit: bindatcmd "droprate", "@droprate::OnCall", 80, 80, 1; // change drop rate // WARNING: using @reloadscript will change the "original" value, use @reloadbattleconf before! - .org_dcn = 100;//getbattleflag("item_rate_common"); - .org_dcb = 100;//getbattleflag("item_rate_common_boss"); - .org_dhn = 100;//getbattleflag("item_rate_heal"); - .org_dhb = 100;//getbattleflag("item_rate_heal_boss"); - .org_dun = 100;//getbattleflag("item_rate_use"); - .org_dub = 100;//getbattleflag("item_rate_use_boss"); - .org_den = 100;//getbattleflag("item_rate_equip"); - .org_deb = 100;//getbattleflag("item_rate_equip_boss"); - .org_dxn = 100;//getbattleflag("item_rate_card"); - .org_dxb = 100;//getbattleflag("item_rate_card_boss"); - .current_rate = 100; + .org_dcn = 1000;//getbattleflag("item_rate_common"); + .org_dcb = 1000;//getbattleflag("item_rate_common_boss"); + .org_dhn = 1000;//getbattleflag("item_rate_heal"); + .org_dhb = 1000;//getbattleflag("item_rate_heal_boss"); + .org_dun = 1000;//getbattleflag("item_rate_use"); + .org_dub = 1000;//getbattleflag("item_rate_use_boss"); + .org_den = 1000;//getbattleflag("item_rate_equip"); + .org_deb = 1000;//getbattleflag("item_rate_equip_boss"); + .org_dxn = 1000;//getbattleflag("item_rate_card"); + .org_dxb = 1000;//getbattleflag("item_rate_card_boss"); + .current_rate = 1000; // XXX: maybe in the future: //.original_job_rate = getbattleflag("base_job_rate"); diff --git a/npc/functions/clientversion.txt b/npc/functions/clientversion.txt index 3950f70f2..51e5eab84 100644 --- a/npc/functions/clientversion.txt +++ b/npc/functions/clientversion.txt @@ -8,6 +8,18 @@ // This also handles all updates, and usually have priority. function script clientupdater { + // GM Reset Util + if (is_staff()) { + if (BaseLevel > 20 || Zeny > 50000 || JobLevel > 20) { + resetlvl(1); + Zeny=0; + clearitem(); + adddefaultskills(); + dispbottom col("GM Account detected - Automatic Char Reset successful.", 1); + debugmes "GM Account %s reset successful", strcharinfo(0); + } + } + // Skip any update for newcomers if (getmap() ~= "000-0*") { UPDATE=gettimetick(2); @@ -569,7 +581,16 @@ function script clientupdater { getitem GraduationRobe, 1; } - + // Test Server Updates + // seg jul 22 21:23:00 -03 2019 + if (UPDATE < 1563841380) { + UPDATE=1563841380; + // If you have TMW2_CRAFT skill, you need the bonus recipe + if (getskilllv(TMW2_CRAFT)) { + RECIPES_EQUIPMENT[CraftDagger]=true; + dispbottom l("Dagger Crafting recipe learnt."); + } + } // #ADD_LVL means the user have to right to get some levels. This is a sketch. The code might be deleted. if (#ADD_LVL) { diff --git a/npc/functions/daily.txt b/npc/functions/daily.txt index 8f4b71551..9896d5304 100644 --- a/npc/functions/daily.txt +++ b/npc/functions/daily.txt @@ -88,26 +88,29 @@ function script daily_login_bonus_handler { getitem BronzeGift, 1; dispbottom l("##2 14 Days login bonus: ##B1x @@##b", getitemlink(BronzeGift)); } else if (#LOGIN_STREAK == 7) { - getitem StrangeCoin, 3; - dispbottom l("##2 7 Days login bonus: ##B3x @@##b", getitemlink(StrangeCoin)); + getitem StrangeCoin, 30; + dispbottom l("##2 7 Days login bonus: ##B30x @@##b", getitemlink(StrangeCoin)); } else if (#LOGIN_STREAK == 3) { - getitem StrangeCoin, 1; - dispbottom l("##2 3 Days login bonus: ##B1x @@##b", getitemlink(StrangeCoin)); + getitem StrangeCoin, 10; + dispbottom l("##2 3 Days login bonus: ##B10x @@##b", getitemlink(StrangeCoin)); } else if (#LOGIN_STREAK % 3 == 0) { .@value=max(20, rand(0, (#LOGIN_STREAK*2))); .@value+=(BaseLevel*2)+rand(JobLevel, JobLevel*3); + .@value*=20; Zeny=Zeny+.@value; dispbottom l("##2Daily login bonus: ##B@@ GP##b", .@value); } else if (#LOGIN_STREAK % 3 == 2) { .@value=max(5, rand(0, (#LOGIN_STREAK/4))); .@value+=(BaseLevel**2); .@value=(.@value/2)+#LOGIN_STREAK; + .@value*=20; getexp .@value, 0; dispbottom l("##2Daily login bonus: ##B@@ EXP##b", .@value); } else { .@value=max(5, rand(0, (#LOGIN_STREAK/4))); .@value+=(JobLevel**2); .@value=(.@value/3)+#LOGIN_STREAK; + .@value*=20; getexp 0, .@value; dispbottom l("##2Daily login bonus: ##B@@ Job Exp.##b", .@value); } diff --git a/npc/functions/mobpoint.txt b/npc/functions/mobpoint.txt index d525ed616..9c901bc3d 100644 --- a/npc/functions/mobpoint.txt +++ b/npc/functions/mobpoint.txt @@ -11,16 +11,15 @@ function script fix_mobkill { } function script mobpoint { + //if (killedrid < 1002) goto L_Return; + + // You get MobLv + 10% as MobPoints. + // So a level 100 monster gives you 110 MobPt. + .@addval=strmobinfo(3,killedrid)*11/10; + TS_MOBPT = TS_MOBPT + .@addval; if (!MPQUEST) return; - //if (killedrid < 1002) goto L_Return; - // You get MobLv + 20% as MobPoints. - // So a level 100 monster gives you 120 MobPt. Slimes gives no bonus. - if (compare("slime", strtolower(strmobinfo(1, killedrid)))) - .@addval=strmobinfo(3,killedrid); - else - .@addval=strmobinfo(3,killedrid)*12/10; Mobpt = Mobpt + .@addval; return; @@ -66,6 +65,7 @@ OnNPCKillEvent: // Frostia Imperial PVP Arena, Call Of Dusty, Arena Quirino Voraz. OnPCKillEvent: $PLAYERS_KILLED+=1; + TS_PVPCNT+=1; // killedrid .@m$=getmap(); .@bxp=readparam(BaseLevel, killedrid); diff --git a/npc/functions/scoreboards.txt b/npc/functions/scoreboards.txt index 3e6b476ab..fb1c4974c 100644 --- a/npc/functions/scoreboards.txt +++ b/npc/functions/scoreboards.txt @@ -39,6 +39,9 @@ OnInit: .@nb = query_sql("select char_name, command from `atcommandlog` ORDER BY atcommand_id DESC LIMIT 15", $@hogm_name$, $@hogm_value$); .@nb = query_sql("select name, guild_lv from `guild` WHERE `guild_id`!=1 ORDER BY guild_lv DESC LIMIT 5", $@hoguild_name$, $@hoguild_value); .@nb = query_sql("SELECT c.name, i.value FROM `char_reg_num_db` AS i, `char` AS c WHERE i.key='CRAZYPOINTS' AND i.char_id=c.char_id ORDER BY i.value DESC LIMIT 10", $@cfefe_name$, $@cfefe_value); + .@nb = query_sql("SELECT c.name, i.value FROM `char_reg_num_db` AS i, `char` AS c WHERE i.key='TS_MOBPT' AND i.char_id=c.char_id ORDER BY i.value DESC LIMIT 10", $@mobpt_name$, $@mobpt_value); + .@nb = query_sql("SELECT c.name, i.value FROM `char_reg_num_db` AS i, `char` AS c WHERE i.key='TS_PVPCNT' AND i.char_id=c.char_id ORDER BY i.value DESC LIMIT 10", $@pvp_name$, $@pvp_value); + .@nb = query_sql("SELECT c.name, i.value FROM `char_reg_num_db` AS i, `char` AS c WHERE i.key='CRAFTING_SCORE' AND i.char_id=c.char_id ORDER BY i.value DESC LIMIT 10", $@crafters_name$, $@crafters_value); debugmes "Scoreboards reloaded"; end; } @@ -196,6 +199,54 @@ function script HallOfCandor { return; } +function script HallOfMobpt { + mes ""; + mes l("##BHall Of Generated Mob Points: TOP 10##b"); + mes("1."+$@mobpt_name$[0]+" ("+$@mobpt_value[0]+")"); + mes("2."+$@mobpt_name$[1]+" ("+$@mobpt_value[1]+")"); + mes("3."+$@mobpt_name$[2]+" ("+$@mobpt_value[2]+")"); + mes("4."+$@mobpt_name$[3]+" ("+$@mobpt_value[3]+")"); + mes("5."+$@mobpt_name$[4]+" ("+$@mobpt_value[4]+")"); + mes("6."+$@mobpt_name$[5]+" ("+$@mobpt_value[5]+")"); + mes("7."+$@mobpt_name$[6]+" ("+$@mobpt_value[6]+")"); + mes("8."+$@mobpt_name$[7]+" ("+$@mobpt_value[7]+")"); + mes("9."+$@mobpt_name$[8]+" ("+$@mobpt_value[8]+")"); + mes("10."+$@mobpt_name$[9]+" ("+$@mobpt_value[9]+")"); + return; +} + +function script HallOfPVP { + mes ""; + mes l("##BHall Of PVP Kills: TOP 10##b"); + mes("1."+$@pvp_name$[0]+" ("+$@pvp_value[0]+")"); + mes("2."+$@pvp_name$[1]+" ("+$@pvp_value[1]+")"); + mes("3."+$@pvp_name$[2]+" ("+$@pvp_value[2]+")"); + mes("4."+$@pvp_name$[3]+" ("+$@pvp_value[3]+")"); + mes("5."+$@pvp_name$[4]+" ("+$@pvp_value[4]+")"); + mes("6."+$@pvp_name$[5]+" ("+$@pvp_value[5]+")"); + mes("7."+$@pvp_name$[6]+" ("+$@pvp_value[6]+")"); + mes("8."+$@pvp_name$[7]+" ("+$@pvp_value[7]+")"); + mes("9."+$@pvp_name$[8]+" ("+$@pvp_value[8]+")"); + mes("10."+$@pvp_name$[9]+" ("+$@pvp_value[9]+")"); + return; +} + +function script HallOfCraft { + mes ""; + mes l("##BHall Of Crafting: TOP 10##b"); + mes("1."+$@crafters_name$[0]+" ("+$@crafters_value[0]+")"); + mes("2."+$@crafters_name$[1]+" ("+$@crafters_value[1]+")"); + mes("3."+$@crafters_name$[2]+" ("+$@crafters_value[2]+")"); + mes("4."+$@crafters_name$[3]+" ("+$@crafters_value[3]+")"); + mes("5."+$@crafters_name$[4]+" ("+$@crafters_value[4]+")"); + mes("6."+$@crafters_name$[5]+" ("+$@crafters_value[5]+")"); + mes("7."+$@crafters_name$[6]+" ("+$@crafters_value[6]+")"); + mes("8."+$@crafters_name$[7]+" ("+$@crafters_value[7]+")"); + mes("9."+$@crafters_name$[8]+" ("+$@crafters_value[8]+")"); + mes("10."+$@crafters_name$[9]+" ("+$@crafters_value[9]+")"); + return; +} + diff --git a/npc/functions/siege.txt b/npc/functions/siege.txt index 98a600dc8..e8f40b229 100644 --- a/npc/functions/siege.txt +++ b/npc/functions/siege.txt @@ -37,7 +37,7 @@ function script siege_calcdiff { for (.@i = 0; .@i < .@c; .@i++) { // Dead players are not counted if (.@deadcount) { - if (ispcdead(strcharinfo(0, "", .@players[.@i]))) { + if (false) { .@skip+=1; continue; } |