Комбо Предметов #6528
Размер Комбо: 2
Предметы Комбо
Record_Merchant2_TH
Record_Merchant_TH
Эффект Комбо
if (eaclass()&EAJL_THIRD && BaseJob == Job_Blacksmith) {
bonus2 bVariableCastrate,"NC_ARMSCANNON",-50;
bonus4 bAutoSpellOnSkill,"NC_AXEBOOMERANG","NC_AXEBOOMERANG",getskilllv("NC_AXEBOOMERANG"),350;
}
if (eaclass()&EAJL_THIRD && BaseJob == Job_Alchemist) {
bonus3 bAutoSpell,"GN_SPORE_EXPLOSION",10,150;
bonus2 bVariableCastrate,"GN_SPORE_EXPLOSION",-100;
}
Справка по Скрипту
if
Команда
if
Сигнатура:
if (<condition>) <statement>;
Описание:
This is the basic conditional statement command, and just about the only one
available in this scripting language.
The condition can be any expression. All expressions resulting in a non-zero
value will be considered True, including negative values. All expressions
resulting in a zero are false.
If the expression results in True, the statement will be executed. If it isn't
true, nothing happens and we move on to the next line of the script.
For more information on conditional operators see the operators section above.
bothering to store it in a specific variable:
More examples of using the 'if' command in the real world:
Example 1:
Example 2:
Notice that examples 1 and 2 have the same effect.
Example 3:
Example 4:
Example 5:
See 'strcharinfo' for an explanation of what this function does.
Example 6: Using complex conditions.
The script engine also supports nested 'if' statements:
If the condition isn't met, it'll do the action following the 'else'.
We can also group several actions depending on a condition:
Remember that if you plan to do several actions upon the condition being false, and
you forget to use the curly braces (the { } ), the second action will be executed regardless
the output of the condition, unless of course, you stop the execution of the script if the
condition is true (that is, in the first grouping using a return; , and end; or a close; )
Also, you can have multiple conditions nested or chained.
Пример:
if (1) mes "This will always print.";
if (0) mes "And this will never print.";
if (5) mes "This will also always print.";
if (-1) mes "Funny as it is, this will also print just fine.";
if (strcharinfo(0) == "Daniel Jackson") mes "It is true, you are Daniel!";
.@answer = 1;
input .@input;
if (.@input == .@answer)
close;
mes "Sorry, your answer is incorrect.";
close;
.@answer = 1;
input .@input;
if (.@input != .@answer)
mes "Sorry, your answer is incorrect.";
close;
.@count++;
mes "[Forgetful Man]";
if (.@count == 1) mes "This is the first time you have talked to me.";
if (.@count == 2) mes "This is the second time you have talked to me.";
if (.@count == 3) mes "This is the third time you have talked to me.";
if (.@count == 4) {
mes "This is the fourth time you have talked to me.";
mes "I think I am getting amnesia, I have forgotten about you...";
.@count = 0;
}
close;
mes "[Quest Person]";
if (countitem(512) < 1) { // 512 is the item ID for Apple, found in db/item_db.yml
mes "Can you please bring me an apple?";
close;
}
mes "Oh, you brought an Apple!";
mes "I didn't want it, I just wanted to see one.";
close;
mes "[Person Checker]";
if ($@name$ == "") { // global variable not yet set
mes "Please tell me someones name";
next;
input $@name$;
$@name2$ = strcharinfo(0);
mes "[Person Checker]";
mes "Thank you.";
close;
}
if ($@name$ == strcharinfo(0)) { // player name matches $@name$
mes "You are the person that " + $@name2$ + " just mentioned.";
mes "Nice to meet you!";
// reset the global variables
$@name$ = "";
$@name2$ = "";
close;
}
mes "You are not the person that " + $name2$ + " mentioned.";
close;
mes "[Multiple Checks]";
if (@queststarted == 1 && countitem(512) >= 5) {
mes "Well done, you have started the quest and brought me 5 Apples.";
@queststarted = 0;
delitem 512,5;
close;
}
mes "Please bring me 5 apples.";
@queststarted = 1;
close;
if (<condition>)
dothis;
else
dothat;
if (<condition>) {
dothis1;
dothis2;
} else {
dothat1;
dothat2;
dothat3;
}
if (<condition 1>)
dothis;
else if (<condition 2>) {
dothat;
end;
} else
dothis;
eaclass
Команда
eaclass
Сигнатура:
eaclass({<job number>,<char_id>})
Описание:
This commands returns the "eA job-number" corresponding to the given class, and
uses the invoking player's class if none is given. The eA job-number is also a
class number system, but it's one that comes with constants which make it easy
to convert among classes. The command will return -1 if you pass it a job number
which doesn't have an eA job-number equivalent.
Пример:
.@eac = eaclass();
if ((.@eac&EAJ_BASEMASK) == EAJ_SWORDMAN)
mes "Your base job is Swordman.";
if (.@eac&EAJL_UPPER)
mes "You are a rebirth job.";
if ((.@eac&EAJ_UPPERMASK) == EAJ_SWORDMAN)
mes "You must be a Swordman, Baby Swordman or High Swordman.";
bVariableCastrate
Бонус Предмета
bVariableCastrate
Сигнатура:
bonus2 bVariableCastrate,sk,n;
Описание:
Increases variable cast time of skill sk by n% (If RENEWAL_CAST is NOT defined, this bonus is equal to bCastrate)
bAutoSpellOnSkill
Бонус Предмета
bAutoSpellOnSkill
Сигнатура:
bonus5 bAutoSpellOnSkill,sk,x,y,n,i;
Описание:
Adds a n/10% chance to autospell skill x at level y when using skill sk
getskilllv
Команда
getskilllv
Сигнатура:
getskilllv(<skill id>)
getskilllv("<skill name>")
Описание:
character has. If they don't have the skill, 0 will be returned. The full list
of character skills is available in ''.
There are two main uses for this function, it can check whether the character
has a skill or not, and it can tell you if the level is high enough.
Example 1:
Example 2:
Пример:
if (getskilllv(152))
mes "You have got the skill Throw Stone";
else
mes "You don't have Throw Stone";
close;
if (getskilllv(28) >= 5)
mes "Your heal lvl is 5 or more";
else if (getskilllv(28) == 10)
mes "Your heal lvl has been maxed";
else
mes "You heal skill is below lvl 5";
close;
bAutoSpell
Бонус Предмета
bAutoSpell
Сигнатура:
bonus5 bAutoSpell,sk,y,n,bf,i;
Описание:
Adds a n/10% chance to cast skill sk of level y when attacking with trigger criteria bf