Ir para conteúdo
  • Cadastre-se

(Resolvido)Npc Barqueiro


Ir para solução Resolvido por Pedro.,

Posts Recomendados

Olá, eu estou querendo um script de um npc barqueiro que só transporte player vip . Meu system vip é o do mock, alguém pode me ajudar?

Editado por matheus36000 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução
Data > npc > script > lib > npcsystem> modules.lua
 
 
troca a função "function StdModule.travel" por está aqui

function StdModule.travel(cid, message, keywords, parameters, node)
		local npcHandler = parameters.npcHandler
		if(npcHandler == nil) then
			error('StdModule.travel called without any npcHandler instance.')
		end
		if(cid ~= npcHandler.focus) then
			return false
		end
		
		if(isPlayerPremiumCallback == nil or isPlayerPremiumCallback(cid) == true or parameters.premium == false) then
			if(parameters.level ~= nil and getPlayerLevel(cid) < parameters.level) then
				npcHandler:say('You must reach level ' .. parameters.level .. ' before I can let you go there.')
			elseif(doPlayerRemoveMoney(cid, parameters.cost) ~= TRUE) then
				npcHandler:say('You do not have enough money!')
			elseif (parameters.vip ~= nil and vip.hasVip(cid) == FALSE) then
				npcHandler:say('I can only allow vip players to travel with me!')
                        
			else
				doTeleportThing(cid, parameters.destination)
				doSendMagicEffect(parameters.destination, 10)
			end
		else
			npcHandler:say('I can only allow premium players to travel with me.')
		end
		
		npcHandler:resetNpc()
		return true
	end

 
npc/script


local keywordHandler = KeywordHandler:new()
        local npcHandler = NpcHandler:new(keywordHandler)
        NpcSystem.parseParameters(npcHandler)
        
        
        
        -- OTServ event handling functions start
        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
        -- OTServ event handling functions end
 
        -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions!
 
        local travelNode = keywordHandler:addKeyword({'passage'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Do you want to sail to cityvip?'})
travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, vip = true, level = 0, cost = 200, destination = {x=xxxxx, y=xxxxx, z=x} }) 
            travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'Then stay here!'})
 
        local travelNode = keywordHandler:addKeyword({'cityvip'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Do you want to sail to cityvip?'})
travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, vip = true, level = 0, cost = 200, destination = {x=xxxxx, y=xxxxx, z=x} }) 
            travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'Then stay here!'})
 
 
        keywordHandler:addKeyword({'job'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I am the captain of this ship.'})
        keywordHandler:addKeyword({'travel'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to cityvip.'})
        -- Makes sure the npc reacts when you say hi, bye etc.
        npcHandler:addModule(FocusModule:new())

 

agora você pode usar o parâmetro vip = true, assim como premium = true
 
ex:
 
travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, vip = true, level = 0, cost = 200, destination = {x=xxxxx, y=xxxxx, z=x} }) 
 
 
Editado por pedrook (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

 

Data > npc > script > lib > npcsystem> modules.lua
 
 
troca a função "function StdModule.travel" por está aqui

function StdModule.travel(cid, message, keywords, parameters, node)
		local npcHandler = parameters.npcHandler
		if(npcHandler == nil) then
			error('StdModule.travel called without any npcHandler instance.')
		end
		if(cid ~= npcHandler.focus) then
			return false
		end
		
		if(isPlayerPremiumCallback == nil or isPlayerPremiumCallback(cid) == true or parameters.premium == false) then
			if(parameters.level ~= nil and getPlayerLevel(cid) < parameters.level) then
				npcHandler:say('You must reach level ' .. parameters.level .. ' before I can let you go there.')
			elseif(doPlayerRemoveMoney(cid, parameters.cost) ~= TRUE) then
				npcHandler:say('You do not have enough money!')
			elseif (parameters.vip ~= nil and vip.hasVip(cid) == FALSE) then
				npcHandler:say('I can only allow vip players to travel with me!')
                        
			else
				doTeleportThing(cid, parameters.destination)
				doSendMagicEffect(parameters.destination, 10)
			end
		else
			npcHandler:say('I can only allow premium players to travel with me.')
		end
		
		npcHandler:resetNpc()
		return true
	end

 
npc/script


local keywordHandler = KeywordHandler:new()
        local npcHandler = NpcHandler:new(keywordHandler)
        NpcSystem.parseParameters(npcHandler)
        
        
        
        -- OTServ event handling functions start
        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
        -- OTServ event handling functions end
 
        -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions!
 
        local travelNode = keywordHandler:addKeyword({'passage'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Do you want to sail to cityvip?'})
travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, vip = true, level = 0, cost = 200, destination = {x=xxxxx, y=xxxxx, z=x} }) 
            travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'Then stay here!'})
 
        local travelNode = keywordHandler:addKeyword({'cityvip'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Do you want to sail to cityvip?'})
travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, vip = true, level = 0, cost = 200, destination = {x=xxxxx, y=xxxxx, z=x} }) 
            travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'Then stay here!'})
 
 
        keywordHandler:addKeyword({'job'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I am the captain of this ship.'})
        keywordHandler:addKeyword({'travel'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to cityvip.'})
        -- Makes sure the npc reacts when you say hi, bye etc.
        npcHandler:addModule(FocusModule:new())

 

agora você pode usar o parâmetro vip = true, assim como premium = true
 
ex:
 
travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, vip = true, level = 0, cost = 200, destination = {x=xxxxx, y=xxxxx, z=x} }) 
 
 

 

 

 

Obrigado. REP +

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo