Ir para conteúdo

Posts Recomendados

A ideia do scripts e do Leoxtibia mais foi eu que realizei a ideia criando o scripts.

 

O player vai ate o npc e por um money e teleportado ate uma hunt la ele pode batalhar até que o tempo dele acabe voltando para outra posiçao sendo que apenas uma pessoa pode ficar na hunt ou seja se outro player for no npc e pedir para ir a hunt sendo que outro player estiver lá ele não se teleporta.

 

Primeiramente o script e totalmente configuravel e obrigatorio a configuraçao de posiçao para onde ele sera levado e onde ele sera levado quando o tempo acabar.

 

 

 

Crie um arquivo xml em npc chamado npchunt

 

 

<npc name="Hunt" script="data/npc/scripts/npchunt.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="134" head="78" body="88" legs="0" feet="88" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola. Para ir na hunt paga diga {hunt}." />
<parameter key="message_farewell" value="Ate mais." />
<parameter key="message_walkaway" value="Ate mais." />
</parameters>
</npc>

 

 

 

 

 

Crie um arquivo lua em npc/scripts chamado npchunt.lua e adicione isto

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end

function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end

function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end

function onThink() npcHandler:onThink() end

function creatureSayCallback(cid, type, msg)

local pos = {x=1039, y=1072, z=7} -- Local da hunt

local posreturn = {x=1039, y=1072, z=7} -- Posiçao onde o player sera teleportado quando acabar o tempo

local money = 400000 --- Quanto de dinheiro sera removido

 

 

config = {

time = 10 ---Tempo que ele vai ficar na hunt sabendo que cada numeral equivale a um minuto-----

 

}

 

function doReturnPos()

doTeleportThing(cid, posreturn)

setGlobalStorageValue(24688, 0)

setGlobalStorageValue(24686, none)

setPlayerStorageValue(cid, 28680, 0)

end

 

if(not npcHandler:isFocused(cid)) then

return false

end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

 

if msgcontains(msg, 'hunt') then

if getGlobalStorageValue(24688) == 1 then

doPlayerSendTextMessage(cid,22,"O player "..getGlobalStorageValue(24686).." esta na hunt")

return true

end

if not doPlayerRemoveMoney(cid, money) then

doPlayerSendTextMessage(cid,22,""..getPlayerName(cid).." precisa de "..money.." para usar a hunt paga")

return true

end

doPlayerRemoveMoney(cid, money)

doPlayerSendTextMessage(cid,22,"Obrigado "..getPlayerName(cid).." foi teleportado.")

doTeleportThing(cid, pos)

setGlobalStorageValue(24688, 1)

setGlobalStorageValue(24686, getPlayerName(cid))

setPlayerStorageValue(cid, 28680, 1)

addEvent(doReturnPos, config.time*60*1000)

else

selfSay('Diga Hunt', cid)

end

return true

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

 

 

 

Agora va em Creaturescripts/scripts e crie um arquivo chamado death.lua

 

 

function onDeath(cid, corpse, killer)

function doReturnDeath()

setGlobalStorageValue(24688, 0)

setGlobalStorageValue(24686, none)

setPlayerStorageValue(cid, 28680, 0)

end

if getPlayerStorageValue(cid, 28680) == 1 then

doReturnDeath()

end

return TRUE

end

 

 

 

Agora na mesma pasta Creaturescripts/scripts crie outro arquivo chamado logouthunt.lua

 

 

function onLogout(cid)

local pos = {x=1039, y=1072, z=7} -- Para onde quando o player deslogar da hunt sera teleportado

if getPlayerStorageValue(cid, 28680) == 1 then

doSendMagicEffect(getThingPos(cid), 29)

doTeleportThing(cid, pos)

setGlobalStorageValue(24688, 0)

setGlobalStorageValue(24686, none)

setPlayerStorageValue(cid, 28680, 0)

return true

end

return true

end

 

 

Agora va em creaturescripts.xml e coloque estas tags

<event type="death" name="huntdeath" event="script" value="death.lua"/>
<event type="logout" name="loguthunt" event="script" value="loguthunt.lua"/>

 

 

 

Agora em Creaturescripts/scripts abra login.lua e coloque isto antes do ultimo return

 

	registerCreatureEvent(cid, "huntdeath")
	registerCreatureEvent(cid, "loguthunt")

 

 

 

 

 

E super recomendavel que a hunt não tenha saida para que o sistema fique completo ou seja quando o player entrar naquele local nao podera sair a não ser pelo tempo esgotado ou deslogando

Editado por caotic
Link para o comentário
Compartilhar em outros sites

Parabéns, garoto.

 

Está avançando rapidamente. Continue assim.

 

Seria mais simples fazer por os.time(), mas está muito bom assim mesmo.

 

+1 para você

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

Obrigado a todos

So uma coisa

E recomendavel que a hunt seja bem fechada se ele sair o tempo estara correndo assim mesmo

Assim ele ficara andando e quando chegar o tempo ele voltara a posiçao de antes

 

Pensando eu crei uma talk ao invez dele deslogar ou esperar o tempo se acabar ele volta ele volta so falando a a talk:

 

 

Crieum arquivo Lua chamado stopevent e coloque isto dentro

 

function onSay(cid, words, param)

 

local posreturn = {x=1039, y=1072, z=7} -- Posiçao onde o player sera teleportado quando acabar o tempo

 

function doReturnPos()

doTeleportThing(cid, posreturn)

setGlobalStorageValue(24688, 0)

setGlobalStorageValue(24686, none)

setPlayerStorageValue(cid, 28680, 0)

end

 

doPlayerSendTextMessage(cid,22,"Obrigado "..getPlayerName(cid).." foi teleportado para a volta.")

doReturnPos()

 

return true

end

 

 

Coloque esta tag em talkations.xml

 <talkaction words="/sairhunt" event="script" value="stophunt.lua"/>

Editado por caotic
Link para o comentário
Compartilhar em outros sites

  • 5 months later...

boa caotic nao testei ainda mais vou agora.

voce poderia tentar criar 1 script para min? ele funciona assim.

1 npc q pode te dar 1 dakeles escudos de war: vermelhor,verde,azul.

 

voce escolhe qual voce quer daí quando escolher relogar e o escudo estará la dolado do nome.

quebra essa ae

Reep+

 

a ia me esquecendo.

Sobre o seu Script NPC Hunt: Congratulation!

Funfo 100% Boa lek

continue assim =P

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
×
×
  • Criar Novo...