SE

◄ Catapult System ►

Por sejameuamigo, 26 de mar. de 2011 em Actions e Talkactions

script
13
3.8k
26 de março de 2011 às 18:47

Nome: Catapult

Versão Testada: 8.54

Server Usado: [8.54~8.57] Alissow Ots 4.0

Descrição: Você cria uma catapulta (ids: 5598, 5599, 5600, 5601) e, você escolhe uma parte (ou mais de uma) para por o unique ID de 1121 (ou outro). Ao dar use na parte com UID 1121, vai ser lançado um projétil, hitando o que tiver no caminho dele. No final o projétil cai no chão.

 

Code:

catapult.lua:

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local combate = COMBAT_PHYSICALDAMAGE -- tipo de dano

p = fromPosition

local a0 = {x=p.x, y=p.y-1, z=p.z}

local a1 = {x=p.x, y=p.y-2, z=p.z}

local a2 = {x=p.x, y=p.y-3, z=p.z}

local a3 = {x=p.x, y=p.y-4, z=p.z}

local a4 = {x=p.x, y=p.y-5, z=p.z}

local end1 = {x=p.x, y=p.y-6, z=p.z}

local storage = 3425 -- Não mecha aqui

local MIN_DAMAGE = 100 -- dano minimo

local MAX_DAMAGE = 500 -- dano maximo

local level = 50 -- level necessario

local UID = 1121 -- unique id do item

 

if getPlayerStorageValue(cid,storage) == 1 then

doPlayerSendCancel(cid,"You are exhausted.")

end

 

if getPlayerLevel(cid) < level then

doPlayerSendCancel(cid,"You must be level "..level..".")

end

 

if getPlayerLevel(cid) >= level and item.uid == UID and getPlayerStorageValue(cid,storage) == -1 then

setPlayerStorageValue(cid,storage,1)

addEvent(setPlayerStorageValue,5000,cid,storage,-1)

addEvent(doSendDistanceShoot,100,fromPosition, a4, 1)

addEvent(doAreaCombatHealth,100,a0, combate, a0, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)

addEvent(doAreaCombatHealth,200,a1, combate, a1, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)

addEvent(doAreaCombatHealth,300,a2, combate, a2, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)

addEvent(doAreaCombatHealth,400,a3, combate, a3, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)

addEvent(doAreaCombatHealth,500,a4, combate, a4, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)

addEvent(doCreateItem,600,2544,1,end1)

addEvent(doSendMagicEffect,600,end1,3)

end

return TRUE

end

 

 

actions.xml:

 

<action uniqueid="1121" script="catapult.lua" allowfaruse="1"/>

UID do item

 

 

 

Gostou? Rep+

Não Gostou? Rep+

Editado Março 26 por sejameuamigo

TibizeiroT
28 de março de 2011 às 21:14

da pra por no andar no andar 6 e ela tira dano no 7?

30 de março de 2011 às 13:48

/\ é uma boa idéia, tente colocar mais opções para edição.

Também mude o Unique ID por Action ID, pois o Action pode ser usado mais de uma vez. abraço :smile_positivo:

2 meses depois...
03 de maio de 2011 às 15:08

a ideia do andar 6 i para o 7 e boa ^^ eu apoio

Editado Maio 3 por LookAssassin

paulgrandeP
03 de maio de 2011 às 15:14

poe videos do sistema

Editado Maio 3 por PaulGrande

2 meses depois...
gonorreiaswatG
07 de julho de 2011 às 21:44

Vou usar no meu OTServ

:D

 

Assim que testá-lo e funcionar, eu dou REP+

 

 

Valeu aee...abraços

EskyloE
08 de julho de 2011 às 00:09

Gostei bastante da idéia e parabéns pelo desenvolvimento do script.

 

Acho que um loop, como for iria bem no script, procure tutoriais sobre.

 

Vocês que falaram acima, se quiserem fazer damage no andar de cima, em vez do andar da catapulta é só alterar

 

local a0 = {x=p.x, y=p.y-1, z=p.z}
local a1 = {x=p.x, y=p.y-2, z=p.z}
local a2 = {x=p.x, y=p.y-3, z=p.z}
local a3 = {x=p.x, y=p.y-4, z=p.z}
local a4 = {x=p.x, y=p.y-5, z=p.z}
local end1 = {x=p.x, y=p.y-6, z=p.z}

 

por

 

local a0 = {x=p.x, y=p.y-1, z=p.z+1}
local a1 = {x=p.x, y=p.y-2, z=p.z+1}
local a2 = {x=p.x, y=p.y-3, z=p.z+1}
local a3 = {x=p.x, y=p.y-4, z=p.z+1}
local a4 = {x=p.x, y=p.y-5, z=p.z+1}
local end1 = {x=p.x, y=p.y-6, z=p.z+1}

 

Agora se quizerem tanto no de cima quanto no de baixo, terão que adicionar umas linhas no script.

gonorreiaswatG
08 de julho de 2011 às 11:34

Ficaria ainda melhor o Script se colocasse pra EXP dos monstros que morrerem for para o Player que atirou com a Catapulta.

 

 

 

Se alguém fizer ae... ajudaria pakas!

 

Abraços

EskyloE
08 de julho de 2011 às 12:42

Ficaria ainda melhor o Script se colocasse pra EXP dos monstros que morrerem for para o Player que atirou com a Catapulta.

 

 

 

Se alguém fizer ae... ajudaria pakas!

 

Abraços

 

Simples!

 

Aqui onde tem esses addEvent você tem que trocar para cid, em um lugar aqui, ficando assim:

 

addEvent(doAreaCombatHealth,100,cid, combate, a0, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)
addEvent(doAreaCombatHealth,200,cid, combate, a1, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)
addEvent(doAreaCombatHealth,300,cid, combate, a2, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)
addEvent(doAreaCombatHealth,400,cid, combate, a3, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)
addEvent(doAreaCombatHealth,500,cid, combate, a4, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)

gonorreiaswatG
08 de julho de 2011 às 13:36

Ficaria ainda melhor o Script se colocasse pra EXP dos monstros que morrerem for para o Player que atirou com a Catapulta.

 

 

 

Se alguém fizer ae... ajudaria pakas!

 

Abraços

 

Simples!

 

Aqui onde tem esses addEvent você tem que trocar para cid, em um lugar aqui, ficando assim:

 

addEvent(doAreaCombatHealth,100,cid, combate, a0, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)
addEvent(doAreaCombatHealth,200,cid, combate, a1, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)
addEvent(doAreaCombatHealth,300,cid, combate, a2, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)
addEvent(doAreaCombatHealth,400,cid, combate, a3, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)
addEvent(doAreaCombatHealth,500,cid, combate, a4, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2)

 

 

Funcionou... valeu aee :thumbsupsmiley2:

 

Aprovado! :button_ok:

9 meses depois...
FilipeSDdF
21 de abril de 2012 às 11:59

portei seu script no meu RPG aqui,modifiquei e refiz varias coisas,mas realmente,muito bom cara.REP+

alldakieA
21 de abril de 2012 às 12:30

Realmente bem legal, vai ser bem útil, +REP

21 de abril de 2012 às 13:53

pode me dizer como eu mudo o exhaust?