Ir para conteúdo

Featured Replies

Postado

Tenho aqui esse script de exori vis, gostaria de ajuda para adicionar nele uma chance em porcentagem para o condition energy pegar no target.

 

Script:

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)
 
local condition = createConditionObject(CONDITION_ENERGY)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 50, 2000, -75)
setCombatCondition(combat, condition)
 
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Postado

simples:
1) remove a linha que seta a condition no combat

setCombatCondition(combat, condition)

 

2) Para verificar o target iremos utilizar uma função variantToNumber(var), dentro do callback pois o var só existe depois que executamos function onCastSpell:

if isCreature(variantToNumber(var)) then

3) em seguida adicionaremos a condição ao variantToNumber(var).
 

doAddCondition(variantToNumber(var), condition)

4) Por fim adicionarem uma porcentagem, para isso temos que gerar um numero "aleatoriamente" com a função math.random(X, Y). Ela funciona gerando um numero entre X e Y. Pra porcentagens usamos math.random(1,100) ou apenas math.random(100). Temos que checar se esse numero aleatorio é menor que uma porcentagem q escolhemos, se for ele ativa a condition.

if percent > math.random(1,100) then

5) agora iremos criar no topo do script uma referência para dizer ao nosso código oque é esse percent:

local percent = 30 -- chance em porcentagem de ativar nossa condition

No final ficamos com:

local percent = 30

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)
 
local condition = createConditionObject(CONDITION_ENERGY)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 50, 2000, -75)
 
function onCastSpell(cid, var)
	if isCreature(variantToNumber(var)) then
		if percent >= math.random(1,100) then
			doAddCondition(variantToNumber(var), condition)
		end
	end
return doCombat(cid, combat, var)
end 

Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado
  • Autor

Estou totalmente leigo em scrips, mas não faltou a parte da porcentagem em chance? Devo ter me explicado mal. 

 

Seria básicamente isso: a spell sempre hitaria normalmente, mas teria 50% de chance de a cada ataque adicionar a condition energy.

Editado por Alucar (veja o histórico de edições)

Postado

editei lá

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo