diff options
Diffstat (limited to 'npc/functions')
-rw-r--r-- | npc/functions/clientversion.txt | 23 | ||||
-rw-r--r-- | npc/functions/daily.txt | 11 | ||||
-rw-r--r-- | npc/functions/gmbot.txt | 8 | ||||
-rw-r--r-- | npc/functions/mobpoint.txt | 14 | ||||
-rw-r--r-- | npc/functions/scoreboards.txt | 51 | ||||
-rw-r--r-- | npc/functions/siege.txt | 2 |
6 files changed, 92 insertions, 17 deletions
diff --git a/npc/functions/clientversion.txt b/npc/functions/clientversion.txt index bd33a48ee..873873018 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); @@ -405,7 +417,16 @@ function script clientupdater { // Cleanup deletearray RNGTREASURE_DATE; } - + // 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/gmbot.txt b/npc/functions/gmbot.txt index 2fc06044a..9c164ff7d 100644 --- a/npc/functions/gmbot.txt +++ b/npc/functions/gmbot.txt @@ -152,28 +152,28 @@ OnTimer90000: // Tulimshar if (.mp$ ~= "003-*") { announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc; - $@MK_THROTTLE=gettimetick(2)+8*60*60; + $@MK_THROTTLE=gettimetick(2)+3*60*60; $@MK_SCENE=MK_SIEGE_TULIM; donpcevent("Lieutenant Dausen::OnMKSiege"); } // Halinarzo else if (.mp$ ~= "009-*") { announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc; - $@MK_THROTTLE=gettimetick(2)+8*60*60; + $@MK_THROTTLE=gettimetick(2)+3*60*60; $@MK_SCENE=MK_SIEGE_HALIN; donpcevent("Lieutenant Jacob::OnMKSiege"); } // Hurnscald else if (.mp$ ~= "012-*") { announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc; - $@MK_THROTTLE=gettimetick(2)+8*60*60; + $@MK_THROTTLE=gettimetick(2)+3*60*60; $@MK_SCENE=MK_SIEGE_HURNS; donpcevent("#HurnscaldSiege::OnMKSiege"); } // Nivalis else if (.mp$ ~= "020-*") { announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc; - $@MK_THROTTLE=gettimetick(2)+8*60*60; + $@MK_THROTTLE=gettimetick(2)+3*60*60; $@MK_SCENE=MK_SIEGE_NIVAL; donpcevent("Lieutenant Joshua::OnMKSiege"); } diff --git a/npc/functions/mobpoint.txt b/npc/functions/mobpoint.txt index 1c1883a6f..8133c938f 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; @@ -65,6 +64,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 c3110c2dc..9ceac8265 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 baca59a63..d4d56ac45 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; } |