[Npc] Vender Storage

fourketa123
em Scripts

fourketa123

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/12/11Posts: 5

Tipo do script: Npc

Protocolo (versão do Tibia): 8.60

Servidor utilizado: Tfs 0.4

Nível de experiência: Médio

Adicionais/Informações:

 

 

Olá,

Eu Queria Um Script,

De Npc,

Que o player leva-se,

Determinado item para o npc,

O npc Daria Uma Storage,

 

 

Faça só um exemplo... Depois eu edito. :) Obrigado..

 

URGENTEEE..

 

Gogo ~> head-shot.no-ip.org <~ Ip/Site... Venham Ser Tops :) E ter Muita Diversão...

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort
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
local itemID = 1234 -- id do anel
local quantRemove = 1 -- quantidade do item acima que sera removido
local storageGain = 5678 -- storage que o player vai ganhar quando o item for removido

if (msgcontains(msg, 'yes') and doPlayerRemoveItem(cid, itemID, quantRemove)) then
selfSay('MESAGEM QUE O NPC IRA FALAR AO REMOVER O ITEM AQUI ENTRE AS ASPAS.', cid)
setPlayerStorageValue(cid, storageGain, 1)
else
selfSay('MESAGEM QUE O NPC IRA FALAR SE O PLAYER NÂO TIVER O ITEM AQUI ENTRE AS ASPAS.', cid)
end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

fourketa123

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/12/11Posts: 5

Para Botar Mais Que Um Item é Só?

 

local itemID = 1234, 1235

bepokemon

Lo sono il accolito.
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 23/02/08Posts: 273Char no Tibia: Foxx Rookslayer

Para Botar Mais Que Um Item é Só?

 

local itemID = 1234, 1235

 

Nao, vai precisar fazer um loop em uma table ou array.

function doPlayerRemoveItemTable(cid, table)
for itemid,count in pairs(table) do
if not (getPlayerItemCount(cid, itemid) >= count) then
return false
end
end
return true
end

 

 

Agora eh soh declarar a funcao e utilizar uma tabela como esta:

local reqItems = {[itemid] = quant,[itemid2] = quant2}
if doPlayerRemoveItemTable(cid, reqItems) then

logo.png

Scripter

@MagicWorld

Ex: Colaborador de Scripting

Contato: bepokemon@hotmail.com

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

@up

 

não existe return e break juntos...

Oie :D

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

se for sóh 2 itens poem assim:

 

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
local itemID = 1234 -- id do item que sera removido
local itemID2 = 5678 -- id do item que sera removido
local quantRemove = 1 -- quantidade do item acima que sera removido
local quantRemove2 = 5 -- quantidade do item acima que sera removido
local storageGain = 5678 -- storage que o player vai ganhar quando o item for removido

if (msgcontains(msg, 'yes') and getPlayerItemCount(cid, itemID) >= quantRemove and getPlayerItemCount(cid, itemID2) >= quantRemove2) then
doPlayerRemoveItem(cid, itemID, quantRemove)
doPlayerRemoveItem(cid, itemID2, quantRemove2)
selfSay('MESAGEM QUE O NPC IRA FALAR AO REMOVER O ITEM AQUI ENTRE AS ASPAS.', cid)
setPlayerStorageValue(cid, storageGain, 1)
else
selfSay('MESAGEM QUE O NPC IRA FALAR SE O PLAYER NÂO TIVER O ITEM AQUI ENTRE AS ASPAS.', cid)
end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

@up

 

se o cara só tiver 1 dos itens e não tiver o outro, o script vai remover o que ele tem...

Oie :D

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

fourketa123

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/12/11Posts: 5

Vlw Gente, Vou Testar...

 

 

Edit: Ai Eu gostaria que fose 3 itens o que devo acresentar..

 

vlw :X

 

Consigui... Vlw Jhon. Rep +

;)

bepokemon

Lo sono il accolito.
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 23/02/08Posts: 273Char no Tibia: Foxx Rookslayer

@up

 

não existe return e break juntos...

 

Eu tambem imaginei que nao existisse, mas vi uma pessoa fazendo. Malditas mas influencias.

logo.png

Scripter

@MagicWorld

Ex: Colaborador de Scripting

Contato: bepokemon@hotmail.com

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

é cara... tem que cuidar isso.

 

é porque return e break são ambos encerradores de trechos, então não pode ter mais nada depois deles.

 

usa só return dai.

Oie :D