Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Explicação:
É um npc que pede ajuda para quem passa, se a pessoa o ajudar ela será teleportada pra um lugar configurável, e nesse lugar a pessoa coloca o que quiser.
 
Vá em data/npc e crie um arquivo chamado Mendigo.xml e coloque o seguinte conteúdo:


<?xml version="1.0" encoding="UTF-8"?>
<npc name="Mendigo" script="data/npc/scripts/mendigo.lua" walkinterval="2000" floorchange="0" access="5" lookdir="1" >
    <health now="150" max="150"/>
    <look type="153" head="114" body="60" legs="78" feet="115" addons="3"/>
    
    <parameters>
        <parameter key="message_greet" value="Ola |PLAYERNAME|! Voce pode me {ajudar}?"/>
        <parameter key="message_alreadyfocused" value="Voce ja esta falando comigo."/>
        <parameter key="message_farewell" value="Ate logo amigo."/>
    </parameters>
</npc> 


 
Agora vá em data/npc/scripts e crie um arquivo chamado mendigo.lua e coloque o seguinte conteúdo:

local config = {
	stg = 99487, -- STORAGE	
	stgtime = 99488, -- STORAGE PARA CONTROLAR TEMPO DE MENSAGENS
	cost = 1000, -- Quantia a ser doada
	pos = {x = 160, y = 54, z = 7},	-- Pos para onde o player sera teleportado
	seconds = 120 --Tempo em segundos para repetir a mensagem ao player
}

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

local function sendMessage()
	local list = getSpectators(getNpcPos(), 4, 4, false)
	for i, tid in ipairs(list) do
		if isPlayer(tid) and getPlayerStorageValue(tid, config.stg) <= 0 then
			if getPlayerStorageValue(tid, config.stgtime) < os.time () then
				selfSay("Meu amigo " .. getPlayerName(tid) .. ", por favor me ajude!")
				setPlayerStorageValue(tid, config.stgtime, os.time() + config.seconds)
			end
		end
	end
end
 
 
function creatureSayCallback(cid, type, msg)

	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
	
	if not npcHandler:isFocused(cid) then
		return false
	end
	
	if getPlayerStorageValue(cid, config.stg) > 0 then
		selfSay('Obrigado amigo de bom coracao, voce ja me ajudou.', cid)
		return true
	else
		if msgcontains(msg, "ajudar") then
			selfSay("Voce teria "..config.cost.." gp's pra me ajudar ?", cid)
			talkState[talkUser] = 1
		elseif (msgcontains(msg, "sim") or msgcontains(msg, "yes")) and talkState[talkUser] == 1 then
			if doPlayerRemoveMoney(cid, config.cost) then
				selfSay("Obrigado!", cid)
				doTeleportThing(cid, config.pos)
				setPlayerStorageValue(cid, config.stg, 1)
			else
				selfSay("Voce tem pouco dinheiro! Melhor guardar, para passar pela minha situacao", cid)
			end
			talkState[talkUser] = 0
		elseif msgcontains(msg, "nao") or msgcontains(msg, "no") then
			talkState[talkUser] = 0
			selfSay("Espero que voce nunca precise de ajuda.", cid)
		end
	end
	
	return true
end

function onThink()
	sendMessage()
end

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

Atenciosamente,

Bruno Minervino

  • Respostas 8
  • Visualizações 2.2k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Bruno Minervino
    Bruno Minervino

    Vlw man kkk O Summ tava encucado com isso e me fez ficar tbm kkkk, mais ainda bem que deu certo!

  • Amigo não esqueça de colocar os meus creditos pode ter dado a ideia do NPC

Postado

Legal cara,

é uma boa ideia inicial para uma quest '-'

com certeza seria bom alguém usar.

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Postado

Muito interessante, da pra criar um RPG bem legal com scripts assim.

 

Reputado.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo