Postado Novembro 7, 2015 9 anos Boa noite pessoas, eu estou precisando de ajuda com um script que funciona da seguinte forma: Clicando em uma estátua, placa, ou algo do tipo, se eu tiver a vocação, level e quantidade de itens corretos (exemplo: 100 hams o.o) eu sou teleportado para um lugar, se não tiver algum dos 3 sou teleportado para tras ou para o templo. Agradeço muito quem conseguir me ajudar com isso x) @EDIT Eu tenho uma noção basica de scripts em geral, se voce me der algum com as variaveis prontas e tal eu posso editar os numeros, thxxxxxx Editado Novembro 7, 2015 9 anos por yolocaust (veja o histórico de edições)
Postado Novembro 7, 2015 9 anos Solução Este é um post popular. Em "OT/Data/actions", script.lua: local cfg = { failpos = {x = 161, y = 55, z = 7}, -- Posição caso não tenha um dos requerimentos. pos = {x = 160, y = 54, z = 7}, -- Posição caso tenha todos os requerimentos. vocations = {1, 8}, -- ID's das vocations, separe por vírgulas! item = {2160, 10}, -- ID/count. level = 50 -- Level necessário. } function onUse(cid, item, fromPosition, itemEx, toPosition) if isInArray(cfg.vocations, getPlayerVocation(cid)) then if getPlayerLevel(cid) >= cfg.level then if doPlayerRemoveItem(cid, cfg.item[1], cfg.item[2]) then doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, cfg.pos) else doSendMagicEffect(getThingPos(item.uid), CONST_ME_MAGIC_RED) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você não tem os items necessários, consiga '.. cfg.item[2] ..' '.. getItemNameById(cfg.item[1]) ..' para passar.') doTeleportThing(cid, cfg.failpos) end else doSendMagicEffect(getThingPos(item.uid), CONST_ME_MAGIC_RED) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você precisa ser level '.. cfg.level ..' para passar.') doTeleportThing(cid, cfg.failpos) end else doSendMagicEffect(getThingPos(item.uid), CONST_ME_MAGIC_RED) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Apenas jogadores da vocação X ou X podem passar.') doTeleportThing(cid, cfg.failpos) end return true end Em actions.xml, adicione a tag: <action uniqueid="XXXX" script="script.lua"/> Coloque o uniqueid XXXX na estatua e configure o script, caso dê algum erro, me avise :). ➥ Regras | Seções OTServ | Seções BOT
Postado Julho 21, 2016 8 anos Em 07/11/2015 at 08:57, Wakon disse: Em "OT/Data/actions", script.lua: local cfg = { failpos = {x = 161, y = 55, z = 7}, -- Posição caso não tenha um dos requerimentos. pos = {x = 160, y = 54, z = 7}, -- Posição caso tenha todos os requerimentos. vocations = {1, 8}, -- ID's das vocations, separe por vírgulas! item = {2160, 10}, -- ID/count. level = 50 -- Level necessário. } function onUse(cid, item, fromPosition, itemEx, toPosition) if isInArray(cfg.vocations, getPlayerVocation(cid)) then if getPlayerLevel(cid) >= cfg.level then if doPlayerRemoveItem(cid, cfg.item[1], cfg.item[2]) then doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, cfg.pos) else doSendMagicEffect(getThingPos(item.uid), CONST_ME_MAGIC_RED) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você não tem os items necessários, consiga '.. cfg.item[2] ..' '.. getItemNameById(cfg.item[1]) ..' para passar.') doTeleportThing(cid, cfg.failpos) end else doSendMagicEffect(getThingPos(item.uid), CONST_ME_MAGIC_RED) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você precisa ser level '.. cfg.level ..' para passar.') doTeleportThing(cid, cfg.failpos) end else doSendMagicEffect(getThingPos(item.uid), CONST_ME_MAGIC_RED) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Apenas jogadores da vocação X ou X podem passar.') doTeleportThing(cid, cfg.failpos) end return true end Em actions.xml, adicione a tag: <action uniqueid="XXXX" script="script.lua"/> Coloque o uniqueid XXXX na estatua e configure o script, caso dê algum erro, me avise :). Muito Bom Sua Script, Obrigado Por Compartilha
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.