Ir para conteúdo
  • 0

[Pedido]Scripter de Quest e Oufit


AnjoCelestial

Pergunta

Bom,venho aqui pedir a vocês 3 scripters!!

Quais são:

 

Np'c Dishey-Bom tenho a sprite de dishey (própia) quero transformar ele em npc,a função dele deverá se possivel trocar tal item por 1 Wigglytuff.

 

Barco-Quero um Npc Barco,a sprite dele é um barco,quando falar hi,ele perguntará se quer ir para região de kalamos,mas para ir tem que ter 2 Itens.(E se tiver os itens tenha x y que é para coloquar a posição quando o player chegar na ilha!!)

 

Npc's Oufit-Esse Npc,quando falar hi,ele perguntará se quer Tal outfit ex:Olá [playername]você quer a oufit menino aventureiro,ou menina aventureira?

e quero que quando falar a roupa que quer,ele vai dizer o preço (quero o preço de 50Thousand Dollars).Se tiver ele fala:Pronto,aproveitem sua oufit [playername].Se não tiver ele fale:Vá embora,so volte aqui quando tiver o dinheiro necessário.(E porfavor quando comprar a oufit já se vista imediatamente com a oufit!)

 

 

A gente expliquem bém direitinho como adciona isso que pedi pfv!!Não mecho com essa parte de xml de npc npc.lua e etc...Porfavor me ajudem!!!é urgente sério pfv!!!


Ninguém responde o tópico n?


'-' ninguém responde?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Npc 2-

 

 

na pasta data/npc ponha:

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="NomeNPC" script="outfitnpc.lua" walkinterval="350000" floorchange="0" speed="0">
<health now="110" max="150"/>
<look type="OUTNPC" head="0" body="116" legs="116" feet="115"/>
</npc>

 

 

 

na pasta data/npc/scripts crie um arquivo chamado outfitnpc.lua e ponha dentro:

 

 

 

local focus = 0
local talk_start = 0
local conv = 0
local target = 0
function onCreatureSay(cid, type, msg)
local msg = string.lower(msg)
if focus == cid then
talk_start = os.clock()
end
if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then
focus = cid
talk_start = os.clock()
conv = 0
if getPlayerStorageValue(cid, 321231) >= 1 then
selfSay('Olá ' .. getCreatureName(cid) .. 'Você quer ter a OUTNAME ?')
else
conv = 1
selfSay('Olá.')
end
return true
end
if msgcontains(msg, 'yes') and conv == 1 and focus == cid then
selfSay('Sim, eu posso dar a OUTNAME?')
conv = 2
return true
end
if msgcontains(msg, 'no') and conv == 1 and focus == cid then
selfSay('ok!')
focus = 0
return true
end
if msgcontains(msg, 'yes') and conv == 2 and focus == cid then
selfSay('OK! Tome a OUTNAME!')
focus = 0
setPlayerStorageValue(cid, 321231, 1)
doPlayerSendOutfitWindow(cid)
return true
end
if msgcontains(msg, 'no') and conv == 2 and focus == cid then
selfSay('What?! Nobody has ever declined my clothes! Well, come back when you change your mind.')
focus = 0
return true
end
if msgcontains(msg, 'bye') and focus == cid then
selfSay('Go for it adventurer!')
focus = 0
return true
end
end
local delay = 40
function onThink()
if focus == 0 then
selfTurn(2)
delay = delay - 0.5
if delay <= 0 then
selfSay("I love hiking in the mountains!")
delay = math.random(45, 80)
end
return true
else
if not isCreature(focus) then
focus = 0
return true
end
local npcpos = getThingPos(getThis())
local focpos = getThingPos(focus)
if npcpos.z ~= focpos.z then
focus = 0
return true
end
if (os.clock() - talk_start) > 30 then
focus = 0
selfSay("I love to stare at mountains too.")
end
if getDistanceToCreature(focus) > 4 then
selfSay("Keep hiking young traveler!")
focus = 0
return true
end
local dir = doRedirectDirection(getDirectionTo(npcpos, focpos))
selfTurn(dir)
end
return true
end

 

 

 

 

 

Na pasta data/xml/ OU data/ Abra o arquivo Outfits.xml

e adicione

 

 

<outfit id="ID" quest="321231">
<list gender="0" lookType="LookTypeMale" name="OUTNAME"/>
<list gender="1" lookType="LookTypeFemale" name="OUTNAME"/>
</outfit>

 

 

 

Como Configurar:

 

Outname = Nome da Outfit

ID = Ponha o ID depois do seu ultimo, ou seja, se o seu ultimo for 10 ponha 11

LookTypeMale = LookType do personagem Homem

LookTypeFemale = LookType do Personagem Mulher

OutNpc = LookTypeNPC

NomeNPC = Nome do NPC

 

 

Npc de Viajem

 

no data/npc/scripts crie um arquivo com qualquernome.lua e ponha isso embaixo

 

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local parameters = {}
local teleports = {
["NOME"] = {position = {x = POSX, y = POSY, z = POSZ}}
}
local remover = {{ID, Quant}, {ID, Quant}}
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 onCreatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
for name, info in pairs(teleports) do
for _, prizes in pairs(remover) do
if msgcontains(msg, name) then
selfSay("Você quer ir para {".. name .."}?", cid)
talkState[talkUser] = 1
parameters[talkUser] = info
break
end
end
if talkState[talkUser] == 1 then
if msgcontains(msg, "yes") then
doPlayerRemoveItem(cid, prizes[1], prizes[2])
doTeleportThing(cid, parameters[talkUser].position)
selfSay("Boa viagem!", cid)
else
selfSay("Desculpe, você não possui os itens pedidos", cid)
talkState[talkUser] = 0
end
elseif msgcontains(msg, "no") then
selfSay("Tudo bem, volte quando mudar de ideia.", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
end
return true
end
local msg = "Olá, |PLAYERNAME|. Gostaria de viajar? Posso te levar para: "
local i = 1
for name, info in pairs(teleports) do
msg = msg .." {".. name .."}" .. (i == 1 and "" or ", ")
i = i + 1
end
npcHandler:setMessage(MESSAGE_GREET, msg)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, onCreatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

 

NOME = Nome do lugar

POSX = posição x

POSY = Posição Y

POSz = posição z

ID = Id do item que vai tirar

QUANT = Quantidade do item

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

  • 0

Npc 2-

 

 

na pasta data/npc ponha:

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="NomeNPC" script="outfitnpc.lua" walkinterval="350000" floorchange="0" speed="0">
<health now="110" max="150"/>
<look type="OUTNPC" head="0" body="116" legs="116" feet="115"/>
</npc>

 

 

 

na pasta data/npc/scripts crie um arquivo chamado outfitnpc.lua e ponha dentro:

 

 

 

local focus = 0
local talk_start = 0
local conv = 0
local target = 0
function onCreatureSay(cid, type, msg)
local msg = string.lower(msg)
if focus == cid then
talk_start = os.clock()
end
if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then
focus = cid
talk_start = os.clock()
conv = 0
if getPlayerStorageValue(cid, 321231) >= 1 then
selfSay('Olá ' .. getCreatureName(cid) .. 'Você quer ter a OUTNAME ?')
else
conv = 1
selfSay('Olá.')
end
return true
end
if msgcontains(msg, 'yes') and conv == 1 and focus == cid then
selfSay('Sim, eu posso dar a OUTNAME?')
conv = 2
return true
end
if msgcontains(msg, 'no') and conv == 1 and focus == cid then
selfSay('ok!')
focus = 0
return true
end
if msgcontains(msg, 'yes') and conv == 2 and focus == cid then
selfSay('OK! Tome a OUTNAME!')
focus = 0
setPlayerStorageValue(cid, 321231, 1)
doPlayerSendOutfitWindow(cid)
return true
end
if msgcontains(msg, 'no') and conv == 2 and focus == cid then
selfSay('What?! Nobody has ever declined my clothes! Well, come back when you change your mind.')
focus = 0
return true
end
if msgcontains(msg, 'bye') and focus == cid then
selfSay('Go for it adventurer!')
focus = 0
return true
end
end
local delay = 40
function onThink()
if focus == 0 then
selfTurn(2)
delay = delay - 0.5
if delay <= 0 then
selfSay("I love hiking in the mountains!")
delay = math.random(45, 80)
end
return true
else
if not isCreature(focus) then
focus = 0
return true
end
local npcpos = getThingPos(getThis())
local focpos = getThingPos(focus)
if npcpos.z ~= focpos.z then
focus = 0
return true
end
if (os.clock() - talk_start) > 30 then
focus = 0
selfSay("I love to stare at mountains too.")
end
if getDistanceToCreature(focus) > 4 then
selfSay("Keep hiking young traveler!")
focus = 0
return true
end
local dir = doRedirectDirection(getDirectionTo(npcpos, focpos))
selfTurn(dir)
end
return true
end

 

 

 

 

 

Na pasta data/xml/ OU data/ Abra o arquivo Outfits.xml

e adicione

 

 

<outfit id="ID" quest="321231">
<list gender="0" lookType="LookTypeMale" name="OUTNAME"/>
<list gender="1" lookType="LookTypeFemale" name="OUTNAME"/>
</outfit>

 

 

 

Como Configurar:

 

Outname = Nome da Outfit

ID = Ponha o ID depois do seu ultimo, ou seja, se o seu ultimo for 10 ponha 11

LookTypeMale = LookType do personagem Homem

LookTypeFemale = LookType do Personagem Mulher

OutNpc = LookTypeNPC

NomeNPC = Nome do NPC

 

 

Npc de Viajem

 

no data/npc/scripts crie um arquivo com qualquernome.lua e ponha isso embaixo

 

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local parameters = {}
local teleports = {
["NOME"] = {position = {x = POSX, y = POSY, z = POSZ}}
}
local remover = {{ID, Quant}, {ID, Quant}}
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 onCreatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
for name, info in pairs(teleports) do
for _, prizes in pairs(remover) do
if msgcontains(msg, name) then
selfSay("Você quer ir para {".. name .."}?", cid)
talkState[talkUser] = 1
parameters[talkUser] = info
break
end
end
if talkState[talkUser] == 1 then
if msgcontains(msg, "yes") then
doPlayerRemoveItem(cid, prizes[1], prizes[2])
doTeleportThing(cid, parameters[talkUser].position)
selfSay("Boa viagem!", cid)
else
selfSay("Desculpe, você não possui os itens pedidos", cid)
talkState[talkUser] = 0
end
elseif msgcontains(msg, "no") then
selfSay("Tudo bem, volte quando mudar de ideia.", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
end
return true
end
local msg = "Olá, |PLAYERNAME|. Gostaria de viajar? Posso te levar para: "
local i = 1
for name, info in pairs(teleports) do
msg = msg .." {".. name .."}" .. (i == 1 and "" or ", ")
i = i + 1
end
npcHandler:setMessage(MESSAGE_GREET, msg)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, onCreatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

 

NOME = Nome do lugar

POSX = posição x

POSY = Posição Y

POSz = posição z

ID = Id do item que vai tirar

QUANT = Quantidade do item

Fuciono todos perfect!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

NPC1

 

na pasta npcs crie um arquivo chamado Trocar.xml e ponha isso lá

 

 

<?xml version="1.0" encoding="UTF-8"?>
 
<npc name="NomeNPC" script="outfitnpc.lua" walkinterval="350000" floorchange="0" speed="0">
<health now="110" max="150"/>
<look type="OUTNPC" head="0" body="116" legs="116" feet="115"/>
</npc> 

NomeNPC = Nome do NPC

OutNpc = LookTypeNPC

 

 

na pasta npcs/script crie um arquivo Trocar.lua e ponha isso lá

 

 

local focus = 0
local talk_start = 0
local conv = 0
local target = 0
local health = 350
local maxhealth = 350
local description = "Contains a Wigglytuff."
local poke1 = "This is Wigglytuff's pokeball. HP = ["..health.."/"..maxhealth.."]"
item = doCreateItemEx(2219)
local ItemT = {{ItemID, Quantidade}}

function onCreatureSay(cid, type, msg)
 
local msg = string.lower(msg)
 
if focus == cid then
talk_start = os.clock()
end
 
if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then
focus = cid
talk_start = os.clock()
conv = 0
 
selfSay('Olá eu troco ITEMNAME por Um Wigglytuff')
else
conv = 1
selfSay('Olá.')
end
return true
end
 
if msgcontains(msg, 'trocar') and conv == 1 and focus == cid then
 
selfSay('deseja trocar ITEMNAME ?')
conv = 2
return true
end
 
if msgcontains(msg, 'no') and conv == 1 and focus == cid then
 
selfSay('ok!')
focus = 0
return true
end

if msgcontains(msg, 'yes') and conv == 2 and focus == cid then
doItemSetAttribute(item, "poke", poke1)
doItemSetAttribute(item, "nome", "Wigglytuff")
doItemSetAttribute(item, "description", description)
doPlayerAddItemEx(cid, item, true)
doTransformItem(item, 2222)
for _, prizes in pairs(ItemT) do
doPlayerRemoveItem(cid, prizes[1], prizes[2])
else
if getPlayerItemCount(cid, prizes[1], prizes[2]) == 0 then
selfSay ('Não tem o ITEMNAME')

return true
end
if msgcontains(msg, 'no') and conv == 2 and focus == cid then
 
selfSay('ok.')
focus = 0
return true
end
 
if msgcontains(msg, 'bye') and focus == cid then
selfSay('Até logo!')
focus = 0
return true
end
end
 
local delay = 40
 
function onThink()
 
if focus == 0 then
selfTurn(2)
delay = delay - 0.5
if delay <= 0 then
selfSay("Oi!")
delay = math.random(45, 80)
end
return true
else
 
if not isCreature(focus) then
focus = 0
return true
end
 
local npcpos = getThingPos(getThis())
local focpos = getThingPos(focus)
 
if npcpos.z ~= focpos.z then
focus = 0
return true
end
 
if (os.clock() - talk_start) > 30 then
focus = 0
selfSay("Oi")
end
 
if getDistanceToCreature(focus) > 4 then
selfSay("Oi!")
focus = 0
return true
end
 
local dir = doRedirectDirection(getDirectionTo(npcpos, focpos))
selfTurn(dir)
end
return true
end
  

ITEMNAME = Nome do Item

ItemID = Id do Item

Quantidade = Quantidade do Item

 

 

 

Ficaria Assim

Hi/Trocar/Yes

 

Qualquer erro poste aqui.

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

  • 0

NPC1

 

na pasta npcs crie um arquivo chamado Trocar.xml e ponha isso lá

 

 

<?xml version="1.0" encoding="UTF-8"?>
 
<npc name="NomeNPC" script="outfitnpc.lua" walkinterval="350000" floorchange="0" speed="0">
<health now="110" max="150"/>
<look type="OUTNPC" head="0" body="116" legs="116" feet="115"/>
</npc> 

NomeNPC = Nome do NPC

OutNpc = LookTypeNPC

 

 

na pasta npcs/script crie um arquivo Trocar.lua e ponha isso lá

 

 

local focus = 0
local talk_start = 0
local conv = 0
local target = 0
local health = 350
local maxhealth = 350
local description = "Contains a Wigglytuff."
local poke1 = "This is Wigglytuff's pokeball. HP = ["..health.."/"..maxhealth.."]"
item = doCreateItemEx(2219)
local ItemT = {{ItemID, Quantidade}}

function onCreatureSay(cid, type, msg)
 
local msg = string.lower(msg)
 
if focus == cid then
talk_start = os.clock()
end
 
if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then
focus = cid
talk_start = os.clock()
conv = 0
 
selfSay('Olá eu troco ITEMNAME por Um Wigglytuff')
else
conv = 1
selfSay('Olá.')
end
return true
end
 
if msgcontains(msg, 'trocar') and conv == 1 and focus == cid then
 
selfSay('deseja trocar ITEMNAME ?')
conv = 2
return true
end
 
if msgcontains(msg, 'no') and conv == 1 and focus == cid then
 
selfSay('ok!')
focus = 0
return true
end

if msgcontains(msg, 'yes') and conv == 2 and focus == cid then
doItemSetAttribute(item, "poke", poke1)
doItemSetAttribute(item, "nome", "Wigglytuff")
doItemSetAttribute(item, "description", description)
doPlayerAddItemEx(cid, item, true)
doTransformItem(item, 2222)
for _, prizes in pairs(ItemT) do
doPlayerRemoveItem(cid, prizes[1], prizes[2])
else
if getPlayerItemCount(cid, prizes[1], prizes[2]) == 0 then
selfSay ('Não tem o ITEMNAME')

return true
end
if msgcontains(msg, 'no') and conv == 2 and focus == cid then
 
selfSay('ok.')
focus = 0
return true
end
 
if msgcontains(msg, 'bye') and focus == cid then
selfSay('Até logo!')
focus = 0
return true
end
end
 
local delay = 40
 
function onThink()
 
if focus == 0 then
selfTurn(2)
delay = delay - 0.5
if delay <= 0 then
selfSay("Oi!")
delay = math.random(45, 80)
end
return true
else
 
if not isCreature(focus) then
focus = 0
return true
end
 
local npcpos = getThingPos(getThis())
local focpos = getThingPos(focus)
 
if npcpos.z ~= focpos.z then
focus = 0
return true
end
 
if (os.clock() - talk_start) > 30 then
focus = 0
selfSay("Oi")
end
 
if getDistanceToCreature(focus) > 4 then
selfSay("Oi!")
focus = 0
return true
end
 
local dir = doRedirectDirection(getDirectionTo(npcpos, focpos))
selfTurn(dir)
end
return true
end
  

ITEMNAME = Nome do Item

ItemID = Id do Item

Quantidade = Quantidade do Item

 

 

 

Ficaria Assim

Hi/Trocar/Yes

 

Qualquer erro poste aqui.

:) Perfeito!!!!Melhor impossivel!!!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...