Postado Abril 23, 2014 11 anos Então queria algum script que checasse se tal player tivesse a storage ele continuaria no local se não tivesse ele seria teleportado para o templo, poderia ser ao player logar ou então em movements quando ele pisasse em tal tile se ele não tivesse a storage ele iria para o templo. Pois no Castle quando alguém conquista e tem acesso a ele e outra guild conquista o players que conquistou anteriormente ainda irá continuar dentro a não ser que morra. IMAGEM DA ÁREA DO CASTLE: Ou se alguém souber editar esse script que vou deixar abaixo, quando o cara clicar na porta e não for da guild que conquistou teleportar ele pro templo ou qualquer posição que eu definir:SCRIPT: --------------- -----BY PC98------- --------------- function onUse(cid, item, frompos, item2, topos) -------------------------Config----------------------------------------------------------------- door_opened = 1230 -- ID da porta aberta storage_guild = getGlobalStorageValue(123123) -- A 3ª storage configurada em Castle.lua guarda_ativ = 0 -- Caso um invasor tente abrir a porta, sumonar o Monstro "Guarda"?? | (1) = SIM (0) = NAO guarda_cont = 2 -- Caso ativo: a quantidade de guardas a sumonar guarda_pos = {x=530,y=127,y=7} -- Posiçao a ser sumonada os guardas! -------------------------Fim de Config----------------------------------------------------------- if getPlayerGuildId(cid) == storage_guild then doTeleportThing(cid,getThingPos(item.uid)) doTransformItem(item.uid, door_opened) doPlayerSendTextMessage(cid, 22, "Seja bem vindo a vosso castelo!") return TRUE else if guarda_ativ == 1 then doPlayerSendTextMessage(cid, 22, "Guaaaardas, tirem esses invasores daqui!!") for i=1, guarda_cont do doSummonCreature("Guarda", guarda_pos) end return FALSE else doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild") return FALSE end end end Editado Abril 23, 2014 11 anos por tiago.bordin1988 (veja o histórico de edições)
Postado Abril 23, 2014 11 anos Tenta essa aqui amigo ... -- <movevent type="StepIn" actionid="20001" script="tile-castelo.lua" desc="Tile que verifica acesso ao castelo" /> function onUse(cid, item, fromPosition, itemEx, toPosition) local pos_principal = {x=141, y=150, z=7} -- posição quer será teleportado if item.actionid == 20001 then -- 20001 = VALOR DA ACTIONID if getPlayerStorageValue(cid, 30001) == -1 then -- 30001 = VALOR DA STORAGE QUE TEM QUE TER doTeleportThing(cid, pos_principal) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Você não tem acesso ao castelo.') -- MSG QUE O PLAYER RECEBERA AO SER TELEPORTADO PARA FORA! end else return false end return true end Espero ter ajudado.
Postado Abril 23, 2014 11 anos Autor Tenta essa aqui amigo ... -- <movevent type="StepIn" actionid="20001" script="tile-castelo.lua" desc="Tile que verifica acesso ao castelo" /> function onUse(cid, item, fromPosition, itemEx, toPosition) local pos_principal = {x=141, y=150, z=7} -- posição quer será teleportado if item.actionid == 20001 then -- 20001 = VALOR DA ACTIONID if getPlayerStorageValue(cid, 30001) == -1 then -- 30001 = VALOR DA STORAGE QUE TEM QUE TER doTeleportThing(cid, pos_principal) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Você não tem acesso ao castelo.') -- MSG QUE O PLAYER RECEBERA AO SER TELEPORTADO PARA FORA! end else return false end return true end Espero ter ajudado. Então eu não sei qual storage eu tenho que colocar vou postar o script que uso. ----------------------------------- ---------SCRIPT por PC98------------ NAO REMOVA OS CREDITOS ----------------------------------- function onUse(cid, item, frompos, item2, topos) ------------------ Inicio das Config ------------ local castle_one_name = "Ratim Bum" -- Nome do castelo 1 local storages = {154154,54321,123123} -- Storages ( se vc eh iniciante, deixe como está...) -------PREMIOs I N D I V I D U A L --------- local premio_por_vezes = 1 -- Premio por vezes de conquista de castelo. (1) = Ativo (0) = Desativa. local premio_vezes = 13 -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO. local premio = 2472 -- ID do Premio local premio_cont = 1 -- Quantidade do Premio local premio_reset = 1 -- Resetar o contador do premio depois que atingir a meta?? (1) = SIM (0) = NAO -------FIM PREMIOs I N D I V I D U A L --------- ----------------- FIM DAS CONFIG ----------------- local sto_ativ = getGlobalStorageValue(storages[2]) position = getCreaturePosition(cid) if isPlayerGuild(cid) == TRUE then if sto_ativ == 1 or sto_ativ == -1 then guildname = getPlayerGuildName(cid) guild = getPlayerGuildId(cid) guild_sto = getGlobalStorageValue(storages[3]) if guild ~= guild_sto then setPlayerStorageValue(cid,guild_sto,guild) if getPlayerStorageValue(cid,storages[1]) == -1 then setPlayerStorageValue(cid,storages[1],0) end sto_vezes = getPlayerStorageValue(cid,storages[1]) setGlobalStorageValue(storages[3],getPlayerGuildId(cid)) setPlayerStorageValue(cid,storages[1], sto_vezes + 1) sto_vezes_total = getPlayerStorageValue(cid,storages[1]) doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o castelo "..castle_one_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22) doSendMagicEffect(position, 39) if premio_por_vezes == 1 then if getPlayerStorageValue(cid,storages[1]) == premio_vezes then if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doBroadcastMessage("O "..getCreatureName(cid).." ganhou uma(o) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!", 21) doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") ----------------------------------------------- -- if premio_reset == 1 then -- setPlayerStorageValue(cid,storages[1],0) -- Resetar a contagem end -- ----------------------------------------------- -- else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Vamos verificar novamente em 10 segundos!") addEvent(additem,10000,cid,premio,premio_cont,premio_reset) end end end else doPlayerSendCancel(cid,"Este castelo ja foi conquistado pela sua guild!") doSendMagicEffect(position, 2) end else doPlayerSendCancel(cid,"O sistema está desativado") end else doPlayerSendCancel(cid,"É nescessario ter guild para dominar o castelo!") doSendMagicEffect(position, 2) end end ------------------------- por pc98 function additem(cid,premio,premio_cont,premio_reset) if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") if premio_reset == 1 then setPlayerStorageValue(cid,storages[1],0) end stopEvent(additem) else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Verificando novamente em 10 segundos!") addEvent(additem,10000,cid) end end ------------------------- por pc98 function isPlayerGuild(cid) if getPlayerGuildName(cid) ~= "" then return TRUE else return FALSE end end Outro: --------------- -----BY PC98------- --------------- function onUse(cid, item, frompos, item2, topos) -------------------------Config----------------------------------------------------------------- door_opened = 1230 -- ID da porta aberta storage_guild = getGlobalStorageValue(123123) -- A 3ª storage configurada em Castle.lua guarda_ativ = 0 -- Caso um invasor tente abrir a porta, sumonar o Monstro "Guarda"?? | (1) = SIM (0) = NAO guarda_cont = 2 -- Caso ativo: a quantidade de guardas a sumonar guarda_pos = {x=530,y=127,y=7} -- Posiçao a ser sumonada os guardas! -------------------------Fim de Config----------------------------------------------------------- if getPlayerGuildId(cid) == storage_guild then doTeleportThing(cid,getThingPos(item.uid)) doTransformItem(item.uid, door_opened) doPlayerSendTextMessage(cid, 22, "Seja bem vindo a vosso castelo!") return TRUE else if guarda_ativ == 1 then doPlayerSendTextMessage(cid, 22, "Guaaaardas, tirem esses invasores daqui!!") for i=1, guarda_cont do doSummonCreature("Guarda", guarda_pos) end return FALSE else doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild") return FALSE end end end
Postado Abril 23, 2014 11 anos Autor cara eu tenho esse msm script a storage usada é a 123123 então coloquei desse jeito em em movements.xml add a tag: <movevent type="StepIn" actionid="20001" event="script" value="tile-castelo.lua"/> e na pasta Script no arquivo tile-castelo.lua coloquei a storage 123123 e add no map editor actionid 20001 no tile, mais quando pisa no tile não acontece nada e não aparece erro no distro. Max, você poderia me passar o seu que você usa o script e a tag, pra min testar aqui?
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.