Combo de Itens #8171
Tamanho do Combo: 2
Itens do Combo
Imperial_Feather
Royalguard_Necklace_BR
Efeito do Combo
.@a = readparam(bAgi);
bonus bBaseAtk,10;
bonus bAspdRate,3;
bonus2 bResEff,Eff_Blind,10000;
bonus2 bResEff,Eff_Silence,10000;
bonus2 bSubRace,RC_Player_Doram,2;
bonus2 bSubRace,RC_Player_Human,2;
if (.@a>=108) {
bonus bBaseAtk,20;
bonus bAspdRate,5;
bonus2 bSubRace,RC_Player_Doram,2;
bonus2 bSubRace,RC_Player_Human,2;
}
if (.@a>=120) {
bonus bBaseAtk,40;
bonus bAspdRate,7;
bonus2 bSubRace,RC_Player_Doram,4;
bonus2 bSubRace,RC_Player_Human,4;
}
Referências do Script
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!";
bAgi
Bônus de Item
bAgi
Assinatura:
bonus bAgi,n;
Descrição:
AGI + n
bBaseAtk
Bônus de Item
bBaseAtk
Assinatura:
bonus bBaseAtk,n;
Descrição:
Basic attack power + n
bAspdRate
Bônus de Item
bAspdRate
Assinatura:
bonus bAspdRate,n;
Descrição:
Attack speed + n%
bResEff
Bônus de Item
bResEff
Assinatura:
bonus2 bResEff,eff,n;
Descrição:
Adds a n/100% tolerance to status eff
bSubRace
Bônus de Item
bSubRace
Assinatura:
bonus3 bSubRace,r,x,bf;
Descrição:
+x% damage reduction against race r with trigger criteria bf
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;