Ir para conteúdo

Featured Replies

Postado

Pessoal hoje trago para vocês o Creaturescript de Wapon Paralyze Então hoje vou postar o script para quem não sabe fazer ou tem duvidas

O Tutorial enclui :

Danos de varios tipos de poderes

Ataack de longe ou de perto

O script é de fácil entendimento e qualquer um pode editar facilmente, vai ser possível adicionar mais weapons, regular a chance de ocorrer o paralyze entre outras configurações.

Vamos começar :

Vamos ao que interessa, abra a pasta "data/creaturescripts/scripts" duplique um arquivo qualquer e renomeie para "weaponpar" sem as aspas e nele cole:

Scripts by : jhon e ohgod

local weaponpar = {2377, 2378, 2379, 2380} -- id dos items que darão paralize

local chancepar = 5 -- chance de ocorrer o paralize (10 = 10%, 20 = 20%, 30 = 30%, 1 = 1%, 5 = 5%) e assim por diante

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) -- aqui edita os valores pro dano de paralize, vai mudando ae e testando até achar o desejado

local condition = createConditionObject(CONDITION_PARALYZE)

setConditionParam(condition, CONDITION_PARAM_TICKS, 10000) -- aqui vai o tempo de paralyze, 1000 = 1 segundo

setConditionParam(condition, CONDITION_PARAM_SPEED, -400) -- velocidade que o monstro irá perder

setConditionFormula(condition, 0, 0, 0, 0)

setCombatCondition(combat, condition)

function onAttack(cid, target)

if ((getCreaturePosition(target).x == getCreaturePosition(cid).x or getCreaturePosition(target).x == getCreaturePosition(cid).x+1 or getCreaturePosition(target).x == getCreaturePosition(cid).x-1) and (getCreaturePosition(target).y == getCreaturePosition(cid).y or getCreaturePosition(target).y == getCreaturePosition(cid).y+1 or getCreaturePosition(target).y == getCreaturePosition(cid).y-1)) then

for i=0, #weaponpar do

if (getPlayerSlotItem(cid, 5).itemid == weaponpar or getPlayerSlotItem(cid, 6).itemid == weaponpar) then

if (math.random(1,100) > (100 - chancepar)) then

doPlayerSendTextMessage(cid, 23, getCreatureName(target).." has paralized.")

doAddCondition(target, condition)

return true

else

return true

end

end

end

end

return true

end

Agora no arquivo, "data/creaturescripts/creaturescripts.xml" cole a tag:

<eventtype="attack"name="WeaponPar"event="script"value="weaponpar.lua"/>

E por último, abra o arquivo login.lua que esta localizado em "data/creaturescripts/scripts" e cole a tag:

registerCreatureEvent(cid,"WeaponPar")

Pronto, terminamos o Weapon Paralyze! Se tiverem alguma dúvida ou aparecer algum erro inesperado só me falar.

Botando varios danos de poderes diferentes:

Sóh adicionar mais conditions antes da função onAttack

Fire:

local condition = createConditionObject(CONDITION_FIRE)

setConditionParam(condition, CONDITION_PARAM_TICKS, 10000) -- aqui vai o tempo de fire, 1000 = 1 segundo

setConditionFormula(condition, 0, 0, 0, 0)

setCombatCondition(combat, condition)

Ice:

local condition = createConditionObject(CONDITION_FREEZING)

setConditionParam(condition, CONDITION_PARAM_TICKS, 10000) -- aqui vai o tempo de fire, 1000 = 1 segundo

setConditionFormula(condition, 0, 0, 0, 0)

setCombatCondition(combat, condition)

Lista de Conditions:

CONDITION_NONE =0

CONDITION_POISON = 1

CONDITION_FIRE = 2

CONDITION_ENERGY = 4

CONDITION_PHYSICAL = 8

CONDITION_HASTE = 16

CONDITION_PARALYZE = 32

CONDITION_OUTFIT = 64

CONDITION_INVISIBLE = 128

CONDITION_LIGHT = 256

CONDITION_MANASHIELD = 512

CONDITION_INFIGHT = 1024

CONDITION_DRUNK = 2048

CONDITION_EXHAUST = 4096

CONDITION_FOOD = 8192

CONDITION_REGENERATION = 8192

CONDITION_SOUL = 16384

CONDITION_DROWN = 32768

CONDITION_MUTED = 65536

CONDITION_ATTRIBUTES = 131072

CONDITION_FREEZING = 262144

CONDITION_DAZZLED = 524288

CONDITION_CURSED = 1048576

CONDITION_PACIFIED = 2097152

CONDITION_GAMEMASTER = 4194304

CONDITION_HUNTING = 8388608

Sóh de perto, tem uma linha de código que verifica se tu ta a menos de 1 sqm de distancia de seu oponente, se tiver mais distante n usa o paralize.

Linha:

if ((getCreaturePosition(target).x == getCreaturePosition(cid).x or getCreaturePosition(target).x == getCreaturePosition(cid).x+1 or getCreaturePosition(target).x == getCreaturePosition(cid).x-1) and (getCreaturePosition(target).y == getCreaturePosition(cid).y or getCreaturePosition(target).y == getCreaturePosition(cid).y+1 or getCreaturePosition(target).y == getCreaturePosition(cid).y-1)) then

Tutorial por Jhon

Postado por OhGod

Ajudei ? Aprove o Topíco.

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

Parcel Team member

Banidos da Festa member

Unforgiven member

Keep Dashing member

 

 

http://www.flogao.com.br/brunogrx, thank's for all guys.

  • Respostas 6
  • Visualizações 1.8k
  • Created
  • Última resposta

Top Posters In This Topic

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.7k

Informação Importante

Confirmação de Termo