vc tem como me ajuda a corrigir alguns erros no meu ot q nao estou conseguindo arrumar? ou alguem q possa? add skype: matheusmelara97
- Fórum
- OTServ
- Recursos
- Scripting
- Actions e Talkactions
- Elemental Staff (wand que muda de elemento)
20
action
Elemental Staff (wand que muda de elemento)
Por 20cm, 12 de fev. de 2014 em Actions e Talkactions
otserv
tibia
script
3
4.5k
1 mês depois...
info
Grupo: Campones
Registrado: 26/02/14
Posts: 1
Reputação: 0

01 de março de 2014 às 18:38
1 ano depois...
09 de maio de 2015 às 02:38
ta dando erro
error - luainterface:: loadfile data/scripts/elemental_staff.lua:28: ' end' expected <to close ' function' at line 3 near '<eof>'
event loadscript cannot load script data wepons script elemental_staff.lua
data weapons elemental_staff.lua 28 'end' expected <to close ' function' at line 3> near '<eof>


info
Grupo: Barão
Registrado: 19/11/11
Posts: 221
Reputação: +70
Olá, amigos. Eu sei que deve ter algo do tipo aqui no xTibia, mas essa versão que eu criei há muito tempo está o mais completo possível.
Consiste no item Jester Staff transformado no item Elemental Staff, que ao dar Use, muda o elemento e o projétil que sai do cajado.
Pra começar, vamos no items.xml e procuramos o item "Jester Staff" (id 7958)
Vocês vão substituir desde isso:
até isso:
Por isso:
Agora, no actions.xml, adicionam a tag:
E no arquivo elemental_staff.lua, adicionem o seguinte:
function onUse(cid, item, fromPosition, itemEx, toPosition) local st = 2482 local old = getPlayerStorageValue(cid,st) local fromto = {[1] = {15,2},[2] = {46,3},[3] = {47,4},[4] = {41,5},[5] = {39,6},[6] = {17,1} } if getPlayerStorageValue(cid,st) == -1 then setPlayerStorageValue(cid,st,1) old = getPlayerStorageValue(cid,st) end setPlayerStorageValue(cid,st,fromto[getPlayerStorageValue(cid,st)][2]) local gt = getPlayerStorageValue(cid,st) local msgs = {"Fogo","Terra","Energia","Gelo","Sagrado","Escuridão"} doPlayerSendTextMessage(cid,4,"Elemento mudado de \'"..msgs[old].."\' para \'"..msgs[gt].."\'.") doSendMagicEffect(getThingPos(cid),fromto[gt][1]) return true endÓtimo. O último passo é no weapons.xml, adicionar a tag:
E no arquivo elemental_staff.lua na pasta scripts adicionar o seguinte:
local min = 65 local max = 100 function damage(cid,type,target,effect) doAreaCombatHealth(cid, type, getThingPos(target), 0, -1*(min), -1*(max), effect) function onUseWeapon(cid, var) local st = 2482 local gt = getPlayerStorageValue(cid,st) local types = { [1] = {3,COMBAT_FIREDAMAGE,15}, [2] = {29,COMBAT_EARTHDAMAGE,46}, [3] = {4,COMBAT_ENERGYDAMAGE,47}, [4] = {28,COMBAT_ICEDAMAGE,41}, [5] = {37,COMBAT_HOLYDAMAGE,39}, [6] = {10,COMBAT_DEATHDAMAGE,17} } if gt == -1 then setPlayerStorageValue(cid,st,1) end local distance = types[gt][1] local type = types[gt][2] local effect = types[gt][3] local target = getCreatureTarget(cid) doSendDistanceShoot(getThingPos(cid),getThingPos(target),distance) addEvent(damage,100,cid,type,target,effect) return true endNotem que nas primeiras 2 linhas tem as variáveis min e max, que representam respectivamente o dano mínimo e o dano máximo do cajado.
É isso, flw
Editado Abril 10 por CyberBot