Ir para conteúdo
  • 0

Dúvida Script Npc


dragonfight

Pergunta

Segue script:

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local pos = {x=577,y=192,z=7} -------------- Pos para onde o player sera levado

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
   if msgcontains(msg, "hi") or msgcontains(msg, "help") then
    selfSay("Finish?", cid)
    talkState[cid] = 0
 elseif msgcontains(msg, 'yes') then
 if doPlayerAddItem(cid,2673,1) then
 selfSay("Ok!", cid)
 doTeleportThing(cid, pos)
 else
 selfSay("?????.", cid)
 end
 end
 return TRUE  
 end

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

 

Este script está bugado, caso o player esteja com bag cheia e não tenha lugar pro item, ele teleporta e o item cai no chão.

 

Como posso fazer para teleportar apenas se ele ganhar o item?(na bag ou na mão)

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local pos = {x=577,y=192,z=7} -------------- Pos para onde o player sera levado
local item = 2673

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
   if msgcontains(msg, "hi") or msgcontains(msg, "help") then
           selfSay("Finish?", cid)
           talkState[cid] = 0
        elseif msgcontains(msg, 'yes') then
        if getPlayerFreeCap(cid) >= getItemWeightById(item) then  
        doPlayerAddItem(cid,item,1) 
        selfSay("Ok!", cid)
        doTeleportThing(cid, pos)
        else
        selfSay("You need " .. getItemWeightById(item) .. " capacity in order to get the item", cid)
        end
        end
        return TRUE  
        end

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

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...