Killua 389 Postado Agosto 19, 2013 Share Postado Agosto 19, 2013 (editado) Nome: The Necronomicon Versao testada: tfs 0.4 PS: Meu teclado nao tem ascentos nem cedilha, nao reparem na grafia. Eae , vou postar um script que eu fiz. Eu utilizava ele no meu antigo servidor, o Mell World, pois ja que o server esta fexado eu nao queria que esse script fosse esquecido. Ele faz o seguinte: Quando usado, ele oferece 3 opcoes: Ser teleportado para uma area exclusiva de hunt, onde se pode permanecer por no maximo 1 hora (configuravel), uma vez por dia Sumonar um monstro diferente (no meu ot eu tinha criado a Alma Penada, que dropava itens exclusivos) Simplesmente perder 500 vida. Ele so pode ser usado a cada 15 minutos e, dependendo de qual opcao for sorteada, faz o player falar algo. Script (actions/scripts/necronomicon.lua) local hunt = {x=596, y=1037, z=4} local options = { [1] = {name = "teleportar"}, [2] = {name = "sefrodo"}, [3] = {name = "summon"} } function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(cid) then local fazer = options[math.random(1, #options)] if getPlayerStorageValue(cid, 12391) < os.time () then setPlayerStorageValue(cid, 12391, os.time () + 15*60) if fazer.name == "teleportar" then if getPlayerStorageValue(cid, 12481) < os.time () then setPlayerStorageValue(cid, 12481, os.time () + 60*60*24) addEvent(voltarprotemplo, 1000*60*60, cid) doTeleportThing(cid, hunt) setPlayerStorageValue(cid, 24739, 1) doSendMagicEffect(hunt, CONST_ME_TELEPORT) doCreatureSay(cid,"Aha! Consegui decifrar o caminho secreto!",TALKTYPE_ORANGE_1) else doPlayerSendCancel(cid,"Voce nao pode entrar na are 64 mais de uma vez por dia") end elseif fazer.name == "sefrodo" then doCreatureAddHealth(cid, -500) doCreatureSay(cid,"Cada coisa que esta escrita nesse livro... Nao consigo suportar!",TALKTYPE_ORANGE_1) elseif fazer.name == "summon" then doCreateMonster("Alma Penada",getCreaturePosition(cid)) doCreatureSay(cid,"Nao era bem isso que eu queria, mas...",TALKTYPE_ORANGE_1) end else doPlayerSendCancel(cid, "Você so consegue ler a cada 15 minutos! Espere.") end function voltarprotemplo(cid, pos) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, 24739, -1) doPlayerSendTextMessage(cid, 22, "Voce ja atingiu seu limite de permanencia na Area 64, voce foi teleportado para o templo") end end return true end Editado Setembro 28, 2013 por amoeba13 Link para o comentário Compartilhar em outros sites More sharing options...
SkyDarkyes 104 Postado Agosto 19, 2013 Share Postado Agosto 19, 2013 Seria igual o dado? Link para o comentário Compartilhar em outros sites More sharing options...
Killua 389 Postado Agosto 19, 2013 Autor Share Postado Agosto 19, 2013 Seria igual o dado? Que dado? Link para o comentário Compartilhar em outros sites More sharing options...
SkyDarkyes 104 Postado Agosto 19, 2013 Share Postado Agosto 19, 2013 Dice,que tipo,quando vc clika,vem um numero aleatorio tals... Link para o comentário Compartilhar em outros sites More sharing options...
Killua 389 Postado Agosto 19, 2013 Autor Share Postado Agosto 19, 2013 Ah sim... É, dá pra dizer que é parecido Link para o comentário Compartilhar em outros sites More sharing options...
Maenilse 86 Postado Agosto 20, 2013 Share Postado Agosto 20, 2013 (editado) o script ta dahora mas digamos que, area 64 nao pegaria mt bem ner... se ér que me entende rs. Editado Agosto 20, 2013 por Maenilse Link para o comentário Compartilhar em outros sites More sharing options...
Killua 389 Postado Agosto 20, 2013 Autor Share Postado Agosto 20, 2013 o script ta dahora mas digamos que, area 64 nao pegaria mt bem ner... se ér que me entende rs. kkkkkkkkk, o nome fica a criterio de cada um ai Link para o comentário Compartilhar em outros sites More sharing options...
Omega 377 Postado Agosto 28, 2013 Share Postado Agosto 28, 2013 Acho que do jeito que o script tá, se o cara for teleportado pra hunt e deslogar ou relogar lá, ele não vai ser teleportado depois dessa 1h e vai dar erro de creature not found. Então você teria que colocar um onLogin pra se o cara tiver passado do tempo, devolver ele pro templo e, se não, colocar um addEvent de novo. Além disso, acho que você poderia colocar um isCreature na sua função de devolver pro templo. Link para o comentário Compartilhar em outros sites More sharing options...
Killua 389 Postado Setembro 1, 2013 Autor Share Postado Setembro 1, 2013 (editado) Isso é verdade, quando eu escrevi o tópico eu tinha colocado a parte que ia no login.lua, e só agora vi que não apareceu --' o XTibia sempre come pedaços das respostas ou das edições. É por causa disso que o script adiciona um storage a mais, que é pro caso dele relogar. Valeu por me avisar mano, quando eu voltar pra minha casa vou arrumar E pq usar isCreature? Vc pode me explicar? Eu nao etendo ela mt bem Editado Setembro 1, 2013 por amoeba13 Link para o comentário Compartilhar em outros sites More sharing options...
Omega 377 Postado Setembro 1, 2013 Share Postado Setembro 1, 2013 Isso é verdade, quando eu escrevi o tópico eu tinha colocado a parte que ia no login.lua, e só agora vi que não apareceu --' o XTibia sempre come pedaços das respostas ou das edições. É por causa disso que o script adiciona um storage a mais, que é pro caso dele relogar. Valeu por me avisar mano, quando eu voltar pra minha casa vou arrumar E pq usar isCreature? Vc pode me explicar? Eu nao etendo ela mt bem Porque você vai usar um addEvent com um cid. O cid é único pra cada criatura e jogador. Daí, imagina se o jogador morre ou loga. O computador não sabe que é pra mudar o cid dele nesse caso, e quando (ou se) ele voltar, aquele cid que você usou já não existe mais. Então o computador lê um cid e tenta procurar uma criatura, mas não acha, ai aparece aquele erro no distro: creature not found. Por isso você usa if not isCreature(cid) then return true end em scripts desse tipo, porque se não for uma criatura, ele nem vai tentar fazer nada e não vai dar erro. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados