summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/instances/EndlessTower.txt2260
-rw-r--r--src/char/char.c10
-rw-r--r--src/common/mmo.h10
-rw-r--r--src/map/atcommand.c17
-rw-r--r--src/map/chrif.c6
-rw-r--r--src/map/clif.c10
-rw-r--r--src/map/elemental.c2
-rw-r--r--src/map/homunculus.h2
-rw-r--r--src/map/mercenary.c2
-rw-r--r--src/map/mercenary.h2
-rw-r--r--src/map/mob.c2
-rw-r--r--src/map/pc.c50
-rw-r--r--src/map/pc.h2
-rw-r--r--src/map/script.c74
-rw-r--r--src/map/skill.c672
-rw-r--r--src/map/skill.h101
-rw-r--r--src/map/status.c4
-rw-r--r--src/map/status.h2
-rw-r--r--src/plugins/HPMHooking/HPMHooking.Defs.inc194
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc20
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc5
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.Hooks.inc410
22 files changed, 2148 insertions, 1709 deletions
diff --git a/npc/instances/EndlessTower.txt b/npc/instances/EndlessTower.txt
index f94bc177a..dc60ce766 100644
--- a/npc/instances/EndlessTower.txt
+++ b/npc/instances/EndlessTower.txt
@@ -37,164 +37,163 @@
//=========================================================================
alberta,214,77,6 script Captain Janssen 4_M_SEAMAN,{
- if (checkweight(Knife,1) == 0) {
- mes "^008800Wait here!!";
- mes "You're carrying too much stuff. Why don't you put some of it away, and then come back.^000000";
- close;
+ if (checkweight(Knife, 1) == 0) {
+ mes("^008800Wait here!!");
+ mes("You're carrying too much stuff. Why don't you put some of it away, and then come back.^000000");
+ close();
}
if (BaseLevel < 50) {
- mes "[Captain Janssen]";
- mes "Sigh... I don't know if I can ever go back to sailing the sea...";
- close;
+ mes("[Captain Janssen]");
+ mes("Sigh... I don't know if I can ever go back to sailing the sea...");
+ close();
}
.@name$ = strcharinfo(PC_NAME);
if (in_102tower == 1) {
- mes "^0000ffLooking incredibly excited, the old man ran into the marine shop hurriedly ordering goods. You don't have anything better to do, so you decide to ask him why he is in such a rush.^000000";
- next;
- mes "^0000ffThe old man, after finishing his orders, walks towards you.^000000";
- next;
- mes "[Captain Janssen]";
- mes "I was touched when you accepted a request from me, a stranger, so easily. You must truly be one of those good, heroic adventurers. Are you interested in setting out on an ocean voyage?";
- next;
- mes "["+.@name$+"]";
- mes "I've sailed a few times... But now that I think about it, I've never gone across the continent.";
- next;
- mes "[Captain Janssen]";
- mes "No, that's good enough. I may just have one small fishing vessel, but I used to be a captain that commanded a fleet.";
- next;
- mes "[Captain Janssen]";
- mes "As you may know after a few sea voyages, not many people have gone across the ocean beyond the continent. I too have failed to conquer the ocean.";
- next;
- mes "^0000ffMr. Janssen talked about his perilous ocean journeys for quite a while. You have enough time on your hands, so you sit down, quietly listening to his story.^000000";
- next;
- mes "^0000ffAt least half of his story sounded grossly exaggerated, but something caught your ear: he insists that a humongous tower exists on the ocean, and that it's so tall, it scrapes across the sky.^000000";
+ mes("^0000ffLooking incredibly excited, the old man ran into the marine shop hurriedly ordering goods. You don't have anything better to do, so you decide to ask him why he is in such a rush.^000000");
+ next();
+ mes("^0000ffThe old man, after finishing his orders, walks towards you.^000000");
+ next();
+ mes("[Captain Janssen]");
+ mes("I was touched when you accepted a request from me, a stranger, so easily. You must truly be one of those good, heroic adventurers. Are you interested in setting out on an ocean voyage?");
+ next();
+ mesf("[%s]", .@name$);
+ mes("I've sailed a few times... But now that I think about it, I've never gone across the continent.");
+ next();
+ mes("[Captain Janssen]");
+ mes("No, that's good enough. I may just have one small fishing vessel, but I used to be a captain that commanded a fleet.");
+ next();
+ mes("[Captain Janssen]");
+ mes("As you may know after a few sea voyages, not many people have gone across the ocean beyond the continent. I too have failed to conquer the ocean.");
+ next();
+ mes("^0000ffMr. Janssen talked about his perilous ocean journeys for quite a while. You have enough time on your hands, so you sit down, quietly listening to his story.^000000");
+ next();
+ mes("^0000ffAt least half of his story sounded grossly exaggerated, but something caught your ear: he insists that a humongous tower exists on the ocean, and that it's so tall, it scrapes across the sky.^000000");
in_102tower = 2;
- close;
+ close();
} else if (in_102tower == 2) {
- mes "[Captain Janssen]";
- mes "So all I could do was cast anchor at that humongous tower after my fleet was wrecked. At first, we were only going to stay there until the rainstorm was over, but it didn't end as soon as we had hoped.";
- next;
- mes "[Captain Janssen]";
- mes "My crew was starving, and a few of them walked into the tower in order to find food... They never came back.";
- next;
- mes "["+.@name$+"]";
- mes "Why didn't you go in there with them?";
- next;
- mes "[Captain Janssen]";
- mes "My instincts told me that tower was dangerous. I was curious, but I wasn't going to risk my life. We waited for them to come back for 7 days until the rainstorm was finally over, but no one returned.";
- next;
- mes "[Captain Janssen]";
- mes "In our desperation to survive, we abandoned all our goods, and left the tower only with a little bit of the water and edible plants we'd found around the tower. When we finally reached land, I was the only one alive...";
- next;
- mes "^0000ffYou could imagine the heartwretching scene of the dying fleet on their last voyage, even if he didn't explain it any further. A look of somber regret swept over his face as he remained silent a while, and then he said:^000000";
- next;
- mes "[Captain Janssen]";
- mes "I have something I must do before I die. I must retrieve the remains of my crew that died in the tower, and give them a proper burial.";
- next;
- mes "[Captain Janssen]";
- mes "I feel so lucky to meet a warm-hearted adventurer like you. With the money you've given me, I can finally go sailing to the tower again.";
- next;
- mes "["+.@name$+"]";
- mes "How about hiring me as your first mate?";
- next;
- mes "[Captain Janssen]";
- mes "Thank you, but it is an extremely dangerous place. I have my duty to fulfill, but you don't have any obligation to me or them. I don't wish to sacrifice someone as young as you to such a dangerous place.";
- next;
- mes "["+.@name$+"]";
- mes "No...";
- mes ".";
- mes ".";
- mes "As an adventurer, there's my obligation to those in need. I'm also very curious about that place...";
- next;
- mes "[Captain Janssen]";
- mes "I was going to leave right away, but since you've joined me, I should give you time to prepare. I'll be waiting here until you're ready to go.";
- next;
- mes "[Captain Janssen]";
- mes "...Okay then...";
- mes "Welcome aboard, first mate.";
+ mes("[Captain Janssen]");
+ mes("So all I could do was cast anchor at that humongous tower after my fleet was wrecked. At first, we were only going to stay there until the rainstorm was over, but it didn't end as soon as we had hoped.");
+ next();
+ mes("[Captain Janssen]");
+ mes("My crew was starving, and a few of them walked into the tower in order to find food... They never came back.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("Why didn't you go in there with them?");
+ next();
+ mes("[Captain Janssen]");
+ mes("My instincts told me that tower was dangerous. I was curious, but I wasn't going to risk my life. We waited for them to come back for 7 days until the rainstorm was finally over, but no one returned.");
+ next();
+ mes("[Captain Janssen]");
+ mes("In our desperation to survive, we abandoned all our goods, and left the tower only with a little bit of the water and edible plants we'd found around the tower. When we finally reached land, I was the only one alive...");
+ next();
+ mes("^0000ffYou could imagine the heartwretching scene of the dying fleet on their last voyage, even if he didn't explain it any further. A look of somber regret swept over his face as he remained silent a while, and then he said:^000000");
+ next();
+ mes("[Captain Janssen]");
+ mes("I have something I must do before I die. I must retrieve the remains of my crew that died in the tower, and give them a proper burial.");
+ next();
+ mes("[Captain Janssen]");
+ mes("I feel so lucky to meet a warm-hearted adventurer like you. With the money you've given me, I can finally go sailing to the tower again.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("How about hiring me as your first mate?");
+ next();
+ mes("[Captain Janssen]");
+ mes("Thank you, but it is an extremely dangerous place. I have my duty to fulfill, but you don't have any obligation to me or them. I don't wish to sacrifice someone as young as you to such a dangerous place.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("No...");
+ mes(".");
+ mes(".");
+ mes("As an adventurer, there's my obligation to those in need. I'm also very curious about that place...");
+ next();
+ mes("[Captain Janssen]");
+ mes("I was going to leave right away, but since you've joined me, I should give you time to prepare. I'll be waiting here until you're ready to go.");
+ next();
+ mes("[Captain Janssen]");
+ mes("...Okay then...");
+ mes("Welcome aboard, first mate.");
in_102tower = 3;
- close;
+ close();
} else if (in_102tower == 3) {
- mes "[Captain Janssen]";
- mes "Shall we leave now?";
- next;
- switch(select("Yes, let's go!", "No, I'm not quite ready...")) {
+ mes("[Captain Janssen]");
+ mes("Shall we leave now?");
+ next();
+ switch (select("Yes, let's go!", "No, I'm not quite ready...")) {
case 1:
- mes "[Captain Janssen]";
- mes "Then pull up the anchor, first mate!";
- close2;
+ mes("[Captain Janssen]");
+ mes("Then pull up the anchor, first mate!");
+ close2();
in_102tower = 4;
- warp "e_tower",70,114;
+ warp("e_tower", 70, 114);
end;
case 2:
- mes "[Captain Janssen]";
- mes "Sure, no problem. Come back when you're ready.";
- close;
+ mes("[Captain Janssen]");
+ mes("Sure, no problem. Come back when you're ready.");
+ close();
}
} else if (in_102tower > 3) {
- mes "[Captain Janssen]";
- mes "Well, to travel the ocean again, we need to restock on goods. If you give me 10,000 Zeny, I'll take care of the rest.";
- next;
- switch(select("I'll come back later.", "Let's go, now!")) {
+ mes("[Captain Janssen]");
+ mes("Well, to travel the ocean again, we need to restock on goods. If you give me 10,000 Zeny, I'll take care of the rest.");
+ next();
+ switch (select("I'll come back later.", "Let's go, now!")) {
case 1:
- mes "["+.@name$+"]";
- mes "I'm sorry, but I don't have that much money. I'll come back when I save enough.";
- next;
- mes "[Captain Janssen]";
- mes "Sure, no problem. I'll be waiting for your return.";
- close;
+ mesf("[%s]", .@name$);
+ mes("I'm sorry, but I don't have that much money. I'll come back when I save enough.");
+ next();
+ mes("[Captain Janssen]");
+ mes("Sure, no problem. I'll be waiting for your return.");
+ close();
case 2:
if (Zeny < 10000) {
- mes "[Captain Janssen]";
- mes "I'm sorry, but you don't have enough money. I need at least 10,000 Zeny to restock our supplies...";
- close;
- }
- else {
- mes "[Captain Janssen]";
- mes "Excellent! Now we're good to go. Let's pull up the anchor again!";
+ mes("[Captain Janssen]");
+ mes("I'm sorry, but you don't have enough money. I need at least 10,000 Zeny to restock our supplies...");
+ close();
+ } else {
+ mes("[Captain Janssen]");
+ mes("Excellent! Now we're good to go. Let's pull up the anchor again!");
Zeny -= 10000;
- close2;
- warp "e_tower",70,114;
+ close2();
+ warp("e_tower", 70, 114);
end;
}
}
} else {
- mes "[Captain Janssen]";
- mes "Excuse me, are you an adventurer?";
- next;
- mes "[Captain Janssen]";
- mes "I'm sorry to ask you this, especially when this is the first time we've ever met, but can you do me a favor? I'll make it short.";
- next;
- mes "[Captain Janssen]";
- mes "Can you donate ^0000ff10,000 Zeny^000000 to me? It's for a cause that's important to me...";
- next;
- switch(select("No!", "Sure thing.")) {
+ mes("[Captain Janssen]");
+ mes("Excuse me, are you an adventurer?");
+ next();
+ mes("[Captain Janssen]");
+ mes("I'm sorry to ask you this, especially when this is the first time we've ever met, but can you do me a favor? I'll make it short.");
+ next();
+ mes("[Captain Janssen]");
+ mes("Can you donate ^0000ff10,000 Zeny^000000 to me? It's for a cause that's important to me...");
+ next();
+ switch (select("No!", "Sure thing.")) {
case 1:
- mes "["+.@name$+"]";
- mes "I'm sorry, but you've got the wrong person to ask that.";
- next;
- mes "[Captain Janssen]";
- mes "I see... Sorry to bother you. I understand it was too rude to ask something like that to begin with.";
- close;
+ mesf("[%s]", .@name$);
+ mes("I'm sorry, but you've got the wrong person to ask that.");
+ next();
+ mes("[Captain Janssen]");
+ mes("I see... Sorry to bother you. I understand it was too rude to ask something like that to begin with.");
+ close();
case 2:
- mes "[Captain Janssen]";
- mes "Huh? Are you sure that you don't mind giving me that much money? Wow, thank you so much!";
- next;
+ mes("[Captain Janssen]");
+ mes("Huh? Are you sure that you don't mind giving me that much money? Wow, thank you so much!");
+ next();
if (Zeny < 10000) {
- mes "[Captain Janssen]";
- mes "...I'm sorry, but I don't think you have 10,000 Zeny. Thank you for your kindness, but I need more than that.";
- close;
+ mes("[Captain Janssen]");
+ mes("...I'm sorry, but I don't think you have 10,000 Zeny. Thank you for your kindness, but I need more than that.");
+ close();
} else {
- mes "["+.@name$+"]";
- mes "I don't know why you'd need so much money, but here. You can take it.";
- next;
- mes "^0000ffYou have donated 10,000 Zeny to Captain Janssen^000000.";
- next;
- mes "[Captain Janssen]";
- mes "Thank you so much! Now I can stock up on food and materials for my ship. You're kind, very kind!";
+ mesf("[%s]", .@name$);
+ mes("I don't know why you'd need so much money, but here. You can take it.");
+ next();
+ mes("^0000ffYou have donated 10,000 Zeny to Captain Janssen^000000.");
+ next();
+ mes("[Captain Janssen]");
+ mes("Thank you so much! Now I can stock up on food and materials for my ship. You're kind, very kind!");
Zeny -= 10000;
in_102tower = 1;
- close;
+ close();
}
}
}
@@ -204,116 +203,119 @@ e_tower,81,105,0 script Tower Protection Stone 2_MONEMUS,{
.@party_id = getcharid(CHAR_ID_PARTY);
.@p_name$ = getpartyname(.@party_id);
- .@md_name$ = "Endless Tower";
+ .@md_name$ = _("Endless Tower");
- .@etower_timer = questprogress(60200,PLAYTIME); // 1 week
- .@etower_timer2 = questprogress(60201,PLAYTIME); // 4 hours
+ .@etower_timer = questprogress(60200, PLAYTIME); // 1 week
+ .@etower_timer2 = questprogress(60201, PLAYTIME); // 4 hours
- if (!instance_check_party(.@party_id,2)) {
- mes "Make or join a party with more than 1 member and try again.";
- close;
+ if (!instance_check_party(.@party_id, 2)) {
+ mes("Make or join a party with more than 1 member and try again.");
+ close();
}
if (!.@etower_timer) {
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2)) {
- mes "Confirmed the party has been made. Would you like to reserve entrance to the Endless Tower?";
- next;
- switch(select("Generate dungeon "+.@md_name$, "Enter the dungeon", "Return to Alberta", "Cancel")) {
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) {
+ mes("Confirmed the party has been made. Would you like to reserve entrance to the Endless Tower?");
+ next();
+ .@str$ = sprintf(_$("Generate Dungeon %s"), .@md_name$);
+ switch (select(.@str$, "Enter the Dungeon", "Return to Alberta", "Cancel")) {
case 1:
- .@instance = instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
- mes "Party Name: "+.@p_name$;
- mes "Party Leader: "+strcharinfo(PC_NAME);
- mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!";
- close;
+ mesf("Party Name: %s", .@p_name$);
+ mesf("Party Leader: %s", strcharinfo(PC_NAME));
+ mesf("^0000ff%s ^000000- Reservation Failed!", .@md_name$);
+ close();
}
- mes "^0000ff"+.@md_name$+"^000000 - Try to reserve";
- mes "After making a reservation, you have to talk to NPC behind and select the menu 'Enter the Dungeon' to enter the dungeon.";
+ mesf("^0000ff%s^000000 - Try to reserve", .@md_name$);
+ mes("After making a reservation, you have to talk to NPC behind and select the menu 'Enter the Dungeon' to enter the dungeon.");
for (.@i = 1; .@i <= 6; ++.@i) {
- if( instance_attachmap(.@i + "@tower", .@instance) == "" ) {
- mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!";
+ if (instance_attachmap(.@i + "@tower", .@instance) == "") {
+ mesf("^0000ff%s ^000000- Reservation Failed!", .@md_name$);
instance_destroy(.@instance);
- close;
+ close();
}
}
- instance_set_timeout 14400,300,.@instance;
+ instance_set_timeout(14400, 300, .@instance);
instance_init(.@instance);
- close;
+ close();
case 2:
- callsub L_Enter,0,1,.@md_name$,.@p_name$;
+ callsub(L_Enter, 0, 1, .@md_name$, .@p_name$);
case 3:
- mes "I will move you to Alberta.";
- close2;
- warp "alberta",223,36;
+ mes("I will move you to Alberta.");
+ close2();
+ warp("alberta", 223, 36);
end;
case 4:
- close;
+ close();
}
}
- switch(select("Enter the "+.@md_name$, "Return to Alberta", "Cancel")) {
+ mes("If you have the dungeon generated already, you can enter it.");
+ next();
+ switch (select("Enter the Dungeon", "Return to Alberta", "Cancel")) {
case 1:
- callsub L_Enter,1,1,.@md_name$,.@p_name$;
+ callsub(L_Enter, 1, 1, .@md_name$, .@p_name$);
case 2:
- mes "I will move you to Alberta.";
- close2;
- warp "alberta",223,36;
+ mes("I will move you to Alberta.");
+ close2();
+ warp("alberta", 223, 36);
end;
case 3:
end;
}
} else if (.@etower_timer == 1 && .@etower_timer2 == 2) {
- .@dun_lim_time = etower_timer+604800; // 1 week
- .@dun_lim_time2 = etower_timer+14400; // 4 hours
+ .@dun_lim_time = etower_timer + 604800; // 1 week
+ .@dun_lim_time2 = etower_timer + 14400; // 4 hours
.@dun_cur_time = gettimetick(2);
- .@dun_ent_t = (.@dun_lim_time - .@dun_cur_time);
- .@dun_h = (.@dun_ent_t / 3600);
+ .@dun_ent_t = .@dun_lim_time - .@dun_cur_time;
+ .@dun_h = .@dun_ent_t / 3600;
.@dun_m = (.@dun_ent_t - (.@dun_h * 3600)) / 60;
.@dun_s = .@dun_ent_t - ((.@dun_h * 3600) + (.@dun_m * 60));
- mes "Due to the tower's aftereffects, you cannot enter the dungeon right now, " + .@dun_h + "hours " + .@dun_m + "minutes " + .@dun_s + "seconds left to enter the next dungeon.";
- next;
- mes "It is dangerous here. Let me move you to Alberta.";
- close2;
- warp "alberta",223,36;
+ mesf("Due to the tower's aftereffects, you cannot enter the dungeon right now, %d hours %d minutes %d seconds left to enter the next dungeon.", .@dun_h, .@dun_m, .@dun_s);
+ next();
+ mes("It is dangerous here. Let me move you to Alberta.");
+ close2();
+ warp("alberta", 223, 36);
end;
} else if (.@etower_timer == 1) {
- mes "If you have the dungeon generated already, you can enter it. ";
- next;
- switch(select("Enter the "+.@md_name$, "Return to Alberta", "Cancel")) {
+ mes("If you have the dungeon generated already, you can enter it.");
+ next();
+ switch (select("Enter the Dungeon", "Return to Alberta", "Cancel")) {
case 1:
- callsub L_Enter,0,0,.@md_name$,.@p_name$;
+ callsub(L_Enter, 0, 0, .@md_name$, .@p_name$);
case 2:
- mes "I will move you to Alberta.";
- close2;
- warp "alberta",223,36;
+ mes("I will move you to Alberta.");
+ close2();
+ warp("alberta", 223, 36);
end;
case 3:
break;
}
- close;
+ close();
} else {
etower_timer = 0;
- erasequest 60200;
- erasequest 60201;
- mes "^0000ffThe records and after effects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000";
- close;
+ erasequest(60200);
+ erasequest(60201);
+ mes("^0000ffThe records and after effects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000");
+ close();
}
L_Enter:
if (has_instance("1@tower") == "") {
- mes "The memorial dungeon " +getarg(2)+ " does not exist.";
- mes "The party leader did not generate the dungeon yet.";
- close;
+ mesf("The memorial dungeon %s does not exist.", getarg(2));
+ mes("The party leader did not generate the dungeon yet.");
+ close();
} else {
- mapannounce "e_tower", strcharinfo(PC_NAME)+" of the party, " +getarg(3)+", is entering the dungeon, Endless Tower.",bc_map,"0x00ff99",FW_NORMAL,12;
+ mapannounce("e_tower", sprintf(_$("%s of the party, %s, is entering the dungeon, Endless Tower."), strcharinfo(PC_NAME), getarg(3)), bc_map, C_SPRINGGREEN, FW_NORMAL, 12);
if (getarg(1)) {
etower_timer = gettimetick(2);
- setquest 60200;
- setquest 60201;
+ setquest(60200);
+ setquest(60201);
}
- warp "1@tower",52,354;
+ warp("1@tower", 52, 354);
if (getarg(0) == 0)
- close;
+ close();
else
end;
}
@@ -322,75 +324,75 @@ L_Enter:
e_tower,30,30,2 script Huge Vortex CLEAR_NPC,2,2,{
end;
OnTouch:
- mapannounce "e_tower","[ " + strcharinfo(PC_NAME) + " ], seems to be engulfed by a huge vortex",bc_map,"0x00ff99",FW_NORMAL,12;
- warp "alberta",223,36;
+ mapannounce("e_tower", sprintf(_$("[ %s ], seems to be engulfed by a huge vortex"), strcharinfo(PC_NAME)), bc_map, C_SPRINGGREEN, FW_NORMAL, 12);
+ warp("alberta", 223, 36);
end;
}
// Original name: "#102Administrator Mode104"
e_tower,1,1,2 script #102Administrator Mode CLEAR_NPC,{
- callfunc "F_GM_NPC";
- mes "Please enter the password";
- .@i = callfunc("F_GM_NPC","dmc2008",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("Please enter the password.");
+ .@i = callfunc("F_GM_NPC", "dmc2008", 1);
+ next();
if (.@i == 1) {
- switch(select("Generate Purification Stone", "Remove Purification Stone", "Cancel")) {
+ switch (select("Generate Purification Stone", "Remove Purification Stone", "Cancel")) {
case 1:
- mes "Create the Purification Stone that stays for 30 minutes.";
- donpcevent "Purification Stone#et1::OnEnable";
+ mes("Create the Purification Stone that stays for 30 minutes.");
+ donpcevent("Purification Stone#et1::OnEnable");
break;
case 2:
- mes "Destroy the Purification Stone immediately";
- donpcevent "Purification Stone#et1::OnDisable";
+ mes("Destroy the Purification Stone immediately");
+ donpcevent("Purification Stone#et1::OnDisable");
break;
case 3:
- mes "You have canceled it.";
+ mes("You have canceled it.");
break;
}
- close;
+ close();
} else {
- mes "Enter the password exactly.";
- close;
+ mes("Enter the password exactly.");
+ close();
}
}
e_tower,69,117,4 script Purification Stone#et1 2_MONEMUS,{
etower_timer = 0;
- mes "^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000";
- close;
+ mes("^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000");
+ close();
OnInit:
- disablenpc "Purification Stone#et1";
+ disablenpc("Purification Stone#et1");
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnDisable:
- stopnpctimer;
- disablenpc "Purification Stone#et1";
+ stopnpctimer();
+ disablenpc("Purification Stone#et1");
end;
OnTimer1000:
- enablenpc "Purification Stone#et1";
+ enablenpc("Purification Stone#et1");
end;
OnTimer1740000:
- mapannounce "e_tower", "The Purification Stone will be destroyed in one minute.",bc_map,"0x00ff99";
+ mapannounce("e_tower", _("The Purification Stone will be destroyed in one minute."), bc_map, C_SPRINGGREEN);
end;
OnTimer1800000:
- disablenpc "Purification Stone#et1";
+ disablenpc("Purification Stone#et1");
end;
}
e_tower,151,185,4 script Purification Stone#et2 CLEAR_NPC,{
- callfunc "F_GM_NPC";
+ callfunc("F_GM_NPC");
etower_timer = 0;
- mes "^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000";
- close2;
- warp "e_tower",75,108;
+ mes("^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000");
+ close2();
+ warp("e_tower", 75, 108);
end;
}
@@ -401,677 +403,677 @@ function script F_Tower_Monster {
.@map$ = getarg(1);
.@label$ = getarg(2);
- switch(.@level) {
+ switch (.@level) {
case 1:
- areamonster .@map$,7,351,17,387,"Metaling",1613,15,.@label$;
- areamonster .@map$,7,351,17,387,"Marin",1242,5,.@label$;
- areamonster .@map$,7,351,17,387,"Poporing",1031,5,.@label$;
- areamonster .@map$,7,351,17,387,"Drops",1113,5,.@label$;
- areamonster .@map$,7,351,17,387,"Mastering",1090,1,.@label$;
- areamonster .@map$,7,351,17,387,"Poring",1002,5,.@label$;
+ areamonster(.@map$, 7, 351, 17, 387, _("Metaling"), METALING, 15, .@label$);
+ areamonster(.@map$, 7, 351, 17, 387, _("Marin"), MARIN, 5, .@label$);
+ areamonster(.@map$, 7, 351, 17, 387, _("Poporing"), POPORING, 5, .@label$);
+ areamonster(.@map$, 7, 351, 17, 387, _("Drops"), DROPS, 5, .@label$);
+ areamonster(.@map$, 7, 351, 17, 387, _("Mastering"), MASTERING, 1, .@label$);
+ areamonster(.@map$, 7, 351, 17, 387, _("Poring"), PORING, 5, .@label$);
break;
case 2:
- areamonster .@map$,93,351,103,387,"Desert Wolf",1106,20,.@label$;
- areamonster .@map$,93,351,103,387,"Vagabond Wolf",1092,1,.@label$;
- areamonster .@map$,93,351,103,387,"Baby Desert Wolf",1107,10,.@label$;
+ areamonster(.@map$, 93, 351, 103, 387, _("Desert Wolf"), DESERT_WOLF, 20, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Vagabond Wolf"), VAGABOND_WOLF, 1, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Baby Desert Wolf"), DESERT_WOLF_B, 10, .@label$);
break;
case 3:
- areamonster .@map$,181,351,191,387,"Archer Skeleton",1016,5,.@label$;
- areamonster .@map$,181,351,191,387,"Skel Worker",1169,5,.@label$;
- areamonster .@map$,181,351,191,387,"Soldier Skeleton",1028,5,.@label$;
- areamonster .@map$,181,351,191,387,"Orc Skeleton",1152,5,.@label$;
- areamonster .@map$,181,351,191,387,"Pirate Skeleton",1071,5,.@label$;
- areamonster .@map$,181,351,191,387,"Skeleton",1076,5,.@label$;
+ areamonster(.@map$, 181, 351, 191, 387, _("Archer Skeleton"), ARCHER_SKELETON, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Skel Worker"), SKEL_WORKER, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Soldier Skeleton"), SOLDIER_SKELETON, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Orc Skeleton"), ORC_SKELETON, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Pirate Skeleton"), PIRATE_SKEL, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Skeleton"), SKELETON, 5, .@label$);
break;
case 4:
- areamonster .@map$,267,351,277,387,"Argiope",1099,15,.@label$;
- areamonster .@map$,267,351,277,387,"Mantis",1139,5,.@label$;
- areamonster .@map$,267,351,277,387,"Argos",1100,5,.@label$;
- areamonster .@map$,267,351,277,387,"Vocal",1088,1,.@label$;
- areamonster .@map$,267,351,277,387,"Rocker",1052,5,.@label$;
- areamonster .@map$,267,351,277,387,"Hornet",1004,5,.@label$;
+ areamonster(.@map$, 267, 351, 277, 387, _("Argiope"), ARGIOPE, 15, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Mantis"), MANTIS, 5, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Argos"), ARGOS, 5, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Vocal"), VOCAL, 1, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Rocker"), ROCKER, 5, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Hornet"), HORNET, 5, .@label$);
break;
case 5:
- areamonster .@map$,352,351,362,387,"Golden Thief Bug",1086,1,.@label$;
- areamonster .@map$,352,351,362,387,"Thief Bug Male",1054,15,.@label$;
- areamonster .@map$,352,351,362,387,"Thief Bug Female",1053,15,.@label$;
- areamonster .@map$,352,351,362,387,"Thief Bug",1051,15,.@label$;
- areamonster .@map$,352,351,362,387,"Thief Bug Egg",1048,5,.@label$;
+ areamonster(.@map$, 352, 351, 362, 387, _("Golden Thief Bug"), GOLDEN_BUG, 1, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Thief Bug Male"), THIEF_BUG__, 15, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Thief Bug Female"), THIEF_BUG_, 15, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Thief Bug"), THIEF_BUG, 15, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Thief Bug Egg"), THIEF_BUG_EGG, 5, .@label$);
break;
case 6:
- areamonster .@map$,9,267,19,303,"Dragon Egg",1721,5,.@label$;
- areamonster .@map$,9,267,19,303,"Thief Bug Egg",1048,5,.@label$;
- areamonster .@map$,9,267,19,303,"Ant Egg",1097,5,.@label$;
- areamonster .@map$,9,267,19,303,"Pupa",1008,5,.@label$;
+ areamonster(.@map$, 9, 267, 19, 303, _("Dragon Egg"), DRAGON_EGG, 5, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Thief Bug Egg"), THIEF_BUG_EGG, 5, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Ant Egg"), ANT_EGG, 5, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Pupa"), PUPA, 5, .@label$);
break;
case 7:
- areamonster .@map$,93,267,103,303,"Explosion",1383,15,.@label$;
- areamonster .@map$,93,267,103,303,"Drainliar",1111,15,.@label$;
- areamonster .@map$,93,267,103,303,"Anopheles",1627,15,.@label$;
- areamonster .@map$,93,267,103,303,"Farmiliar",1005,15,.@label$;
+ areamonster(.@map$, 93, 267, 103, 303, _("Explosion"), EXPLOSION, 15, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Drainliar"), DRAINLIAR, 15, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Anopheles"), ANOPHELES, 15, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Farmiliar"), FARMILIAR, 15, .@label$);
break;
case 8:
- areamonster .@map$,181,267,191,303,"Firelock Soldier",1403,15,.@label$;
- areamonster .@map$,181,267,191,303,"Cruiser",1248,15,.@label$;
+ areamonster(.@map$, 181, 267, 191, 303, _("Firelock Soldier"), ANTIQUE_FIRELOCK, 15, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Cruiser"), CRUISER, 15, .@label$);
break;
case 9:
- areamonster .@map$,267,267,277,303,"Obsidian",1615,15,.@label$;
- areamonster .@map$,267,267,277,303,"Golem",1040,15,.@label$;
- areamonster .@map$,267,267,277,303,"Stapo",1784,10,.@label$;
+ areamonster(.@map$, 267, 267, 277, 303, _("Obsidian"), OBSIDIAN, 15, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Golem"), GOLEM, 15, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Stapo"), STAPO, 10, .@label$);
break;
case 10:
- areamonster .@map$,352,267,362,303,"Mistress",1059,1,.@label$;
- areamonster .@map$,352,267,362,303,"Giant Hornet",1303,25,.@label$;
- areamonster .@map$,352,267,362,303,"Hornet",1004,20,.@label$;
+ areamonster(.@map$, 352, 267, 362, 303, _("Mistress"), MISTRESS, 1, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Giant Hornet"), GIANT_HONET, 25, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Hornet"), HORNET, 20, .@label$);
break;
case 11:
- areamonster .@map$,9,180,19,216,"Dryad",1493,15,.@label$;
- areamonster .@map$,9,180,19,216,"Parasite",1500,15,.@label$;
- areamonster .@map$,9,180,19,216,"Hermit Plant",1413,15,.@label$;
- areamonster .@map$,9,180,19,216,"Rafflesia",1162,5,.@label$;
+ areamonster(.@map$, 9, 180, 19, 216, _("Dryad"), DRYAD, 15, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Parasite"), PARASITE, 15, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Hermit Plant"), WILD_GINSENG, 15, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Rafflesia"), RAFFLESIA, 5, .@label$);
break;
case 12:
- areamonster .@map$,93,180,103,216,"Demon Pungus",1378,25,.@label$;
- areamonster .@map$,93,180,103,216,"Punk",1199,25,.@label$;
+ areamonster(.@map$, 93, 180, 103, 216, _("Demon Pungus"), DEMON_PUNGUS, 25, .@label$);
+ areamonster(.@map$, 93, 180, 103, 216, _("Punk"), PUNK, 25, .@label$);
break;
case 13:
- areamonster .@map$,181,180,191,216,"Yao Yun",1512,15,.@label$;
- areamonster .@map$,181,180,191,216,"Bongunn",1188,15,.@label$;
- areamonster .@map$,181,180,191,216,"Munak",1026,10,.@label$;
+ areamonster(.@map$, 181, 180, 191, 216, _("Yao Yun"), HYEGUN, 15, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Bongunn"), BON_GUN, 15, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Munak"), MUNAK, 10, .@label$);
break;
case 14:
- areamonster .@map$,267,180,277,216,"High Orc",1213,15,.@label$;
- areamonster .@map$,267,180,277,216,"Orc Archer",1189,10,.@label$;
- areamonster .@map$,267,180,277,216,"Orc Lady",1273,10,.@label$;
- areamonster .@map$,267,180,277,216,"Orc Warrior",1023,5,.@label$;
- areamonster .@map$,267,180,277,216,"Orc Baby",1686,5,.@label$;
+ areamonster(.@map$, 267, 180, 277, 216, _("High Orc"), HIGH_ORC, 15, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Orc Archer"), ORC_ARCHER, 10, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Orc Lady"), ORC_LADY, 10, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Orc Warrior"), ORK_WARRIOR, 5, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Orc Baby"), ORC_BABY, 5, .@label$);
break;
case 15:
- areamonster .@map$,352,180,362,216,"Maya",1147,1,.@label$;
- areamonster .@map$,352,180,362,216,"Phreeoni",1159,1,.@label$;
- areamonster .@map$,352,180,362,216,"Deniro",1105,15,.@label$;
- areamonster .@map$,352,180,362,216,"Pierre",1160,15,.@label$;
- areamonster .@map$,352,180,362,216,"Andre",1095,15,.@label$;
- areamonster .@map$,352,180,362,216,"Ant Egg",1097,5,.@label$;
+ areamonster(.@map$, 352, 180, 362, 216, _("Maya"), MAYA, 1, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Phreeoni"), PHREEONI, 1, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Deniro"), DENIRO, 15, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Pierre"), PIERE, 15, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Andre"), ANDRE, 15, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Ant Egg"), ANT_EGG, 5, .@label$);
break;
case 16:
- areamonster .@map$,9,96,19,132,"Raydric Archer",1276,10,.@label$;
- areamonster .@map$,9,96,19,132,"Orc Archer",1189,10,.@label$;
- areamonster .@map$,9,96,19,132,"Gargoyle",1253,10,.@label$;
- areamonster .@map$,9,96,19,132,"Archer Skeleton",1016,10,.@label$;
+ areamonster(.@map$, 9, 96, 19, 132, _("Raydric Archer"), RAYDRIC_ARCHER, 10, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Orc Archer"), ORC_ARCHER, 10, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Gargoyle"), GARGOYLE, 10, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Archer Skeleton"), ARCHER_SKELETON, 10, .@label$);
break;
case 17:
- areamonster .@map$,93,96,103,132,"Merman",1264,10,.@label$;
- areamonster .@map$,93,96,103,132,"Baphomet Jr.",1101,10,.@label$;
- areamonster .@map$,93,96,103,132,"Strouf",1065,15,.@label$;
- areamonster .@map$,93,96,103,132,"Hill Wind",1629,5,.@label$;
+ areamonster(.@map$, 93, 96, 103, 132, _("Merman"), MERMAN, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Baphomet Jr."), BAPHOMET_, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Strouf"), STROUF, 15, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Hill Wind"), HILL_WIND, 5, .@label$);
break;
case 18:
- areamonster .@map$,181,96,191,132,"Cramp",1209,25,.@label$;
- areamonster .@map$,181,96,191,132,"Tarou",1175,15,.@label$;
+ areamonster(.@map$, 181, 96, 191, 132, _("Cramp"), CRAMP, 25, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Tarou"), TAROU, 15, .@label$);
break;
case 19:
- areamonster .@map$,267,96,277,132,"Deviace",1108,10,.@label$;
- areamonster .@map$,267,96,277,132,"Megalodon",1064,10,.@label$;
- areamonster .@map$,267,96,277,132,"Swordfish",1069,10,.@label$;
- areamonster .@map$,267,96,277,132,"Phen",1158,10,.@label$;
+ areamonster(.@map$, 267, 96, 277, 132, _("Deviace"), DEVIACE, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Megalodon"), MEGALODON, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Swordfish"), SWORD_FISH, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Phen"), PHEN, 10, .@label$);
break;
case 20:
- areamonster .@map$,352,96,362,132,"Drake",1112,1,.@label$;
- areamonster .@map$,352,96,362,132,"Pirate Skeleton",1071,50,.@label$;
+ areamonster(.@map$, 352, 96, 362, 132, _("Drake"), DRAKE, 1, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Pirate Skeleton"), PIRATE_SKEL, 50, .@label$);
break;
case 21:
- areamonster .@map$,9,9,19,45,"Plasma",1693,10,.@label$;
- areamonster .@map$,9,9,19,45,"Plasma",1696,10,.@label$;
- areamonster .@map$,9,9,19,45,"Plasma",1695,5,.@label$;
- areamonster .@map$,9,9,19,45,"Plasma",1697,5,.@label$;
- areamonster .@map$,9,9,19,45,"Plasma",1694,5,.@label$;
+ areamonster(.@map$, 9, 9, 19, 45, _("Plasma"), PLASMA_Y, 10, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Plasma"), PLASMA_P, 10, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Plasma"), PLASMA_G, 5, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Plasma"), PLASMA_B, 5, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Plasma"), PLASMA_R, 5, .@label$);
break;
case 22:
- areamonster .@map$,93,9,103,45,"Muscipular",1780,15,.@label$;
- areamonster .@map$,93,9,103,45,"Drosera",1781,15,.@label$;
- areamonster .@map$,93,9,103,45,"Flora",1118,15,.@label$;
- areamonster .@map$,93,9,103,45,"Hydra",1068,15,.@label$;
- areamonster .@map$,93,9,103,45,"Mandragora",1020,10,.@label$;
- areamonster .@map$,93,9,103,45,"Rafflesia",1162,10,.@label$;
+ areamonster(.@map$, 93, 9, 103, 45, _("Muscipular"), MUSCIPULAR, 15, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Drosera"), DROSERA, 15, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Flora"), FLORA, 15, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Hydra"), HYDRA, 15, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Mandragora"), MANDRAGORA, 10, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Rafflesia"), RAFFLESIA, 10, .@label$);
break;
case 23:
- areamonster .@map$,181,9,191,45,"Penomena",1216,15,.@label$;
- areamonster .@map$,181,9,191,45,"Obeaune",1044,10,.@label$;
- areamonster .@map$,181,9,191,45,"Marse",1144,10,.@label$;
- areamonster .@map$,181,9,191,45,"Swordfish",1069,10,.@label$;
- areamonster .@map$,181,9,191,45,"Hydra",1068,5,.@label$;
+ areamonster(.@map$, 181, 9, 191, 45, _("Penomena"), PENOMENA, 15, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Obeaune"), OBEAUNE, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Marse"), MARSE, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Swordfish"), SWORD_FISH, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Hydra"), HYDRA, 5, .@label$);
break;
case 24:
- areamonster .@map$,267,9,277,45,"Joker",1131,15,.@label$;
- areamonster .@map$,267,9,277,45,"Carat",1267,15,.@label$;
- areamonster .@map$,267,9,277,45,"Jakk",1130,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Joker"), JOKER, 15, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Carat"), CARAT, 15, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Jakk"), JAKK, 10, .@label$);
break;
case 25:
- areamonster .@map$,352,9,362,45,"Cat o' Nine Tails",1307,15,.@label$;
- areamonster .@map$,352,9,362,45,"Moonlight",1150,1,.@label$;
- areamonster .@map$,352,9,362,45,"Nine Tail",1180,15,.@label$;
+ areamonster(.@map$, 352, 9, 362, 45, _("Cat o' Nine Tails"), CAT_O_NINE_TAIL, 15, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Moonlight"), MOONLIGHT, 1, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Nine Tail"), NINE_TAIL, 15, .@label$);
break;
case 26:
- areamonster .@map$,9,351,19,387,"Gibbet",1503,10,.@label$;
- areamonster .@map$,9,351,19,387,"Enchanted Peach Tree",1410,10,.@label$;
- areamonster .@map$,9,351,19,387,"Wooden Golem",1497,10,.@label$;
- areamonster .@map$,9,351,19,387,"Stone Shooter",1495,10,.@label$;
- areamonster .@map$,9,351,19,387,"Elder Willow",1033,5,.@label$;
+ areamonster(.@map$, 9, 351, 19, 387, _("Gibbet"), GIBBET, 10, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Enchanted Peach Tree"), LIVE_PEACH_TREE, 10, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Wooden Golem"), WOODEN_GOLEM, 10, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Stone Shooter"), STONE_SHOOTER, 10, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Elder Willow"), ELDER_WILOW, 5, .@label$);
break;
case 27:
- areamonster .@map$,93,351,103,387,"Goblin Archer",1258,10,.@label$;
- areamonster .@map$,93,351,103,387,"Goblin",1122,10,.@label$;
- areamonster .@map$,93,351,103,387,"Goblin",1123,5,.@label$;
- areamonster .@map$,93,351,103,387,"Goblin",1124,5,.@label$;
- areamonster .@map$,93,351,103,387,"Gobin",1125,5,.@label$;
- areamonster .@map$,93,351,103,387,"Goblin",1126,5,.@label$;
+ areamonster(.@map$, 93, 351, 103, 387, _("Goblin Archer"), GOBLIN_ARCHER, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Goblin"), GOBLIN_1, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Goblin"), GOBLIN_2, 5, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Goblin"), GOBLIN_3, 5, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Gobin"), GOBLIN_4, 5, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Goblin"), GOBLIN_5, 5, .@label$);
break;
case 28:
- areamonster .@map$,181,351,191,387,"Arclouse",1194,30,.@label$;
- areamonster .@map$,181,351,191,387,"Neraid",1255,15,.@label$;
- areamonster .@map$,181,351,191,387,"Pest",1256,15,.@label$;
- areamonster .@map$,181,351,191,387,"Kukre",1070,10,.@label$;
+ areamonster(.@map$, 181, 351, 191, 387, _("Arclouse"), ARCLOUSE, 30, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Neraid"), NERAID, 15, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Pest"), PEST, 15, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Kukre"), KUKRE, 10, .@label$);
break;
case 29:
- areamonster .@map$,267,351,277,387,"Dark Frame",1260,10,.@label$;
- areamonster .@map$,267,351,277,387,"The Paper",1375,10,.@label$;
- areamonster .@map$,267,351,277,387,"Hylozoist",1510,10,.@label$;
- areamonster .@map$,267,351,277,387,"Quve",1508,5,.@label$;
- areamonster .@map$,267,351,277,387,"Lude",1509,5,.@label$;
- areamonster .@map$,267,351,277,387,"Whisper",1179,10,.@label$;
+ areamonster(.@map$, 267, 351, 277, 387, _("Dark Frame"), DARK_FRAME, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("The Paper"), THE_PAPER, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Hylozoist"), HYLOZOIST, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Quve"), QUVE, 5, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Lude"), LUDE, 5, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Whisper"), WHISPER, 10, .@label$);
break;
case 30:
- areamonster .@map$,352,351,362,387,"White Lady",1630,1,.@label$;
- areamonster .@map$,352,351,362,387,"Evil Nymph",1416,30,.@label$;
+ areamonster(.@map$, 352, 351, 362, 387, _("White Lady"), BACSOJIN_, 1, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Evil Nymph"), WICKED_NYMPH, 30, .@label$);
break;
case 31:
- areamonster .@map$,9,267,19,303,"Gig",1387,20,.@label$;
- areamonster .@map$,9,267,19,303,"Iron Fist",1212,15,.@label$;
- areamonster .@map$,9,267,19,303,"Argiope",1099,10,.@label$;
- areamonster .@map$,9,267,19,303,"Scorpion",1001,5,.@label$;
+ areamonster(.@map$, 9, 267, 19, 303, _("Gig"), GIG, 20, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Iron Fist"), IRON_FIST, 15, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Argiope"), ARGIOPE, 10, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Scorpion"), SCORPION, 5, .@label$);
break;
case 32:
- areamonster .@map$,93,267,103,303,"Goblin Leader",1299,1,.@label$;
- areamonster .@map$,93,267,103,303,"Goblin Archer",1258,10,.@label$;
- areamonster .@map$,93,267,103,303,"Goblin",1122,10,.@label$;
- areamonster .@map$,93,267,103,303,"Goblin",1123,5,.@label$;
- areamonster .@map$,93,267,103,303,"Goblin",1124,5,.@label$;
- areamonster .@map$,93,267,103,303,"Goblin",1125,5,.@label$;
- areamonster .@map$,93,267,103,303,"Goblin",1126,5,.@label$;
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin Leader"), GOBLIN_LEADER, 1, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin Archer"), GOBLIN_ARCHER, 10, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin"), GOBLIN_1, 10, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin"), GOBLIN_2, 5, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin"), GOBLIN_3, 5, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin"), GOBLIN_4, 5, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin"), GOBLIN_5, 5, .@label$);
break;
case 33:
- areamonster .@map$,181,267,191,303,"Kobold Leader",1296,1,.@label$;
- areamonster .@map$,181,267,191,303,"Kobold",1133,15,.@label$;
- areamonster .@map$,181,267,191,303,"Kobold_Archer",1282,15,.@label$;
- areamonster .@map$,181,267,191,303,"Kobold",1134,10,.@label$;
- areamonster .@map$,181,267,191,303,"Kobold",1135,5,.@label$;
+ areamonster(.@map$, 181, 267, 191, 303, _("Kobold Leader"), KOBOLD_LEADER, 1, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Kobold"), KOBOLD_1, 15, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Kobold_Archer"), KOBOLD_ARCHER, 15, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Kobold"), KOBOLD_2, 10, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Kobold"), KOBOLD_3, 5, .@label$);
break;
case 34:
- areamonster .@map$,267,267,277,303,"Flame Skull",1869,20,.@label$;
- areamonster .@map$,267,267,277,303,"Whisper",1179,10,.@label$;
- areamonster .@map$,267,267,277,303,"Giant Whisper",1186,10,.@label$;
+ areamonster(.@map$, 267, 267, 277, 303, _("Flame Skull"), FLAME_SKULL, 20, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Whisper"), WHISPER, 10, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Giant Whisper"), WHISPER_BOSS, 10, .@label$);
break;
case 35:
- areamonster .@map$,352,267,362,303,"Turtle General",1312,1,.@label$;
- areamonster .@map$,352,267,362,303,"Freezer",1319,10,.@label$;
- areamonster .@map$,352,267,362,303,"Solider",1316,10,.@label$;
- areamonster .@map$,352,267,362,303,"Heater",1318,10,.@label$;
- areamonster .@map$,352,267,362,303,"Permeter",1314,10,.@label$;
+ areamonster(.@map$, 352, 267, 362, 303, _("Turtle General"), TURTLE_GENERAL, 1, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Freezer"), FREEZER, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Solider"), SOLIDER, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Heater"), HEATER, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Permeter"), PERMETER, 10, .@label$);
break;
case 36:
- areamonster .@map$,9,180,19,216,"Anolian",1206,30,.@label$;
- areamonster .@map$,9,180,19,216,"Grove",1687,10,.@label$;
- areamonster .@map$,9,180,19,216,"Alligator",1271,10,.@label$;
+ areamonster(.@map$, 9, 180, 19, 216, _("Anolian"), ANOLIAN, 30, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Grove"), GREEN_IGUANA, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Alligator"), ALLIGATOR, 10, .@label$);
break;
case 37:
- areamonster .@map$,93,180,103,216,"Clock Tower Manager",1270,10,.@label$;
- areamonster .@map$,93,180,103,216,"Clock",1269,10,.@label$;
- areamonster .@map$,93,180,103,216,"Alarm",1193,30,.@label$;
+ areamonster(.@map$, 93, 180, 103, 216, _("Clock Tower Manager"), C_TOWER_MANAGER, 10, .@label$);
+ areamonster(.@map$, 93, 180, 103, 216, _("Clock"), CLOCK, 10, .@label$);
+ areamonster(.@map$, 93, 180, 103, 216, _("Alarm"), ALARM, 30, .@label$);
break;
case 38:
- areamonster .@map$,181,180,191,216,"Death Word",1698,25,.@label$;
- areamonster .@map$,181,180,191,216,"Rideword",1195,25,.@label$;
+ areamonster(.@map$, 181, 180, 191, 216, _("Death Word"), DEATHWORD, 25, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Rideword"), RIDEWORD, 25, .@label$);
break;
case 39:
- areamonster .@map$,267,180,277,216,"Evil Nymph",1416,10,.@label$;
- areamonster .@map$,267,180,277,216,"Mao Gui",1513,10,.@label$;
- areamonster .@map$,267,180,277,216,"Taoist Hermit",1412,10,.@label$;
- areamonster .@map$,267,180,277,216,"Zhu Po Long",1514,10,.@label$;
- areamonster .@map$,267,180,277,216,"Jin Guai",1517,5,.@label$;
+ areamonster(.@map$, 267, 180, 277, 216, _("Evil Nymph"), WICKED_NYMPH, 10, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Mao Gui"), CIVIL_SERVANT, 10, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Taoist Hermit"), EVIL_CLOUD_HERMIT, 10, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Zhu Po Long"), DANCING_DRAGON, 10, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Jin Guai"), LI_ME_MANG_RYANG, 5, .@label$);
break;
case 40:
- areamonster .@map$,352,180,362,216,"Samurai Specter",1492,1,.@label$;
- areamonster .@map$,352,180,362,216,"Shinobi",1401,10,.@label$;
- areamonster .@map$,352,180,362,216,"Tengu",1405,10,.@label$;
- areamonster .@map$,352,180,362,216,"Firelock Soldier",1403,5,.@label$;
- areamonster .@map$,352,180,362,216,"Miyabi Doll",1404,10,.@label$;
- areamonster .@map$,352,180,362,216,"Karakasa",1400,5,.@label$;
+ areamonster(.@map$, 352, 180, 362, 216, _("Samurai Specter"), INCANTATION_SAMURAI, 1, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Shinobi"), SHINOBI, 10, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Tengu"), TENGU, 10, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Firelock Soldier"), ANTIQUE_FIRELOCK, 5, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Miyabi Doll"), MIYABI_NINGYO, 10, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Karakasa"), KARAKASA, 5, .@label$);
break;
case 41:
- areamonster .@map$,9,96,19,132,"Kraben",1587,50,.@label$;
+ areamonster(.@map$, 9, 96, 19, 132, _("Kraben"), KRABEN, 50, .@label$);
break;
case 42:
- areamonster .@map$,93,96,103,132,"Sleeper",1386,20,.@label$;
- areamonster .@map$,93,96,103,132,"Sting",1207,10,.@label$;
- areamonster .@map$,93,96,103,132,"Mi Gao",1516,10,.@label$;
- areamonster .@map$,93,96,103,132,"Sandman",1165,5,.@label$;
- areamonster .@map$,93,96,103,132,"Hode",1127,5,.@label$;
+ areamonster(.@map$, 93, 96, 103, 132, _("Sleeper"), SLEEPER, 20, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Sting"), STING, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Mi Gao"), INCREASE_SOIL, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Sandman"), SAND_MAN, 5, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Hode"), HODE, 5, .@label$);
break;
case 43:
- areamonster .@map$,181,96,191,132,"Medusa",1148,10,.@label$;
- areamonster .@map$,181,96,191,132,"Sidewinder",1037,40,.@label$;
- areamonster .@map$,181,96,191,132,"Anacondaq",1030,5,.@label$;
- areamonster .@map$,181,96,191,132,"Boa",1025,5,.@label$;
+ areamonster(.@map$, 181, 96, 191, 132, _("Medusa"), MEDUSA, 10, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Sidewinder"), SIDE_WINDER, 40, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Anacondaq"), ANACONDAQ, 5, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Boa"), SNAKE, 5, .@label$);
break;
case 44:
- areamonster .@map$,267,96,277,132,"Hatii Baby",1515,20,.@label$;
- areamonster .@map$,267,96,277,132,"Baphomet Jr.",1101,20,.@label$;
- areamonster .@map$,267,96,277,132,"Orc Baby",1686,1,.@label$;
- areamonster .@map$,267,96,277,132,"Baby Desert Wolf",1107,10,.@label$;
- areamonster .@map$,267,96,277,132,"Savage Babe",1167,10,.@label$;
+ areamonster(.@map$, 267, 96, 277, 132, _("Hatii Baby"), GARM_BABY, 20, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Baphomet Jr."), BAPHOMET_, 20, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Orc Baby"), ORC_BABY, 1, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Baby Desert Wolf"), DESERT_WOLF_B, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Savage Babe"), SAVAGE_BABE, 10, .@label$);
break;
case 45:
- areamonster .@map$,352,96,362,132,"Osiris",1038,1,.@label$;
- areamonster .@map$,352,96,362,132,"Ancient Mummy",1297,15,.@label$;
- areamonster .@map$,352,96,362,132,"Verit",1032,15,.@label$;
- areamonster .@map$,352,96,362,132,"Mummy",1041,20,.@label$;
+ areamonster(.@map$, 352, 96, 362, 132, _("Osiris"), OSIRIS, 1, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Ancient Mummy"), ANCIENT_MUMMY, 15, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Verit"), VERIT, 15, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Mummy"), MUMMY, 20, .@label$);
break;
case 46:
- areamonster .@map$,9,9,19,45,"Seeker",1774,20,.@label$;
- areamonster .@map$,9,9,19,45,"Beholder",1633,20,.@label$;
+ areamonster(.@map$, 9, 9, 19, 45, _("Seeker"), SEEKER, 20, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Beholder"), BEHOLDER, 20, .@label$);
break;
case 47:
- areamonster .@map$,93,9,103,45,"Deleter",1384,20,.@label$;
- areamonster .@map$,93,9,103,45,"Deleter",1385,10,.@label$;
- areamonster .@map$,93,9,103,45,"Petite",1156,10,.@label$;
- areamonster .@map$,93,9,103,45,"Petite",1155,10,.@label$;
+ areamonster(.@map$, 93, 9, 103, 45, _("Deleter"), DELETER, 20, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Deleter"), DELETER_, 10, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Petite"), PETIT_, 10, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Petite"), PETIT, 10, .@label$);
break;
case 48:
- areamonster .@map$,181,9,191,45,"Ancient Worm",1305,10,.@label$;
- areamonster .@map$,181,9,191,45,"Ancient Mummy",1297,10,.@label$;
- areamonster .@map$,181,9,191,45,"Ancient Mimic",1699,10,.@label$;
+ areamonster(.@map$, 181, 9, 191, 45, _("Ancient Worm"), ANCIENT_WORM, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Ancient Mummy"), ANCIENT_MUMMY, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Ancient Mimic"), ANCIENT_MIMIC, 10, .@label$);
break;
case 49:
- areamonster .@map$,267,9,277,45,"Grizzly",1381,20,.@label$;
- areamonster .@map$,267,9,277,45,"Leib Olmai",1306,7,.@label$;
- areamonster .@map$,267,9,277,45,"Zipper Bear",1417,5,.@label$;
- areamonster .@map$,267,9,277,45,"Sasquatch",1243,5,.@label$;
- areamonster .@map$,267,9,277,45,"Bigfoot",1060,5,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Grizzly"), GRIZZLY, 20, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Leib Olmai"), LEIB_OLMAI, 7, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Zipper Bear"), ZIPPER_BEAR, 5, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Sasquatch"), SASQUATCH, 5, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Bigfoot"), BIGFOOT, 5, .@label$);
break;
case 50:
- areamonster .@map$,352,9,362,45,"Pharaoh",1157,1,.@label$;
- areamonster .@map$,352,9,362,45,"Amon Ra",1511,1,.@label$;
- areamonster .@map$,352,9,362,45,"Anubis",1098,10,.@label$;
- areamonster .@map$,352,9,362,45,"Marduk",1140,10,.@label$;
- areamonster .@map$,352,9,362,45,"Matyr",1146,10,.@label$;
+ areamonster(.@map$, 352, 9, 362, 45, _("Pharaoh"), PHARAOH, 1, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Amon Ra"), AMON_RA, 1, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Anubis"), ANUBIS, 10, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Marduk"), MARDUK, 10, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Matyr"), MATYR, 10, .@label$);
break;
case 51:
- areamonster .@map$,9,351,19,387,"Mini Demon",1292,20,.@label$;
- areamonster .@map$,9,351,19,387,"Diabolic",1382,20,.@label$;
- areamonster .@map$,9,351,19,387,"Deviruchi",1109,10,.@label$;
+ areamonster(.@map$, 9, 351, 19, 387, _("Mini Demon"), MINI_DEMON, 20, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Diabolic"), DIABOLIC, 20, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Deviruchi"), DEVIRUCHI, 10, .@label$);
break;
case 52:
- areamonster .@map$,93,351,103,387,"Harpy",1376,20,.@label$;
- areamonster .@map$,93,351,103,387,"Grand Peco",1369,10,.@label$;
- areamonster .@map$,93,351,103,387,"Bloody Butterfly",1408,10,.@label$;
- areamonster .@map$,93,351,103,387,"Gargoyle",1253,10,.@label$;
- areamonster .@map$,93,351,103,387,"Hill Wind",1680,5,.@label$;
- areamonster .@map$,93,351,103,387,"Hill Wind",1629,5,.@label$;
+ areamonster(.@map$, 93, 351, 103, 387, _("Harpy"), HARPY, 20, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Grand Peco"), GRAND_PECO, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Bloody Butterfly"), BLOOD_BUTTERFLY, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Gargoyle"), GARGOYLE, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Hill Wind"), HILL_WIND_1, 5, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Hill Wind"), HILL_WIND, 5, .@label$);
break;
case 53:
- areamonster .@map$,181,351,191,387,"Assaulter",1315,25,.@label$;
- areamonster .@map$,181,351,191,387,"Shinobi",1401,30,.@label$;
+ areamonster(.@map$, 181, 351, 191, 387, _("Assaulter"), ASSULTER, 25, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Shinobi"), SHINOBI, 30, .@label$);
break;
case 54:
- areamonster .@map$,267,351,277,387,"Chepet",1250,10,.@label$;
- areamonster .@map$,267,351,277,387,"Mariontte",1143,10,.@label$;
- areamonster .@map$,267,351,277,387,"Miyabi Doll",1404,10,.@label$;
+ areamonster(.@map$, 267, 351, 277, 387, _("Chepet"), CHEPET, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Mariontte"), MARIONETTE, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Miyabi Doll"), MIYABI_NINGYO, 10, .@label$);
break;
case 55:
- areamonster .@map$,352,351,362,387,"Medusa",1148,25,.@label$;
- areamonster .@map$,352,351,362,387,"Evil Snake Lord",1418,1,.@label$;
- areamonster .@map$,352,351,362,387,"Isis",1029,15,.@label$;
- areamonster .@map$,352,351,362,387,"Sidewinder",1037,15,.@label$;
+ areamonster(.@map$, 352, 351, 362, 387, _("Medusa"), MEDUSA, 25, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Evil Snake Lord"), DARK_SNAKE_LORD, 1, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Isis"), ISIS, 15, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Sidewinder"), SIDE_WINDER, 15, .@label$);
break;
case 56:
- areamonster .@map$,9,267,19,303,"Freezer",1319,10,.@label$;
- areamonster .@map$,9,267,19,303,"Hatii Baby",1515,10,.@label$;
- areamonster .@map$,9,267,19,303,"Ice Titan",1777,15,.@label$;
- areamonster .@map$,9,267,19,303,"Snowier",1775,10,.@label$;
- areamonster .@map$,9,267,19,303,"Gazeti",1778,10,.@label$;
+ areamonster(.@map$, 9, 267, 19, 303, _("Freezer"), FREEZER, 10, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Hatii Baby"), GARM_BABY, 10, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Ice Titan"), ICE_TITAN, 15, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Snowier"), SNOWIER, 10, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Gazeti"), GAZETI, 10, .@label$);
break;
case 57:
- areamonster .@map$,93,267,103,303,"Arc Angeling",1388,1,.@label$;
- areamonster .@map$,93,267,103,303,"Deviling",1582,1,.@label$;
- areamonster .@map$,93,267,103,303,"Angeling",1096,1,.@label$;
- areamonster .@map$,93,267,103,303,"Ghostring",1120,1,.@label$;
- areamonster .@map$,93,267,103,303,"Mastering",1090,1,.@label$;
- areamonster .@map$,93,267,103,303,"Metaling",1613,25,.@label$;
- areamonster .@map$,93,267,103,303,"Marin",1242,5,.@label$;
- areamonster .@map$,93,267,103,303,"Poporing",1031,5,.@label$;
- areamonster .@map$,93,267,103,303,"Drops",1113,5,.@label$;
+ areamonster(.@map$, 93, 267, 103, 303, _("Arc Angeling"), ARCHANGELING, 1, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Deviling"), DEVILING, 1, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Angeling"), ANGELING, 1, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Ghostring"), GHOSTRING, 1, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Mastering"), MASTERING, 1, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Metaling"), METALING, 25, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Marin"), MARIN, 5, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Poporing"), POPORING, 5, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Drops"), DROPS, 5, .@label$);
break;
case 58:
- areamonster .@map$,181,267,191,303,"Phendark",1202,20,.@label$;
- areamonster .@map$,181,267,191,303,"Rybio",1201,10,.@label$;
- areamonster .@map$,181,267,191,303,"Zombie Prisoner",1197,10,.@label$;
- areamonster .@map$,181,267,191,303,"Skeleton Prisoner",1196,5,.@label$;
- areamonster .@map$,181,267,191,303,"Injustice",1257,5,.@label$;
+ areamonster(.@map$, 181, 267, 191, 303, _("Phendark"), PHENDARK, 20, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Rybio"), RYBIO, 10, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Zombie Prisoner"), ZOMBIE_PRISONER, 10, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Skeleton Prisoner"), SKEL_PRISONER, 5, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Injustice"), INJUSTICE, 5, .@label$);
break;
case 59:
- areamonster .@map$,267,267,277,303,"Ancient Mimic",1699,30,.@label$;
- areamonster .@map$,267,267,277,303,"Mimic",1191,20,.@label$;
- areamonster .@map$,267,267,277,303,"Mystcase",1249,10,.@label$;
+ areamonster(.@map$, 267, 267, 277, 303, _("Ancient Mimic"), ANCIENT_MIMIC, 30, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Mimic"), MIMIC, 20, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Mystcase"), MYSTCASE, 10, .@label$);
break;
case 60:
- areamonster .@map$,352,267,362,303,"Egnigem Cenia",1658,1,.@label$;
- areamonster .@map$,352,267,362,303,"Doppelganger",1046,1,.@label$;
- areamonster .@map$,352,267,362,303,"Armeyer Dinze",1654,10,.@label$;
- areamonster .@map$,352,267,362,303,"Wickebine Tres",1653,10,.@label$;
- areamonster .@map$,352,267,362,303,"Laurell Winder",1657,10,.@label$;
- areamonster .@map$,352,267,362,303,"Kavach Icarus",1656,10,.@label$;
- areamonster .@map$,352,267,362,303,"Errende Ebecee",1655,10,.@label$;
- areamonster .@map$,352,267,362,303,"Egnigem Cenia",1652,10,.@label$;
+ areamonster(.@map$, 352, 267, 362, 303, _("Egnigem Cenia"), B_YGNIZEM, 1, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Doppelganger"), DOPPELGANGER, 1, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Armeyer Dinze"), ARMAIA, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Wickebine Tres"), WHIKEBAIN, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Laurell Winder"), RAWREL, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Kavach Icarus"), KAVAC, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Errende Ebecee"), EREND, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Egnigem Cenia"), YGNIZEM, 10, .@label$);
break;
case 61:
- areamonster .@map$,9,180,19,216,"Agav",1769,10,.@label$;
- areamonster .@map$,9,180,19,216,"Echio",1770,10,.@label$;
- areamonster .@map$,9,180,19,216,"Isilla",1772,5,.@label$;
- areamonster .@map$,9,180,19,216,"Mobster",1313,10,.@label$;
- areamonster .@map$,9,180,19,216,"Pasana",1154,10,.@label$;
- areamonster .@map$,9,180,19,216,"Vanberk",1771,5,.@label$;
+ areamonster(.@map$, 9, 180, 19, 216, _("Agav"), AGAV, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Echio"), ECHIO, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Isilla"), ISILLA, 5, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Mobster"), MOBSTER, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Pasana"), PASANA, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Vanberk"), VANBERK, 5, .@label$);
break;
case 62:
- areamonster .@map$,93,180,103,216,"Wanderer",1208,35,.@label$;
+ areamonster(.@map$, 93, 180, 103, 216, _("Wanderer"), WANDER_MAN, 35, .@label$);
break;
case 63:
- areamonster .@map$,181,180,191,216,"Ragged Zombie",1865,20,.@label$;
- areamonster .@map$,181,180,191,216,"Zombie Master",1298,10,.@label$;
- areamonster .@map$,181,180,191,216,"Zombie Prisoner",1197,5,.@label$;
- areamonster .@map$,181,180,191,216,"Orc Zombie",1153,5,.@label$;
- areamonster .@map$,181,180,191,216,"Zombie",1015,5,.@label$;
+ areamonster(.@map$, 181, 180, 191, 216, _("Ragged Zombie"), RAGGED_ZOMBIE, 20, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Zombie Master"), ZOMBIE_MASTER, 10, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Zombie Prisoner"), ZOMBIE_PRISONER, 5, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Orc Zombie"), ORC_ZOMBIE, 5, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Zombie"), ZOMBIE, 5, .@label$);
break;
case 64:
- areamonster .@map$,267,180,277,216,"Ungoliant",1618,30,.@label$;
- areamonster .@map$,267,180,277,216,"Ancient Worm",1305,2,.@label$;
- areamonster .@map$,267,180,277,216,"Caterpillar",1300,2,.@label$;
- areamonster .@map$,267,180,277,216,"Creamy Fear",1293,2,.@label$;
- areamonster .@map$,267,180,277,216,"Killer Mantis",1294,2,.@label$;
- areamonster .@map$,267,180,277,216,"Giant Hornet",1303,2,.@label$;
+ areamonster(.@map$, 267, 180, 277, 216, _("Ungoliant"), UNGOLIANT, 30, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Ancient Worm"), ANCIENT_WORM, 2, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Caterpillar"), CATERPILLAR, 2, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Creamy Fear"), CREMY_FEAR, 2, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Killer Mantis"), KILLER_MANTIS, 2, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Giant Hornet"), GIANT_HONET, 2, .@label$);
break;
case 65:
- areamonster .@map$,352,180,362,216,"Atros",1785,1,.@label$;
- areamonster .@map$,352,180,362,216,"Galion",1783,20,.@label$;
+ areamonster(.@map$, 352, 180, 362, 216, _("Atros"), ATROCE, 1, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Galion"), GALION, 20, .@label$);
break;
case 66:
- areamonster .@map$,9,96,19,132,"Incubus",1374,20,.@label$;
- areamonster .@map$,9,96,19,132,"Aliot",1736,20,.@label$;
- areamonster .@map$,9,96,19,132,"Injustice",1257,10,.@label$;
+ areamonster(.@map$, 9, 96, 19, 132, _("Incubus"), INCUBUS, 20, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Aliot"), ALIOT, 20, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Injustice"), INJUSTICE, 10, .@label$);
break;
case 67:
- areamonster .@map$,93,96,103,132,"Acidus",1716,10,.@label$;
- areamonster .@map$,93,96,103,132,"Acidus",1713,10,.@label$;
- areamonster .@map$,93,96,103,132,"Deleter",1384,5,.@label$;
- areamonster .@map$,93,96,103,132,"Mutant Dragonoid",1262,10,.@label$;
- areamonster .@map$,93,96,103,132,"Petite",1156,5,.@label$;
+ areamonster(.@map$, 93, 96, 103, 132, _("Acidus"), ACIDUS_, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Acidus"), ACIDUS, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Deleter"), DELETER, 5, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Mutant Dragonoid"), MUTANT_DRAGON, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Petite"), PETIT_, 5, .@label$);
break;
case 68:
- areamonster .@map$,181,96,191,132,"Lava Golem",1366,10,.@label$;
- areamonster .@map$,181,96,191,132,"Stalactic Golem",1278,10,.@label$;
- areamonster .@map$,181,96,191,132,"Ice Titan",1777,10,.@label$;
- areamonster .@map$,181,96,191,132,"Wooden Golem",1497,5,.@label$;
- areamonster .@map$,181,96,191,132,"Golem",1040,5,.@label$;
+ areamonster(.@map$, 181, 96, 191, 132, _("Lava Golem"), LAVA_GOLEM, 10, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Stalactic Golem"), STALACTIC_GOLEM, 10, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Ice Titan"), ICE_TITAN, 10, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Wooden Golem"), WOODEN_GOLEM, 5, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Golem"), GOLEM, 5, .@label$);
break;
case 69:
- areamonster .@map$,267,96,277,132,"Dame of Sentinel",1700,20,.@label$;
- areamonster .@map$,267,96,277,132,"Mistress of Shelter",1701,10,.@label$;
- areamonster .@map$,267,96,277,132,"Baroness of Retribution",1702,10,.@label$;
- areamonster .@map$,267,96,277,132,"Lady Solace",1703,10,.@label$;
- areamonster .@map$,267,96,277,132,"False Angel",1371,10,.@label$;
+ areamonster(.@map$, 267, 96, 277, 132, _("Dame of Sentinel"), OBSERVATION, 20, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Mistress of Shelter"), SHELTER, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Baroness of Retribution"), RETRIBUTION, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Lady Solace"), SOLACE, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("False Angel"), FAKE_ANGEL, 10, .@label$);
break;
case 70:
- areamonster .@map$,352,96,362,132,"Orc Hero",1087,1,.@label$;
- areamonster .@map$,352,96,362,132,"Orc Lord",1190,1,.@label$;
- areamonster .@map$,352,96,362,132,"Orc Baby",1686,20,.@label$;
+ areamonster(.@map$, 352, 96, 362, 132, _("Orc Hero"), ORK_HERO, 1, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Orc Lord"), ORC_LORD, 1, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Orc Baby"), ORC_BABY, 20, .@label$);
break;
case 71:
- areamonster .@map$,9,9,19,45,"Succubus",1370,20,.@label$;
- areamonster .@map$,9,9,19,45,"Nightmare Terror",1379,20,.@label$;
- areamonster .@map$,9,9,19,45,"Incubus",1374,20,.@label$;
- areamonster .@map$,9,9,19,45,"Nightmare",1061,5,.@label$;
+ areamonster(.@map$, 9, 9, 19, 45, _("Succubus"), SUCCUBUS, 20, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Nightmare Terror"), NIGHTMARE_TERROR, 20, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Incubus"), INCUBUS, 20, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Nightmare"), NIGHTMARE, 5, .@label$);
break;
case 72:
- areamonster .@map$,93,9,103,45,"Margaretha Sorin",1637,10,.@label$;
- areamonster .@map$,93,9,103,45,"Permeter",1314,10,.@label$;
- areamonster .@map$,93,9,103,45,"Errende Ebecee",1655,10,.@label$;
- areamonster .@map$,93,9,103,45,"Enchanted Peach Tree",1410,10,.@label$;
+ areamonster(.@map$, 93, 9, 103, 45, _("Margaretha Sorin"), MAGALETA, 10, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Permeter"), PERMETER, 10, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Errende Ebecee"), EREND, 10, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Enchanted Peach Tree"), LIVE_PEACH_TREE, 10, .@label$);
break;
case 73:
- areamonster .@map$,181,9,191,45,"Succubus",1370,10,.@label$;
- areamonster .@map$,181,9,191,45,"Loli Ruri",1505,20,.@label$;
- areamonster .@map$,181,9,191,45,"Aliza",1737,10,.@label$;
- areamonster .@map$,181,9,191,45,"Zealotus",1200,5,.@label$;
- areamonster .@map$,181,9,191,45,"Alice",1275,5,.@label$;
- areamonster .@map$,181,9,191,45,"Green Maiden",1519,10,.@label$;
+ areamonster(.@map$, 181, 9, 191, 45, _("Succubus"), SUCCUBUS, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Loli Ruri"), LOLI_RURI, 20, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Aliza"), ALIZA, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Zealotus"), ZHERLTHSH, 5, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Alice"), ALICE, 5, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Green Maiden"), CHUNG_E, 10, .@label$);
break;
case 74:
- areamonster .@map$,267,9,277,45,"Dimik",1671,6,.@label$;
- areamonster .@map$,267,9,277,45,"Dimik",1673,6,.@label$;
- areamonster .@map$,267,9,277,45,"Dimik",1672,6,.@label$;
- areamonster .@map$,267,9,277,45,"Venatu",1677,6,.@label$;
- areamonster .@map$,267,9,277,45,"Dimik",1670,6,.@label$;
- areamonster .@map$,267,9,277,45,"Archdam",1668,6,.@label$;
- areamonster .@map$,267,9,277,45,"Venatu",1678,6,.@label$;
- areamonster .@map$,267,9,277,45,"Venatu",1679,6,.@label$;
- areamonster .@map$,267,9,277,45,"Venatu",1676,6,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Dimik"), DIMIK_2, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Dimik"), DIMIK_4, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Dimik"), DIMIK_3, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Venatu"), VENATU_2, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Dimik"), DIMIK_1, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Archdam"), ARCHDAM, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Venatu"), VENATU_3, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Venatu"), VENATU_4, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Venatu"), VENATU_1, 6, .@label$);
break;
case 75:
- areamonster .@map$,352,9,362,45,"Baphomet",1039,1,.@label$;
- areamonster .@map$,352,9,362,45,"Dark Lord",1272,1,.@label$;
- areamonster .@map$,352,9,362,45,"Baphomet Jr.",1101,20,.@label$;
- areamonster .@map$,352,9,362,45,"Dark Illusion",1302,10,.@label$;
+ areamonster(.@map$, 352, 9, 362, 45, _("Baphomet"), BAPHOMET, 1, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Dark Lord"), DARK_LORD, 1, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Baphomet Jr."), BAPHOMET_, 20, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Dark Illusion"), DARK_ILLUSION, 10, .@label$);
break;
case 76:
- areamonster .@map$,9,351,19,387,"Abysmal Knight",1219,30,.@label$;
- areamonster .@map$,9,351,19,387,"Nightmare Terror",1379,20,.@label$;
- areamonster .@map$,9,351,19,387,"Nightmare",1061,10,.@label$;
+ areamonster(.@map$, 9, 351, 19, 387, _("Abysmal Knight"), KNIGHT_OF_ABYSS, 30, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Nightmare Terror"), NIGHTMARE_TERROR, 20, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Nightmare"), NIGHTMARE, 10, .@label$);
break;
case 77:
- areamonster .@map$,93,351,103,387,"Banshee",1867,30,.@label$;
- areamonster .@map$,93,351,103,387,"Wraith Dead",1291,10,.@label$;
- areamonster .@map$,93,351,103,387,"Evil Druid",1117,10,.@label$;
- areamonster .@map$,93,351,103,387,"Wraith",1192,10,.@label$;
- areamonster .@map$,93,351,103,387,"Wind Ghost",1263,10,.@label$;
+ areamonster(.@map$, 93, 351, 103, 387, _("Banshee"), BANSHEE, 30, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Wraith Dead"), WRAITH_DEAD, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Evil Druid"), EVIL_DRUID, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Wraith"), WRAITH, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Wind Ghost"), WIND_GHOST, 10, .@label$);
break;
case 78:
- areamonster .@map$,181,351,191,387,"Sword Master",1829,5,.@label$;
- areamonster .@map$,181,351,191,387,"Bloody Knight",1268,10,.@label$;
- areamonster .@map$,181,351,191,387,"Abysmal Knight",1219,5,.@label$;
- areamonster .@map$,181,351,191,387,"Dullahan",1504,10,.@label$;
- areamonster .@map$,181,351,191,387,"Raydric",1163,20,.@label$;
+ areamonster(.@map$, 181, 351, 191, 387, _("Sword Master"), SWORD_GUARDIAN, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Bloody Knight"), BLOODY_KNIGHT, 10, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Abysmal Knight"), KNIGHT_OF_ABYSS, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Dullahan"), DULLAHAN, 10, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Raydric"), RAYDRIC, 20, .@label$);
break;
case 79:
- areamonster .@map$,267,351,277,387,"Hydro",1720,10,.@label$;
- areamonster .@map$,267,351,277,387,"Ferus",1714,10,.@label$;
- areamonster .@map$,267,351,277,387,"Ferus",1717,10,.@label$;
- areamonster .@map$,267,351,277,387,"Deleter",1385,5,.@label$;
- areamonster .@map$,267,351,277,387,"Petite",1155,5,.@label$;
+ areamonster(.@map$, 267, 351, 277, 387, _("Hydro"), HYDRO, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Ferus"), FERUS, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Ferus"), FERUS_, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Deleter"), DELETER_, 5, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Petite"), PETIT, 5, .@label$);
break;
case 80:
- areamonster .@map$,352,351,362,387,"Falling Bishop",1871,1,.@label$;
- areamonster .@map$,352,351,362,387,"Necromancer",1870,15,.@label$;
+ areamonster(.@map$, 352, 351, 362, 387, _("Falling Bishop"), FALLINGBISHOP, 1, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Necromancer"), NECROMANCER, 15, .@label$);
break;
case 81:
- areamonster .@map$,9,267,19,303,"Mysteltainn",1203,20,.@label$;
- areamonster .@map$,9,267,19,303,"Ogretooth",1204,20,.@label$;
- areamonster .@map$,9,267,19,303,"Executioner",1205,20,.@label$;
+ areamonster(.@map$, 9, 267, 19, 303, _("Mysteltainn"), MYSTELTAINN, 20, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Ogretooth"), TIRFING, 20, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Executioner"), EXECUTIONER, 20, .@label$);
break;
case 82:
- areamonster .@map$,93,267,103,303,"Bloody Knight",1268,10,.@label$;
- areamonster .@map$,93,267,103,303,"Agav",1769,10,.@label$;
- areamonster .@map$,93,267,103,303,"Bloody Murderer",1507,10,.@label$;
- areamonster .@map$,93,267,103,303,"Skogul",1752,10,.@label$;
- areamonster .@map$,93,267,103,303,"Injustice",1257,10,.@label$;
+ areamonster(.@map$, 93, 267, 103, 303, _("Bloody Knight"), BLOODY_KNIGHT, 10, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Agav"), AGAV, 10, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Bloody Murderer"), BLOODY_MURDERER, 10, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Skogul"), SKOGUL, 10, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Injustice"), INJUSTICE, 10, .@label$);
break;
case 83:
- areamonster .@map$,181,267,191,303,"Skeggiold",1754,10,.@label$;
- areamonster .@map$,181,267,191,303,"Dark Illusion",1302,10,.@label$;
- areamonster .@map$,181,267,191,303,"Gryphon",1259,10,.@label$;
- areamonster .@map$,181,267,191,303,"Chimera",1283,10,.@label$;
+ areamonster(.@map$, 181, 267, 191, 303, _("Skeggiold"), SKEGGIOLD, 10, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Dark Illusion"), DARK_ILLUSION, 10, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Gryphon"), GRYPHON, 10, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Chimera"), CHIMERA, 10, .@label$);
break;
case 84:
- areamonster .@map$,267,267,277,303,"Succubus",1370,10,.@label$;
- areamonster .@map$,267,267,277,303,"Dark Illusion",1302,20,.@label$;
- areamonster .@map$,267,267,277,303,"Owl Duke",1320,10,.@label$;
- areamonster .@map$,267,267,277,303,"Owl Baron",1295,10,.@label$;
- areamonster .@map$,267,267,277,303,"Incubus",1374,10,.@label$;
+ areamonster(.@map$, 267, 267, 277, 303, _("Succubus"), SUCCUBUS, 10, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Dark Illusion"), DARK_ILLUSION, 20, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Owl Duke"), OWL_DUKE, 10, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Owl Baron"), OWL_BARON, 10, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Incubus"), INCUBUS, 10, .@label$);
break;
case 85:
- areamonster .@map$,352,267,362,303,"Ifrit",1832,1,.@label$;
+ areamonster(.@map$, 352, 267, 362, 303, _("Ifrit"), IFRIT, 1, .@label$);
break;
case 86:
- areamonster .@map$,9,180,19,216,"Hydro",1720,10,.@label$;
- areamonster .@map$,9,180,19,216,"Gryphon",1259,10,.@label$;
- areamonster .@map$,9,180,19,216,"Chimera",1283,10,.@label$;
- areamonster .@map$,9,180,19,216,"Majoruros",1310,10,.@label$;
+ areamonster(.@map$, 9, 180, 19, 216, _("Hydro"), HYDRO, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Gryphon"), GRYPHON, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Chimera"), CHIMERA, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Majoruros"), MAJORUROS, 10, .@label$);
break;
case 87:
- areamonster .@map$,93,180,103,216,"Salamander",1831,15,.@label$;
- areamonster .@map$,93,180,103,216,"Kasa",1833,20,.@label$;
- areamonster .@map$,93,180,103,216,"Lava Golem",1366,15,.@label$;
- areamonster .@map$,93,180,103,216,"Gajomart",1309,10,.@label$;
+ areamonster(.@map$, 93, 180, 103, 216, _("Salamander"), SALAMANDER, 15, .@label$);
+ areamonster(.@map$, 93, 180, 103, 216, _("Kasa"), KASA, 20, .@label$);
+ areamonster(.@map$, 93, 180, 103, 216, _("Lava Golem"), LAVA_GOLEM, 15, .@label$);
+ areamonster(.@map$, 93, 180, 103, 216, _("Gajomart"), GAJOMART, 10, .@label$);
break;
case 88:
- areamonster .@map$,181,180,191,216,"Necromancer",1870,15,.@label$;
- areamonster .@map$,181,180,191,216,"Anubis",1098,15,.@label$;
- areamonster .@map$,181,180,191,216,"Wraith Dead",1291,10,.@label$;
- areamonster .@map$,181,180,191,216,"Ancient Mummy",1297,10,.@label$;
- areamonster .@map$,181,180,191,216,"Khalitzburg",1132,10,.@label$;
+ areamonster(.@map$, 181, 180, 191, 216, _("Necromancer"), NECROMANCER, 15, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Anubis"), ANUBIS, 15, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Wraith Dead"), WRAITH_DEAD, 10, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Ancient Mummy"), ANCIENT_MUMMY, 10, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Khalitzburg"), KHALITZBURG, 10, .@label$);
break;
case 89:
- areamonster .@map$,267,180,277,216,"Odium of Thanatos",1704,6,.@label$;
- areamonster .@map$,267,180,277,216,"Despero of Thanatos",1705,6,.@label$;
- areamonster .@map$,267,180,277,216,"Maero of Thanatos",1706,6,.@label$;
- areamonster .@map$,267,180,277,216,"Dolor of Thanatos",1707,6,.@label$;
+ areamonster(.@map$, 267, 180, 277, 216, _("Odium of Thanatos"), THA_ODIUM, 6, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Despero of Thanatos"), THA_DESPERO, 6, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Maero of Thanatos"), THA_MAERO, 6, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Dolor of Thanatos"), THA_DOLOR, 6, .@label$);
break;
case 90:
- areamonster .@map$,352,180,362,216,"Valkyrie Randgris",1751,1,.@label$;
- areamonster .@map$,352,180,362,216,"Baroness of Retribution",1702,10,.@label$;
- areamonster .@map$,352,180,362,216,"Lady Solace",1703,10,.@label$;
- areamonster .@map$,352,180,362,216,"False Angel",1371,10,.@label$;
+ areamonster(.@map$, 352, 180, 362, 216, _("Valkyrie Randgris"), RANDGRIS, 1, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Baroness of Retribution"), RETRIBUTION, 10, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Lady Solace"), SOLACE, 10, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("False Angel"), FAKE_ANGEL, 10, .@label$);
break;
case 91:
- areamonster .@map$,9,96,19,132,"Cecil Damon",1638,10,.@label$;
- areamonster .@map$,9,96,19,132,"Bow Master",1830,10,.@label$;
- areamonster .@map$,9,96,19,132,"Kavac",1656,30,.@label$;
+ areamonster(.@map$, 9, 96, 19, 132, _("Cecil Damon"), SHECIL, 10, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Bow Master"), BOW_GUARDIAN, 10, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Kavac"), KAVAC, 30, .@label$);
break;
case 92:
- areamonster .@map$,93,96,103,132,"Kathryne Keyron",1639,15,.@label$;
- areamonster .@map$,93,96,103,132,"Elder",1377,10,.@label$;
- areamonster .@map$,93,96,103,132,"Laurell Weinder",1657,10,.@label$;
- areamonster .@map$,93,96,103,132,"Wind Ghost",1263,10,.@label$;
- areamonster .@map$,93,96,103,132,"Marduk",1140,10,.@label$;
+ areamonster(.@map$, 93, 96, 103, 132, _("Kathryne Keyron"), KATRINN, 15, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Elder"), ELDER, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Laurell Weinder"), RAWREL, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Wind Ghost"), WIND_GHOST, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Marduk"), MARDUK, 10, .@label$);
break;
case 93:
- areamonster .@map$,181,96,191,132,"Seyren Windsor",1634,15,.@label$;
- areamonster .@map$,181,96,191,132,"Bloody Knight",1268,10,.@label$;
- areamonster .@map$,181,96,191,132,"Abysmal Knight",1219,10,.@label$;
- areamonster .@map$,181,96,191,132,"Wanderer",1208,10,.@label$;
+ areamonster(.@map$, 181, 96, 191, 132, _("Seyren Windsor"), SEYREN, 15, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Bloody Knight"), BLOODY_KNIGHT, 10, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Abysmal Knight"), KNIGHT_OF_ABYSS, 10, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Wanderer"), WANDER_MAN, 10, .@label$);
break;
case 94:
- areamonster .@map$,267,96,277,132,"Sword Master",1829,15,.@label$;
- areamonster .@map$,267,96,277,132,"Bow Master",1830,15,.@label$;
+ areamonster(.@map$, 267, 96, 277, 132, _("Sword Master"), SWORD_GUARDIAN, 15, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Bow Master"), BOW_GUARDIAN, 15, .@label$);
break;
case 95:
- areamonster .@map$,352,96,362,132,"Beelzebub",1873,1,.@label$;
- areamonster .@map$,352,96,362,132,"Hunter Fly",1035,30,.@label$;
- areamonster .@map$,352,96,362,132,"Steel Chonchon",1042,5,.@label$;
- areamonster .@map$,352,96,362,132,"Dragon FLy",1091,5,.@label$;
- areamonster .@map$,352,96,362,132,"Chonchon",1011,5,.@label$;
+ areamonster(.@map$, 352, 96, 362, 132, _("Beelzebub"), BEELZEBUB, 1, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Hunter Fly"), HUNTER_FLY, 30, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Steel Chonchon"), STEEL_CHONCHON, 5, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Dragon FLy"), DRAGON_FLY, 5, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Chonchon"), CHONCHON, 5, .@label$);
break;
case 96:
- areamonster .@map$,9,9,19,45,"Valkyrie",1765,5,.@label$;
- areamonster .@map$,9,9,19,45,"Skeggiold",1755,10,.@label$;
- areamonster .@map$,9,9,19,45,"Skeggiold",1754,10,.@label$;
+ areamonster(.@map$, 9, 9, 19, 45, _("Valkyrie"), G_RANDGRIS, 5, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Skeggiold"), SKEGGIOLD_, 10, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Skeggiold"), SKEGGIOLD, 10, .@label$);
break;
case 97:
- areamonster .@map$,93,9,103,45,"Incarnation of Morroc",1918,5,.@label$;
- areamonster .@map$,93,9,103,45,"Incarnation of Morroc",1919,5,.@label$;
- areamonster .@map$,93,9,103,45,"Incarnation of Morroc",1920,5,.@label$;
- areamonster .@map$,93,9,103,45,"Incarnation of Morroc",1921,5,.@label$;
+ areamonster(.@map$, 93, 9, 103, 45, _("Incarnation of Morroc"), MOROCC_1, 5, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Incarnation of Morroc"), MOROCC_2, 5, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Incarnation of Morroc"), MOROCC_3, 5, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Incarnation of Morroc"), MOROCC_4, 5, .@label$);
break;
case 98:
- areamonster .@map$,181,9,191,45,"Kathryne Keyron",1639,2,.@label$;
- areamonster .@map$,181,9,191,45,"Seyren Windsor",1634,2,.@label$;
- areamonster .@map$,181,9,191,45,"Margaretha Sorin",1637,2,.@label$;
- areamonster .@map$,181,9,191,45,"Eremes Guile",1635,2,.@label$;
- areamonster .@map$,181,9,191,45,"Howard Alt-Eisen",1636,2,.@label$;
- areamonster .@map$,181,9,191,45,"Cecil Damon",1638,2,.@label$;
+ areamonster(.@map$, 181, 9, 191, 45, _("Kathryne Keyron"), KATRINN, 2, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Seyren Windsor"), SEYREN, 2, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Margaretha Sorin"), MAGALETA, 2, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Eremes Guile"), EREMES, 2, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Howard Alt-Eisen"), HARWORD, 2, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Cecil Damon"), SHECIL, 2, .@label$);
break;
case 99:
- for(.@i = 1; .@i<=7; ++.@i) {
- .@mob_ran = rand(1,30);
+ for (.@i = 1; .@i <= 7; ++.@i) {
+ .@mob_ran = rand(1, 30);
if (.@mob_ran == 1)
- areamonster .@map$,267,9,277,45,"Kathryne Keyron",1639,2,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Kathryne Keyron"), KATRINN, 2, .@label$);
else if (.@mob_ran == 2)
- areamonster .@map$,267,9,277,45,"Seyren Windsor",1634,2,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Seyren Windsor"), SEYREN, 2, .@label$);
else if (.@mob_ran == 3)
- areamonster .@map$,267,9,277,45,"Margaretha Sorin",1637,2,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Margaretha Sorin"), MAGALETA, 2, .@label$);
else if (.@mob_ran == 4)
- areamonster .@map$,267,9,277,45,"Eremes Guile",1635,2,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Eremes Guile"), EREMES, 2, .@label$);
else if (.@mob_ran == 5)
- areamonster .@map$,267,9,277,45,"Howard Alt-Eisen",1636,2,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Howard Alt-Eisen"), HARWORD, 2, .@label$);
else if (.@mob_ran == 6)
- areamonster .@map$,267,9,277,45,"Cecil Damon",1638,2,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Cecil Damon"), SHECIL, 2, .@label$);
else if (.@mob_ran == 7)
- areamonster .@map$,267,9,277,45,"Incarnation of Morroc",1918,5,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Incarnation of Morroc"), MOROCC_1, 5, .@label$);
else if (.@mob_ran == 8)
- areamonster .@map$,267,9,277,45,"Incarnation of Morroc",1919,5,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Incarnation of Morroc"), MOROCC_2, 5, .@label$);
else if (.@mob_ran == 9)
- areamonster .@map$,267,9,277,45,"Incarnation of Morroc",1920,5,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Incarnation of Morroc"), MOROCC_3, 5, .@label$);
else if (.@mob_ran == 10)
- areamonster .@map$,267,9,277,45,"Incarnation of Morroc",1921,5,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Incarnation of Morroc"), MOROCC_4, 5, .@label$);
else if (.@mob_ran == 11)
- areamonster .@map$,267,9,277,45,"Valkyrie",1765,5,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Valkyrie"), G_RANDGRIS, 5, .@label$);
else if (.@mob_ran == 12)
- areamonster .@map$,267,9,277,45,"Skeggiold",1755,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Skeggiold"), SKEGGIOLD_, 10, .@label$);
else if (.@mob_ran == 13)
- areamonster .@map$,267,9,277,45,"Skeggiold",1754,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Skeggiold"), SKEGGIOLD, 10, .@label$);
else if (.@mob_ran == 14)
- areamonster .@map$,267,9,277,45,"Seyren Windsor",1634,15,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Seyren Windsor"), SEYREN, 15, .@label$);
else if (.@mob_ran == 15)
- areamonster .@map$,267,9,277,45,"Bloody Knight",1268,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Bloody Knight"), BLOODY_KNIGHT, 10, .@label$);
else if (.@mob_ran == 16)
- areamonster .@map$,267,9,277,45,"Abysmal Knight",1219,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Abysmal Knight"), KNIGHT_OF_ABYSS, 10, .@label$);
else if (.@mob_ran == 17)
- areamonster .@map$,267,9,277,45,"Wanderer",1208,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Wanderer"), WANDER_MAN, 10, .@label$);
else if (.@mob_ran == 18)
- areamonster .@map$,267,9,277,45,"Sword Master",1829,15,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Sword Master"), SWORD_GUARDIAN, 15, .@label$);
else if (.@mob_ran == 19)
- areamonster .@map$,267,9,277,45,"Bow Master",1830,15,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Bow Master"), BOW_GUARDIAN, 15, .@label$);
else if (.@mob_ran == 20)
- areamonster .@map$,267,9,277,45,"Kathryne Keyron",1639,15,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Kathryne Keyron"), KATRINN, 15, .@label$);
else if (.@mob_ran == 21)
- areamonster .@map$,267,9,277,45,"Elder",1377,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Elder"), ELDER, 10, .@label$);
else if (.@mob_ran == 22)
- areamonster .@map$,267,9,277,45,"Laurell Weinder",1657,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Laurell Weinder"), RAWREL, 10, .@label$);
else if (.@mob_ran == 23)
- areamonster .@map$,267,9,277,45,"Wind Ghost",1263,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Wind Ghost"), WIND_GHOST, 10, .@label$);
else if (.@mob_ran == 24)
- areamonster .@map$,267,9,277,45,"Marduk",1140,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Marduk"), MARDUK, 10, .@label$);
else if (.@mob_ran == 25)
- areamonster .@map$,267,9,277,45,"Cecil Damon",1638,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Cecil Damon"), SHECIL, 10, .@label$);
else if (.@mob_ran == 26)
- areamonster .@map$,267,9,277,45,"Bow Master",1830,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Bow Master"), BOW_GUARDIAN, 10, .@label$);
else if (.@mob_ran == 27)
- areamonster .@map$,267,9,277,45,"Kavach Icarus",1656,30,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Kavach Icarus"), KAVAC, 30, .@label$);
else if (.@mob_ran == 28)
- areamonster .@map$,267,9,277,45,"Baroness of Retribution",1702,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Baroness of Retribution"), RETRIBUTION, 10, .@label$);
else if (.@mob_ran == 29)
- areamonster .@map$,267,9,277,45,"Lady Solace",1703,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Lady Solace"), SOLACE, 10, .@label$);
else
- areamonster .@map$,267,9,277,45,"False Angel",1371,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("False Angel"), FAKE_ANGEL, 10, .@label$);
}
break;
}
@@ -1080,139 +1082,60 @@ function script F_Tower_Monster {
function script F_Tower_Warp {
+ setarray(.@x[2], 136, 224, 310, 395, 52, 136, 224, 310, 395, // 2 - 10
+ 52, 136, 224, 310, 395, 52, 136, 224, 310, 395, // 11 - 20
+ 52, 136, 224, 310, 395, 0, 136, 224, 310, 395, // 21 - 30
+ 52, 136, 224, 310, 395, 52, 136, 224, 310, 395, // 31 - 40
+ 52, 136, 224, 310, 395, 52, 136, 224, 310, 395, // 41 - 50
+ 0, 136, 224, 310, 395, 52, 136, 224, 310, 395, // 51 - 60
+ 52, 136, 224, 310, 395, 52, 136, 224, 310, 395, // 61 - 70
+ 52, 136, 224, 310, 395, 0, 136, 224, 310, 395, // 71 - 80
+ 52, 136, 224, 310, 395, 52, 136, 224, 310, 395, // 81 - 90
+ 52, 136, 224, 310, 395, 52, 136, 224, 309); // 91 - 99
+ setarray(.@y[2], 354, 354, 354, 354, 270, 270, 270, 270, 270, // 2 - 10
+ 183, 183, 183, 183, 183, 99, 99, 99, 99, 99, // 11 - 20
+ 12, 12, 12, 12, 12, 0, 354, 354, 354, 354, // 21 - 30
+ 270, 270, 270, 270, 270, 183, 183, 183, 183, 183, // 31 - 40
+ 99, 99, 99, 99, 99, 12, 12, 12, 12, 12, // 41 - 50
+ 0, 354, 354, 354, 354, 270, 270, 270, 270, 270, // 51 - 60
+ 183, 183, 183, 183, 183, 99, 99, 99, 99, 99, // 61 - 70
+ 12, 12, 12, 12, 12, 0, 354, 354, 354, 354, // 71 - 80
+ 270, 270, 270, 270, 270, 183, 183, 183, 183, 183, // 81 - 90
+ 99, 99, 99, 99, 99, 12, 12, 12, 12); // 91 - 99
.@level = getarg(0);
.@map$ = getarg(1);
-
- switch(.@level) {
- case 2: warp .@map$,136,354; break;
- case 3: warp .@map$,224,354; break;
- case 4: warp .@map$,310,354; break;
- case 5: warp .@map$,395,354; break;
- case 6: warp .@map$,52,270; break;
- case 7: warp .@map$,136,270; break;
- case 8: warp .@map$,224,270; break;
- case 9: warp .@map$,310,270; break;
- case 10: warp .@map$,395,270; break;
- case 11: warp .@map$,52,183; break;
- case 12: warp .@map$,136,183; break;
- case 13: warp .@map$,224,183; break;
- case 14: warp .@map$,310,183; break;
- case 15: warp .@map$,395,183; break;
- case 16: warp .@map$,52,99; break;
- case 17: warp .@map$,136,99; break;
- case 18: warp .@map$,224,99; break;
- case 19: warp .@map$,310,99; break;
- case 20: warp .@map$,395,99; break;
- case 21: warp .@map$,52,12; break;
- case 22: warp .@map$,136,12; break;
- case 23: warp .@map$,224,12; break;
- case 24: warp .@map$,310,12; break;
- case 25: warp .@map$,395,12; break;
-
- case 27: warp .@map$,136,354; break;
- case 28: warp .@map$,224,354; break;
- case 29: warp .@map$,310,354; break;
- case 30: warp .@map$,395,354; break;
- case 31: warp .@map$,52,270; break;
- case 32: warp .@map$,136,270; break;
- case 33: warp .@map$,224,270; break;
- case 34: warp .@map$,310,270; break;
- case 35: warp .@map$,395,270; break;
- case 36: warp .@map$,52,183; break;
- case 37: warp .@map$,136,183; break;
- case 38: warp .@map$,224,183; break;
- case 39: warp .@map$,310,183; break;
- case 40: warp .@map$,395,183; break;
- case 41: warp .@map$,52,99; break;
- case 42: warp .@map$,136,99; break;
- case 43: warp .@map$,224,99; break;
- case 44: warp .@map$,310,99; break;
- case 45: warp .@map$,395,99; break;
- case 46: warp .@map$,52,12; break;
- case 47: warp .@map$,136,12; break;
- case 48: warp .@map$,224,12; break;
- case 49: warp .@map$,310,12; break;
- case 50: warp .@map$,395,12; break;
-
- case 52: warp .@map$,136,354; break;
- case 53: warp .@map$,224,354; break;
- case 54: warp .@map$,310,354; break;
- case 55: warp .@map$,395,354; break;
- case 56: warp .@map$,52,270; break;
- case 57: warp .@map$,136,270; break;
- case 58: warp .@map$,224,270; break;
- case 59: warp .@map$,310,270; break;
- case 60: warp .@map$,395,270; break;
- case 61: warp .@map$,52,183; break;
- case 62: warp .@map$,136,183; break;
- case 63: warp .@map$,224,183; break;
- case 64: warp .@map$,310,183; break;
- case 65: warp .@map$,395,183; break;
- case 66: warp .@map$,52,99; break;
- case 67: warp .@map$,136,99; break;
- case 68: warp .@map$,224,99; break;
- case 69: warp .@map$,310,99; break;
- case 70: warp .@map$,395,99; break;
- case 71: warp .@map$,52,12; break;
- case 72: warp .@map$,136,12; break;
- case 73: warp .@map$,224,12; break;
- case 74: warp .@map$,310,12; break;
- case 75: warp .@map$,395,12; break;
-
- case 77: warp .@map$,136,354; break;
- case 78: warp .@map$,224,354; break;
- case 79: warp .@map$,310,354; break;
- case 80: warp .@map$,395,354; break;
- case 81: warp .@map$,52,270; break;
- case 82: warp .@map$,136,270; break;
- case 83: warp .@map$,224,270; break;
- case 84: warp .@map$,310,270; break;
- case 85: warp .@map$,395,270; break;
- case 86: warp .@map$,52,183; break;
- case 87: warp .@map$,136,183; break;
- case 88: warp .@map$,224,183; break;
- case 89: warp .@map$,310,183; break;
- case 90: warp .@map$,395,183; break;
- case 91: warp .@map$,52,99; break;
- case 92: warp .@map$,136,99; break;
- case 93: warp .@map$,224,99; break;
- case 94: warp .@map$,310,99; break;
- case 95: warp .@map$,395,99; break;
- case 96: warp .@map$,52,12; break;
- case 97: warp .@map$,136,12; break;
- case 98: warp .@map$,224,12; break;
- case 99: warp .@map$,309,12; break;
- }
+ if (.@x[.@level] > 0 && .@y[.@level] > 0)
+ warp(.@map$, .@x[.@level], .@y[.@level]);
return;
}
//== Levels 1-25 ===========================================
1@tower,50,360,0 script Immortal Brazier# CLEAR_NPC,{
- mes "- A Message is Engraved on the Brazier -";
- mes "The one who scatters the ashes of the darkness in this place shall become one step closer to Nacht Sieger, the Hegemon King of the Darkness...";
- next;
+ mes("- A Message is Engraved on the Brazier -");
+ mes("The one who scatters the ashes of the darkness in this place shall become one step closer to Nacht Sieger, the Hegemon King of the Darkness...");
+ next();
- setarray .@level$[1],"26th","51st","76th";
- setarray .@map$[1],"2@tower","3@tower","4@tower";
+ setarray(.@level$[1], _("26th"), _("51st"), _("76th"));
+ setarray(.@map$[1], "2@tower", "3@tower", "4@tower");
.@i = select("26th Level", "51st Level", "76th Level");
if (countitem(Dark_Ashes) < .@i) {
- mes "-Warning-";
- mes "To warp to the "+.@level$[.@i]+" Level, you need "+.@i+" Ashes of the Darkness.";
- close;
+ mes("-Warning-");
+ mesf("To warp to the %s Level, you need %d Ashes of the Darkness.", .@level$[.@i], .@i);
+ close();
}
- delitem Dark_Ashes,.@i;
- mapannounce instance_mapname("1@tower"), strcharinfo(PC_NAME)+". You will be warped to the "+.@level$[.@i]+" Level.",bc_map,"0x00ff99";
- warp instance_mapname(.@map$[.@i]),52,354;
- close;
+ delitem(Dark_Ashes, .@i);
+ mapannounce(instance_mapname("1@tower"), sprintf(_$("%s. You will be warped to the %s Level."), strcharinfo(PC_NAME), .@level$[.@i]), bc_map, C_SPRINGGREEN);
+ warp(instance_mapname(.@map$[.@i]), 52, 354);
+ close();
OnInstanceInit:
- initnpctimer;
+ initnpctimer();
end;
OnTimer10000:
- mapannounce instance_mapname("1@tower"), "Notice : Taming a monster does not count towards defeating them.",bc_map,"0xff0000";
- stopnpctimer;
+ mapannounce(instance_mapname("1@tower"), _("Notice : Taming a monster does not count towards defeating them."), bc_map, C_RED);
+ stopnpctimer();
end;
}
@@ -1220,26 +1143,24 @@ OnTimer10000:
end;
OnInstanceInit:
- callfunc "F_Tower_Monster",
- 1,
- instance_mapname("1@tower"),
- instance_npcname("#1F Controller")+"::OnMyMobDead";
+ callfunc("F_Tower_Monster", 1, instance_mapname("1@tower"), instance_npcname("#1F Controller")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#1F Controller")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#1F Controller")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- initnpctimer;
+ initnpctimer();
//SetItemPartyInMap in_102floor 1
- } else
- mapannounce .@map$, "Remaining Monsters on the 1st Level - "+.@mob_dead_num,bc_map,"0x00ff99";
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Monsters on the 1st Level - %d"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
+ }
end;
OnTimer5000:
- mapannounce instance_mapname("1@tower"), "All Monsters on the 1st Level have been defeated.",bc_map,"0xffff00";
- donpcevent instance_npcname("1FGate102tower")+"::OnEnable";
- stopnpctimer;
+ mapannounce(instance_mapname("1@tower"), _("All Monsters on the 1st Level have been defeated."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("1FGate102tower")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1247,49 +1168,50 @@ OnTimer5000:
end;
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
- callfunc "F_Tower_Monster",
- atoi(replacestr(strnpcinfo(NPC_NAME),"FGate102tower","")) + 1,
- strnpcinfo(NPC_MAP),
- instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead";
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
+ callfunc("F_Tower_Monster", atoi(replacestr(strnpcinfo(NPC_NAME), "FGate102tower", "")) + 1, strnpcinfo(NPC_MAP), instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
end;
OnTouch_:
- callfunc "F_Tower_Warp",
- atoi(replacestr(strnpcinfo(NPC_NAME),"FGate102tower","")) + 1,
- strnpcinfo(NPC_MAP);
+ callfunc("F_Tower_Warp", atoi(replacestr(strnpcinfo(NPC_NAME), "FGate102tower", "")) + 1, strnpcinfo(NPC_MAP));
end;
OnMyMobDead:
.@map$ = strnpcinfo(NPC_MAP);
- .@level = atoi(replacestr(strnpcinfo(NPC_NAME),"FGate102tower","")) + 1;
- .@mob_dead_num = mobcount(.@map$,instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
+ .@level = atoi(replacestr(strnpcinfo(NPC_NAME), "FGate102tower", "")) + 1;
+ .@mob_dead_num = mobcount(.@map$, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- initnpctimer;
+ initnpctimer();
//SetItemPartyInMap in_102floor .@level
} else
- mapannounce .@map$, "Remaining Monsters on the "+callsub(L_Display,.@level)+" Level - "+.@mob_dead_num,bc_map,"0x00ff99";
+ mapannounce(.@map$, sprintf(_$("Remaining Monsters on the %s Level - %d"), callsub(L_Display, .@level), .@mob_dead_num), bc_map, C_SPRINGGREEN);
end;
OnTimer5000:
- .@level = atoi(replacestr(strnpcinfo(NPC_NAME),"FGate102tower","")) + 1;
- mapannounce strnpcinfo(NPC_MAP), "All Monsters on the "+callsub(L_Display,.@level)+" Level have been defeated.",bc_map,"0xffff00";
- donpcevent instance_npcname(.@level+"FGate102tower")+"::OnEnable";
- stopnpctimer;
+ .@level = atoi(replacestr(strnpcinfo(NPC_NAME), "FGate102tower", "")) + 1;
+ mapannounce(strnpcinfo(NPC_MAP), sprintf(_$("All Monsters on the %s Level have been defeated."), callsub(L_Display, .@level)), bc_map, C_YELLOW);
+ donpcevent(instance_npcname(.@level+"FGate102tower")+"::OnEnable");
+ stopnpctimer();
end;
L_Display:
// Display level properly.
.@mod = getarg(0) % 10;
- if (.@mod == 1 && getarg(0) != 11) return getarg(0)+"st";
- else if (.@mod == 2 && getarg(0) != 12) return getarg(0)+"nd";
- else if (.@mod == 3 && getarg(0) != 13) return getarg(0)+"rd";
- else return getarg(0)+"th";
+ if (.@mod == 1 && getarg(0) != 11)
+ return sprintf(_$("%dst"), getarg(0));
+ else if (.@mod == 2 && getarg(0) != 12)
+ return sprintf(_$("%dnd"), getarg(0));
+ else if (.@mod == 3 && getarg(0) != 13)
+ return sprintf(_$("%drd"), getarg(0));
+ else
+ return sprintf(_$("%dth"), getarg(0));
+ end;
}
+
1@tower,96,393,0 duplicate(1FGate102tower) 2FGate102tower WARPNPC,2,2
1@tower,184,393,0 duplicate(1FGate102tower) 3FGate102tower WARPNPC,2,2
1@tower,270,393,0 duplicate(1FGate102tower) 4FGate102tower WARPNPC,2,2
@@ -1318,23 +1240,23 @@ L_Display:
end;
OnInstanceInit:
- disablenpc instance_npcname("25FGate102tower");
+ disablenpc(instance_npcname("25FGate102tower"));
end;
OnEnable:
- enablenpc instance_npcname("25FGate102tower");
- initnpctimer;
+ enablenpc(instance_npcname("25FGate102tower"));
+ initnpctimer();
end;
OnTouch_:
- getitem Dark_Ashes,1;
- warp instance_mapname("2@tower"),52,354;
+ getitem(Dark_Ashes, 1);
+ warp(instance_mapname("2@tower"), 52, 354);
end;
OnTimer120000:
- disablenpc instance_npcname("25FGate102tower");
- donpcevent instance_npcname("25FGate102tower-2")+"::OnEnable";
- stopnpctimer;
+ disablenpc(instance_npcname("25FGate102tower"));
+ donpcevent(instance_npcname("25FGate102tower-2")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1342,15 +1264,15 @@ OnTimer120000:
end;
OnInstanceInit:
- disablenpc instance_npcname("25FGate102tower-2");
+ disablenpc(instance_npcname("25FGate102tower-2"));
end;
OnEnable:
- enablenpc instance_npcname("25FGate102tower-2");
+ enablenpc(instance_npcname("25FGate102tower-2"));
end;
OnTouch_:
- warp instance_mapname("2@tower"),52,354;
+ warp(instance_mapname("2@tower"), 52, 354);
end;
}
@@ -1358,38 +1280,38 @@ OnTouch_:
end;
OnInstanceInit:
- initnpctimer;
+ initnpctimer();
end;
OnTimer15000:
OnTimer60000:
- mapannounce instance_mapname("1@tower"), "Notice : In any abnormal situation where you defeat a monster, you can't advance to the next level!",bc_map,"0xff0000";
+ mapannounce(instance_mapname("1@tower"), _("Notice : In any abnormal situation where you defeat a monster, you can't advance to the next level!"), bc_map, C_RED);
end;
OnTimer120000:
- mapannounce instance_mapname("1@tower"), "Notice : In any abnormal situation where you defeat a monster, you can't advance to the next level!",bc_map,"0xff0000";
- stopnpctimer;
+ mapannounce(instance_mapname("1@tower"), _("Notice : In any abnormal situation where you defeat a monster, you can't advance to the next level!"), bc_map, C_RED);
+ stopnpctimer();
end;
}
1@tower,71,1,0 script #Manager Mode1 CLEAR_NPC,{
- callfunc "F_GM_NPC";
- mes "Please enter the password.";
- .@i = callfunc("F_GM_NPC","dmc2008",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("Please enter the password.");
+ .@i = callfunc("F_GM_NPC", "dmc2008", 1);
+ next();
if (.@i == 1) {
- mes "This NPC manages the tower from the 1st to the 25th Level.";
- mes "Please enter the Level number to open.";
- mes "(i.g.: 1F->1, 25F->25)";
- input .@input,1,25;
- next;
- if (.@input < 1 || .@input > 25)
- mes "You can only enter a number from 1 to 25.";
- else {
- donpcevent instance_npcname(.@input+"FGate102tower")+"::OnEnable";
- mes "*** Level "+ .@input + " is now being opened. ***";
+ mes("This NPC manages the tower from the 1st to the 25th Level.");
+ mes("Please enter the Level number to open.");
+ mes("(i.g.: 1F->1, 25F->25)");
+ input(.@input, 1, 25);
+ next();
+ if (.@input < 1 || .@input > 25) {
+ mes("You can only enter a number from 1 to 25.");
+ } else {
+ donpcevent(instance_npcname(.@input+"FGate102tower")+"::OnEnable");
+ mesf("*** Level %d is now being opened. ***", .@input);
}
}
- close;
+ close();
}
//== Levels 26-50 ==========================================
@@ -1397,27 +1319,24 @@ OnTimer120000:
end;
OnInstanceInit:
- callfunc "F_Tower_Monster",
- 26,
- instance_mapname("2@tower"),
- instance_npcname("Immortal Furnace#1")+"::OnMyMobDead";
+ callfunc("F_Tower_Monster", 26, instance_mapname("2@tower"), instance_npcname("Immortal Furnace#1")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("2@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("Immortal Furnace#1")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("Immortal Furnace#1")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- initnpctimer;
+ initnpctimer();
//SetItemPartyInMap in_102floor 26
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Monsters on the 26th Level - %d"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
}
- else
- mapannounce .@map$, "Remaining Monsters on the 26th Level - " + .@mob_dead_num,bc_map,"0x00ff99";
end;
OnTimer5000:
- mapannounce instance_mapname("2@tower"), "All Monsters on the 26th Level have been defeated.",bc_map,"0xffff00";
- donpcevent instance_npcname("26FGate102tower")+"::OnEnable";
- stopnpctimer;
+ mapannounce(instance_mapname("2@tower"), _("All Monsters on the 26th Level have been defeated."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("26FGate102tower")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1450,23 +1369,23 @@ OnTimer5000:
end;
OnInstanceInit:
- disablenpc instance_npcname("50FGate102tower");
+ disablenpc(instance_npcname("50FGate102tower"));
end;
OnEnable:
- enablenpc instance_npcname("50FGate102tower");
- initnpctimer;
+ enablenpc(instance_npcname("50FGate102tower"));
+ initnpctimer();
end;
OnTouch_:
- getitem Dark_Ashes,1;
- warp instance_mapname("3@tower"),52,354;
+ getitem(Dark_Ashes, 1);
+ warp(instance_mapname("3@tower"), 52, 354);
end;
OnTimer120000:
- disablenpc instance_npcname("50FGate102tower");
- donpcevent instance_npcname("50FGate102tower-2")+"::OnEnable";
- stopnpctimer;
+ disablenpc(instance_npcname("50FGate102tower"));
+ donpcevent(instance_npcname("50FGate102tower-2")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1474,37 +1393,37 @@ OnTimer120000:
end;
OnInstanceInit:
- disablenpc instance_npcname("50FGate102tower-2");
+ disablenpc(instance_npcname("50FGate102tower-2"));
end;
OnEnable:
- enablenpc instance_npcname("50FGate102tower-2");
+ enablenpc(instance_npcname("50FGate102tower-2"));
end;
OnTouch_:
- warp instance_mapname("3@tower"),52,354;
+ warp(instance_mapname("3@tower"), 52, 354);
end;
}
2@tower,71,1,0 script #Manager Mode2 CLEAR_NPC,{
- callfunc "F_GM_NPC";
- mes "Please enter the password.";
- .@i = callfunc("F_GM_NPC","dmc2008",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("Please enter the password.");
+ .@i = callfunc("F_GM_NPC", "dmc2008", 1);
+ next();
if (.@i == 1) {
- mes "This NPC manages the tower from the 26st to the 50th Level.";
- mes "Please enter the Level number to open.";
- mes "(i.g.: 26F->26, 50F->50)";
- input .@input,26,50;
- next;
- if (.@onput < 26 || .@input > 50)
- mes "You can only enter a number from 26 to 50.";
- else {
- donpcevent instance_npcname(.@input+"FGate102tower")+"::OnEnable";
- mes "*** Level "+ .@input + " is now being opened. ***";
+ mes("This NPC manages the tower from the 26st to the 50th Level.");
+ mes("Please enter the Level number to open.");
+ mes("(i.g.: 26F->26, 50F->50)");
+ input(.@input, 26, 50);
+ next();
+ if (.@onput < 26 || .@input > 50) {
+ mes("You can only enter a number from 26 to 50.");
+ } else {
+ donpcevent(instance_npcname(.@input+"FGate102tower")+"::OnEnable");
+ mesf("*** Level %d is now being opened. ***", .@input);
}
}
- close;
+ close();
}
//== Levels 51-75 ==========================================
@@ -1512,27 +1431,24 @@ OnTouch_:
end;
OnInstanceInit:
- callfunc "F_Tower_Monster",
- 51,
- instance_mapname("3@tower"),
- instance_npcname("Immortal Furnace#2")+"::OnMyMobDead";
+ callfunc("F_Tower_Monster", 51, instance_mapname("3@tower"), instance_npcname("Immortal Furnace#2")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("3@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("Immortal Furnace#2")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("Immortal Furnace#2")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- initnpctimer;
+ initnpctimer();
//SetItemPartyInMap in_102floor 51
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Monsters on the 51st Level - %d"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
}
- else
- mapannounce .@map$, "Remaining Monsters on the 51st Level - " + .@mob_dead_num,bc_map,"0x00ff99";
end;
OnTimer5000:
- mapannounce instance_mapname("3@tower"), "All Monsters on the 51st Level have been defeated.",bc_map,"0xffff00";
- donpcevent instance_npcname("51FGate102tower")+"::OnEnable";
- stopnpctimer;
+ mapannounce(instance_mapname("3@tower"), _("All Monsters on the 51st Level have been defeated."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("51FGate102tower")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1565,23 +1481,23 @@ OnTimer5000:
end;
OnInstanceInit:
- disablenpc instance_npcname("75FGate102tower");
+ disablenpc(instance_npcname("75FGate102tower"));
end;
OnEnable:
- enablenpc instance_npcname("75FGate102tower");
- initnpctimer;
+ enablenpc(instance_npcname("75FGate102tower"));
+ initnpctimer();
end;
OnTouch_:
- getitem Dark_Ashes,1;
- warp instance_mapname("4@tower"),52,354;
+ getitem(Dark_Ashes, 1);
+ warp(instance_mapname("4@tower"), 52, 354);
end;
OnTimer120000:
- disablenpc instance_npcname("75FGate102tower");
- donpcevent instance_npcname("75FGate102tower-2")+"::OnEnable";
- stopnpctimer;
+ disablenpc(instance_npcname("75FGate102tower"));
+ donpcevent(instance_npcname("75FGate102tower-2")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1589,37 +1505,37 @@ OnTimer120000:
end;
OnInstanceInit:
- disablenpc instance_npcname("75FGate102tower-2");
+ disablenpc(instance_npcname("75FGate102tower-2"));
end;
OnEnable:
- enablenpc instance_npcname("75FGate102tower-2");
+ enablenpc(instance_npcname("75FGate102tower-2"));
end;
OnTouch_:
- warp instance_mapname("4@tower"),52,354;
+ warp(instance_mapname("4@tower"), 52, 354);
end;
}
3@tower,71,1,0 script #Manager Mode3 CLEAR_NPC,{
- callfunc "F_GM_NPC";
- mes "Please enter the password.";
- .@i = callfunc("F_GM_NPC","dmc2008",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("Please enter the password.");
+ .@i = callfunc("F_GM_NPC", "dmc2008", 1);
+ next();
if (.@i == 1) {
- mes "This NPC manages the tower from the 51st to the 75th Level.";
- mes "Please enter the Level number to open.";
- mes "(i.g.: 51F->51, 75F->75)";
- input .@input,51,75;
- next;
- if (.@input < 51 || .@input > 75)
- mes "You can only enter a number from 51 to 75.";
- else {
- donpcevent instance_npcname(.@input+"FGate102tower")+"::OnEnable";
- mes "*** Level "+ .@input + " is now being opened. ***";
+ mes("This NPC manages the tower from the 51st to the 75th Level.");
+ mes("Please enter the Level number to open.");
+ mes("(i.g.: 51F->51, 75F->75)");
+ input(.@input, 51, 75);
+ next();
+ if (.@input < 51 || .@input > 75) {
+ mes("You can only enter a number from 51 to 75.");
+ } else {
+ donpcevent(instance_npcname(.@input+"FGate102tower")+"::OnEnable");
+ mesf("*** Level %d is now being opened. ***", .@input);
}
}
- close;
+ close();
}
//== Levels 76-99 ==========================================
@@ -1627,27 +1543,24 @@ OnTouch_:
end;
OnInstanceInit:
- callfunc "F_Tower_Monster",
- 76,
- instance_mapname("4@tower"),
- instance_npcname("Immortal Furnace#3")+"::OnMyMobDead";
+ callfunc("F_Tower_Monster", 76, instance_mapname("4@tower"), instance_npcname("Immortal Furnace#3")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("4@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("Immortal Furnace#3")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("Immortal Furnace#3")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- initnpctimer;
+ initnpctimer();
//SetItemPartyInMap in_102floor 76
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Monsters on the 76th Level - %d"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
}
- else
- mapannounce .@map$,"Remaining Monsters on the 76th Level - " + .@mob_dead_num,bc_map,"0x00ff99";
end;
OnTimer5000:
- mapannounce instance_mapname("4@tower"),"All Monsters on the 76th Level have been defeated.",bc_map,"0xffff00";
- donpcevent instance_npcname("76FGate102tower")+"::OnEnable";
- stopnpctimer;
+ mapannounce(instance_mapname("4@tower"), _("All Monsters on the 76th Level have been defeated."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("76FGate102tower")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1679,23 +1592,23 @@ OnTimer5000:
end;
OnInstanceInit:
- disablenpc instance_npcname("99FGate102tower");
+ disablenpc(instance_npcname("99FGate102tower"));
end;
OnEnable:
- enablenpc instance_npcname("99FGate102tower");
- initnpctimer;
+ enablenpc(instance_npcname("99FGate102tower"));
+ initnpctimer();
end;
OnTouch_:
- getitem Dark_Ashes,1;
- warp instance_mapname("5@tower"),101,72;
+ getitem(Dark_Ashes, 1);
+ warp(instance_mapname("5@tower"), 101, 72);
end;
OnTimer120000:
- disablenpc instance_npcname("99FGate102tower");
- donpcevent instance_npcname("99FGate102tower-2")+"::OnEnable";
- stopnpctimer;
+ disablenpc(instance_npcname("99FGate102tower"));
+ donpcevent(instance_npcname("99FGate102tower-2")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1703,89 +1616,88 @@ OnTimer120000:
end;
OnInstanceInit:
- disablenpc instance_npcname("99FGate102tower-2");
+ disablenpc(instance_npcname("99FGate102tower-2"));
end;
OnEnable:
- enablenpc instance_npcname("99FGate102tower-2");
+ enablenpc(instance_npcname("99FGate102tower-2"));
end;
OnTouch_:
- warp instance_mapname("5@tower"),101,72;
+ warp(instance_mapname("5@tower"), 101, 72);
end;
}
4@tower,71,1,0 script #Manager Mode4 CLEAR_NPC,{
- callfunc "F_GM_NPC";
- mes "Please enter the password.";
- .@i = callfunc("F_GM_NPC","dmc2008",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("Please enter the password.");
+ .@i = callfunc("F_GM_NPC", "dmc2008", 1);
+ next();
if (.@i == 1) {
- mes "This NPC manages the tower from the 76th to the 99th Level.";
- mes "Please enter the Level number to open.";
- mes "(i.g.: 76F->76, 99F->99)";
- input .@input,76,99;
- next;
- if (.@input < 76 || .@input > 99)
- mes "You can only enter a number from 76 to 99.";
- else {
- donpcevent instance_npcname(.@input+"FGate102tower")+"::OnEnable";
- mes "*** Level "+ .@input + " is now being opened. ***";
+ mes("This NPC manages the tower from the 76th to the 99th Level.");
+ mes("Please enter the Level number to open.");
+ mes("(i.g.: 76F->76, 99F->99)");
+ input(.@input, 76, 99);
+ next();
+ if (.@input < 76 || .@input > 99) {
+ mes("You can only enter a number from 76 to 99.");
+ } else {
+ donpcevent(instance_npcname(.@input+"FGate102tower")+"::OnEnable");
+ mesf("*** Level %d is now being opened. ***", .@input);
}
}
- close;
+ close();
}
//== Level 100 =============================================
5@tower,106,109,2 script Lucid Crystal#102 CLEAR_NPC,{
if (in_102tower < 10) {
- mes "^0000ffA mysterious voice echoes through the room as you touch the lucid crystal radiating a strong light.^000000";
- next;
- mes "[Mysterious Voice]";
- mes "Welcome to my place, intruders. I've had fun watching you endure all the difficulties I've set before you.";
- next;
- mes "[Mysterious Voice]";
- mes "Unfortunately, the time has come to end the show.";
- next;
- mes "[Mysterious Voice]";
- mes "It's still too early to celebrate your victory against my right-hand man Knothen because he isn't completely destroyed!";
- next;
- mes "[Mysterious Voice]";
- mes "I shall resurrect him for your next show. Defeat him again, and then I'll gladly accept your challenge.";
- next;
- mes "[Mysterious Voice]";
- mes "Good-bye for now.";
- mes "Once again, I had such a great time, humans. I look forward to seeing you again.";
- next;
- mes "^0000ffAs soon as the voice stopped talking, an irresistible force lifted and moved you somewhere else.";
- close2;
+ mes("^0000ffA mysterious voice echoes through the room as you touch the lucid crystal radiating a strong light.^000000");
+ next();
+ mes("[Mysterious Voice]");
+ mes("Welcome to my place, intruders. I've had fun watching you endure all the difficulties I've set before you.");
+ next();
+ mes("[Mysterious Voice]");
+ mes("Unfortunately, the time has come to end the show.");
+ next();
+ mes("[Mysterious Voice]");
+ mes("It's still too early to celebrate your victory against my right-hand man Knothen because he isn't completely destroyed!");
+ next();
+ mes("[Mysterious Voice]");
+ mes("I shall resurrect him for your next show. Defeat him again, and then I'll gladly accept your challenge.");
+ next();
+ mes("[Mysterious Voice]");
+ mes("Good-bye for now.");
+ mes("Once again, I had such a great time, humans. I look forward to seeing you again.");
+ next();
+ mes("^0000ffAs soon as the voice stopped talking, an irresistible force lifted and moved you somewhere else.");
+ close2();
in_102tower = 10;
- warp "alberta",223,36;
- }
- else {
- mes "^0000ffThe radiating crystal piece seems to beckon you, just like last time.^000000";
- next;
- mes "[Mysterious Voice]";
- mes "I must have underestimated you... I didn't expect to see you again.";
- next;
- mes "[Mysterious Voice]";
- mes "I can smell your sweat, hear the gasps of your exhaustion in combat. Ah~ The human desire for victory always excites me.";
- next;
- mes "[Mysterious Voice]";
- mes "I now allow you to come receive an audience from me. Come to me, to Nacht Sieger the Hegemon-King of the Darkness!";
- close2;
- warp instance_mapname("6@tower"),32,12;
+ warp("alberta", 223, 36);
+ } else {
+ mes("^0000ffThe radiating crystal piece seems to beckon you, just like last time.^000000");
+ next();
+ mes("[Mysterious Voice]");
+ mes("I must have underestimated you... I didn't expect to see you again.");
+ next();
+ mes("[Mysterious Voice]");
+ mes("I can smell your sweat, hear the gasps of your exhaustion in combat. Ah~ The human desire for victory always excites me.");
+ next();
+ mes("[Mysterious Voice]");
+ mes("I now allow you to come receive an audience from me. Come to me, to Nacht Sieger the Hegemon-King of the Darkness!");
+ close2();
+ warp(instance_mapname("6@tower"), 32, 12);
}
end;
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Lucid Crystal#102");
+ disablenpc(instance_npcname("Lucid Crystal#102"));
end;
OnEnable:
- enablenpc instance_npcname("Lucid Crystal#102");
- donpcevent instance_npcname("#102Effect1")+"::OnEnable";
+ enablenpc(instance_npcname("Lucid Crystal#102"));
+ donpcevent(instance_npcname("#102Effect1")+"::OnEnable");
end;
}
@@ -1793,22 +1705,22 @@ OnEnable:
end;
OnInstanceInit:
- disablenpc instance_npcname("#102Effect1");
+ disablenpc(instance_npcname("#102Effect1"));
end;
OnDisable:
- disablenpc instance_npcname("#102Effect1");
+ disablenpc(instance_npcname("#102Effect1"));
end;
OnEnable:
- enablenpc instance_npcname("#102Effect1");
- initnpctimer;
+ enablenpc(instance_npcname("#102Effect1"));
+ initnpctimer();
end;
OnTimer500:
- specialeffect EF_ENHANCE;
- stopnpctimer;
- donpcevent instance_npcname("#102Effect2")+"::OnEnable";
+ specialeffect(EF_ENHANCE);
+ stopnpctimer();
+ donpcevent(instance_npcname("#102Effect2")+"::OnEnable");
end;
}
@@ -1816,22 +1728,22 @@ OnTimer500:
end;
OnInstanceInit:
- disablenpc instance_npcname("#102Effect2");
+ disablenpc(instance_npcname("#102Effect2"));
end;
OnDisable:
- disablenpc instance_npcname("#102Effect2");
+ disablenpc(instance_npcname("#102Effect2"));
end;
OnEnable:
- enablenpc instance_npcname("#102Effect2");
- initnpctimer;
+ enablenpc(instance_npcname("#102Effect2"));
+ initnpctimer();
end;
OnTimer500:
- specialeffect EF_ENHANCE;
- stopnpctimer;
- donpcevent instance_npcname("#102Effect1")+"::OnEnable";
+ specialeffect(EF_ENHANCE);
+ stopnpctimer();
+ donpcevent(instance_npcname("#102Effect1")+"::OnEnable");
end;
}
@@ -1839,17 +1751,17 @@ OnTimer500:
end;
OnInstanceInit:
- donpcevent instance_npcname("#102FShadowDust")+"::OnEnable";
- monster instance_mapname("5@tower"),83,85,"Entweihen Crothen",1957,1,instance_npcname("#102FShadowDust1")+"::OnMyMobDead";
+ donpcevent(instance_npcname("#102FShadowDust")+"::OnEnable");
+ monster(instance_mapname("5@tower"), 83, 85, _("Entweihen Crothen"), ENTWEIHEN, 1, instance_npcname("#102FShadowDust1")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("5@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#102FShadowDust1")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#102FShadowDust1")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- mapannounce .@map$, "Mysterious Voice: Who are you to dare intrude upon my sanctuary?!",bc_map,"0xffff00";
- donpcevent instance_npcname("#102FShadowDust")+"::OnDisable";
- donpcevent instance_npcname("Lucid Crystal#102")+"::OnEnable";
+ mapannounce(.@map$, _("Mysterious Voice: Who are you to dare intrude upon my sanctuary?!"), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("#102FShadowDust")+"::OnDisable");
+ donpcevent(instance_npcname("Lucid Crystal#102")+"::OnEnable");
//SetItemPartyInMap in_102floor 100
}
end;
@@ -1859,74 +1771,86 @@ OnMyMobDead:
end;
OnInstanceInit:
- disablenpc instance_npcname("#102FShadowDust");
+ disablenpc(instance_npcname("#102FShadowDust"));
end;
OnDisable:
- killmonsterall instance_mapname("5@tower");
+ killmonsterall(instance_mapname("5@tower"));
end;
OnEnable:
.@map$ = instance_mapname("5@tower");
- monster .@map$,72,93,"Thorny Skeleton",1958,1;
- monster .@map$,70,87,"Thorn of Magic",1960,1;
- monster .@map$,68,83,"Thorn of Pureness",1961,1;
- monster .@map$,70,80,"Thorny Skeleton",1958,1;
- monster .@map$,74,81,"Thorn of Magic",1960,1;
- monster .@map$,78,72,"Thorn of Magic",1960,1;
- monster .@map$,81,70,"Thorny Skeleton",1958,1;
- monster .@map$,78,84,"Thorn of Recovery",1959,1;
- monster .@map$,85,72,"Thorn of Magic",1960,1;
- monster .@map$,91,74,"Thorny Skeleton",1958,1;
- monster .@map$,79,77,"Thorn of Pureness",1961,1;
- monster .@map$,82,80,"Thorn of Recovery",1959,1;
- monster .@map$,87,83,"Thorn of Recovery",1959,1;
- monster .@map$,80,92,"Thorn of Pureness",1961,1;
- monster .@map$,81,89,"Thorny Skeleton",1958,1;
- monster .@map$,85,93,"Thorn of Magic",1960,1;
- monster .@map$,86,90,"Thorn of Recovery",1959,1;
- monster .@map$,88,88,"Thorny Skeleton",1958,1;
- monster .@map$,91,87,"Thorn of Magic",1960,1;
- monster .@map$,95,94,"Thorn of Magic",1960,1;
- monster .@map$,91,96,"Thorny Skeleton",1958,1;
- monster .@map$,90,82,"Thorn of Pureness",1961,1;
- monster .@map$,96,98,"Thorn of Magic",1960,1;
- monster .@map$,83,76,"Thorny Skeleton",1958,1;
- monster .@map$,74,85,"Thorny Skeleton",1958,1;
- switch(rand(1,3)) {
- case 1: monster .@map$,82,85,"Thorny Skeleton",1958,1; break;
- case 2: monster .@map$,82,85,"Thorn of Magic",1960,1; break;
- case 3: monster .@map$,82,85,"Thorn of Pureness",1961,1; break;
+ monster(.@map$, 72, 93, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 70, 87, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 68, 83, _("Thorn of Pureness"), G_ENTWEIHEN_S, 1);
+ monster(.@map$, 70, 80, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 74, 81, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 78, 72, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 81, 70, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 78, 84, _("Thorn of Recovery"), G_ENTWEIHEN_H, 1);
+ monster(.@map$, 85, 72, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 91, 74, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 79, 77, _("Thorn of Pureness"), G_ENTWEIHEN_S, 1);
+ monster(.@map$, 82, 80, _("Thorn of Recovery"), G_ENTWEIHEN_H, 1);
+ monster(.@map$, 87, 83, _("Thorn of Recovery"), G_ENTWEIHEN_H, 1);
+ monster(.@map$, 80, 92, _("Thorn of Pureness"), G_ENTWEIHEN_S, 1);
+ monster(.@map$, 81, 89, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 85, 93, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 86, 90, _("Thorn of Recovery"), G_ENTWEIHEN_H, 1);
+ monster(.@map$, 88, 88, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 91, 87, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 95, 94, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 91, 96, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 90, 82, _("Thorn of Pureness"), G_ENTWEIHEN_S, 1);
+ monster(.@map$, 96, 98, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 83, 76, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 74, 85, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ switch (rand(1, 3)) {
+ case 1:
+ monster(.@map$, 82, 85, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ break;
+ case 2:
+ monster(.@map$, 82, 85, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ break;
+ case 3:
+ monster(.@map$, 82, 85, _("Thorn of Pureness"), G_ENTWEIHEN_S, 1);
+ break;
}
- switch(rand(1,3)) {
- case 1: monster .@map$,84,85,"Thorny Skeleton",1958,1; break;
- case 2: monster .@map$,84,85,"Thorn of Magic",1960,1; break;
- case 3: monster .@map$,84,85,"Thorn of Pureness",1961,1; break;
+ switch (rand(1, 3)) {
+ case 1:
+ monster(.@map$, 84, 85, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ break;
+ case 2:
+ monster(.@map$, 84, 85, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ break;
+ case 3:
+ monster(.@map$, 84, 85, _("Thorn of Pureness"), G_ENTWEIHEN_S, 1);
+ break;
}
end;
}
5@tower,71,1,0 script #Manager Mode5 CLEAR_NPC,{
- callfunc "F_GM_NPC";
- mes "This NPC manages the crystal on the 100th Level. Please enter the password.";
- .@i = callfunc("F_GM_NPC","dmc2008",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("This NPC manages the crystal on the 100th Level. Please enter the password.");
+ .@i = callfunc("F_GM_NPC", "dmc2008", 1);
+ next();
if (.@i == 1) {
- donpcevent instance_npcname("Lucid Crystal#102")+"::OnEnable";
- mes "The 100th Level's crystal has been activated.";
+ donpcevent(instance_npcname("Lucid Crystal#102")+"::OnEnable");
+ mes("The 100th Level's crystal has been activated.");
} else
- mes "Please enter the correct password.";
- close;
+ mes("Please enter the correct password.");
+ close();
}
//== Level 101 =============================================
6@tower,45,89,2 script Life Spring#1 CLEAR_NPC,{
- mes "^0066ffYou took a sip of the spring's clear water, and you feel invigorated.^000000";
- heal (MaxHp-Hp),(MaxSp-Sp);
- close;
+ mes("^0066ffYou took a sip of the spring's clear water, and you feel invigorated.^000000");
+ heal((MaxHp - Hp), (MaxSp - Sp));
+ close();
OnInstanceInit:
- donpcevent instance_npcname("Life Spring#2")+"::OnEnable";
+ donpcevent(instance_npcname("Life Spring#2")+"::OnEnable");
end;
}
@@ -1934,13 +1858,13 @@ OnInstanceInit:
end;
OnEnable:
- specialeffect EF_BUBBLE;
- initnpctimer;
+ specialeffect(EF_BUBBLE);
+ initnpctimer();
end;
OnTimer2000:
- stopnpctimer;
- donpcevent instance_npcname("Life Spring#3")+"::OnEnable";
+ stopnpctimer();
+ donpcevent(instance_npcname("Life Spring#3")+"::OnEnable");
end;
}
@@ -1948,13 +1872,13 @@ OnTimer2000:
end;
OnEnable:
- specialeffect EF_BUBBLE;
- initnpctimer;
+ specialeffect(EF_BUBBLE);
+ initnpctimer();
end;
OnTimer2000:
- stopnpctimer;
- donpcevent instance_npcname("Life Spring#2")+"::OnEnable";
+ stopnpctimer();
+ donpcevent(instance_npcname("Life Spring#2")+"::OnEnable");
end;
}
@@ -1964,14 +1888,14 @@ OnTimer2000:
end;
OnInstanceInit:
- areamonster instance_mapname("6@tower"),154,73,156,75,"Watcher's Son",1627,10,instance_npcname("Tyrant's Throne#")+"::OnMyMobDead";
+ areamonster(instance_mapname("6@tower"), 154, 73, 156, 75, _("Watcher's Son"), ANOPHELES, 10, instance_npcname("Tyrant's Throne#")+"::OnMyMobDead");
end;
OnMyMobDead:
- .@mob_dead_num = mobcount(instance_mapname("6@tower"),instance_npcname("Tyrant's Throne#")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(instance_mapname("6@tower"), instance_npcname("Tyrant's Throne#")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- donpcevent instance_npcname("#1st Beeper")+"::OnEnable";
- disablenpc instance_npcname("Tyrant's Throne#");
+ donpcevent(instance_npcname("#1st Beeper")+"::OnEnable");
+ disablenpc(instance_npcname("Tyrant's Throne#"));
}
end;
}
@@ -1980,42 +1904,42 @@ OnMyMobDead:
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnTimer500:
- mapannounce instance_mapname("6@tower"),"Guests, huh? I hope you've come here knowing that you'll be buried in this place. If you didn't know, well... it's too late!",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("Guests, huh? I hope you've come here knowing that you'll be buried in this place. If you didn't know, well... it's too late!"), bc_map, "0x00ffcc");
end;
OnTimer5500:
- mapannounce instance_mapname("6@tower"),"This is why you adventurers always end up dead.",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("This is why you adventurers always end up dead."), bc_map, "0x00ffcc");
end;
OnTimer10500:
- mapannounce instance_mapname("6@tower"),"I may applaud you for your courage... Of course, I intend to play with you a little bit first.",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("I may applaud you for your courage... Of course, I intend to play with you a little bit first."), bc_map, "0x00ffcc");
end;
OnTimer15500:
- mapannounce instance_mapname("6@tower"),"You know, I like watching humans running around in fear.",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("You know, I like watching humans running around in fear."), bc_map, "0x00ffcc");
end;
OnTimer20500:
.@map$ = instance_mapname("6@tower");
- mapannounce .@map$,"Let's see who runs fastest. Are you ready?",bc_map,"0x00ffcc";
- stopnpctimer;
- areamonster .@map$,151,66,153,106,"Bone Guardian",1152,50,instance_npcname("#1st Beeper")+"::OnMyMobDead";
- areamonster .@map$,158,66,160,106,"Bone Guardian",1152,50,instance_npcname("#1st Beeper")+"::OnMyMobDead";
+ mapannounce(.@map$, _("Let's see who runs fastest. Are you ready?"), bc_map, "0x00ffcc");
+ stopnpctimer();
+ areamonster(.@map$, 151, 66, 153, 106, _("Bone Guardian"), ORC_SKELETON, 50, instance_npcname("#1st Beeper")+"::OnMyMobDead");
+ areamonster(.@map$, 158, 66, 160, 106, _("Bone Guardian"), ORC_SKELETON, 50, instance_npcname("#1st Beeper")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("6@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#1st Beeper")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#1st Beeper")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- donpcevent instance_npcname("#2nd Beeper")+"::OnEnable";
+ donpcevent(instance_npcname("#2nd Beeper")+"::OnEnable");
//SetItemPartyInMap in_102floor 101
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Targets %dea"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
}
- else
- mapannounce .@map$,"Remaining Targets " + .@mob_dead_num + "ea",bc_map,"0x00ff99";
end;
}
@@ -2023,34 +1947,34 @@ OnMyMobDead:
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnTimer500:
- mapannounce instance_mapname("6@tower"),"Well, I guess they aren't too challenging for you.",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("Well, I guess they aren't too challenging for you."), bc_map, "0x00ffcc");
end;
OnTimer5500:
- mapannounce instance_mapname("6@tower"),"Let's speed up a little bit, shall we?",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("Let's speed up a little bit, shall we?"), bc_map, "0x00ffcc");
end;
OnTimer10500:
.@map$ = instance_mapname("6@tower");
- mapannounce .@map$,"I demand an encore!",bc_map,"0x00ffcc";
- stopnpctimer;
- areamonster .@map$,151,66,153,106,"Wind Guardian",1263,30,instance_npcname("#2nd Beeper")+"::OnMyMobDead";
- areamonster .@map$,158,66,160,106,"Wind Guardian",1263,30,instance_npcname("#2nd Beeper")+"::OnMyMobDead";
+ mapannounce(.@map$, _("I demand an encore!"), bc_map, "0x00ffcc");
+ stopnpctimer();
+ areamonster(.@map$, 151, 66, 153, 106, _("Wind Guardian"), WIND_GHOST, 30, instance_npcname("#2nd Beeper")+"::OnMyMobDead");
+ areamonster(.@map$, 158, 66, 160, 106, _("Wind Guardian"), WIND_GHOST, 30, instance_npcname("#2nd Beeper")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("6@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#2nd Beeper")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#2nd Beeper")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- donpcevent instance_npcname("#3rd Beeper")+"::OnEnable";
+ donpcevent(instance_npcname("#3rd Beeper")+"::OnEnable");
//SetItemPartyInMap in_102floor 102
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Targets %dea"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
}
- else
- mapannounce .@map$,"Remaining Targets " + .@mob_dead_num + "ea",bc_map,"0x00ff99";
end;
}
@@ -2058,34 +1982,34 @@ OnMyMobDead:
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnTimer500:
- mapannounce instance_mapname("6@tower"),"Yes, this is getting exciting!",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("Yes, this is getting exciting!"), bc_map, "0x00ffcc");
end;
OnTimer5500:
- mapannounce instance_mapname("6@tower"),"I'll remember you as one of a few that have managed to entertain me.",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("I'll remember you as one of a few that have managed to entertain me."), bc_map, "0x00ffcc");
end;
OnTimer10500:
.@map$ = instance_mapname("6@tower");
- mapannounce .@map$,"How would you like to play one more round?",bc_map,"0x00ffcc";
- stopnpctimer;
- areamonster .@map$,151,66,153,106,"Sword Edge Guardian",1132,20,instance_npcname("#3rd Beeper")+"::OnMyMobDead";
- areamonster .@map$,158,66,160,106,"Sword Edge Guardian",1132,20,instance_npcname("#3rd Beeper")+"::OnMyMobDead";
+ mapannounce(.@map$, _("How would you like to play one more round?"), bc_map, "0x00ffcc");
+ stopnpctimer();
+ areamonster(.@map$, 151, 66, 153, 106, _("Sword Edge Guardian"), KHALITZBURG, 20, instance_npcname("#3rd Beeper")+"::OnMyMobDead");
+ areamonster(.@map$, 158, 66, 160, 106, _("Sword Edge Guardian"), KHALITZBURG, 20, instance_npcname("#3rd Beeper")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("6@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#3rd Beeper")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#3rd Beeper")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- donpcevent instance_npcname("#4th Beeper")+"::OnEnable";
+ donpcevent(instance_npcname("#4th Beeper")+"::OnEnable");
//SetItemPartyInMap in_102floor 103
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Targets %dea"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
}
- else
- mapannounce .@map$,"Remaining Targets " + .@mob_dead_num + "ea",bc_map,"0x00ff99";
end;
}
@@ -2093,106 +2017,106 @@ OnMyMobDead:
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnTimer500:
- mapannounce instance_mapname("6@tower"),"Okay, the time has come to make my appearance!",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("Okay, the time has come to make my appearance!"), bc_map, "0x00ffcc");
end;
OnTimer5500:
- mapannounce instance_mapname("6@tower"),"Do you want to know who I am?",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("Do you want to know who I am?"), bc_map, "0x00ffcc");
end;
OnTimer10500:
.@map$ = instance_mapname("6@tower");
- mapannounce .@map$,"You'll soon know. Mine is the face of death!",bc_map,"0x00ffcc";
- stopnpctimer;
- monster .@map$,156,147,"Nacht Sieger",1956,1,instance_npcname("#4th Beeper")+"::OnMyMobDead";
+ mapannounce(.@map$, _("You'll soon know. Mine is the face of death!"), bc_map, "0x00ffcc");
+ stopnpctimer();
+ monster(.@map$, 156, 147, _("Nacht Sieger"), NAGHT_SIEGER, 1, instance_npcname("#4th Beeper")+"::OnMyMobDead");
end;
OnMyMobDead:
- donpcevent instance_npcname("Lost Soul#102")+"::OnEnable";
+ donpcevent(instance_npcname("Lost Soul#102")+"::OnEnable");
end;
}
6@tower,169,127,2 script Lost Soul#102 4_M_NFDEADSWDMAN,{
- if (checkweight(Knife,1) == 0) {
- mes "You're carrying too much stuff. Why don't you put some of it away, and then come back?";
- close;
+ if (checkweight(Knife, 1) == 0) {
+ mes("You're carrying too much stuff. Why don't you put some of it away, and then come back?");
+ close();
}
- mes "[Lost Souls]";
- mes "It's you that have liberated us from the evil Nacht Sieger.";
- next;
- mes "[Lost Souls]";
- mes "Thank you so much. Now we can escape from this cold and dark place... to heaven.";
- next;
- if ((countitem(Twin_Edge_B) > 0) && (countitem(Twin_Edge_R) > 0)) {
- mes "[Lost Souls]";
- mes "Hey, you have the remnants of Nacht Sieger with you.";
- next;
- mes "[Lost Souls]";
- mes "They may appear to be one-handed swords, but I can put them together to make a two-handed one if you want. That's the only way I can repay you for freeing me.";
- next;
- switch(select("Make a Two-Handed Sword.", "No, thanks.")) {
+ mes("[Lost Souls]");
+ mes("It's you that have liberated us from the evil Nacht Sieger.");
+ next();
+ mes("[Lost Souls]");
+ mes("Thank you so much. Now we can escape from this cold and dark place... to heaven.");
+ next();
+ if (countitem(Twin_Edge_B) > 0 && countitem(Twin_Edge_R) > 0) {
+ mes("[Lost Souls]");
+ mes("Hey, you have the remnants of Nacht Sieger with you.");
+ next();
+ mes("[Lost Souls]");
+ mes("They may appear to be one-handed swords, but I can put them together to make a two-handed one if you want. That's the only way I can repay you for freeing me.");
+ next();
+ switch (select("Make a Two-Handed Sword.", "No, thanks.")) {
case 1:
- mes "[Lost Souls]";
- mes "If it is already upgraded or has a card inside, those effects will be disappear. Is this ok with you?";
- next;
- switch(select("It's fine with me. Please make one.", "No way!")) {
+ mes("[Lost Souls]");
+ mes("If it is already upgraded or has a card inside, those effects will be disappear. Is this ok with you?");
+ next();
+ switch (select("It's fine with me. Please make one.", "No way!")) {
case 1:
- mes "[Lost Souls]";
- mes "Good, then I'll combine these to create a two-handed sword.";
- next;
- delitem Twin_Edge_B,1;
- delitem Twin_Edge_R,1;
- getitem Violet_Fear,1;
+ mes("[Lost Souls]");
+ mes("Good, then I'll combine these to create a two-handed sword.");
+ next();
+ delitem(Twin_Edge_B, 1);
+ delitem(Twin_Edge_R, 1);
+ getitem(Violet_Fear, 1);
break;
case 2:
- mes "[Lost Souls]";
- mes "I see. I guess you aren't as greedy or ambitious as those other adventurers.";
- next;
+ mes("[Lost Souls]");
+ mes("I see. I guess you aren't as greedy or ambitious as those other adventurers.");
+ next();
break;
}
break;
case 2:
- mes "[Lost Souls]";
- mes "I see. I guess you aren't as greedy or ambitious as those other adventurers.";
- next;
+ mes("[Lost Souls]");
+ mes("I see. I guess you aren't as greedy or ambitious as those other adventurers.");
+ next();
break;
}
}
- mes "[Lost Souls]";
- mes "I'd like to talk to you more, but I've... I've got to go now.";
- next;
- mes "[Lost Souls]";
- mes "Farewell, young adventurer. I wish you good luck.";
- close2;
- warp "alberta",223,36;
+ mes("[Lost Souls]");
+ mes("I'd like to talk to you more, but I've... I've got to go now.");
+ next();
+ mes("[Lost Souls]");
+ mes("Farewell, young adventurer. I wish you good luck.");
+ close2();
+ warp("alberta", 223, 36);
end;
OnInstanceInit:
- disablenpc instance_npcname("Lost Soul#102");
+ disablenpc(instance_npcname("Lost Soul#102"));
end;
OnEnable:
- initnpctimer;
- enablenpc instance_npcname("Lost Soul#102");
- donpcevent instance_npcname("#Effect30")+"::OnEnable";
+ initnpctimer();
+ enablenpc(instance_npcname("Lost Soul#102"));
+ donpcevent(instance_npcname("#Effect30")+"::OnEnable");
//SetItemPartyInMap in_102floor 104
end;
OnTimer500:
- mapannounce instance_mapname("6@tower"),"This... This can't be happening! I can't be defeated!",bc_map,"0xffff00";
+ mapannounce(instance_mapname("6@tower"), _("This... This can't be happening! I can't be defeated!"), bc_map, C_YELLOW);
end;
OnTimer5500:
- mapannounce instance_mapname("6@tower"),"Nooo! My soul... My shell...! Nooo~!",bc_map,"0xffff00";
+ mapannounce(instance_mapname("6@tower"), _("Nooo! My soul... My shell...! Nooo~!"), bc_map, C_YELLOW);
end;
OnTimer10500:
- mapannounce instance_mapname("6@tower"),"Nacht Sieger's body has turned into dark ashes that scattered in the wind.",bc_map,"0x00ffcc";
- stopnpctimer;
+ mapannounce(instance_mapname("6@tower"), _("Nacht Sieger's body has turned into dark ashes that scattered in the wind."), bc_map, "0x00ffcc");
+ stopnpctimer();
end;
}
@@ -2200,17 +2124,17 @@ OnTimer10500:
end;
OnInstanceInit:
- disablenpc instance_npcname("#Effect30");
+ disablenpc(instance_npcname("#Effect30"));
end;
OnEnable:
- specialeffect EF_CONE;
- initnpctimer;
+ specialeffect(EF_CONE);
+ initnpctimer();
end;
OnTimer1000:
- stopnpctimer;
- donpcevent instance_npcname("#Effect31")+"::OnEnable";
+ stopnpctimer();
+ donpcevent(instance_npcname("#Effect31")+"::OnEnable");
end;
}
@@ -2218,16 +2142,16 @@ OnTimer1000:
end;
OnInstanceInit:
- disablenpc instance_npcname("#Effect31");
+ disablenpc(instance_npcname("#Effect31"));
end;
OnEnable:
- specialeffect EF_CONE;
- initnpctimer;
+ specialeffect(EF_CONE);
+ initnpctimer();
end;
OnTimer1000:
- stopnpctimer;
- donpcevent instance_npcname("#Effect30")+"::OnEnable";
+ stopnpctimer();
+ donpcevent(instance_npcname("#Effect30")+"::OnEnable");
end;
}
diff --git a/src/char/char.c b/src/char/char.c
index 78b2d19fa..cf3fbb5e7 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -600,7 +600,7 @@ int char_mmo_char_tosql(int char_id, struct mmo_charstatus* p)
StrBuf->Clear(&buf);
StrBuf->Printf(&buf, "INSERT INTO `%s`(`char_id`,`id`,`lv`,`flag`) VALUES ", skill_db);
//insert here.
- for( i = 0, count = 0; i < MAX_SKILL; ++i ) {
+ for (i = 0, count = 0; i < MAX_SKILL_DB; ++i) {
if( p->skill[i].id != 0 && p->skill[i].flag != SKILL_FLAG_TEMPORARY ) {
if( p->skill[i].lv == 0 && ( p->skill[i].flag == SKILL_FLAG_PERM_GRANTED || p->skill[i].flag == SKILL_FLAG_PERMANENT ) )
continue;
@@ -1301,7 +1301,7 @@ int char_mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_every
//read skill
//`skill` (`char_id`, `id`, `lv`)
memset(&tmp_skill, 0, sizeof(tmp_skill));
- if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `id`, `lv`,`flag` FROM `%s` WHERE `char_id`=? LIMIT %d", skill_db, MAX_SKILL)
+ if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `id`, `lv`,`flag` FROM `%s` WHERE `char_id`=? LIMIT %d", skill_db, MAX_SKILL_DB)
|| SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
|| SQL_ERROR == SQL->StmtExecute(stmt)
|| SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_USHORT, &tmp_skill.id , 0, NULL, NULL)
@@ -1314,7 +1314,7 @@ int char_mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_every
if( tmp_skill.flag != SKILL_FLAG_PERM_GRANTED )
tmp_skill.flag = SKILL_FLAG_PERMANENT;
- for( i = 0; i < MAX_SKILL && SQL_SUCCESS == SQL->StmtNextRow(stmt); ++i ) {
+ for (i = 0; i < MAX_SKILL_DB && SQL_SUCCESS == SQL->StmtNextRow(stmt); ++i) {
if( skillid2idx[tmp_skill.id] )
memcpy(&p->skill[skillid2idx[tmp_skill.id]], &tmp_skill, sizeof(tmp_skill));
else
@@ -2979,8 +2979,8 @@ void char_parse_frommap_skillid2idx(int fd)
if( j )
j /= 4;
for(i = 0; i < j; i++) {
- if( RFIFOW(fd, 4 + (i*4)) > MAX_SKILL_ID ) {
- ShowWarning("Error skillid2dx[%d] = %d failed, %d is higher than MAX_SKILL_ID (%d)\n",RFIFOW(fd, 4 + (i*4)), RFIFOW(fd, 6 + (i*4)),RFIFOW(fd, 4 + (i*4)),MAX_SKILL_ID);
+ if (RFIFOW(fd, 4 + (i*4)) >= MAX_SKILL_ID) {
+ ShowWarning("Error skillid2dx[%d] = %d failed, %d is higher than MAX_SKILL_ID (%d)\n", RFIFOW(fd, 4 + (i*4)), RFIFOW(fd, 6 + (i*4)), RFIFOW(fd, 4 + (i*4)), MAX_SKILL_ID);
continue;
}
skillid2idx[RFIFOW(fd, 4 + (i*4))] = RFIFOW(fd, 6 + (i*4));
diff --git a/src/common/mmo.h b/src/common/mmo.h
index 52f68b719..6a0e75ca5 100644
--- a/src/common/mmo.h
+++ b/src/common/mmo.h
@@ -139,8 +139,8 @@
#endif
#define MAX_FAME 1000000000
#define MAX_CART 100
-#ifndef MAX_SKILL
-#define MAX_SKILL 1510
+#ifndef MAX_SKILL_DB
+#define MAX_SKILL_DB 1510 ///< Maximum number of skills in the skill DB (compacted array size)
#endif
#ifndef MAX_SKILL_ID
#define MAX_SKILL_ID 10015 // [Ind/Hercules] max used skill ID
@@ -635,7 +635,7 @@ struct mmo_charstatus {
struct point last_point,save_point,memo_point[MAX_MEMOPOINTS];
struct item inventory[MAX_INVENTORY],cart[MAX_CART];
- struct s_skill skill[MAX_SKILL];
+ struct s_skill skill[MAX_SKILL_DB];
struct s_friend friends[MAX_FRIENDS]; //New friend system [Skotlex]
#ifdef HOTKEY_SAVING
@@ -1203,4 +1203,8 @@ enum hz_char_ask_name_answer {
#error MAX_SLOTS it too small
#endif
+#ifdef MAX_SKILL
+#error MAX_SKILL has been replaced by MAX_SKILL_DB. Please update your custom definitions.
+#endif
+
#endif /* COMMON_MMO_H */
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index d9f4810ee..1590c3f0c 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -5296,12 +5296,13 @@ ACMD(skillid)
iter = db_iterator(skill->name2id_db);
for (data = iter->first(iter,&key); iter->exists(iter); data = iter->next(iter,&key)) {
- int idx = skill->get_index(DB->data2i(data));
- if (strnicmp(key.str, message, skillen) == 0 || strnicmp(skill->dbs->db[idx].desc, message, skillen) == 0) {
- safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd,1164), DB->data2i(data), skill->dbs->db[idx].desc, key.str); // skill %d: %s (%s)
+ int skill_id = DB->data2i(data);
+ const char *skill_desc = skill->get_desc(skill_id);
+ if (strnicmp(key.str, message, skillen) == 0 || strnicmp(skill_desc, message, skillen) == 0) {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 1164), skill_id, skill_desc, key.str); // skill %d: %s (%s)
clif->message(fd, atcmd_output);
- } else if ( found < MAX_SKILLID_PARTIAL_RESULTS && ( stristr(key.str,message) || stristr(skill->dbs->db[idx].desc,message) ) ) {
- snprintf(partials[found], MAX_SKILLID_PARTIAL_RESULTS_LEN, msg_fd(fd,1164), DB->data2i(data), skill->dbs->db[idx].desc, key.str);
+ } else if (found < MAX_SKILLID_PARTIAL_RESULTS && (stristr(key.str, message) != NULL || stristr(skill_desc, message) != NULL)) {
+ snprintf(partials[found], MAX_SKILLID_PARTIAL_RESULTS_LEN, msg_fd(fd, 1164), skill_id, skill_desc, key.str);
found++;
}
}
@@ -5428,7 +5429,7 @@ ACMD(skilltree)
for (j = 0; j < VECTOR_LENGTH(entry->need); j++) {
struct skill_tree_requirement *req = &VECTOR_INDEX(entry->need, j);
if (pc->checkskill(sd, req->id) < req->lv) {
- safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd,1170), req->lv, skill->dbs->db[req->id].desc); // Player requires level %d of skill %s.
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd,1170), req->lv, skill->get_desc(req->id)); // Player requires level %d of skill %s.
clif->message(fd, atcmd_output);
meets = 0;
}
@@ -8686,7 +8687,7 @@ ACMD(cart) {
int val = atoi(message);
bool need_skill = pc->checkskill(sd, MC_PUSHCART) ? false : true;
- unsigned int index = skill->get_index(MC_PUSHCART);
+ int index = skill->get_index(MC_PUSHCART);
if (!*message || val < 0 || val > MAX_CARTS) {
safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd,1390),command,MAX_CARTS); // Unknown Cart (usage: %s <0-%d>).
@@ -9394,7 +9395,7 @@ ACMD(cddebug) {
}
if (!cd || (*message && !strcmpi(message,"reset"))) {
- for(i = 0; i < MAX_SKILL; i++) {
+ for (i = 0; i < MAX_SKILL_DB; i++) {
if( sd->blockskill[i] ) {
clif->messages(fd,"Found skill '%s', unblocking...",skill->dbs->db[i].name);
sd->blockskill[i] = false;
diff --git a/src/map/chrif.c b/src/map/chrif.c
index 39aa046d7..96f144523 100644
--- a/src/map/chrif.c
+++ b/src/map/chrif.c
@@ -1360,10 +1360,10 @@ void chrif_skillid2idx(int fd) {
if (!sockt->session_is_valid(fd))
return;
- WFIFOHEAD(fd,4 + (MAX_SKILL * 4));
+ WFIFOHEAD(fd,4 + (MAX_SKILL_DB * 4));
WFIFOW(fd,0) = 0x2b0b;
- for(i = 0; i < MAX_SKILL; i++) {
- if( skill->dbs->db[i].nameid ) {
+ for (i = 0; i < MAX_SKILL_DB; i++) {
+ if (skill->dbs->db[i].nameid != 0) {
WFIFOW(fd, 4 + (count*4)) = skill->dbs->db[i].nameid;
WFIFOW(fd, 6 + (count*4)) = i;
count++;
diff --git a/src/map/clif.c b/src/map/clif.c
index 4dc36be6d..4bf3cdf94 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -4866,9 +4866,9 @@ void clif_skillinfoblock(struct map_session_data *sd)
fd=sd->fd;
if (!fd) return;
- WFIFOHEAD(fd, MAX_SKILL * 37 + 4);
+ WFIFOHEAD(fd, MAX_SKILL_DB * 37 + 4);
WFIFOW(fd,0) = 0x10f;
- for ( i = 0, len = 4; i < MAX_SKILL; i++) {
+ for ( i = 0, len = 4; i < MAX_SKILL_DB; i++) {
if( (id = sd->status.skill[i].id) != 0 ) {
int level;
// workaround for bugreport:5348
@@ -4899,7 +4899,7 @@ void clif_skillinfoblock(struct map_session_data *sd)
WFIFOSET(fd,len);
// workaround for bugreport:5348; send the remaining skills one by one to bypass packet size limit
- for ( ; i < MAX_SKILL; i++) {
+ for ( ; i < MAX_SKILL_DB; i++) {
if( (id = sd->status.skill[i].id) != 0 ) {
clif->addskill(sd, id);
clif->skillinfo(sd, id, 0);
@@ -5001,7 +5001,7 @@ void clif_skillinfo(struct map_session_data *sd,int skill_id, int inf)
int skill_lv;
nullpo_retv(sd);
- Assert_retv(idx >= 0 && idx < MAX_SKILL);
+ Assert_retv(idx >= 0 && idx < MAX_SKILL_DB);
skill_lv = sd->status.skill[idx].lv;
@@ -17642,7 +17642,7 @@ int clif_autoshadowspell_list(struct map_session_data *sd) {
WFIFOHEAD(fd, 2 * 6 + 4);
WFIFOW(fd,0) = 0x442;
- for( i = 0, c = 0; i < MAX_SKILL; i++ )
+ for (i = 0, c = 0; i < MAX_SKILL_DB; i++)
if( sd->status.skill[i].flag == SKILL_FLAG_PLAGIARIZED && sd->status.skill[i].id > 0 &&
sd->status.skill[i].id < GS_GLITTERING && skill->get_type(sd->status.skill[i].id) == BF_MAGIC )
{ // Can't auto cast both Extended class and 3rd class skills.
diff --git a/src/map/elemental.c b/src/map/elemental.c
index ae1fda0a2..cf1d485e1 100644
--- a/src/map/elemental.c
+++ b/src/map/elemental.c
@@ -885,7 +885,7 @@ int read_elementaldb(void) {
estatus->race = atoi(str[20]);
ele = atoi(str[21]);
- estatus->def_ele = ele%10;
+ estatus->def_ele = ele % ELE_MAX;
estatus->ele_lv = ele/20;
if( estatus->def_ele >= ELE_MAX ) {
ShowWarning("Elemental %d has invalid element type %d (max element is %d)\n", db->class_, estatus->def_ele, ELE_MAX - 1);
diff --git a/src/map/homunculus.h b/src/map/homunculus.h
index a80392cf6..f3b10fc19 100644
--- a/src/map/homunculus.h
+++ b/src/map/homunculus.h
@@ -124,7 +124,7 @@ struct homun_data {
struct map_session_data *master; //pointer back to its master
int hungry_timer; //[orn]
unsigned int exp_next;
- char blockskill[MAX_SKILL]; // [orn]
+ char blockskill[MAX_SKILL_DB]; // [orn]
int64 masterteleport_timer;
};
diff --git a/src/map/mercenary.c b/src/map/mercenary.c
index f5d3fe11c..c4b692008 100644
--- a/src/map/mercenary.c
+++ b/src/map/mercenary.c
@@ -465,7 +465,7 @@ bool read_mercenarydb_sub(char* str[], int columns, int current) {
mstatus->race = atoi(str[20]);
ele = atoi(str[21]);
- mstatus->def_ele = ele%10;
+ mstatus->def_ele = ele % ELE_MAX;
mstatus->ele_lv = ele/20;
if( mstatus->def_ele >= ELE_MAX ) {
ShowWarning("Mercenary %d has invalid element type %d (max element is %d)\n", db->class_, mstatus->def_ele, ELE_MAX - 1);
diff --git a/src/map/mercenary.h b/src/map/mercenary.h
index 0af75e8a2..f3773f191 100644
--- a/src/map/mercenary.h
+++ b/src/map/mercenary.h
@@ -92,7 +92,7 @@ struct mercenary_data {
struct regen_data regen;
struct s_mercenary_db *db;
struct s_mercenary mercenary;
- char blockskill[MAX_SKILL];
+ char blockskill[MAX_SKILL_DB];
struct map_session_data *master;
int contract_timer;
diff --git a/src/map/mob.c b/src/map/mob.c
index 208617b5d..f509ecace 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -4846,7 +4846,7 @@ bool mob_parse_row_mobskilldb(char** str, int columns, int current)
struct mob_skill *ms, gms;
int mob_id;
int i =0, j, tmp;
- uint16 sidx = 0;
+ int sidx = 0;
nullpo_retr(false, str);
mob_id = atoi(str[0]);
diff --git a/src/map/pc.c b/src/map/pc.c
index 0636ebafa..d5d359557 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -1560,7 +1560,7 @@ int pc_calc_skillpoint(struct map_session_data* sd) {
nullpo_ret(sd);
- for (i = 1; i < MAX_SKILL; i++) {
+ for (i = 1; i < MAX_SKILL_DB; i++) {
int skill_lv = pc->checkskill2(sd,i);
if (skill_lv > 0) {
inf2 = skill->dbs->db[i].inf2;
@@ -1596,7 +1596,7 @@ int pc_calc_skilltree(struct map_session_data *sd)
}
classidx = pc->class2idx(class);
- for( i = 0; i < MAX_SKILL; i++ ) {
+ for (i = 0; i < MAX_SKILL_DB; i++) {
if( sd->status.skill[i].flag != SKILL_FLAG_PLAGIARIZED && sd->status.skill[i].flag != SKILL_FLAG_PERM_GRANTED ) //Don't touch these
sd->status.skill[i].id = 0; //First clear skills.
/* permanent skills that must be re-checked */
@@ -1613,7 +1613,7 @@ int pc_calc_skilltree(struct map_session_data *sd)
}
}
- for( i = 0; i < MAX_SKILL; i++ ) {
+ for (i = 0; i < MAX_SKILL_DB; i++) {
if( sd->status.skill[i].flag != SKILL_FLAG_PERMANENT && sd->status.skill[i].flag != SKILL_FLAG_PERM_GRANTED && sd->status.skill[i].flag != SKILL_FLAG_PLAGIARIZED )
{ // Restore original level of skills after deleting earned skills.
sd->status.skill[i].lv = (sd->status.skill[i].flag == SKILL_FLAG_TEMPORARY) ? 0 : sd->status.skill[i].flag - SKILL_FLAG_REPLACED_LV_0;
@@ -1622,18 +1622,25 @@ int pc_calc_skilltree(struct map_session_data *sd)
if( sd->sc.count && sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_BARDDANCER && skill->dbs->db[i].nameid >= DC_HUMMING && skill->dbs->db[i].nameid <= DC_SERVICEFORYOU )
{ //Enable Bard/Dancer spirit linked skills.
- if( sd->status.sex )
- { //Link dancer skills to bard.
- // i can be < 8?
- if( sd->status.skill[i-8].lv < 10 )
+ if (sd->status.sex) {
+ // Link dancer skills to bard.
+ if (i < 8) {
+ Assert_report(i >= 8);
+ continue;
+ }
+ if (sd->status.skill[i-8].lv < 10)
continue;
sd->status.skill[i].id = skill->dbs->db[i].nameid;
sd->status.skill[i].lv = sd->status.skill[i-8].lv; // Set the level to the same as the linking skill
sd->status.skill[i].flag = SKILL_FLAG_TEMPORARY; // Tag it as a non-savable, non-uppable, bonus skill
- } else { //Link bard skills to dancer.
- if( sd->status.skill[i].lv < 10 )
+ } else {
+ // Link bard skills to dancer.
+ if (i < 8) {
+ Assert_report(i >= 8);
+ continue;
+ }
+ if (sd->status.skill[i].lv < 10)
continue;
- // i can be < 8?
sd->status.skill[i-8].id = skill->dbs->db[i-8].nameid;
sd->status.skill[i-8].lv = sd->status.skill[i].lv; // Set the level to the same as the linking skill
sd->status.skill[i-8].flag = SKILL_FLAG_TEMPORARY; // Tag it as a non-savable, non-uppable, bonus skill
@@ -1642,7 +1649,7 @@ int pc_calc_skilltree(struct map_session_data *sd)
}
if( pc_has_permission(sd, PC_PERM_ALL_SKILL) ) {
- for( i = 0; i < MAX_SKILL; i++ ) {
+ for (i = 0; i < MAX_SKILL_DB; i++) {
switch(skill->dbs->db[i].nameid) {
/**
* Dummy skills must be added here otherwise they'll be displayed in the,
@@ -1836,7 +1843,7 @@ int pc_clean_skilltree(struct map_session_data *sd)
{
int i;
nullpo_ret(sd);
- for (i = 0; i < MAX_SKILL; i++){
+ for (i = 0; i < MAX_SKILL_DB; i++) {
if (sd->status.skill[i].flag == SKILL_FLAG_TEMPORARY || sd->status.skill[i].flag == SKILL_FLAG_PLAGIARIZED) {
sd->status.skill[i].id = 0;
sd->status.skill[i].lv = 0;
@@ -4143,7 +4150,7 @@ int pc_bonus5(struct map_session_data *sd,int type,int type2,int type3,int type4
*------------------------------------------*/
int pc_skill(struct map_session_data *sd, int id, int level, int flag)
{
- uint16 index = 0;
+ int index = 0;
nullpo_ret(sd);
if (!(index = skill->get_index(id))) {
@@ -5869,7 +5876,7 @@ int pc_memo(struct map_session_data* sd, int pos) {
* Return player sd skill_lv learned for given skill
*------------------------------------------*/
int pc_checkskill(struct map_session_data *sd,uint16 skill_id) {
- uint16 index = 0;
+ int index = 0;
if(sd == NULL) return 0;
if( skill_id >= GD_SKILLBASE && skill_id < GD_MAX ) {
struct guild *g;
@@ -5888,8 +5895,9 @@ int pc_checkskill(struct map_session_data *sd,uint16 skill_id) {
return 0;
}
int pc_checkskill2(struct map_session_data *sd,uint16 index) {
- if(sd == NULL) return 0;
- if(index >= ARRAYLENGTH(sd->status.skill) ) {
+ if (sd == NULL)
+ return 0;
+ if (index >= MAX_SKILL_DB) {
ShowError("pc_checkskill: Invalid skill index %d (char_id=%d).\n", index, sd->status.char_id);
return 0;
}
@@ -7229,7 +7237,7 @@ int pc_statusup2(struct map_session_data* sd, int type, int val)
* Skill point allocation
*------------------------------------------*/
int pc_skillup(struct map_session_data *sd,uint16 skill_id) {
- uint16 index = 0;
+ int index = 0;
nullpo_ret(sd);
if( skill_id >= GD_SKILLBASE && skill_id < GD_SKILLBASE+MAX_GUILDSKILL ) {
@@ -7286,7 +7294,7 @@ int pc_allskillup(struct map_session_data *sd)
nullpo_ret(sd);
- for(i=0;i<MAX_SKILL;i++){
+ for (i = 0; i < MAX_SKILL_DB; i++) {
if (sd->status.skill[i].flag != SKILL_FLAG_PERMANENT && sd->status.skill[i].flag != SKILL_FLAG_PERM_GRANTED && sd->status.skill[i].flag != SKILL_FLAG_PLAGIARIZED) {
sd->status.skill[i].lv = (sd->status.skill[i].flag == SKILL_FLAG_TEMPORARY) ? 0 : sd->status.skill[i].flag - SKILL_FLAG_REPLACED_LV_0;
sd->status.skill[i].flag = SKILL_FLAG_PERMANENT;
@@ -7297,7 +7305,7 @@ int pc_allskillup(struct map_session_data *sd)
if (pc_has_permission(sd, PC_PERM_ALL_SKILL)) { //Get ALL skills except npc/guild ones. [Skotlex]
//and except SG_DEVIL [Komurka] and MO_TRIPLEATTACK and RG_SNATCHER [ultramage]
- for(i=0;i<MAX_SKILL;i++){
+ for (i = 0; i < MAX_SKILL_DB; i++) {
switch( skill->dbs->db[i].nameid ) {
case SG_DEVIL:
case MO_TRIPLEATTACK:
@@ -7537,9 +7545,7 @@ int pc_resetskill(struct map_session_data* sd, int flag)
status_change_end(&sd->bl, SC_SPRITEMABLE, INVALID_TIMER);
}
- for( i = 1; i < MAX_SKILL; i++ ) {
- // FIXME: We're looping on i = [1..MAX_SKILL-1] (which makes sense as index for sd->status.skill[]) but then we're using the
- // same i to access skill->dbs->db[], and especially to check skill_ischangesex(). This is wrong.
+ for (i = 1; i < MAX_SKILL_DB; i++) {
uint16 skill_id = 0;
int lv = sd->status.skill[i].lv;
if (lv < 1) continue;
diff --git a/src/map/pc.h b/src/map/pc.h
index 50cb1b68e..df0df979d 100644
--- a/src/map/pc.h
+++ b/src/map/pc.h
@@ -292,7 +292,7 @@ struct map_session_data {
uint16 skill_id_old,skill_lv_old;
uint16 skill_id_dance,skill_lv_dance;
short cook_mastery; // range: [0,1999] [Inkfish]
- bool blockskill[MAX_SKILL];
+ bool blockskill[MAX_SKILL_DB];
int cloneskill_id, reproduceskill_id;
int menuskill_id, menuskill_val, menuskill_val2;
int invincible_timer;
diff --git a/src/map/script.c b/src/map/script.c
index 68c4c7468..7f7aba183 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -12190,7 +12190,7 @@ BUILDIN(homunculus_mutate)
if (script_hasdata(st,2))
homun_id = script_getnum(st,2);
else
- homun_id = 6048 + (rnd() % 4);
+ homun_id = HOMID_EIRA + (rnd() % 4);
m_class = homun->class2type(sd->hd->homunculus.class_);
m_id = homun->class2type(homun_id);
@@ -14605,7 +14605,7 @@ BUILDIN(getskilllist)
int i,j=0;
if (sd == NULL)
return true;
- for(i=0;i<MAX_SKILL;i++) {
+ for (i = 0; i < MAX_SKILL_DB; i++) {
if(sd->status.skill[i].id > 0 && sd->status.skill[i].lv > 0) {
pc->setreg(sd,reference_uid(script->add_str("@skilllist_id"), j),sd->status.skill[i].id);
pc->setreg(sd,reference_uid(script->add_str("@skilllist_lv"), j),sd->status.skill[i].lv);
@@ -21203,72 +21203,90 @@ BUILDIN(has_instance)
const char *str;
int16 m;
int instance_id = -1;
+ int i = 0, j = 0;
bool type = strcmp(script->getfuncname(st),"has_instance2") == 0 ? true : false;
str = script_getstr(st, 2);
- if( (m = map->mapname2mapid(str)) < 0 ) {
- if( type )
+ if ((m = map->mapname2mapid(str)) < 0) {
+ if (type) {
script_pushint(st, -1);
- else
+ } else {
script_pushconststr(st, "");
+ }
return true;
}
- if( script_hasdata(st, 3) )
+ if (script_hasdata(st, 3))
instance_id = script_getnum(st, 3);
- else if( st->instance_id >= 0 )
+ else if (st->instance_id >= 0)
instance_id = st->instance_id;
- else if( (sd = script->rid2sd(st)) != NULL ) {
+ else if ((sd = script->rid2sd(st)) != NULL) {
struct party_data *p;
- int i = 0, j = 0;
- if( sd->instances ) {
- for( i = 0; i < sd->instances; i++ ) {
- if( sd->instance[i] >= 0 ) {
+ if (sd->instances) {
+ for (i = 0; i < sd->instances; i++) {
+ if (sd->instance[i] >= 0) {
ARR_FIND(0, instance->list[sd->instance[i]].num_map, j, map->list[instance->list[sd->instance[i]].map[j]].instance_src_map == m);
- if( j != instance->list[sd->instance[i]].num_map )
+ if (j != instance->list[sd->instance[i]].num_map)
break;
}
}
- if( i != sd->instances )
+ if (i != sd->instances) {
instance_id = sd->instance[i];
+ }
}
if (instance_id == -1 && sd->status.party_id && (p = party->search(sd->status.party_id)) != NULL && p->instances) {
- for( i = 0; i < p->instances; i++ ) {
- if( p->instance[i] >= 0 ) {
+ for (i = 0; i < p->instances; i++) {
+ if (p->instance[i] >= 0) {
ARR_FIND(0, instance->list[p->instance[i]].num_map, j, map->list[instance->list[p->instance[i]].map[j]].instance_src_map == m);
- if( j != instance->list[p->instance[i]].num_map )
+ if (j != instance->list[p->instance[i]].num_map)
break;
}
}
- if( i != p->instances )
+ if (i != p->instances) {
instance_id = p->instance[i];
+ }
}
- if( instance_id == -1 && sd->guild && sd->guild->instances ) {
- for( i = 0; i < sd->guild->instances; i++ ) {
- if( sd->guild->instance[i] >= 0 ) {
+ if (instance_id == -1 && sd->guild && sd->guild->instances) {
+ for (i = 0; i < sd->guild->instances; i++) {
+ if (sd->guild->instance[i] >= 0) {
ARR_FIND(0, instance->list[sd->guild->instance[i]].num_map, j, map->list[instance->list[sd->guild->instance[i]].map[j]].instance_src_map == m);
- if( j != instance->list[sd->guild->instance[i]].num_map )
+ if (j != instance->list[sd->guild->instance[i]].num_map)
break;
}
}
- if( i != sd->guild->instances )
+ if (i != sd->guild->instances)
instance_id = sd->guild->instance[i];
}
}
- if( !instance->valid(instance_id) || (m = instance->map2imap(m, instance_id)) < 0 ) {
- if( type )
+ if (instance_id == -1) {
+ for (i = 0; i < instance->instances; i++) {
+ if (instance->list[i].state != INSTANCE_FREE && instance->list[i].owner_type == IOT_NONE && instance->list[i].num_map > 0) {
+ ARR_FIND(0, instance->list[i].num_map, j, map->list[instance->list[i].map[j]].instance_src_map == m);
+ if (j != instance->list[i].num_map)
+ break;
+ }
+ }
+ if (i != instance->instances) {
+ instance_id = instance->list[i].id;
+ }
+ }
+
+ if (!instance->valid(instance_id) || (m = instance->map2imap(m, instance_id)) < 0) {
+ if (type) {
script_pushint(st, -1);
- else
+ } else {
script_pushconststr(st, "");
+ }
return true;
}
- if( type )
+ if (type) {
script_pushint(st, instance_id);
- else
+ } else {
script_pushconststr(st, map->list[m].name);
+ }
return true;
}
diff --git a/src/map/skill.c b/src/map/skill.c
index 726deaa9a..1b7d40e83 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -105,7 +105,7 @@ int skill_name2id(const char* name)
/// Maps skill ids to skill db offsets.
/// Returns the skill's array index, or 0 (Unknown Skill).
-int skill_get_index (uint16 skill_id)
+int skill_get_index(int skill_id)
{
// avoid ranges reserved for mapping guild/homun/mercenary skills
if( (skill_id >= GD_SKILLRANGEMIN && skill_id <= GD_SKILLRANGEMAX)
@@ -138,88 +138,461 @@ int skill_get_index (uint16 skill_id)
}
// validate result
- if( !skill_id || skill_id >= MAX_SKILL_DB )
+ if (skill_id <= 0|| skill_id >= MAX_SKILL_DB)
return 0;
return skill_id;
}
-const char* skill_get_name( uint16 skill_id ) {
+const char *skill_get_name(int skill_id)
+{
return skill->dbs->db[skill->get_index(skill_id)].name;
}
-const char* skill_get_desc( uint16 skill_id ) {
+const char *skill_get_desc(int skill_id)
+{
return skill->dbs->db[skill->get_index(skill_id)].desc;
}
-// out of bounds error checking [celest]
-void skill_chk(uint16* skill_id) {
- *skill_id = skill->get_index(*skill_id); // checks/adjusts id
-}
+#define skill_get_lvl_idx(lv) (min((lv), MAX_SKILL_LEVEL) - 1)
+#define skill_adjust_over_level(val, lv, max_lv) ((val) > 1 ? ((val) + ((lv) - (max_lv)) / 2) : (val))
-#define skill_get(var,id) do { skill->chk(&(id)); if(!(id)) return 0; return (var); } while(0)
-#define skill_get2(var,id,lv) do { \
- skill->chk(&(id)); \
- if(!(id)) return 0; \
- if( (lv) > MAX_SKILL_LEVEL && (var) > 1 ) { \
- int lv2__ = (lv); (lv) = skill->dbs->db[(id)].max; \
- return (var) + ((lv2__-(lv))/2);\
- } \
- return (var);\
-} while(0)
-#define skill_glv(lv) min((lv),MAX_SKILL_LEVEL-1)
// Skill DB
-int skill_get_hit( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].hit, skill_id); }
-int skill_get_inf( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].inf, skill_id); }
-int skill_get_ele( uint16 skill_id , uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get (skill->dbs->db[skill_id].element[skill_glv(skill_lv-1)], skill_id); }
-int skill_get_nk( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].nk, skill_id); }
-int skill_get_max( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].max, skill_id); }
-int skill_get_range( uint16 skill_id , uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].range[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_splash( uint16 skill_id , uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 ( (skill->dbs->db[skill_id].splash[skill_glv(skill_lv-1)]>=0?skill->dbs->db[skill_id].splash[skill_glv(skill_lv-1)]:AREA_SIZE), skill_id, skill_lv); }
-int skill_get_hp( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].hp[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_sp( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].sp[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_hp_rate(uint16 skill_id, uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].hp_rate[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_sp_rate(uint16 skill_id, uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].sp_rate[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_state(uint16 skill_id) { skill_get (skill->dbs->db[skill_id].state, skill_id); }
-int skill_get_spiritball(uint16 skill_id, uint16 skill_lv) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].spiritball[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_itemid(uint16 skill_id, int idx) { skill_get (skill->dbs->db[skill_id].itemid[idx], skill_id); }
-int skill_get_itemqty(uint16 skill_id, int idx) { skill_get (skill->dbs->db[skill_id].amount[idx], skill_id); }
-int skill_get_zeny( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].zeny[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_num( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].num[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_cast( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].cast[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_delay( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].delay[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_walkdelay( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].walkdelay[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_time( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].upkeep_time[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_time2( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].upkeep_time2[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_castdef( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].cast_def_rate, skill_id); }
-int skill_get_weapontype( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].weapon, skill_id); }
-int skill_get_ammotype( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].ammo, skill_id); }
-int skill_get_ammo_qty( uint16 skill_id, uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].ammo_qty[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_inf2( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].inf2, skill_id); }
-int skill_get_castcancel( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].castcancel, skill_id); }
-int skill_get_maxcount( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].maxcount[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_blewcount( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].blewcount[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_mhp( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].mhp[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_castnodex( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].castnodex[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_delaynodex( uint16 skill_id ,uint16 skill_lv ){ Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].delaynodex[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_type( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].skill_type, skill_id); }
-int skill_get_unit_id ( uint16 skill_id, int flag ){ skill_get (skill->dbs->db[skill_id].unit_id[flag], skill_id); }
-int skill_get_unit_interval( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].unit_interval, skill_id); }
-int skill_get_unit_range( uint16 skill_id, uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].unit_range[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_unit_target( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].unit_target&BCT_ALL, skill_id); }
-int skill_get_unit_bl_target( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].unit_target&BL_ALL, skill_id); }
-int skill_get_unit_flag( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].unit_flag, skill_id); }
-int skill_get_unit_layout_type( uint16 skill_id ,uint16 skill_lv ){ Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].unit_layout_type[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_cooldown( uint16 skill_id, uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].cooldown[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_fixed_cast( uint16 skill_id ,uint16 skill_lv ) {
+
+int skill_get_hit(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].hit;
+}
+
+int skill_get_inf(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].inf;
+}
+
+int skill_get_ele(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].element[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].element[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_nk(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].nk;
+}
+
+int skill_get_max(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].max;
+}
+
+int skill_get_range(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].range[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].range[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_splash(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].splash[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].splash[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_hp(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].hp[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].hp[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_sp(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].sp[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].sp[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_hp_rate(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].hp_rate[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].hp_rate[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_sp_rate(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].sp_rate[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].sp_rate[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_state(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].state;
+}
+
+int skill_get_spiritball(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].spiritball[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].spiritball[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_itemid(int skill_id, int item_idx)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(item_idx >= 0 && item_idx < MAX_SKILL_ITEM_REQUIRE);
+ return skill->dbs->db[idx].itemid[item_idx];
+}
+
+int skill_get_itemqty(int skill_id, int item_idx)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(item_idx >= 0 && item_idx < MAX_SKILL_ITEM_REQUIRE);
+ return skill->dbs->db[idx].amount[item_idx];
+}
+
+int skill_get_zeny(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].zeny[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].zeny[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_num(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].num[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].num[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_cast(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].cast[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].cast[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_delay(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].delay[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].delay[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_walkdelay(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].walkdelay[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].walkdelay[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_time(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].upkeep_time[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].upkeep_time[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_time2(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].upkeep_time2[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].upkeep_time2[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_castdef(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].cast_def_rate;
+}
+
+int skill_get_weapontype(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].weapon;
+}
+
+int skill_get_ammotype(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].ammo;
+}
+
+int skill_get_ammo_qty(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].ammo_qty[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].ammo_qty[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_inf2(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].inf2;
+}
+
+int skill_get_castcancel(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].castcancel;
+}
+
+int skill_get_maxcount(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].maxcount[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].maxcount[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_blewcount(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].blewcount[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].blewcount[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_mhp(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].mhp[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].mhp[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_castnodex(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].castnodex[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].castnodex[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_delaynodex(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].delaynodex[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].delaynodex[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_type(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].skill_type;
+}
+
+int skill_get_unit_id(int skill_id, int flag)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(flag >= 0 && flag < ARRAYLENGTH(skill->dbs->db[0].unit_id));
+ return skill->dbs->db[idx].unit_id[flag];
+}
+
+int skill_get_unit_interval(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].unit_interval;
+}
+
+int skill_get_unit_range(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].unit_range[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].unit_range[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_unit_target(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].unit_target & BCT_ALL;
+}
+
+int skill_get_unit_bl_target(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].unit_target & BL_ALL;
+}
+
+int skill_get_unit_flag(int skill_id)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].unit_flag;
+}
+
+int skill_get_unit_layout_type(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].unit_layout_type[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].unit_layout_type[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_cooldown(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].cooldown[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].cooldown[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_fixed_cast(int skill_id, int skill_lv)
+{
+ int idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
#ifdef RENEWAL_CAST
- Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].fixed_cast[skill_glv(skill_lv-1)], skill_id, skill_lv);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].fixed_cast[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].fixed_cast[skill_get_lvl_idx(skill_lv)];
#else
return 0;
#endif
}
-int skill_tree_get_max(uint16 skill_id, int class)
+int skill_tree_get_max(int skill_id, int class)
{
int i;
int class_idx = pc->class2idx(class);
@@ -231,7 +604,7 @@ int skill_tree_get_max(uint16 skill_id, int class)
return skill->get_max(skill_id);
}
-int skill_get_casttype(uint16 skill_id)
+int skill_get_casttype(int skill_id)
{
int inf = skill->get_inf(skill_id);
if (inf&(INF_GROUND_SKILL))
@@ -248,7 +621,7 @@ int skill_get_casttype(uint16 skill_id)
return CAST_DAMAGE;
}
-int skill_get_casttype2(uint16 index)
+int skill_get_casttype2(int index)
{
int inf;
Assert_retr(CAST_NODAMAGE, index < MAX_SKILL_DB);
@@ -268,7 +641,7 @@ int skill_get_casttype2(uint16 index)
}
//Returns actual skill range taking into account attack range and AC_OWL [Skotlex]
-int skill_get_range2(struct block_list *bl, uint16 skill_id, uint16 skill_lv)
+int skill_get_range2(struct block_list *bl, int skill_id, int skill_lv)
{
int range;
struct map_session_data *sd = BL_CAST(BL_PC, bl);
@@ -3175,8 +3548,8 @@ int skill_check_condition_mercenary(struct block_list *bl, int skill_id, int lv,
struct status_data *st;
struct map_session_data *sd = NULL;
int i, hp, sp, hp_rate, sp_rate, state, mhp;
- uint16 idx;
- int itemid[MAX_SKILL_ITEM_REQUIRE],amount[ARRAYLENGTH(itemid)],index[ARRAYLENGTH(itemid)];
+ int idx;
+ int itemid[MAX_SKILL_ITEM_REQUIRE], amount[MAX_SKILL_ITEM_REQUIRE], index[MAX_SKILL_ITEM_REQUIRE];
if( lv < 1 || lv > MAX_SKILL_LEVEL )
return 0;
@@ -3192,8 +3565,7 @@ int skill_check_condition_mercenary(struct block_list *bl, int skill_id, int lv,
return 0;
// Requirements
- for( i = 0; i < ARRAYLENGTH(itemid); i++ )
- {
+ for (i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) {
itemid[i] = skill->dbs->db[idx].itemid[i];
amount[i] = skill->dbs->db[idx].amount[i];
}
@@ -6666,7 +7038,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
// custom hack to make the mob display the skill, because these skills don't show the skill use text themselves
//NOTE: mobs don't have the sprite animation that is used when performing this skill (will cause glitches)
char temp[70];
- snprintf(temp, sizeof(temp), "%s : %s !!",md->name,skill->dbs->db[skill_id].desc);
+ snprintf(temp, sizeof(temp), "%s : %s !!", md->name, skill->get_desc(skill_id));
clif->disp_overhead(&md->bl,temp);
}
break;
@@ -6865,7 +7237,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
return 1;
}
if( sd->skillitem != skill_id )
- status_zap(src,0,skill->dbs->db[skill->get_index(skill_id)].sp[skill_lv]); // consume sp only if succeeded
+ status_zap(src, 0, skill->get_sp(skill_id, skill_lv)); // consume sp only if succeeded
}
break;
@@ -7041,21 +7413,22 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
return 1;
}
if( sd ) {
- int x,bonus=100, potion = min(500+skill_lv,505);
- x = skill_lv%11 - 1;
- i = pc->search_inventory(sd,skill->dbs->db[skill_id].itemid[x]);
- if (i == INDEX_NOT_FOUND || skill->dbs->db[skill_id].itemid[x] <= 0) {
+ int bonus = 100, potion = min(500+skill_lv,505);
+ int item_idx = (skill_lv - 1) % MAX_SKILL_ITEM_REQUIRE;
+ int item_id = skill->get_itemid(skill_id, item_idx);
+ int inventory_idx = pc->search_inventory(sd, item_id);
+ if (inventory_idx == INDEX_NOT_FOUND || item_id <= 0) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
map->freeblock_unlock();
return 1;
}
- if(sd->inventory_data[i] == NULL || sd->status.inventory[i].amount < skill->dbs->db[skill_id].amount[x]) {
+ if (sd->inventory_data[inventory_idx] == NULL || sd->status.inventory[inventory_idx].amount < skill->get_itemqty(skill_id, item_idx)) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
map->freeblock_unlock();
return 1;
}
if( skill_id == AM_BERSERKPITCHER ) {
- if (dstsd && dstsd->status.base_level < sd->inventory_data[i]->elv) {
+ if (dstsd != NULL && dstsd->status.base_level < sd->inventory_data[inventory_idx]->elv) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
map->freeblock_unlock();
return 1;
@@ -7064,7 +7437,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
script->potion_flag = 1;
script->potion_hp = script->potion_sp = script->potion_per_hp = script->potion_per_sp = 0;
script->potion_target = bl->id;
- script->run_use_script(sd, sd->inventory_data[i], 0);
+ script->run_use_script(sd, sd->inventory_data[inventory_idx], 0);
script->potion_flag = script->potion_target = 0;
if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_ALCHEMIST )
bonus += sd->status.base_level;
@@ -7384,7 +7757,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
maxlv = skill_lv - 4;
}
else if(skill_lv >=2) {
- int i = rnd()%3;
+ int i = rnd() % ARRAYLENGTH(spellarray);
spellid = spellarray[i];
maxlv = skill_lv - 1;
}
@@ -7591,14 +7964,14 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
case WE_MALE:
{
- int hp_rate = (!skill_lv)? 0:skill->dbs->db[skill_id].hp_rate[skill_lv-1];
+ int hp_rate = skill_lv == 0 ? 0 : skill->get_hp_rate(skill_id, skill_lv);
int gain_hp = tstatus->max_hp*abs(hp_rate)/100; // The earned is the same % of the target HP than it cost the caster. [Skotlex]
clif->skill_nodamage(src,bl,skill_id,status->heal(bl, gain_hp, 0, 0),1);
}
break;
case WE_FEMALE:
{
- int sp_rate = (!skill_lv)? 0:skill->dbs->db[skill_id].sp_rate[skill_lv-1];
+ int sp_rate = skill_lv == 0 ? 0 : skill->get_sp_rate(skill_id, skill_lv);
int gain_sp = tstatus->max_sp*abs(sp_rate)/100;// The earned is the same % of the target SP than it cost the caster. [Skotlex]
clif->skill_nodamage(src,bl,skill_id,status->heal(bl, 0, gain_sp, 0),1);
}
@@ -7661,16 +8034,17 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if( battle_config.skill_removetrap_type ) {
int i;
// get back all items used to deploy the trap
- for( i = 0; i < 10; i++ ) {
- if( skill->dbs->db[su->group->skill_id].itemid[i] > 0 ) {
+ for (i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) {
+ int nameid = skill->get_itemid(su->group->skill_id, i);
+ if (nameid > 0) {
int success;
- struct item item_tmp;
- memset(&item_tmp,0,sizeof(item_tmp));
- item_tmp.nameid = skill->dbs->db[su->group->skill_id].itemid[i];
+ struct item item_tmp = { 0 };
+ int amount = skill->get_itemqty(su->group->skill_id, i);
+ item_tmp.nameid = nameid;
item_tmp.identify = 1;
- if (item_tmp.nameid && (success=pc->additem(sd,&item_tmp,skill->dbs->db[su->group->skill_id].amount[i],LOG_TYPE_SKILL)) != 0) {
+ if ((success = pc->additem(sd, &item_tmp, amount, LOG_TYPE_SKILL)) != 0) {
clif->additem(sd,0,0,success);
- map->addflooritem(&sd->bl, &item_tmp, skill->dbs->db[su->group->skill_id].amount[i], sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &item_tmp, amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
}
}
}
@@ -7902,7 +8276,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
map->freeblock_unlock();
return 0;
}
- status_zap(src,0,skill->dbs->db[skill->get_index(skill_id)].sp[skill_lv]); // consume sp only if succeeded [Inkfish]
+ status_zap(src, 0, skill->get_sp(skill_id, skill_lv)); // consume sp only if succeeded [Inkfish]
do {
int eff = rnd() % 14;
if( eff == 5 )
@@ -7926,7 +8300,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
clif->damage(src,bl,0,0,1000,0,BDT_NORMAL,0);
if( !status->isdead(bl) ) {
int where[] = { EQP_ARMOR, EQP_SHIELD, EQP_HELM, EQP_SHOES, EQP_GARMENT };
- skill->break_equip(bl, where[rnd()%5], 10000, BCT_ENEMY);
+ skill->break_equip(bl, where[rnd() % ARRAYLENGTH(where)], 10000, BCT_ENEMY);
}
}
break;
@@ -7947,7 +8321,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
case 7: // stop freeze or stoned
{
enum sc_type sc[] = { SC_STOP, SC_FREEZE, SC_STONE };
- sc_start(src,bl,sc[rnd()%3],100,skill_lv,skill->get_time2(skill_id,skill_lv));
+ sc_start(src,bl,sc[rnd() % ARRAYLENGTH(sc)],100,skill_lv,skill->get_time2(skill_id,skill_lv));
}
break;
case 8: // curse coma and poison
@@ -10837,10 +11211,13 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
// Slim Pitcher [Celest]
case CR_SLIMPITCHER:
if (sd) {
- int i = skill_lv%11 - 1;
- int j = pc->search_inventory(sd,skill->dbs->db[skill_id].itemid[i]);
- if (j == INDEX_NOT_FOUND || skill->dbs->db[skill_id].itemid[i] <= 0
- || sd->inventory_data[j] == NULL || sd->status.inventory[j].amount < skill->dbs->db[skill_id].amount[i]
+ int item_idx = (skill_lv - 1) % MAX_SKILL_ITEM_REQUIRE;
+ int item_id = skill->get_itemid(skill_id, item_idx);
+ int inventory_idx = pc->search_inventory(sd, item_id);
+ int bonus;
+ if (inventory_idx == INDEX_NOT_FOUND || item_id <= 0
+ || sd->inventory_data[inventory_idx] == NULL
+ || sd->status.inventory[inventory_idx].amount < skill->get_itemqty(skill_id, item_idx)
) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 1;
@@ -10848,44 +11225,44 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
script->potion_flag = 1;
script->potion_hp = 0;
script->potion_sp = 0;
- script->run_use_script(sd, sd->inventory_data[j], 0);
+ script->run_use_script(sd, sd->inventory_data[inventory_idx], 0);
script->potion_flag = 0;
//Apply skill bonuses
- i = pc->checkskill(sd,CR_SLIMPITCHER)*10
+ bonus = pc->checkskill(sd,CR_SLIMPITCHER)*10
+ pc->checkskill(sd,AM_POTIONPITCHER)*10
+ pc->checkskill(sd,AM_LEARNINGPOTION)*5
+ pc->skillheal_bonus(sd, skill_id);
- script->potion_hp = script->potion_hp * (100+i)/100;
- script->potion_sp = script->potion_sp * (100+i)/100;
+ script->potion_hp = script->potion_hp * (100 + bonus) / 100;
+ script->potion_sp = script->potion_sp * (100 + bonus) / 100;
- if(script->potion_hp > 0 || script->potion_sp > 0) {
- i = skill->get_splash(skill_id, skill_lv);
+ if (script->potion_hp > 0 || script->potion_sp > 0) {
+ r = skill->get_splash(skill_id, skill_lv);
map->foreachinarea(skill->area_sub,
- src->m,x-i,y-i,x+i,y+i,BL_CHAR,
- src,skill_id,skill_lv,tick,flag|BCT_PARTY|BCT_GUILD|1,
+ src->m, x - r, y - r, x + r, y + r, BL_CHAR,
+ src, skill_id, skill_lv, tick, flag|BCT_PARTY|BCT_GUILD|1,
skill->castend_nodamage_id);
}
} else {
- int i = skill_lv%11 - 1;
- struct item_data *item;
- i = skill->dbs->db[skill_id].itemid[i];
- item = itemdb->search(i);
+ int item_idx = (skill_lv - 1) % MAX_SKILL_ITEM_REQUIRE;
+ int item_id = skill->get_itemid(skill_id, item_idx);
+ struct item_data *item = itemdb->search(item_id);
+ int bonus;
script->potion_flag = 1;
script->potion_hp = 0;
script->potion_sp = 0;
script->run(item->script,0,src->id,0);
script->potion_flag = 0;
- i = skill->get_max(CR_SLIMPITCHER)*10;
+ bonus = skill->get_max(CR_SLIMPITCHER)*10;
- script->potion_hp = script->potion_hp * (100+i)/100;
- script->potion_sp = script->potion_sp * (100+i)/100;
+ script->potion_hp = script->potion_hp * (100 + bonus)/100;
+ script->potion_sp = script->potion_sp * (100 + bonus)/100;
- if(script->potion_hp > 0 || script->potion_sp > 0) {
- i = skill->get_splash(skill_id, skill_lv);
+ if (script->potion_hp > 0 || script->potion_sp > 0) {
+ r = skill->get_splash(skill_id, skill_lv);
map->foreachinarea(skill->area_sub,
- src->m,x-i,y-i,x+i,y+i,BL_CHAR,
- src,skill_id,skill_lv,tick,flag|BCT_PARTY|BCT_GUILD|1,
+ src->m, x - r, y - r, x + r, y + r, BL_CHAR,
+ src, skill_id, skill_lv, tick, flag|BCT_PARTY|BCT_GUILD|1,
skill->castend_nodamage_id);
}
}
@@ -11636,27 +12013,27 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
int element[5]={ELE_WIND,ELE_DARK,ELE_POISON,ELE_WATER,ELE_FIRE};
val1 = st->rhw.ele;
- if (!val1)
- val1=element[rnd()%5];
+ if (val1 == ELE_NEUTRAL)
+ val1 = element[rnd() % ARRAYLENGTH(element)];
- switch (val1)
- {
+ switch (val1) {
case ELE_FIRE:
- subunt++;
- FALLTHROUGH
+ subunt = 4;
+ break;
case ELE_WATER:
- subunt++;
- FALLTHROUGH
+ subunt = 3;
+ break;
case ELE_POISON:
- subunt++;
- FALLTHROUGH
+ subunt = 2;
+ break;
case ELE_DARK:
- subunt++;
- FALLTHROUGH
+ subunt = 1;
+ break;
case ELE_WIND:
+ subunt = 0;
break;
default:
- subunt=rnd()%5;
+ subunt = rnd() % 5;
break;
}
@@ -14824,7 +15201,8 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
}
for( i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++ ) {
- if( (skill_id == AM_POTIONPITCHER || skill_id == CR_SLIMPITCHER || skill_id == CR_CULTIVATION) && i != skill_lv%11 - 1 )
+ int item_idx = (skill_lv - 1) % MAX_SKILL_ITEM_REQUIRE;
+ if ((skill_id == AM_POTIONPITCHER || skill_id == CR_SLIMPITCHER || skill_id == CR_CULTIVATION) && i != item_idx)
continue;
switch( skill_id ) {
@@ -16618,15 +16996,16 @@ struct skill_unit_group* skill_id2group(int group_id)
/// Fatal error if nothing is available.
int skill_get_new_group_id(void)
{
- if( skill->unit_group_newid >= MAX_SKILL_DB && skill->id2group(skill->unit_group_newid) == NULL )
+ if (skill->unit_group_newid > MAX_SKILL_ID && skill->id2group(skill->unit_group_newid) == NULL)
return skill->unit_group_newid++;// available
- {// find next id
+
+ {
+ // find next id
int base_id = skill->unit_group_newid;
- while( base_id != ++skill->unit_group_newid )
- {
- if( skill->unit_group_newid < MAX_SKILL_DB )
- skill->unit_group_newid = MAX_SKILL_DB;
- if( skill->id2group(skill->unit_group_newid) == NULL )
+ while (base_id != ++skill->unit_group_newid) {
+ if (skill->unit_group_newid <= MAX_SKILL_ID)
+ skill->unit_group_newid = MAX_SKILL_ID + 1;
+ if (skill->id2group(skill->unit_group_newid) == NULL)
return skill->unit_group_newid++;// available
}
// full loop, nothing available
@@ -17719,7 +18098,7 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
int difficulty = 30 + rnd()%120; // Random number between (30 ~ 150)
make_per = sd->status.job_level / 4 + st->luk / 2 + st->dex / 3; // (Caster?s Job Level / 4) + (Caster?s LUK / 2) + (Caster?s DEX / 3)
- qty = ~(5 + rnd()%5) + 1;
+ qty = ~(5 + rnd()%5) + 1; // FIXME[Haru]: This smells, if anyone knows the intent, please rewrite the expression in a more clear form.
switch(nameid){// difficulty factor
case ITEMID_APPLE_BOMB:
@@ -17755,7 +18134,7 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
qty = 5;
if( qty < 0 || (skill_lv == 1 && make_per < difficulty)){
- qty = ~qty + 1;
+ qty = ~qty + 1; // FIXME[Haru]: This smells. If anyone knows the intent, please rewrite the expression in a more clear form.
make_per = 0;
}else
make_per = 10000;
@@ -18012,7 +18391,7 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
int rate = rnd()%500;
memset(&tmp_item,0,sizeof(tmp_item));
if( rate < 50) i = 4;
- else if( rate < 100) i = 2+rnd()%1;
+ else if( rate < 100) i = 2+rnd()%1; // FIXME[Haru]: This '%1' is certainly not intended. If anyone knows the purpose, please rewrite this code.
else if( rate < 250 ) i = 1;
else if( rate < 500 ) i = 0;
tmp_item.nameid = compensation[i];
@@ -18435,7 +18814,7 @@ int skill_blockpc_end(int tid, int64 tick, int id, intptr_t data)
struct map_session_data *sd = map->id2sd(id);
struct skill_cd * cd = NULL;
- if (data <= 0 || data >= MAX_SKILL)
+ if (data <= 0 || data >= MAX_SKILL_DB)
return 0;
if (!sd || !sd->blockskill[data])
return 0;
@@ -18571,7 +18950,7 @@ int skill_blockpc_start_(struct map_session_data *sd, uint16 skill_id, int tick)
int skill_blockhomun_end(int tid, int64 tick, int id, intptr_t data)
{
struct homun_data *hd = map->id2hd(id);
- if (data <= 0 || data >= MAX_SKILL)
+ if (data <= 0 || data >= MAX_SKILL_DB)
return 0;
if (hd != NULL)
hd->blockskill[data] = 0;
@@ -18600,7 +18979,7 @@ int skill_blockhomun_start(struct homun_data *hd, uint16 skill_id, int tick)
int skill_blockmerc_end(int tid, int64 tick, int id, intptr_t data)
{
struct mercenary_data *md = map->id2mc(id);
- if (data <= 0 || data >= MAX_SKILL)
+ if (data <= 0 || data >= MAX_SKILL_DB)
return 0;
if (md != NULL)
md->blockskill[data] = 0;
@@ -20477,7 +20856,7 @@ bool skill_read_skilldb(const char *filename)
struct config_setting_t *sk, *conf;
char filepath[256];
int count=0, index=0;
- bool duplicate[MAX_SKILL] = {0};
+ bool duplicate[MAX_SKILL_DB] = {0};
nullpo_retr(false, filename);
@@ -20902,8 +21281,12 @@ void skill_defaults(void)
skill->get_hp = skill_get_hp;
skill->get_mhp = skill_get_mhp;
skill->get_sp = skill_get_sp;
+ skill->get_hp_rate = skill_get_hp_rate;
+ skill->get_sp_rate = skill_get_sp_rate;
skill->get_state = skill_get_state;
skill->get_spiritball = skill_get_spiritball;
+ skill->get_itemid = skill_get_itemid;
+ skill->get_itemqty = skill_get_itemqty;
skill->get_zeny = skill_get_zeny;
skill->get_num = skill_get_num;
skill->get_cast = skill_get_cast;
@@ -20932,7 +21315,6 @@ void skill_defaults(void)
skill->tree_get_max = skill_tree_get_max;
skill->get_name = skill_get_name;
skill->get_desc = skill_get_desc;
- skill->chk = skill_chk;
skill->get_casttype = skill_get_casttype;
skill->get_casttype2 = skill_get_casttype2;
skill->is_combo = skill_is_combo;
diff --git a/src/map/skill.h b/src/map/skill.h
index bba440107..fa95a1a99 100644
--- a/src/map/skill.h
+++ b/src/map/skill.h
@@ -25,7 +25,7 @@
#include "map/status.h" // enum sc_type
#include "common/hercules.h"
#include "common/db.h"
-#include "common/mmo.h" // MAX_SKILL, struct square
+#include "common/mmo.h" // MAX_SKILL_DB, struct square
/**
* Declarations
@@ -43,7 +43,6 @@ struct status_change_entry;
/**
* Defines
**/
-#define MAX_SKILL_DB MAX_SKILL
#define MAX_SKILL_PRODUCE_DB 270
#define MAX_PRODUCE_RESOURCE 10
#define MAX_SKILL_ARROW_DB 140
@@ -1930,54 +1929,56 @@ struct skill_interface {
int unit_temp[20]; // temporary storage for tracking skill unit skill ids as players move in/out of them
int unit_group_newid;
/* accesssors */
- int (*get_index) ( uint16 skill_id );
- int (*get_type) ( uint16 skill_id );
- int (*get_hit) ( uint16 skill_id );
- int (*get_inf) ( uint16 skill_id );
- int (*get_ele) ( uint16 skill_id, uint16 skill_lv );
- int (*get_nk) ( uint16 skill_id );
- int (*get_max) ( uint16 skill_id );
- int (*get_range) ( uint16 skill_id, uint16 skill_lv );
- int (*get_range2) (struct block_list *bl, uint16 skill_id, uint16 skill_lv);
- int (*get_splash) ( uint16 skill_id, uint16 skill_lv );
- int (*get_hp) ( uint16 skill_id, uint16 skill_lv );
- int (*get_mhp) ( uint16 skill_id, uint16 skill_lv );
- int (*get_sp) ( uint16 skill_id, uint16 skill_lv );
- int (*get_state) (uint16 skill_id);
- int (*get_spiritball) (uint16 skill_id, uint16 skill_lv);
- int (*get_zeny) ( uint16 skill_id, uint16 skill_lv );
- int (*get_num) ( uint16 skill_id, uint16 skill_lv );
- int (*get_cast) ( uint16 skill_id, uint16 skill_lv );
- int (*get_delay) ( uint16 skill_id, uint16 skill_lv );
- int (*get_walkdelay) ( uint16 skill_id, uint16 skill_lv );
- int (*get_time) ( uint16 skill_id, uint16 skill_lv );
- int (*get_time2) ( uint16 skill_id, uint16 skill_lv );
- int (*get_castnodex) ( uint16 skill_id, uint16 skill_lv );
- int (*get_delaynodex) ( uint16 skill_id ,uint16 skill_lv );
- int (*get_castdef) ( uint16 skill_id );
- int (*get_weapontype) ( uint16 skill_id );
- int (*get_ammotype) ( uint16 skill_id );
- int (*get_ammo_qty) ( uint16 skill_id, uint16 skill_lv );
- int (*get_unit_id) (uint16 skill_id,int flag);
- int (*get_inf2) ( uint16 skill_id );
- int (*get_castcancel) ( uint16 skill_id );
- int (*get_maxcount) ( uint16 skill_id, uint16 skill_lv );
- int (*get_blewcount) ( uint16 skill_id, uint16 skill_lv );
- int (*get_unit_flag) ( uint16 skill_id );
- int (*get_unit_target) ( uint16 skill_id );
- int (*get_unit_interval) ( uint16 skill_id );
- int (*get_unit_bl_target) ( uint16 skill_id );
- int (*get_unit_layout_type) ( uint16 skill_id ,uint16 skill_lv );
- int (*get_unit_range) ( uint16 skill_id, uint16 skill_lv );
- int (*get_cooldown) ( uint16 skill_id, uint16 skill_lv );
- int (*tree_get_max) (uint16 skill_id, int class);
- const char *(*get_name) ( uint16 skill_id );
- const char *(*get_desc) ( uint16 skill_id );
- /* check */
- void (*chk) (uint16* skill_id);
+ int (*get_index) (int skill_id);
+ int (*get_type) (int skill_id);
+ int (*get_hit) (int skill_id);
+ int (*get_inf) (int skill_id);
+ int (*get_ele) (int skill_id, int skill_lv);
+ int (*get_nk) (int skill_id);
+ int (*get_max) (int skill_id);
+ int (*get_range) (int skill_id, int skill_lv);
+ int (*get_range2) (struct block_list *bl, int skill_id, int skill_lv);
+ int (*get_splash) (int skill_id, int skill_lv);
+ int (*get_hp) (int skill_id, int skill_lv);
+ int (*get_mhp) (int skill_id, int skill_lv);
+ int (*get_sp) (int skill_id, int skill_lv);
+ int (*get_hp_rate) (int skill_id, int skill_lv);
+ int (*get_sp_rate) (int skill_id, int skill_lv);
+ int (*get_state) (int skill_id);
+ int (*get_spiritball) (int skill_id, int skill_lv);
+ int (*get_itemid) (int skill_id, int item_idx);
+ int (*get_itemqty) (int skill_id, int item_idx);
+ int (*get_zeny) (int skill_id, int skill_lv);
+ int (*get_num) (int skill_id, int skill_lv);
+ int (*get_cast) (int skill_id, int skill_lv);
+ int (*get_delay) (int skill_id, int skill_lv);
+ int (*get_walkdelay) (int skill_id, int skill_lv);
+ int (*get_time) (int skill_id, int skill_lv);
+ int (*get_time2) (int skill_id, int skill_lv);
+ int (*get_castnodex) (int skill_id, int skill_lv);
+ int (*get_delaynodex) (int skill_id, int skill_lv);
+ int (*get_castdef) (int skill_id);
+ int (*get_weapontype) (int skill_id);
+ int (*get_ammotype) (int skill_id);
+ int (*get_ammo_qty) (int skill_id, int skill_lv);
+ int (*get_unit_id) (int skill_id, int flag);
+ int (*get_inf2) (int skill_id);
+ int (*get_castcancel) (int skill_id);
+ int (*get_maxcount) (int skill_id, int skill_lv);
+ int (*get_blewcount) (int skill_id, int skill_lv);
+ int (*get_unit_flag) (int skill_id);
+ int (*get_unit_target) (int skill_id);
+ int (*get_unit_interval) (int skill_id);
+ int (*get_unit_bl_target) (int skill_id);
+ int (*get_unit_layout_type) (int skill_id, int skill_lv);
+ int (*get_unit_range) (int skill_id, int skill_lv);
+ int (*get_cooldown) (int skill_id, int skill_lv);
+ int (*tree_get_max) (int skill_id, int class);
+ const char *(*get_name) (int skill_id);
+ const char *(*get_desc) (int skill_id);
/* whether its CAST_GROUND, CAST_DAMAGE or CAST_NODAMAGE */
- int (*get_casttype) (uint16 skill_id);
- int (*get_casttype2) (uint16 index);
+ int (*get_casttype) (int skill_id);
+ int (*get_casttype2) (int index);
bool (*is_combo) (int skill_id);
int (*name2id) (const char* name);
int (*isammotype) (struct map_session_data *sd, int skill_id);
@@ -2071,7 +2072,7 @@ struct skill_interface {
int (*check_condition_mob_master_sub) (struct block_list *bl, va_list ap);
void (*brandishspear_first) (struct square *tc, uint8 dir, int16 x, int16 y);
void (*brandishspear_dir) (struct square* tc, uint8 dir, int are);
- int (*get_fixed_cast) ( uint16 skill_id ,uint16 skill_lv );
+ int (*get_fixed_cast) (int skill_id, int skill_lv);
int (*sit_count) (struct block_list *bl, va_list ap);
int (*sit_in) (struct block_list *bl, va_list ap);
int (*sit_out) (struct block_list *bl, va_list ap);
diff --git a/src/map/status.c b/src/map/status.c
index ccd1e6b11..ddb8c7e6a 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -159,7 +159,7 @@ void initChangeTables(void)
for (i = 0; i < SC_MAX; i++)
status->dbs->IconChangeTable[i] = SI_BLANK;
- for (i = 0; i < MAX_SKILL; i++)
+ for (i = 0; i < MAX_SKILL_DB; i++)
status->dbs->Skill2SCTable[i] = SC_NONE;
for (i = 0; i < SI_MAX; i++)
@@ -2329,7 +2329,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt)
static int calculating = 0; //Check for recursive call preemption. [Skotlex]
struct status_data *bstatus; // pointer to the player's base status
const struct status_change *sc;
- struct s_skill b_skill[MAX_SKILL]; // previous skill tree
+ struct s_skill b_skill[MAX_SKILL_DB]; // previous skill tree
int b_weight, b_max_weight, b_cart_weight_max, // previous weight
i, k, index, skill_lv,refinedef=0;
int64 i64;
diff --git a/src/map/status.h b/src/map/status.h
index a104c66ab..e9c2218e8 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -2257,7 +2257,7 @@ BEGIN_ZEROED_BLOCK; /* Everything within this block will be memset to 0 when sta
int HP_table[CLASS_COUNT][MAX_LEVEL + 1];
int SP_table[CLASS_COUNT][MAX_LEVEL + 1];
int aspd_base[CLASS_COUNT][MAX_SINGLE_WEAPON_TYPE+1]; // +1 for RENEWAL_ASPD
- sc_type Skill2SCTable[MAX_SKILL]; // skill -> status
+ sc_type Skill2SCTable[MAX_SKILL_DB]; // skill -> status
int IconChangeTable[SC_MAX]; // status -> "icon" (icon is a bit of a misnomer, since there exist values with no icon associated)
unsigned int ChangeFlagTable[SC_MAX]; // status -> flags
int SkillChangeTable[SC_MAX]; // status -> skill
diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc
index 9482e6c15..021d5fcaa 100644
--- a/src/plugins/HPMHooking/HPMHooking.Defs.inc
+++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc
@@ -6358,98 +6358,104 @@ typedef void (*HPMHOOK_pre_skill_reload) (void);
typedef void (*HPMHOOK_post_skill_reload) (void);
typedef void (*HPMHOOK_pre_skill_read_db) (bool *minimal);
typedef void (*HPMHOOK_post_skill_read_db) (bool minimal);
-typedef int (*HPMHOOK_pre_skill_get_index) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_index) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_type) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_type) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_hit) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_hit) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_inf) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_inf) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_ele) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_ele) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_nk) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_nk) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_max) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_max) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_range) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_range) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_range2) (struct block_list **bl, uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_range2) (int retVal___, struct block_list *bl, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_splash) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_splash) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_hp) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_hp) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_mhp) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_mhp) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_sp) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_sp) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_state) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_state) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_spiritball) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_spiritball) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_zeny) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_zeny) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_num) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_num) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_cast) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_cast) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_delay) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_delay) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_walkdelay) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_walkdelay) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_time) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_time) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_time2) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_time2) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_castnodex) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_castnodex) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_delaynodex) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_delaynodex) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_castdef) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_castdef) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_weapontype) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_weapontype) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_ammotype) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_ammotype) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_ammo_qty) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_ammo_qty) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_unit_id) (uint16 *skill_id, int *flag);
-typedef int (*HPMHOOK_post_skill_get_unit_id) (int retVal___, uint16 skill_id, int flag);
-typedef int (*HPMHOOK_pre_skill_get_inf2) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_inf2) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_castcancel) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_castcancel) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_maxcount) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_maxcount) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_blewcount) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_blewcount) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_unit_flag) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_unit_flag) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_unit_target) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_unit_target) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_unit_interval) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_unit_interval) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_unit_bl_target) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_unit_bl_target) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_unit_layout_type) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_unit_layout_type) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_unit_range) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_unit_range) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_cooldown) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_cooldown) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_tree_get_max) (uint16 *skill_id, int *class);
-typedef int (*HPMHOOK_post_skill_tree_get_max) (int retVal___, uint16 skill_id, int class);
-typedef const char* (*HPMHOOK_pre_skill_get_name) (uint16 *skill_id);
-typedef const char* (*HPMHOOK_post_skill_get_name) (const char* retVal___, uint16 skill_id);
-typedef const char* (*HPMHOOK_pre_skill_get_desc) (uint16 *skill_id);
-typedef const char* (*HPMHOOK_post_skill_get_desc) (const char* retVal___, uint16 skill_id);
-typedef void (*HPMHOOK_pre_skill_chk) (uint16 **skill_id);
-typedef void (*HPMHOOK_post_skill_chk) (uint16 *skill_id);
-typedef int (*HPMHOOK_pre_skill_get_casttype) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_casttype) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_casttype2) (uint16 *index);
-typedef int (*HPMHOOK_post_skill_get_casttype2) (int retVal___, uint16 index);
+typedef int (*HPMHOOK_pre_skill_get_index) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_index) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_type) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_type) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_hit) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_hit) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_inf) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_inf) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_ele) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_ele) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_nk) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_nk) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_max) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_max) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_range) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_range) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_range2) (struct block_list **bl, int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_range2) (int retVal___, struct block_list *bl, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_splash) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_splash) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_hp) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_hp) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_mhp) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_mhp) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_sp) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_sp) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_hp_rate) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_hp_rate) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_sp_rate) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_sp_rate) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_state) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_state) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_spiritball) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_spiritball) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_itemid) (int *skill_id, int *item_idx);
+typedef int (*HPMHOOK_post_skill_get_itemid) (int retVal___, int skill_id, int item_idx);
+typedef int (*HPMHOOK_pre_skill_get_itemqty) (int *skill_id, int *item_idx);
+typedef int (*HPMHOOK_post_skill_get_itemqty) (int retVal___, int skill_id, int item_idx);
+typedef int (*HPMHOOK_pre_skill_get_zeny) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_zeny) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_num) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_num) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_cast) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_cast) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_delay) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_delay) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_walkdelay) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_walkdelay) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_time) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_time) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_time2) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_time2) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_castnodex) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_castnodex) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_delaynodex) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_delaynodex) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_castdef) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_castdef) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_weapontype) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_weapontype) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_ammotype) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_ammotype) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_ammo_qty) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_ammo_qty) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_unit_id) (int *skill_id, int *flag);
+typedef int (*HPMHOOK_post_skill_get_unit_id) (int retVal___, int skill_id, int flag);
+typedef int (*HPMHOOK_pre_skill_get_inf2) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_inf2) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_castcancel) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_castcancel) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_maxcount) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_maxcount) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_blewcount) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_blewcount) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_unit_flag) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_unit_flag) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_unit_target) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_unit_target) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_unit_interval) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_unit_interval) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_unit_bl_target) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_unit_bl_target) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_unit_layout_type) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_unit_layout_type) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_unit_range) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_unit_range) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_cooldown) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_cooldown) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_tree_get_max) (int *skill_id, int *class);
+typedef int (*HPMHOOK_post_skill_tree_get_max) (int retVal___, int skill_id, int class);
+typedef const char* (*HPMHOOK_pre_skill_get_name) (int *skill_id);
+typedef const char* (*HPMHOOK_post_skill_get_name) (const char* retVal___, int skill_id);
+typedef const char* (*HPMHOOK_pre_skill_get_desc) (int *skill_id);
+typedef const char* (*HPMHOOK_post_skill_get_desc) (const char* retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_casttype) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_casttype) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_casttype2) (int *index);
+typedef int (*HPMHOOK_post_skill_get_casttype2) (int retVal___, int index);
typedef bool (*HPMHOOK_pre_skill_is_combo) (int *skill_id);
typedef bool (*HPMHOOK_post_skill_is_combo) (bool retVal___, int skill_id);
typedef int (*HPMHOOK_pre_skill_name2id) (const char **name);
@@ -6636,8 +6642,8 @@ typedef void (*HPMHOOK_pre_skill_brandishspear_first) (struct square **tc, uint8
typedef void (*HPMHOOK_post_skill_brandishspear_first) (struct square *tc, uint8 dir, int16 x, int16 y);
typedef void (*HPMHOOK_pre_skill_brandishspear_dir) (struct square **tc, uint8 *dir, int *are);
typedef void (*HPMHOOK_post_skill_brandishspear_dir) (struct square *tc, uint8 dir, int are);
-typedef int (*HPMHOOK_pre_skill_get_fixed_cast) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_fixed_cast) (int retVal___, uint16 skill_id, uint16 skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_fixed_cast) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_fixed_cast) (int retVal___, int skill_id, int skill_lv);
typedef int (*HPMHOOK_pre_skill_sit_count) (struct block_list **bl, va_list ap);
typedef int (*HPMHOOK_post_skill_sit_count) (int retVal___, struct block_list *bl, va_list ap);
typedef int (*HPMHOOK_pre_skill_sit_in) (struct block_list **bl, va_list ap);
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
index c3e6d5529..79f185f41 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
@@ -5102,10 +5102,18 @@ struct {
struct HPMHookPoint *HP_skill_get_mhp_post;
struct HPMHookPoint *HP_skill_get_sp_pre;
struct HPMHookPoint *HP_skill_get_sp_post;
+ struct HPMHookPoint *HP_skill_get_hp_rate_pre;
+ struct HPMHookPoint *HP_skill_get_hp_rate_post;
+ struct HPMHookPoint *HP_skill_get_sp_rate_pre;
+ struct HPMHookPoint *HP_skill_get_sp_rate_post;
struct HPMHookPoint *HP_skill_get_state_pre;
struct HPMHookPoint *HP_skill_get_state_post;
struct HPMHookPoint *HP_skill_get_spiritball_pre;
struct HPMHookPoint *HP_skill_get_spiritball_post;
+ struct HPMHookPoint *HP_skill_get_itemid_pre;
+ struct HPMHookPoint *HP_skill_get_itemid_post;
+ struct HPMHookPoint *HP_skill_get_itemqty_pre;
+ struct HPMHookPoint *HP_skill_get_itemqty_post;
struct HPMHookPoint *HP_skill_get_zeny_pre;
struct HPMHookPoint *HP_skill_get_zeny_post;
struct HPMHookPoint *HP_skill_get_num_pre;
@@ -5162,8 +5170,6 @@ struct {
struct HPMHookPoint *HP_skill_get_name_post;
struct HPMHookPoint *HP_skill_get_desc_pre;
struct HPMHookPoint *HP_skill_get_desc_post;
- struct HPMHookPoint *HP_skill_chk_pre;
- struct HPMHookPoint *HP_skill_chk_post;
struct HPMHookPoint *HP_skill_get_casttype_pre;
struct HPMHookPoint *HP_skill_get_casttype_post;
struct HPMHookPoint *HP_skill_get_casttype2_pre;
@@ -11303,10 +11309,18 @@ struct {
int HP_skill_get_mhp_post;
int HP_skill_get_sp_pre;
int HP_skill_get_sp_post;
+ int HP_skill_get_hp_rate_pre;
+ int HP_skill_get_hp_rate_post;
+ int HP_skill_get_sp_rate_pre;
+ int HP_skill_get_sp_rate_post;
int HP_skill_get_state_pre;
int HP_skill_get_state_post;
int HP_skill_get_spiritball_pre;
int HP_skill_get_spiritball_post;
+ int HP_skill_get_itemid_pre;
+ int HP_skill_get_itemid_post;
+ int HP_skill_get_itemqty_pre;
+ int HP_skill_get_itemqty_post;
int HP_skill_get_zeny_pre;
int HP_skill_get_zeny_post;
int HP_skill_get_num_pre;
@@ -11363,8 +11377,6 @@ struct {
int HP_skill_get_name_post;
int HP_skill_get_desc_pre;
int HP_skill_get_desc_post;
- int HP_skill_chk_pre;
- int HP_skill_chk_post;
int HP_skill_get_casttype_pre;
int HP_skill_get_casttype_post;
int HP_skill_get_casttype2_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
index 15052b7f1..411f34742 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
@@ -2615,8 +2615,12 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(skill->get_hp, HP_skill_get_hp) },
{ HP_POP(skill->get_mhp, HP_skill_get_mhp) },
{ HP_POP(skill->get_sp, HP_skill_get_sp) },
+ { HP_POP(skill->get_hp_rate, HP_skill_get_hp_rate) },
+ { HP_POP(skill->get_sp_rate, HP_skill_get_sp_rate) },
{ HP_POP(skill->get_state, HP_skill_get_state) },
{ HP_POP(skill->get_spiritball, HP_skill_get_spiritball) },
+ { HP_POP(skill->get_itemid, HP_skill_get_itemid) },
+ { HP_POP(skill->get_itemqty, HP_skill_get_itemqty) },
{ HP_POP(skill->get_zeny, HP_skill_get_zeny) },
{ HP_POP(skill->get_num, HP_skill_get_num) },
{ HP_POP(skill->get_cast, HP_skill_get_cast) },
@@ -2645,7 +2649,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(skill->tree_get_max, HP_skill_tree_get_max) },
{ HP_POP(skill->get_name, HP_skill_get_name) },
{ HP_POP(skill->get_desc, HP_skill_get_desc) },
- { HP_POP(skill->chk, HP_skill_chk) },
{ HP_POP(skill->get_casttype, HP_skill_get_casttype) },
{ HP_POP(skill->get_casttype2, HP_skill_get_casttype2) },
{ HP_POP(skill->is_combo, HP_skill_is_combo) },
diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
index 69658949c..4bff0a6ff 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
@@ -67793,11 +67793,11 @@ void HP_skill_read_db(bool minimal) {
}
return;
}
-int HP_skill_get_index(uint16 skill_id) {
+int HP_skill_get_index(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_index_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_index_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_index_pre[hIndex].func;
@@ -67812,7 +67812,7 @@ int HP_skill_get_index(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_index(skill_id);
}
if (HPMHooks.count.HP_skill_get_index_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_index_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_index_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -67820,11 +67820,11 @@ int HP_skill_get_index(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_type(uint16 skill_id) {
+int HP_skill_get_type(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_type_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_type_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_type_pre[hIndex].func;
@@ -67839,7 +67839,7 @@ int HP_skill_get_type(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_type(skill_id);
}
if (HPMHooks.count.HP_skill_get_type_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_type_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_type_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -67847,11 +67847,11 @@ int HP_skill_get_type(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_hit(uint16 skill_id) {
+int HP_skill_get_hit(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_hit_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hit_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_hit_pre[hIndex].func;
@@ -67866,7 +67866,7 @@ int HP_skill_get_hit(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_hit(skill_id);
}
if (HPMHooks.count.HP_skill_get_hit_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hit_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_hit_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -67874,11 +67874,11 @@ int HP_skill_get_hit(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_inf(uint16 skill_id) {
+int HP_skill_get_inf(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_inf_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_inf_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_inf_pre[hIndex].func;
@@ -67893,7 +67893,7 @@ int HP_skill_get_inf(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_inf(skill_id);
}
if (HPMHooks.count.HP_skill_get_inf_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_inf_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_inf_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -67901,11 +67901,11 @@ int HP_skill_get_inf(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_ele(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_ele(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_ele_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ele_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_ele_pre[hIndex].func;
@@ -67920,7 +67920,7 @@ int HP_skill_get_ele(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_ele(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_ele_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ele_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_ele_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -67928,11 +67928,11 @@ int HP_skill_get_ele(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_nk(uint16 skill_id) {
+int HP_skill_get_nk(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_nk_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_nk_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_nk_pre[hIndex].func;
@@ -67947,7 +67947,7 @@ int HP_skill_get_nk(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_nk(skill_id);
}
if (HPMHooks.count.HP_skill_get_nk_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_nk_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_nk_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -67955,11 +67955,11 @@ int HP_skill_get_nk(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_max(uint16 skill_id) {
+int HP_skill_get_max(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_max_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_max_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_max_pre[hIndex].func;
@@ -67974,7 +67974,7 @@ int HP_skill_get_max(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_max(skill_id);
}
if (HPMHooks.count.HP_skill_get_max_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_max_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_max_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -67982,11 +67982,11 @@ int HP_skill_get_max(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_range(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_range(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_range_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_range_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_range_pre[hIndex].func;
@@ -68001,7 +68001,7 @@ int HP_skill_get_range(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_range(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_range_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_range_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_range_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68009,11 +68009,11 @@ int HP_skill_get_range(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_range2(struct block_list *bl, uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_range2(struct block_list *bl, int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_range2_pre > 0) {
- int (*preHookFunc) (struct block_list **bl, uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (struct block_list **bl, int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_range2_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_range2_pre[hIndex].func;
@@ -68028,7 +68028,7 @@ int HP_skill_get_range2(struct block_list *bl, uint16 skill_id, uint16 skill_lv)
retVal___ = HPMHooks.source.skill.get_range2(bl, skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_range2_post > 0) {
- int (*postHookFunc) (int retVal___, struct block_list *bl, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, struct block_list *bl, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_range2_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_range2_post[hIndex].func;
retVal___ = postHookFunc(retVal___, bl, skill_id, skill_lv);
@@ -68036,11 +68036,11 @@ int HP_skill_get_range2(struct block_list *bl, uint16 skill_id, uint16 skill_lv)
}
return retVal___;
}
-int HP_skill_get_splash(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_splash(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_splash_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_splash_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_splash_pre[hIndex].func;
@@ -68055,7 +68055,7 @@ int HP_skill_get_splash(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_splash(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_splash_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_splash_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_splash_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68063,11 +68063,11 @@ int HP_skill_get_splash(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_hp(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_hp(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_hp_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hp_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_hp_pre[hIndex].func;
@@ -68082,7 +68082,7 @@ int HP_skill_get_hp(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_hp(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_hp_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hp_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_hp_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68090,11 +68090,11 @@ int HP_skill_get_hp(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_mhp(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_mhp(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_mhp_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_mhp_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_mhp_pre[hIndex].func;
@@ -68109,7 +68109,7 @@ int HP_skill_get_mhp(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_mhp(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_mhp_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_mhp_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_mhp_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68117,11 +68117,11 @@ int HP_skill_get_mhp(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_sp(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_sp(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_sp_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_sp_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_sp_pre[hIndex].func;
@@ -68136,7 +68136,7 @@ int HP_skill_get_sp(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_sp(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_sp_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_sp_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_sp_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68144,11 +68144,65 @@ int HP_skill_get_sp(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_state(uint16 skill_id) {
+int HP_skill_get_hp_rate(int skill_id, int skill_lv) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_skill_get_hp_rate_pre > 0) {
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hp_rate_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_skill_get_hp_rate_pre[hIndex].func;
+ retVal___ = preHookFunc(&skill_id, &skill_lv);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.skill.get_hp_rate(skill_id, skill_lv);
+ }
+ if (HPMHooks.count.HP_skill_get_hp_rate_post > 0) {
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hp_rate_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_skill_get_hp_rate_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
+ }
+ }
+ return retVal___;
+}
+int HP_skill_get_sp_rate(int skill_id, int skill_lv) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_skill_get_sp_rate_pre > 0) {
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_sp_rate_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_skill_get_sp_rate_pre[hIndex].func;
+ retVal___ = preHookFunc(&skill_id, &skill_lv);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.skill.get_sp_rate(skill_id, skill_lv);
+ }
+ if (HPMHooks.count.HP_skill_get_sp_rate_post > 0) {
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_sp_rate_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_skill_get_sp_rate_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
+ }
+ }
+ return retVal___;
+}
+int HP_skill_get_state(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_state_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_state_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_state_pre[hIndex].func;
@@ -68163,7 +68217,7 @@ int HP_skill_get_state(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_state(skill_id);
}
if (HPMHooks.count.HP_skill_get_state_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_state_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_state_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68171,11 +68225,11 @@ int HP_skill_get_state(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_spiritball(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_spiritball(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_spiritball_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_spiritball_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_spiritball_pre[hIndex].func;
@@ -68190,7 +68244,7 @@ int HP_skill_get_spiritball(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_spiritball(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_spiritball_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_spiritball_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_spiritball_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68198,11 +68252,65 @@ int HP_skill_get_spiritball(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_zeny(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_itemid(int skill_id, int item_idx) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_skill_get_itemid_pre > 0) {
+ int (*preHookFunc) (int *skill_id, int *item_idx);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_itemid_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_skill_get_itemid_pre[hIndex].func;
+ retVal___ = preHookFunc(&skill_id, &item_idx);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.skill.get_itemid(skill_id, item_idx);
+ }
+ if (HPMHooks.count.HP_skill_get_itemid_post > 0) {
+ int (*postHookFunc) (int retVal___, int skill_id, int item_idx);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_itemid_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_skill_get_itemid_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, skill_id, item_idx);
+ }
+ }
+ return retVal___;
+}
+int HP_skill_get_itemqty(int skill_id, int item_idx) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_skill_get_itemqty_pre > 0) {
+ int (*preHookFunc) (int *skill_id, int *item_idx);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_itemqty_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_skill_get_itemqty_pre[hIndex].func;
+ retVal___ = preHookFunc(&skill_id, &item_idx);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.skill.get_itemqty(skill_id, item_idx);
+ }
+ if (HPMHooks.count.HP_skill_get_itemqty_post > 0) {
+ int (*postHookFunc) (int retVal___, int skill_id, int item_idx);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_itemqty_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_skill_get_itemqty_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, skill_id, item_idx);
+ }
+ }
+ return retVal___;
+}
+int HP_skill_get_zeny(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_zeny_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_zeny_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_zeny_pre[hIndex].func;
@@ -68217,7 +68325,7 @@ int HP_skill_get_zeny(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_zeny(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_zeny_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_zeny_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_zeny_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68225,11 +68333,11 @@ int HP_skill_get_zeny(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_num(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_num(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_num_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_num_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_num_pre[hIndex].func;
@@ -68244,7 +68352,7 @@ int HP_skill_get_num(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_num(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_num_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_num_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_num_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68252,11 +68360,11 @@ int HP_skill_get_num(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_cast(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_cast(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_cast_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_cast_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_cast_pre[hIndex].func;
@@ -68271,7 +68379,7 @@ int HP_skill_get_cast(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_cast(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_cast_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_cast_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_cast_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68279,11 +68387,11 @@ int HP_skill_get_cast(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_delay(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_delay(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_delay_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_delay_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_delay_pre[hIndex].func;
@@ -68298,7 +68406,7 @@ int HP_skill_get_delay(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_delay(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_delay_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_delay_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_delay_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68306,11 +68414,11 @@ int HP_skill_get_delay(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_walkdelay(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_walkdelay(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_walkdelay_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_walkdelay_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_walkdelay_pre[hIndex].func;
@@ -68325,7 +68433,7 @@ int HP_skill_get_walkdelay(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_walkdelay(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_walkdelay_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_walkdelay_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_walkdelay_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68333,11 +68441,11 @@ int HP_skill_get_walkdelay(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_time(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_time(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_time_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_time_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_time_pre[hIndex].func;
@@ -68352,7 +68460,7 @@ int HP_skill_get_time(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_time(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_time_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_time_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_time_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68360,11 +68468,11 @@ int HP_skill_get_time(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_time2(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_time2(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_time2_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_time2_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_time2_pre[hIndex].func;
@@ -68379,7 +68487,7 @@ int HP_skill_get_time2(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_time2(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_time2_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_time2_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_time2_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68387,11 +68495,11 @@ int HP_skill_get_time2(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_castnodex(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_castnodex(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_castnodex_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castnodex_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_castnodex_pre[hIndex].func;
@@ -68406,7 +68514,7 @@ int HP_skill_get_castnodex(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_castnodex(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_castnodex_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castnodex_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_castnodex_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68414,11 +68522,11 @@ int HP_skill_get_castnodex(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_delaynodex(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_delaynodex(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_delaynodex_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_delaynodex_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_delaynodex_pre[hIndex].func;
@@ -68433,7 +68541,7 @@ int HP_skill_get_delaynodex(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_delaynodex(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_delaynodex_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_delaynodex_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_delaynodex_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68441,11 +68549,11 @@ int HP_skill_get_delaynodex(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_castdef(uint16 skill_id) {
+int HP_skill_get_castdef(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_castdef_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castdef_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_castdef_pre[hIndex].func;
@@ -68460,7 +68568,7 @@ int HP_skill_get_castdef(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_castdef(skill_id);
}
if (HPMHooks.count.HP_skill_get_castdef_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castdef_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_castdef_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68468,11 +68576,11 @@ int HP_skill_get_castdef(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_weapontype(uint16 skill_id) {
+int HP_skill_get_weapontype(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_weapontype_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_weapontype_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_weapontype_pre[hIndex].func;
@@ -68487,7 +68595,7 @@ int HP_skill_get_weapontype(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_weapontype(skill_id);
}
if (HPMHooks.count.HP_skill_get_weapontype_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_weapontype_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_weapontype_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68495,11 +68603,11 @@ int HP_skill_get_weapontype(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_ammotype(uint16 skill_id) {
+int HP_skill_get_ammotype(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_ammotype_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ammotype_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_ammotype_pre[hIndex].func;
@@ -68514,7 +68622,7 @@ int HP_skill_get_ammotype(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_ammotype(skill_id);
}
if (HPMHooks.count.HP_skill_get_ammotype_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ammotype_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_ammotype_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68522,11 +68630,11 @@ int HP_skill_get_ammotype(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_ammo_qty(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_ammo_qty(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_ammo_qty_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ammo_qty_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_ammo_qty_pre[hIndex].func;
@@ -68541,7 +68649,7 @@ int HP_skill_get_ammo_qty(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_ammo_qty(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_ammo_qty_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ammo_qty_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_ammo_qty_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68549,11 +68657,11 @@ int HP_skill_get_ammo_qty(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_unit_id(uint16 skill_id, int flag) {
+int HP_skill_get_unit_id(int skill_id, int flag) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_id_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, int *flag);
+ int (*preHookFunc) (int *skill_id, int *flag);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_id_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_id_pre[hIndex].func;
@@ -68568,7 +68676,7 @@ int HP_skill_get_unit_id(uint16 skill_id, int flag) {
retVal___ = HPMHooks.source.skill.get_unit_id(skill_id, flag);
}
if (HPMHooks.count.HP_skill_get_unit_id_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, int flag);
+ int (*postHookFunc) (int retVal___, int skill_id, int flag);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_id_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_id_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, flag);
@@ -68576,11 +68684,11 @@ int HP_skill_get_unit_id(uint16 skill_id, int flag) {
}
return retVal___;
}
-int HP_skill_get_inf2(uint16 skill_id) {
+int HP_skill_get_inf2(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_inf2_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_inf2_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_inf2_pre[hIndex].func;
@@ -68595,7 +68703,7 @@ int HP_skill_get_inf2(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_inf2(skill_id);
}
if (HPMHooks.count.HP_skill_get_inf2_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_inf2_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_inf2_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68603,11 +68711,11 @@ int HP_skill_get_inf2(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_castcancel(uint16 skill_id) {
+int HP_skill_get_castcancel(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_castcancel_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castcancel_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_castcancel_pre[hIndex].func;
@@ -68622,7 +68730,7 @@ int HP_skill_get_castcancel(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_castcancel(skill_id);
}
if (HPMHooks.count.HP_skill_get_castcancel_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castcancel_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_castcancel_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68630,11 +68738,11 @@ int HP_skill_get_castcancel(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_maxcount(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_maxcount(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_maxcount_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_maxcount_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_maxcount_pre[hIndex].func;
@@ -68649,7 +68757,7 @@ int HP_skill_get_maxcount(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_maxcount(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_maxcount_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_maxcount_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_maxcount_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68657,11 +68765,11 @@ int HP_skill_get_maxcount(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_blewcount(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_blewcount(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_blewcount_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_blewcount_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_blewcount_pre[hIndex].func;
@@ -68676,7 +68784,7 @@ int HP_skill_get_blewcount(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_blewcount(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_blewcount_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_blewcount_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_blewcount_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68684,11 +68792,11 @@ int HP_skill_get_blewcount(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_unit_flag(uint16 skill_id) {
+int HP_skill_get_unit_flag(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_flag_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_flag_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_flag_pre[hIndex].func;
@@ -68703,7 +68811,7 @@ int HP_skill_get_unit_flag(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_unit_flag(skill_id);
}
if (HPMHooks.count.HP_skill_get_unit_flag_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_flag_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_flag_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68711,11 +68819,11 @@ int HP_skill_get_unit_flag(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_unit_target(uint16 skill_id) {
+int HP_skill_get_unit_target(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_target_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_target_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_target_pre[hIndex].func;
@@ -68730,7 +68838,7 @@ int HP_skill_get_unit_target(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_unit_target(skill_id);
}
if (HPMHooks.count.HP_skill_get_unit_target_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_target_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_target_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68738,11 +68846,11 @@ int HP_skill_get_unit_target(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_unit_interval(uint16 skill_id) {
+int HP_skill_get_unit_interval(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_interval_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_interval_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_interval_pre[hIndex].func;
@@ -68757,7 +68865,7 @@ int HP_skill_get_unit_interval(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_unit_interval(skill_id);
}
if (HPMHooks.count.HP_skill_get_unit_interval_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_interval_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_interval_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68765,11 +68873,11 @@ int HP_skill_get_unit_interval(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_unit_bl_target(uint16 skill_id) {
+int HP_skill_get_unit_bl_target(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_bl_target_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_bl_target_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_bl_target_pre[hIndex].func;
@@ -68784,7 +68892,7 @@ int HP_skill_get_unit_bl_target(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_unit_bl_target(skill_id);
}
if (HPMHooks.count.HP_skill_get_unit_bl_target_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_bl_target_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_bl_target_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68792,11 +68900,11 @@ int HP_skill_get_unit_bl_target(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_unit_layout_type(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_unit_layout_type(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_layout_type_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_layout_type_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_layout_type_pre[hIndex].func;
@@ -68811,7 +68919,7 @@ int HP_skill_get_unit_layout_type(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_unit_layout_type(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_unit_layout_type_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_layout_type_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_layout_type_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68819,11 +68927,11 @@ int HP_skill_get_unit_layout_type(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_unit_range(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_unit_range(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_range_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_range_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_range_pre[hIndex].func;
@@ -68838,7 +68946,7 @@ int HP_skill_get_unit_range(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_unit_range(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_unit_range_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_range_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_range_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68846,11 +68954,11 @@ int HP_skill_get_unit_range(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_cooldown(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_cooldown(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_cooldown_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_cooldown_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_cooldown_pre[hIndex].func;
@@ -68865,7 +68973,7 @@ int HP_skill_get_cooldown(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_cooldown(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_cooldown_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_cooldown_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_cooldown_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68873,11 +68981,11 @@ int HP_skill_get_cooldown(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_tree_get_max(uint16 skill_id, int class) {
+int HP_skill_tree_get_max(int skill_id, int class) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_tree_get_max_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, int *class);
+ int (*preHookFunc) (int *skill_id, int *class);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_tree_get_max_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_tree_get_max_pre[hIndex].func;
@@ -68892,7 +69000,7 @@ int HP_skill_tree_get_max(uint16 skill_id, int class) {
retVal___ = HPMHooks.source.skill.tree_get_max(skill_id, class);
}
if (HPMHooks.count.HP_skill_tree_get_max_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, int class);
+ int (*postHookFunc) (int retVal___, int skill_id, int class);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_tree_get_max_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_tree_get_max_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, class);
@@ -68900,11 +69008,11 @@ int HP_skill_tree_get_max(uint16 skill_id, int class) {
}
return retVal___;
}
-const char* HP_skill_get_name(uint16 skill_id) {
+const char* HP_skill_get_name(int skill_id) {
int hIndex = 0;
const char* retVal___ = NULL;
if (HPMHooks.count.HP_skill_get_name_pre > 0) {
- const char* (*preHookFunc) (uint16 *skill_id);
+ const char* (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_name_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_name_pre[hIndex].func;
@@ -68919,7 +69027,7 @@ const char* HP_skill_get_name(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_name(skill_id);
}
if (HPMHooks.count.HP_skill_get_name_post > 0) {
- const char* (*postHookFunc) (const char* retVal___, uint16 skill_id);
+ const char* (*postHookFunc) (const char* retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_name_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_name_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68927,11 +69035,11 @@ const char* HP_skill_get_name(uint16 skill_id) {
}
return retVal___;
}
-const char* HP_skill_get_desc(uint16 skill_id) {
+const char* HP_skill_get_desc(int skill_id) {
int hIndex = 0;
const char* retVal___ = NULL;
if (HPMHooks.count.HP_skill_get_desc_pre > 0) {
- const char* (*preHookFunc) (uint16 *skill_id);
+ const char* (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_desc_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_desc_pre[hIndex].func;
@@ -68946,7 +69054,7 @@ const char* HP_skill_get_desc(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_desc(skill_id);
}
if (HPMHooks.count.HP_skill_get_desc_post > 0) {
- const char* (*postHookFunc) (const char* retVal___, uint16 skill_id);
+ const char* (*postHookFunc) (const char* retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_desc_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_desc_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68954,37 +69062,11 @@ const char* HP_skill_get_desc(uint16 skill_id) {
}
return retVal___;
}
-void HP_skill_chk(uint16 *skill_id) {
- int hIndex = 0;
- if (HPMHooks.count.HP_skill_chk_pre > 0) {
- void (*preHookFunc) (uint16 **skill_id);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_chk_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_skill_chk_pre[hIndex].func;
- preHookFunc(&skill_id);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return;
- }
- }
- {
- HPMHooks.source.skill.chk(skill_id);
- }
- if (HPMHooks.count.HP_skill_chk_post > 0) {
- void (*postHookFunc) (uint16 *skill_id);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_chk_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_skill_chk_post[hIndex].func;
- postHookFunc(skill_id);
- }
- }
- return;
-}
-int HP_skill_get_casttype(uint16 skill_id) {
+int HP_skill_get_casttype(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_casttype_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_casttype_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_casttype_pre[hIndex].func;
@@ -68999,7 +69081,7 @@ int HP_skill_get_casttype(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_casttype(skill_id);
}
if (HPMHooks.count.HP_skill_get_casttype_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_casttype_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_casttype_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -69007,11 +69089,11 @@ int HP_skill_get_casttype(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_casttype2(uint16 index) {
+int HP_skill_get_casttype2(int index) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_casttype2_pre > 0) {
- int (*preHookFunc) (uint16 *index);
+ int (*preHookFunc) (int *index);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_casttype2_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_casttype2_pre[hIndex].func;
@@ -69026,7 +69108,7 @@ int HP_skill_get_casttype2(uint16 index) {
retVal___ = HPMHooks.source.skill.get_casttype2(index);
}
if (HPMHooks.count.HP_skill_get_casttype2_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 index);
+ int (*postHookFunc) (int retVal___, int index);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_casttype2_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_casttype2_post[hIndex].func;
retVal___ = postHookFunc(retVal___, index);
@@ -71633,11 +71715,11 @@ void HP_skill_brandishspear_dir(struct square *tc, uint8 dir, int are) {
}
return;
}
-int HP_skill_get_fixed_cast(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_fixed_cast(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_fixed_cast_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_fixed_cast_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_fixed_cast_pre[hIndex].func;
@@ -71652,7 +71734,7 @@ int HP_skill_get_fixed_cast(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_fixed_cast(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_fixed_cast_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_fixed_cast_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_fixed_cast_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);