Combo de Itens #5601
Tamanho do Combo: 2
Itens do Combo
Archangel_Wing
Angeling_Balloon_TW
Efeito do Combo
.@r = getequiprefinerycnt(EQI_GARMENT);
.@a = readparam(bStr);
.@b = readparam(bAgi);
.@c = readparam(bVit);
.@d = readparam(bInt);
.@e = readparam(bDex);
.@f = readparam(bLuk);
bonus2 bExpAddRace,RC_All,8;
if (.@r>=8) {
bonus bShortAtkRate,3*(.@a/20);
bonus bCritAtkRate,4*(.@b/20);
bonus2 bSubEle,Ele_Neutral,2*(.@c/20);
bonus bMaxHPrate,(.@c/20);
bonus2 bMagicAtkEle,Ele_All,(.@d/20);
bonus bDelayrate,-3*(.@e/20);
bonus bBaseAtk,5*(.@f/20);
bonus bMatk,5*(.@f/20);
bonus bCritical,2*(.@f/20);
}
Referências do Script
getequiprefinerycnt
Comando
getequiprefinerycnt
Assinatura:
getequiprefinerycnt(<equipment slot>{,<char_id>})
Descrição:
slot. For a list of equipment slots see 'getequipid'.
Can be used to check if you have reached a maximum refine value, default for
this is +10:
Exemplo:
if (getequiprefinerycnt(EQI_HEAD_TOP) < 10)
mes "I will now upgrade your " + getequipname(EQI_HEAD_TOP);
else
mes "Sorry, it's not possible to refine hats better than +10";
close;
readparam
Comando
readparam
Assinatura:
readparam(<parameter number>{,"<character name>"})
readparam(<parameter number>{,<char_id>})
Descrição:
This function will return the specified stat of the invoking character, or, if a
character name or character id is specified, of that player. The stat can either
be a number or parameter name, defined in ''.
Some example parameters:
StatusPoint, BaseLevel, SkillPoint, Class, Upper, Zeny, Sex, Weight, MaxWeight,
JobLevel, BaseExp, JobExp, NextBaseExp, NextJobExp, Hp, MaxHp, Sp, MaxSp,
BaseJob, Karma, Manner, bVit, bDex, bAgi, bStr, bInt, bLuk, Ap, MaxAp
All of these also behave as variables, but don't expect to be able to just 'set'
them - some will not work for various internal reasons.
Example 1:
Using this particular information as a function call is not required. Typing this
will return the same result:
Example 2:
You can also use this command to get stat values.
Exemplo:
// Returns how many status points you haven't spent yet.
mes "Unused status points: " + readparam(9);
mes "Unused status points: " + StatusPoint;
if (readparam(bVit) > 77)
mes "Only people with over 77 Vit are reading this!";
bStr
Bônus de Item
bStr
Assinatura:
bonus bStr,n;
Descrição:
STR + n
bAgi
Bônus de Item
bAgi
Assinatura:
bonus bAgi,n;
Descrição:
AGI + n
bVit
Bônus de Item
bVit
Assinatura:
bonus bVit,n;
Descrição:
VIT + n
bInt
Bônus de Item
bInt
Assinatura:
bonus bInt,n;
Descrição:
INT + n
bDex
Bônus de Item
bDex
Assinatura:
bonus bDex,n;
Descrição:
DEX + n
bLuk
Bônus de Item
bLuk
Assinatura:
bonus bLuk,n;
Descrição:
LUK + n
bExpAddRace
Bônus de Item
bExpAddRace
Assinatura:
bonus2 bExpAddRace,r,x;
Descrição:
Increase exp gained by x% against enemies of race r
if
Comando
if
Assinatura:
if (<condition>) <statement>;
Descrição:
Este é o comando de instrução condicional básico, e praticamente o único disponível nesta linguagem de script.
A condição pode ser qualquer expressão. Todas as expressões que resultam em um valor não zero serão consideradas Verdadeiras, incluindo valores negativos. Todas as expressões que resultam em zero são falsas.
Se a expressão resultar em Verdadeira, a instrução será executada. Se não for verdadeira, nada acontece e passamos para a próxima linha do script.
Para mais informações sobre operadores condicionais, consulte a seção de operadores acima.
armazená-lo em uma variável específica:
Mais exemplos de uso do comando 'if' no mundo real:
Exemplo 1:
Exemplo 2:
Note que os exemplos 1 e 2 têm o mesmo efeito.
Exemplo 3:
Exemplo 4:
Exemplo 5:
Veja 'strcharinfo' para uma explicação do que esta função faz.
Exemplo 6: Usando condições complexas.
O motor de script também suporta declarações 'if' aninhadas:
Se a condição não for atendida, ele executará a ação seguinte ao 'else'.
Também podemos agrupar várias ações dependendo de uma condição:
Lembre-se que se você planeja fazer várias ações quando a condição for falsa, e
você esquecer de usar as chaves ( { } ), a segunda ação será executada independentemente
da saída da condição, a menos, é claro, que você pare a execução do script se a
condição for verdadeira (ou seja, no primeiro agrupamento usando um return;, end; ou um close;)
Além disso, você pode ter múltiplas condições aninhadas ou encadeadas.
Exemplo:
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;
bShortAtkRate
Bônus de Item
bShortAtkRate
Assinatura:
bonus bShortAtkRate,n;
Descrição:
Increases damage of short ranged attacks by n%
bCritAtkRate
Bônus de Item
bCritAtkRate
Assinatura:
bonus bCritAtkRate,n;
Descrição:
Increases critical damage by +n%
bSubEle
Bônus de Item
bSubEle
Assinatura:
bonus3 bSubEle,e,x,bf;
Descrição:
+x% damage reduction against attack element e with trigger criteria bf
bMaxHPrate
Bônus de Item
bMaxHPrate
Assinatura:
bonus bMaxHPrate,n;
Descrição:
MaxHP + n%
bMagicAtkEle
Bônus de Item
bMagicAtkEle
Assinatura:
bonus2 bMagicAtkEle,e,x;
Descrição:
Increases damage of e element magic by x%
bDelayrate
Bônus de Item
bDelayrate
Assinatura:
bonus bDelayrate,n;
Descrição:
Increases skill delay by n%
bBaseAtk
Bônus de Item
bBaseAtk
Assinatura:
bonus bBaseAtk,n;
Descrição:
Basic attack power + n
bMatk
Bônus de Item
bMatk
Assinatura:
bonus bMatk,n;
Descrição:
Magical attack power + n
bCritical
Bônus de Item
bCritical
Assinatura:
bonus bCritical,n;
Descrição:
Critical + n