Ir para conteúdo

[Ajuda] Entrega item e coloca atributo no item


NdboHakai

Posts Recomendados

Boa noite

 

Galera queria saber se tinha como colocar nesses 2 script um de npc e outro de bau

Esse codigo: doItemSetAttribute(cid, "serial", generateSerial())

 

E também se tem como invés de falar o nome da missão para entregar os items

O jogador falar [entregar] e os item for entregues e ele recebe a recompensa

Se caso o jogador não tiver os items que foi pedido der um error avisando que ele não tem os items que foi pedido.

 

Npc :

Spoiler

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 itenscoleta = {{id =2666, count =50}, {id =11580, count =500}, {id =11580, count =1000}}
local str = { {mission1 = 58321, recompensa = 2160}, {mission2 = 58322, recompensa = 11920}, {mission3 = 58323, recompensa = 11920},}
name = getCreatureName(cid)
strstart = 988223


if msgcontains(msg, "conversar") and getPlayerStorageValue(cid, strstart) < 1 then
selfSay("Olá {" ..name.. "}, tenho algumas missões interessantes para você, deseja saber quais são? digite {missoes}", cid)
talkState[talkUser] = 1

elseif msgcontains(msg, "conversar") and getPlayerStorageValue(cid, strstart) == 1 then
selfSay("{" ..name.. "}, Você está em missão e falta entregar os itens para mim. {Digite o nome da missao}", cid)

elseif msgcontains(msg, "missoes") and talkState[talkUser] == 1 then
selfSay("{" ..name.. "}, digite : {200gold missao}, {50plations missao}, {100plations missao}", cid)
talkState[talkUser] = 2

elseif msgcontains(msg, "200gold missao") and talkState[talkUser] == 2 and getPlayerStorageValue(cid, strstart) < 1 and getPlayerStorageValue(cid, str[1].mission1) < 1 then
selfSay("Colete 50 Meat!", cid)
doSendMagicEffect(getThingPos(cid), 12)
doPlayerSendTextMessage(cid, 22, "Missão iniciada!")
setPlayerStorageValue(cid, strstart, 1)

elseif msgcontains(msg, "50plations missao") and talkState[talkUser] == 2 and getPlayerStorageValue(cid, strstart) < 1 and getPlayerStorageValue(cid, str[2].mission2) < 1 then
selfSay("Colete 500 Essence Coins!", cid)
doSendMagicEffect(getThingPos(cid), 12)
doPlayerSendTextMessage(cid, 22, "Missão iniciada!")
setPlayerStorageValue(cid, strstart, 1)

elseif msgcontains(msg, "100plations missao") and talkState[talkUser] == 2 and getPlayerStorageValue(cid, strstart) < 1 and getPlayerStorageValue(cid, str[3].mission3) < 1 then
selfSay("Colete 1000 Essence Coins!", cid)
doSendMagicEffect(getThingPos(cid), 12)
doPlayerSendTextMessage(cid, 22, "Missão iniciada!")
setPlayerStorageValue(cid, strstart, 1)

elseif msgcontains(msg, "200gold missao")  and getPlayerStorageValue(cid, strstart) == 1 and getPlayerItemCount(cid, itenscoleta[1].id) >= itenscoleta[1].count and getPlayerStorageValue(cid, str[1].mission1) < 1 then
setPlayerStorageValue(cid, str[1].mission1, 1)
doPlayerRemoveItem(cid, itenscoleta[1].id, itenscoleta[1].count)
selfSay("Obrigada, Aqui está sua recompensa!", cid)
doSendMagicEffect(getThingPos(cid), 12)
doPlayerSendTextMessage(cid, 22, "Missão Completada!")
setPlayerStorageValue(cid, strstart, -1)
doPlayerAddItem(cid, str[1].recompensa, 200) --- O VALOR 100 E O TANTO DE ITEM QUE VAI GANHAR NA RECOMPENSA
talkState[talkUser] = 0

elseif msgcontains(msg, "50plations missao")  and getPlayerStorageValue(cid, strstart) == 1 and getPlayerItemCount(cid, itenscoleta[2].id) >= itenscoleta[2].count and getPlayerStorageValue(cid, str[2].mission2) < 1 then
setPlayerStorageValue(cid, str[2].mission2, 1)
doPlayerRemoveItem(cid, itenscoleta[2].id, itenscoleta[2].count)
selfSay("Obrigada, Aqui está sua recompensa!!", cid)
doSendMagicEffect(getThingPos(cid), 12)
doPlayerSendTextMessage(cid, 22, "Missão Completada!")
setPlayerStorageValue(cid, strstart, -1)
setPlayerStorageValue(cid, str[2].mission2, 1)
doPlayerAddItem(cid, str[2].recompensa, 50) --- O VALOR 100 E O TANTO DE ITEM QUE VAI GANHAR NA RECOMPENSA
talkState[talkUser] = 0

elseif msgcontains(msg, "100plations missao")  and getPlayerStorageValue(cid, strstart) == 1 and getPlayerItemCount(cid, itenscoleta[3].id) >= itenscoleta[3].count and getPlayerStorageValue(cid, str[3].mission3) < 1 then
setPlayerStorageValue(cid, str[3].mission3, 1)
doPlayerRemoveItem(cid, itenscoleta[3].id, itenscoleta[3].count)
selfSay("Obrigada, Aqui está sua recompensa!!", cid)
doSendMagicEffect(getThingPos(cid), 12)
doPlayerSendTextMessage(cid, 22, "Missão Completada!")
setPlayerStorageValue(cid, strstart, -1)
setPlayerStorageValue(cid, str[3].mission3, 1)
doPlayerAddItem(cid, str[3].recompensa, 100) --- O VALOR 100 E O TANTO DE ITEM QUE VAI GANHAR NA RECOMPENSA
talkState[talkUser] = 0

else
selfSay("Missão não existe ou Não tem items suficiente ou Você já completou essa missão", cid)
end
end


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

Bau :

Spoiler

local vocs = {
--[voc] = {item, count} tabebados
[3] = {{12052 ,1}, {11812 ,1}, {11813 ,1}, {11814 ,1}, {2160 ,5}, {7368 ,1}, {1988}}, -- Madara
[4] = {{12052 ,1}, {11812 ,1}, {11813 ,1}, {11814 ,1}, {2160 ,5}, {11440 ,1}, {1988}}, -- Hashirama
}
local storage = 122234 -- storage para não fazer a quest novamente

function onUse(cid, item, fromPosition, itemEx, toPosition)
 if getPlayerStorageValue(cid, storage) < 1 then
  for voc, all in pairs(vocs) do
   if getPlayerVocation(cid) == voc then
    for z = 1, #all do
     doPlayerAddItem(cid, all[z][1], all[z][2])
    end
     doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)
     doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você acaba de pegar o baú inicial!")
      setPlayerStorageValue(cid, storage, 1)
   end
  end    
 else
  doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Desculpe, mas você já pegou os items inicial.")
 end    
return true
end

 

Rep ++

Link para o comentário
Compartilhar em outros sites

@NdboHakai

 

Testa esse de baú

Spoiler



local vocs = {
--[voc] = {item, count} tabebados
[3] = {{12052 ,1}, {11812 ,1}, {11813 ,1}, {11814 ,1}, {2160 ,5}, {7368 ,1}, {1988}}, -- Madara
[4] = {{12052 ,1}, {11812 ,1}, {11813 ,1}, {11814 ,1}, {2160 ,5}, {11440 ,1}, {1988}}, -- Hashirama
}
local storage = 122234 -- storage para não fazer a quest novamente

function onUse(cid, item, fromPosition, itemEx, toPosition)
 if getPlayerStorageValue(cid, storage) < 1 then
  for voc, all in pairs(vocs) do
   if getPlayerVocation(cid) == voc then
    for z = 1, #all do
     doPlayerAddItem(cid, all[z][1], all[z][2])
    end
     doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)
     doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você acaba de pegar o baú inicial!")
      setPlayerStorageValue(cid, storage, 1)
        doItemSetAttribute(item.uid, "unique", 1)
   end
  end    
 else
  doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Desculpe, mas você já pegou os items inicial.")
 end    
return true
end


 

 

Link para o comentário
Compartilhar em outros sites

4 horas atrás, Brunds disse:

@NdboHakai

 

Testa esse de baú

  Ocultar conteúdo

 



local vocs = {
--[voc] = {item, count} tabebados
[3] = {{12052 ,1}, {11812 ,1}, {11813 ,1}, {11814 ,1}, {2160 ,5}, {7368 ,1}, {1988}}, -- Madara
[4] = {{12052 ,1}, {11812 ,1}, {11813 ,1}, {11814 ,1}, {2160 ,5}, {11440 ,1}, {1988}}, -- Hashirama
}
local storage = 122234 -- storage para não fazer a quest novamente

function onUse(cid, item, fromPosition, itemEx, toPosition)
 if getPlayerStorageValue(cid, storage) < 1 then
  for voc, all in pairs(vocs) do
   if getPlayerVocation(cid) == voc then
    for z = 1, #all do
     doPlayerAddItem(cid, all[z][1], all[z][2])
    end
     doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)
     doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você acaba de pegar o baú inicial!")
      setPlayerStorageValue(cid, storage, 1)
        doItemSetAttribute(item.uid, "unique", 1)
   end
  end    
 else
  doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Desculpe, mas você já pegou os items inicial.")
 end    
return true
end

 

 

 

 

 

Não queria unique, eu queria que adicionasse uma serial no item

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...