summaryrefslogtreecommitdiff
path: root/npc/functions
diff options
context:
space:
mode:
Diffstat (limited to 'npc/functions')
-rw-r--r--npc/functions/clientversion.txt23
-rw-r--r--npc/functions/daily.txt11
-rw-r--r--npc/functions/mobpoint.txt14
-rw-r--r--npc/functions/scoreboards.txt51
-rw-r--r--npc/functions/siege.txt2
5 files changed, 88 insertions, 13 deletions
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;
}