Ir para conteúdo

[Encerrado] Pedido de NPC's para PDA Sem Level


narutochuuu

Posts Recomendados

Queria pedir alguns npc's para pda, se for possível atender aos meus pedidos, mas se ajudar apenas 1 já está ótimo e já garantido o Rep+, caso me ajudar em mais de um irei lhe dar rep durante mais tempo e.e

 

Pedido 1: NPC que teleporta o player se tiver "X" item, MAS, ele não removerá o item, apenas irá conferir se o player tem ele;

 

Pedido 2: NPC que troca item por pokemon;

 

Pedido 3: Um npc de batalha que teleporta o player após derrotar ele.

 

Só estes 3 mesmo... Obrigado pela atenção de todosmdr.gif

Link para o comentário
Compartilhar em outros sites

Desculpe, confundi, sempre esqueço oque é PDA :D

 

Primeiro NPC:

Vá em data/npcs, crie um arquivo chamado Teleporter.xml, adicione isso dentro:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Teleport NPC" script="teleportitem.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="128" head="17" body="54" legs="114" feet="0" addons="2"/>
<parameters>
	<parameter key="message_greet" value="Ola |PLAYERNAME|, Posso te teleportar!."/>
</parameters>
</npc>

 

Agora na mesma pasta, abra a pasta scripts e crie um arquivo chamado teleportitem.lua, adicione isso dentro:

 

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 postp = {x = XXX,y = YYY, z = Z} -- AQUI AS COORDENADAS DO TELEPORT
local itemdesj = 1234 -- AQUI UM EXEMPLO, SERIA O ID DO ITEM A SER VERIFICADO

if(msgcontains(msg, 'tp') or msgcontains(msg, 'teleport')) then
	selfSay('Deseja ser teleportado?', cid)
	talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
	if(getPlayerItemCount(cid, itemdesj) >= 1) then
		   doTeleportThing(cid,postp)
			selfSay('Teleportado.', cid)
		end
	else
		selfSay('Desculpe voce nao tem o item necessario.', cid)
	end
	talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
	talkState[talkUser] = 0
	selfSay('Ok flws.', cid)
end

return true
end

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

 

Você pode configurar nesse trecho do SCRIPT:

 

local postp = {x = XXX,y = YYY, z = Z} -- AQUI AS COORDENADAS DO TELEPORT
local itemdesj = 1234 -- AQUI UM EXEMPLO, SERIA O ID DO ITEM A SER VERIFICADO

 

E aqui oque irá falar para ser teleportado:

 

 if(msgcontains(msg, 'tp') or msgcontains(msg, 'teleport')) then

 

 

 

SEGUNDO NPC:

 

Agora crie um arquivo chamado pokemonchanger.xml na pasta data/npcs e coloque isso dentro:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Pokemon Changer" script="pokechanger.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="128" head="17" body="54" legs="114" feet="0" addons="2"/>
<parameters>
	<parameter key="message_greet" value="Hello |PLAYERNAME|, I am a pokemon changer."/>
</parameters>
</npc>

 

Agora em data/npcs/scripts crie um arquivo chamado pokechanger.lua e adicione isso dentro:

 

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 itemdesj = 1234 -- AQUI CONFIGURA O ID DO ITEM
local pokeball = 1235 -- AQUI O ID DA POKEBALL

if(msgcontains(msg, 'change') or msgcontains(msg, 'pokemon')) then
	selfSay('Deseja ganhar um pokemon pelo item?', cid)
	talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
	if(getPlayerItemCount(cid, itemdesj) >= 1) then
			doPlayerRemoveItem(cid, itemdesj, 1)
			doPlayerAddItem(cid, pokeball)
			selfSay('Aqui esta a sua pokebola.', cid)
		end
	else
		selfSay('Voce nao tem o item necessario.', cid)
	end
	talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
	talkState[talkUser] = 0
	selfSay('Ok flws.', cid)
end

return true
end

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

 

PARA CONFIGURAR É DO MESMO JEITO QUE O OUTRO NPC !

 

É OQUE MEU CONHECIMENTO ME PERMITE FAZER ^^ COMO NAO CONHEÇO FUNÇÕES ETC, DE POKEMON NÃO POSSO FAZER O 3º, IREI DEIXAR PARA ALGUM SCRIPTER BOM! BOA SORTE, POSTE RESULTADOS

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

oo cara sobre o npc 2 que troca um iten por outro vc pode pega no serve do centurion v4 que tem ele vc pode pega aquiele ou usa como base ^^

 

vou baixar o centurion v4 e já já verei se é como eu estou procurando vlw pela dica ^^

 

Edit: @Brunnoo tem como me passar o download do server? não achei, achei apenas o cliente

 

Edit denovo:

Desculpe, confundi, sempre esqueço oque é PDA :D

 

Primeiro NPC:

Vá em data/npcs, crie um arquivo chamado Teleporter.xml, adicione isso dentro:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Teleport NPC" script="teleportitem.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="128" head="17" body="54" legs="114" feet="0" addons="2"/>
<parameters>
	<parameter key="message_greet" value="Ola |PLAYERNAME|, Posso te teleportar!."/>
</parameters>
</npc>

 

Agora na mesma pasta, abra a pasta scripts e crie um arquivo chamado teleportitem.lua, adicione isso dentro:

 

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 postp = {x = XXX,y = YYY, z = Z} -- AQUI AS COORDENADAS DO TELEPORT
local itemdesj = 1234 -- AQUI UM EXEMPLO, SERIA O ID DO ITEM A SER VERIFICADO

if(msgcontains(msg, 'tp') or msgcontains(msg, 'teleport')) then
	selfSay('Deseja ser teleportado?', cid)
	talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
	if(getPlayerItemCount(cid, itemdesj) >= 1) then
		   doTeleportThing(cid,postp)
			selfSay('Teleportado.', cid)
		end
	else
		selfSay('Desculpe voce nao tem o item necessario.', cid)
	end
	talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
	talkState[talkUser] = 0
	selfSay('Ok flws.', cid)
end

return true
end

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

 

Você pode configurar nesse trecho do SCRIPT:

 

local postp = {x = XXX,y = YYY, z = Z} -- AQUI AS COORDENADAS DO TELEPORT
local itemdesj = 1234 -- AQUI UM EXEMPLO, SERIA O ID DO ITEM A SER VERIFICADO

 

E aqui oque irá falar para ser teleportado:

 

 if(msgcontains(msg, 'tp') or msgcontains(msg, 'teleport')) then

 

 

 

SEGUNDO NPC:

 

Agora crie um arquivo chamado pokemonchanger.xml na pasta data/npcs e coloque isso dentro:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Pokemon Changer" script="pokechanger.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="128" head="17" body="54" legs="114" feet="0" addons="2"/>
<parameters>
	<parameter key="message_greet" value="Hello |PLAYERNAME|, I am a pokemon changer."/>
</parameters>
</npc>

 

Agora em data/npcs/scripts crie um arquivo chamado pokechanger.lua e adicione isso dentro:

 

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 itemdesj = 1234 -- AQUI CONFIGURA O ID DO ITEM
local pokeball = 1235 -- AQUI O ID DA POKEBALL

if(msgcontains(msg, 'change') or msgcontains(msg, 'pokemon')) then
	selfSay('Deseja ganhar um pokemon pelo item?', cid)
	talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
	if(getPlayerItemCount(cid, itemdesj) >= 1) then
			doPlayerRemoveItem(cid, itemdesj, 1)
			doPlayerAddItem(cid, pokeball)
			selfSay('Aqui esta a sua pokebola.', cid)
		end
	else
		selfSay('Voce nao tem o item necessario.', cid)
	end
	talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
	talkState[talkUser] = 0
	selfSay('Ok flws.', cid)
end

return true
end

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

 

PARA CONFIGURAR É DO MESMO JEITO QUE O OUTRO NPC !

 

É OQUE MEU CONHECIMENTO ME PERMITE FAZER ^^ COMO NAO CONHEÇO FUNÇÕES ETC, DE POKEMON NÃO POSSO FAZER O 3º, IREI DEIXAR PARA ALGUM SCRIPTER BOM! BOA SORTE, POSTE RESULTADOS

 

O segundo npc não teria que colocar a tag do pokemon que viesse dentro da pokebola? Tenta inverter este npc que troca pokemon pelo item do player (OBS: Feito pelo Slicer):

 

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
------------------------------------------------------------------------------
function havePonyta(cid)
local pbs = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)
local slot = getPlayerSlotItem(cid, 8)
if slot.itemid > 0 and isPokeball(slot.itemid) then
if getItemAttribute(slot.uid, "poke") == "Ponyta" then
doRemoveItem(slot.uid, 1)
doTransformItem(getPlayerSlotItem(cid, CONST_SLOT_LEGS).uid, 2395)
return true
end
end
for i = 1, #pbs do
if getItemAttribute(pbs[i], "poke") == "Ponyta" then
doRemoveItem(pbs[i], 1)
return true
end
end
return false
end
------------------------------------------------------------------------------
if msgcontains(msg, 'help') or msgcontains(msg, 'Help') then
if getPlayerStorageValue(cid, 354978) >= 1 then
selfSay("Você ja me ajudou, muito obrigado!", cid)
talkState[talkUser] = 0
return true
else
selfSay("Eu queria tanto ter uma ponyta... Você poderia trazer uma para mim? Eu te recompensaria, é claro...", cid)
talkState[talkUser] = 1
return true
end
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'Yes')) and talkState[talkUser] == 1 then
if getPlayerStorageValue(cid, 354978) <= 0 then
---
local storages = {17000, 63215, 17001, 13008, 5700}
for s = 1, #storages do
if getPlayerStorageValue(cid, storages[s]) >= 1 then
selfSay("Você não pode fazer isso enquanto esta Voando, Montando, Surfando, Mergulhando ou de Bicicleta!", cid)
talkState[talkUser] = 0
return true
end
end
if #getCreatureSummons(cid) >= 1 then
selfSay("Volte seu pokemon!", cid)
talkState[talkUser] = 0
return true
end
---
if havePonyta(cid) then
selfSay("Muito obrigado! Pegue seu prêmio...", cid)
doPlayerAddItem(cid, 12222, 1) --coloque aki o premio...
talkState[talkUser] = 0
return true
else
selfSay("Você não me trouxe a ponyta... Volte quando conseguir uma.", cid)
talkState[talkUser] = 0
return true
end
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Link para o comentário
Compartilhar em outros sites

Está certo, o meu script diz para que se tiver o item que você quer, remove-lo e adicionar a pokebola, ai voce coloca o ID da pokebola. Não sei de que tag você está falando pois eu não entendo de pokemon, rsrs

 

@EDIT

Tenho um centurion v4 aqui:

 

http://www.mediafire.com/?imcb81wtwd61v5p

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

  • 5 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...