Ir para conteúdo
  • 0

Evento De Natal


LordVinny

Pergunta

É o seguinte como todos sabem obviamente o natal está para chegar e eu queria implantar uma coisa bem legal no meu ot para o divertimento dos players, eu vi um sistema no ot radbr e queria colocar no meu ot é assim > o script seria assim

 

todos os monstros do jogo dropariam um santa claus doll (o boneco do papai noel) depois levasse ate um npc com roupa de papai noel onde o player poderia trocar o doll por uma caixa de presente e depois o player poderia abrir está caixa de presentes onde viria um premio aleatório.

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Para o item, no arquivo data/actions/actions.xml, adicione está tag:

 

<action itemid="ID-DA-BOX" event="script" value="RandomBox"/>

 

E depois vá em data/actions/scripts, crie um arquivo RandomBox.lua e coloque isto dentro dele:

 

local item_id = {12938, 12941, 12943, 12944} -- itens que podem vir
function onUse(cid, item, frompos, item2, topos)
local level = 10 -- level
if item.itemid == 12778 then -- id da box
if getPlayerLevel(cid) >= level then
local w = math.random (1,#item_id)
doPlayerAddItem(cid, item_id[w])
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Você abriu a random box, e ganhou ["..getItemNameById(item_id[w]).."]")
doRemoveItem(item.uid, 1)
else
doPlayerSendCancel(cid,"Somente level "..level.." ou mais pode abrir.")
end
return true
end
end

 

Já está explicadinho no próprio script como editar... =]

 

 

separador%20blog.jpgseparador%20blog.jpg

 

 

Creio que o drop do item só pode ser editado mesmo nos monster's um por um!!!

 

 

separador%20blog.jpgseparador%20blog.jpg

 

1º Passo - Copie 1 arquivo.xml da sua pasta data/npc e mude o nome para o nome que você, depois cole isso dentro dele:

 

 

 

 

-- Script Npc Task BY GuhPk

 

<?xml version="1.0" encoding="UTF-8"?>

<npc name="nomedonpc" script="arquivo.lua" walkinterval="350000" floorchange="0" speed="0">

<health now="150" max="150"/>

<look type="255" head="91" body="114" legs="86" feet="0"/>

 

 

Azul = nome do script.lua que você vai colocar na pasta data/npc/script.

Vermelho = nome do Npc.

Verde = roupa do seu npc, vou ver se tem tópico explicando como fazer, se tiver eu posto aqui, se não eu crio aqui posto.

 

http://www.xtibia.co...pcs-e-monstros/

 

 

 

==========================================================================================================================

 

 

 

 

2º Passo - Agora vai em data/npc/script copia qualquer arquivo.lua de la coloca o nome que você quizer (este nome vai colocar onde esta de azul no script acima) e cola isso dentro:

 

 

 

 

 

-- Script Npc Task By GuhPk --

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {20}

local focus = 0

local talk_start = 0

local target = 0

local following = false

local attacking = false

 

 

storage = 1 -- storage id

item = 1 -- coloca aqui o id do item que vai ter que ir buscar

quantiitem = 1 -- quantidade do item acima que precisa pegar

item2 = 1 -- id da box

quantiitem2 = 1 -- quantas box ganha

 

 

 

 

 

 

function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end

 

 

 

 

function onThingMove(creature, thing, oldpos, oldstackpos, item, itemEx)

 

end

 

function onCreatureAppear(creature)

 

end

 

 

function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Tchau.',cid)

focus = 0

talk_start = 0

talkState[talkUser] = 0

end

end

function onCreatureTurn(creature)

 

end

 

function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end

 

 

function onCreatureSay(cid, type, msg)

 

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

 

if getDistanceToCreature(cid) > 4 then

return false

end

 

if talkState[talkUser] ~= 3 then

msg = string.lower(msg)

end

 

if (msgcontains(msg, 'hi')) then

 

fala = "Hey, eu estou precisando urgentemente de x itens. Será que você poderia me ajudar?"

 

selfSay(fala,cid)

talkState[talkUser] = 1

elseif ( ( msgcontains(msg,"yes") or (msgcontains(msg,"sim") ) ) and talkState[talkUser] == 1 ) then

 

quest1 = getPlayerStorageValue(cid,storage)

if quest1 == 2 then

selfSay('Cara, você já me ajudou!',cid)

else

 

if quest1 ==1 then

selfSay('Bom! Então vc trouxe os meus itens? Deixe-me ver.',cid)

if doPlayerRemoveItem(cid, item, quantiitem) == true then

selfSay('Obrigado! Agora poderei fazer meu projeto. Aqui esta sua recompença!',cid)

doPlayerAddItem(cid,premio1,quant1)

talkState[talkUser] = 0

else

selfSay('Voce não trouxe os meus itens... Volte quando tive-los.',cid)

talkState[talkUser] = 0

end

 

else

selfSay('Me traga os itens para o meu projeto.',cid)

setPlayerStorageValue(cid,storage, 1)

end

end

 

elseif(msgcontains(msg, 'no')) then

talkState[talkUser] = 0

selfSay('Okay, obrigado mesmo assim.', cid)

elseif(msgcontains(msg, 'bye')) then

selfSay('Até mais!', cid)

talkState[talkUser] = 0

end

 

end

 

 

function onCreatureChangeOutfit(creature)

 

end

 

 

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

  • 0

É o seguinte como todos sabem obviamente o natal está para chegar e eu queria implantar uma coisa bem legal no meu ot para o divertimento dos players, eu vi um sistema no ot radbr e queria colocar no meu ot é assim > o script seria assim

 

todos os monstros do jogo dropariam um santa claus doll (o boneco do papai noel) depois levasse ate um npc com roupa de papai noel onde o player poderia trocar o doll por uma caixa de presente e depois o player poderia abrir está caixa de presentes onde viria um premio aleatório.

Link para o comentário
Compartilhar em outros sites

  • 0

GuhPk, oque tem a ver seu script com oque ele pediu ?

 

Cara, se você leu todo o tópico, e com atenção você saberia!! ¬¬'

 

"todos os monstros do jogo dropariam um santa claus doll (o boneco do papai noel) depois levasse ate um npc com roupa de papai noel onde o player poderia trocar o doll por uma caixa de presente e depois o player poderia abrir está caixa de presentes onde viria um premio aleatório."

Link para o comentário
Compartilhar em outros sites

  • 0

Actions:

 

itensRandom = { }   -- Id dos itens aleatórios
quantidade = 1 -- Aqui a quantidade de itens que irão vir para o player
function onUse(cid, item)
	 doPlayerAddItem(cid, math.random(1, #itensRandom), quantidade)
	 doSendMagicEffect(getThingPos(cid), math.random(28, 30))
	 doPlayerSendTextMessage(cid, 27, "Marry Crystimas "..getCreatureName(cid).."!!!")
        doPlayerRemoveItem(cid, item.uid, 1)
end

 

Npc:

 

idDoDoll = 2 -- Id do boneco(doll)
idDaCaixa = 2-- Id da caixa que da itens

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)
if(not npcHandler:isFocused(cid)) then
return false  
end  
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'change doll')) then
if doPlayerRemoveItem(cid, idDoDoll, 1) then
doPlayerAddItem(cid, idDaCaixa, 1)
SelfSay('Marry Crystimas!!')
else
return selfSay('Sorry, you need a "..getItemNameById(idDoDoll)..".')
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Fale, hi-change doll e pronto..

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

  • 0

SmiX seu script tem um bug, quando eu abro a caixa de presentes aparece um sqm estranho em baixo do player, a box não some depois de ser usada , quando eu tento "sumonar" o npc não pega.

 

Olha ai :

 

 

[03/12/2012 19:44:08] [Warning - Npc::loadFromXml] Cannot load npc file (data/npc/papai noel.xml).

[03/12/2012 19:44:08] Line: 4, Info: Premature end of data in tag npc line 2

 

Então galerinha, está dando esse erro aqui:

 

E o script está assim

 

NPC

 

<?xml version="1.0" encoding="UTF-8"?>

<npc name="Papai Noel" script="papainoel.lua" walkinterval="350000" floorchange="0" speed="0">

<health now="150" max="150"/>

<look type="160" head="0" body="112" legs="93" feet="95"/>

 

idDoDoll = 6512 -- Id do boneco(doll)

idDaCaixa = 6497-- Id da caixa que da itens

 

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)

if(not npcHandler:isFocused(cid)) then

return false

end

local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid

if(msgcontains(msg, 'change doll')) then

if doPlayerRemoveItem(cid, 6512, 1) then

doPlayerAddItem(cid, 6497, 1)

SelfSay('Marry Crystimas!!')

else

return selfSay('Sorry, you need a "..getItemNameById(idDoDoll)..".')

end

end

return true

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

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

  • 0

Quanto a box, eu já editei para remover... Agora a questão do chão que é criado você precisa colocar mais de 1 item na tabela ou dara erro...

 

Quanto ao npc, não desvendei o "Mistério".

Link para o comentário
Compartilhar em outros sites

  • 0

Lord, o npc funciona assim, você coloca isso aqui:

 

?xml version="1.0" encoding="UTF-8"?>
<npc name="Papai Noel" script="papainoel.lua" walkinterval="350000" floorchange="0" speed="0">
<health now="150" max="150"/>
<look type="160" head="0" body="112" legs="93" feet="95"/>

 

Em data/npcs, só fazer um arquivo lá Papai Noel.xml e colocar isso...

 

Depois vá em data/npcs/scripts cria um arquivo papainoel.lua e cole isso:

 

idDoDoll = 6512 -- Id do boneco(doll)
idDaCaixa = 6497-- Id da caixa que da itens
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)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'change doll')) then
if doPlayerRemoveItem(cid, 6512, 1) then
doPlayerAddItem(cid, 6497, 1)
SelfSay('Marry Crystimas!!')
else
return selfSay('Sorry, you need a "..getItemNameById(idDoDoll)..".')
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Você estava colocando tudo junto... Por isso estava dando erro!! '-'

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu ali lindão <3

Boa sorte ai com o server...

 

@Guu

O que estava "tudo junto"?? me explique...

 

Ele colocou tudo, em um único arquivo...

E pelo que eu saiba não é assim... =S

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...