meubk 257 Postado Setembro 10, 2011 Share Postado Setembro 10, 2011 (editado) Invocação de Player Sabe quando você e seu amigo está caçando em um lugar muito longe, e você morre, e o espertinho de seu amigo fica vivo, não dá aquela raiva, de ter que voltar todo caminho, e ainda sozinho ? Pensando nisso, foi que eu tive uma ideia de uma Pedra, aonde seu amigo pode usar ela no seu corpo se você ainda estiver tiver online, e aceitar seu convite, você é teleportado para cima do corpo. Observe a Imagem: Bom, agora que já está explicado a ideia vamos ao script: Crie um arquivo com o nome de invoc.lua na pasta actions/scripts e cole o seguinte código: local configs = { minLvL = 0, -- level minimo necessário[ 0 para não precisar ] mana = 0, -- mana necessária [ 0 para não precisar ] magicLvL = 0, -- magic level necessário [ 0 para não precisar ] vocs = {0, 1, 2, 3, 4, 5, 6, 7, 8}, -- vocações que podem usar premium = false, -- precisa de premium [ true ou false ] removeCorpse = true, -- remover o corpo depois de invocar [ true or false ] removeStone = true, -- remover a pedra após usar [ true or false ] invite = true -- o dono do corpo precisa aceitar [ true or false ] } function SendMessageInvoc(cid, pid) if getPlayerStorageValue(pid, 22254) ~= 1 then return true end if not isCreature(cid) or not isCreature(pid) then return true end doPlayerSendTextMessage(pid, 27, "O Player "..getCreatureName(cid).." quer te invocar digite /invoc aceitar ou /invoc rejeitar.") addEvent(SendMessageInvoc, 10000, cid, pid) end function onUse(cid, item, frompos, item2, topos) if getPlayerLevel(cid) < configs.minLvL then return doPlayerSendCancel(cid, "Você precisa de level "..configs.minLvL.." para invocar alguem.") elseif getPlayerMana(cid) < configs.mana then return doPlayerSendCancel(cid, "Você precisa de "..configs.mana.." de mana para invocar alguem.") elseif getPlayerMagLevel(cid) < configs.magicLvL then return doPlayerSendCancel(cid, "Você precisa de magic level "..configs.magicLvL.." para invocar alguem.") elseif not isInArray(configs.vocs, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "Sua Vocação não é permitido invocar alguem.") elseif not isPremium(cid) and configs.premium then return doPlayerSendCancel(cid, "Você precisa de premium account para invocar alguem.") end if isCorpse(item2.uid) then if not getItemAttribute(item2.uid, "description") then return doPlayerSendCancel(cid, "Este não é corpo de um player.") end local name = (getItemAttribute(item2.uid, "description")):match("You recognize (.-)%.") local pid = getPlayerByName(name) if pid then if not configs.invite then doTeleportThing(pid, topos) doSendMagicEffect(topos, 10) doSendAnimatedText(topos, "Invoked", math.random(1, 250)) doPlayerSendTextMessage(cid, 27, "O Player "..name.." foi invocado com sucesso.") doPlayerSendTextMessage(pid, 27, "O Player "..getCreatureName(cid).." te invocou.") if configs.removeCorpse then doRemoveItem(item2.uid) end else if getPlayerStorageValue(pid, 22254) ~= 1 then setPlayerStorageValue(pid, 22254, 1) setPlayerStorageValue(pid, 22255, topos.x) setPlayerStorageValue(pid, 22256, topos.y) setPlayerStorageValue(pid, 22257, topos.z) if configs.removeCorpse then setPlayerStorageValue(pid, 22258, "yes") end setPlayerStorageValue(pid, 22259, cid) SendMessageInvoc(cid, pid) doPlayerSendTextMessage(cid, 27, "Você envio convite para "..name.." para ser invocado.") else return doPlayerSendCancel(cid, "Este corpo já foi invocado por alguem.") end end if configs.removeStone then doRemoveItem(item.uid, 1) end return doCreatureAddMana(cid, - configs.mana) else return doPlayerSendTextMessage(cid, 27, "O Player não esta online.") end else return doPlayerSendCancel(cid, "Isto não é um corpo.") end end Depois na pasta actions procure pelo arquivo actions.xml e adicione a tag: <action itemid="8303" event="script" value="invoc.lua"/> Agora entre na pasta talkactions/scripts e crie outro arquivo com o nome de invoc.lua novamente e cole o código: function onSay(cid, words, param) if getPlayerStorageValue(cid, 22254) == 1 then if param == "aceitar" then if not isPlayer(getPlayerStorageValue(cid, 22259)) then setPlayerStorageValue(cid, 22254, 0) doPlayerSendTextMessage(cid, 27, "O Player que te invocou não está mais online por isso foi cancelado o pedido.") end local pos = {x=getPlayerStorageValue(cid, 22255), y=getPlayerStorageValue(cid, 22256), z=getPlayerStorageValue(cid, 22257)} doTeleportThing(cid, pos) doSendMagicEffect(pos, 10) doSendAnimatedText(pos, "Invoked", math.random(1, 250)) if getPlayerStorageValue(cid, 22258) == "yes" then for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if isCorpse(tile.uid) then if (getItemAttribute(tile.uid, "description")):match("You recognize (.-)%.") == getCreatureName(cid) then doRemoveItem(tile.uid) break end end end end doPlayerSendTextMessage(cid, 27, "O Player "..getCreatureName(getPlayerStorageValue(cid, 22259)).." te invocou.") doPlayerSendTextMessage(getPlayerStorageValue(cid, 22259), 27, getCreatureName(cid).." foi invocado com sucesso.") setPlayerStorageValue(cid, 22254, 0) elseif param == "rejeitar" then if not isPlayer(getPlayerStorageValue(cid, 22259)) then setPlayerStorageValue(cid, 22254, 0) doPlayerSendTextMessage(cid, 27, "O Player que te invocou não está mais online por isso foi cancelado o pedido.") end doPlayerSendTextMessage(cid, 27, "Você rejeitou o pedido de "..getCreatureName(getPlayerStorageValue(cid, 22259))..".") doPlayerSendTextMessage(getPlayerStorageValue(cid, 22259), 27, getCreatureName(cid).." rejeitou seu pedido de invocação.") setPlayerStorageValue(cid, 22254, 0) end else doPlayerSendTextMessage(cid, 27, "Você não tem convites.") end return true end Depois na pasta talkactions procure o arquivo talkactions.xml e adicione a seguinte tag: <talkaction words="/invoc" hide="yes" event="script" value="invoc.lua"/> Segue as configurações no script, se vai remover o corpo, se vai remover a pedra, o level, magic level, premium, ou até mesmo se o player que vai ser invocado precisar aceitar algum convite, tudo pode ser configurado no script nesta parte: local configs = { minLvL = 0, -- level minimo necessário[ 0 para não precisar ] mana = 0, -- mana necessária [ 0 para não precisar ] magicLvL = 0, -- magic level necessário [ 0 para não precisar ] vocs = {0, 1, 2, 3, 4, 5, 6, 7, 8}, -- vocações que podem usar premium = false, -- precisa de premium [ true ou false ] removeCorpse = true, -- remover o corpo depois de invocar [ true or false ] removeStone = true, -- remover a pedra após usar [ true or false ] invite = true -- o dono do corpo precisa aceitar [ true or false ] } Caso estiver usando o sistema de convite os comandos são: /invoc aceitar /invoc rejeitar Bom eu deixei configurado com aquela pedra rosa como na foto, fica ao seu critério deixar ela ou escolher outra só mudar na tag do xml: action itemid="8303" Obrigado a todos, e se gostaram comente Tchau ;* Editado Setembro 12, 2011 por xotservx Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/ Compartilhar em outros sites More sharing options...
alldakie 160 Postado Setembro 10, 2011 Share Postado Setembro 10, 2011 Ainda não testei, mais me parece bom! Parabéns, acredito que seja um ótimo script, e a função e melhor ainda! REP+ Adiantado! Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1100621 Compartilhar em outros sites More sharing options...
ereveworld1 8 Postado Setembro 10, 2011 Share Postado Setembro 10, 2011 Nossa, surgiram milhares de ideias na minha cabeça. Ótimo script, ainda não testei Rep+ Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1100647 Compartilhar em outros sites More sharing options...
Jeffee90 4 Postado Setembro 10, 2011 Share Postado Setembro 10, 2011 Olá. Testei Em Um OTServer Baiak 8.60 e Deu Erro =( Mesmo Assim REP+ :button_ok: Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1100671 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Setembro 10, 2011 Share Postado Setembro 10, 2011 Faltou a checagem para ver se o jogador tem mana suficiente. Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1100732 Compartilhar em outros sites More sharing options...
zemzinho 0 Postado Setembro 10, 2011 Share Postado Setembro 10, 2011 Parece ser bom.. Mas ainda nao testei. REP+ ~~~~~~~tudoporumavida.tumblr.com~~~~~~~~~~ Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1100743 Compartilhar em outros sites More sharing options...
k2lan 45 Postado Setembro 10, 2011 Share Postado Setembro 10, 2011 pelo jeito nao funciona baiak 8.6 né Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1100786 Compartilhar em outros sites More sharing options...
Ltkshow 6 Postado Setembro 10, 2011 Share Postado Setembro 10, 2011 Mano Funfa Em Baiak 8.60? Se Funfa Pode Ter Certeza Que Meu Rep+ Ta Garantido. YOURS;LTK :button_ok: Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1100793 Compartilhar em outros sites More sharing options...
FrozenGames 2 Postado Setembro 10, 2011 Share Postado Setembro 10, 2011 Pelo que eu vi , deve ser otima mesmo mais , pare para pensar . Vamos supor que Eu morri . a pessoa q tiver a pedra vai usa no meu corpo la ai quando eu for para la ele me mata ? Ex : O cara me mato , uso a pedra no meu corpo eu volto pro luga de onde morri e ele me mata de novo ? . intao tenq elaborar + . Mais fora isso fikou otimo . Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1100831 Compartilhar em outros sites More sharing options...
FrozenGames 2 Postado Setembro 10, 2011 Share Postado Setembro 10, 2011 Pelo que eu vi , deve ser otima mesmo mais , pare para pensar . Vamos supor que Eu morri . a pessoa q tiver a pedra vai usa no meu corpo la ai quando eu for para la ele me mata ? Ex : O cara me mato , uso a pedra no meu corpo eu volto pro luga de onde morri e ele me mata de novo ? . intao tenq elaborar + . Mais fora isso fikou otimo . Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1100832 Compartilhar em outros sites More sharing options...
Subwat 405 Postado Setembro 10, 2011 Share Postado Setembro 10, 2011 que script loko '-' mas e se o cara ti puxar pra ti matar '-' Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1100834 Compartilhar em outros sites More sharing options...
SkyDangerous 395 Postado Setembro 10, 2011 Share Postado Setembro 10, 2011 Grande Ideia Script muito bom. @Demon A checagem de mana não seria nisso elseif getPlayerMana(cid) < configs.mana then return doPlayerSendCancel(cid, "Você precisa de "..configs.mana.." de mana para invocar alguem.") Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1100890 Compartilhar em outros sites More sharing options...
meubk 257 Postado Setembro 11, 2011 Autor Share Postado Setembro 11, 2011 Creio que funfe em um serve 8.6 até por que não usei nenhuma função diferente da versão 8.6.. Sky e Demonholder, a checagem de mana está ai sim, aonde o Sky disse mesmo... e enquanto o cara querer puxar pra te matar, eu estou fazendo aqui irei postar amanhã: quando o player clicar no corpo ira mandar um convite para o player se ele ker ser invocado, tendo accept e reject.. Obrigado aos elogios.. Fui ;* Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1101000 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Setembro 11, 2011 Share Postado Setembro 11, 2011 Ah sim, não havia visto hahaha. Parabéns pelo script, mas poderia estar melhor, como implantar um sistema onde o jogador tenha que aceitar ser teleportado. Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1101004 Compartilhar em outros sites More sharing options...
SkyDangerous 395 Postado Setembro 11, 2011 Share Postado Setembro 11, 2011 kk' Eu sou d + , só falta aprender a mecher nos script , porque traduzir o script eu sei bastante ;D Vai ser muito show esse script , se quiser ideias só perguntar ;D Link para o comentário https://xtibia.com/forum/topic/167483-action-pedra-invoca%C3%A7%C3%A3o-de-player/#findComment-1101005 Compartilhar em outros sites More sharing options...
Posts Recomendados