Ir para conteúdo
  • Cadastre-se

[AJUDA] Npc que ta um nivel para o player (desbug) Rep+


Posts Recomendados

Corrigindo o titulo que errei: Npc de DA um nível para o player

 

 

Estou com um script de um npc que da 1 nível para o player em troca de 1 gold, eu gostaria de saber onde altera o valor de gold pedido que no caso é 1 gold, eu queria aumentar pra 20 e colocar um cooldown de 2 minutos.

 

Se alguém pudesse me ajuda ficaria grato, Rep+

 

Script npc:

 

local focus = 0


local talk_start = 0
local target = 0
local days = 0

function onThingMove(creature, thing, oldpos, oldstackpos)

end


function onCreatureAppear(creature)

end


function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.')
focus = 0
talk_start = 0
end
end


function onCreatureTurn(creature)

end


function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end


function onCreatureSay(cid, type, msg)
msg = string.lower(msg)

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
selfSay('Hello ' .. getCreatureName(cid) .. '! Oi eu lhe dou 1 nivel por 1 Gold')
focus = cid
talk_start = os.clock()

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Sorry, ' .. getCreatureName(cid) .. '! I talk to you in a minute.')

elseif focus == cid then
talk_start = os.clock()

if msgcontains(msg, 'promotion') or msgcontains(msg, 'promote') then
if getPlayerVocation(cid) > 4 then
selfSay('Sorry, you are already promoted.')
talk_state = 0
elseif not isPremium(cid) then
selfSay('Sorry, you must be premium to buy promotion.')
talk_state = 0
else
selfSay('Do you want to buy promotion for 20k?')
talk_state = 1
end

elseif msgcontains(msg, 'yes') or msgcontains(msg, 'desbug') then
selfSay('Quer Desbugar por 1 Gold?')
talk_state = 2

elseif talk_state == 1 then
if msgcontains(msg, 'yes') then
if pay(cid,1) then
doPlayerSetVocation(cid, getPlayerVocation(cid)+4)
selfSay('You are now promoted!')
else
selfSay('Sorry, you do not have enough money.')
end
end
talk_state = 0

elseif talk_state == 2 then
if msgcontains(msg, 'yes') then
if pay(cid,10000000) then
addLevel(cid, 1)
selfSay('Pronto adicionado')
else
selfSay('VAZA DAQUII PROBRETAO')
end
end
talk_state = 0

elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
selfSay('Good bye, ' .. getCreatureName(cid) .. '!')
focus = 0
talk_start = 0
end
end
end


function onThink()
doNpcSetCreatureFocus(focus)
if (os.clock() - talk_start) > 45 then
if focus > 0 then
selfSay('Next Please...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Good bye then.')
focus = 0
end
end
end

Editado por seminu (veja o histórico de edições)

5nJc23M.png

Link para o post
Compartilhar em outros sites

Onde esta

if pay(cid,10000000) then

coloque isso

if pay(cid,200000000) then

agora esta cobrando 20 golds por desbug, quanto ao tempo não sei 

Editado por chbuss (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Onde esta

if pay(cid,10000000) then

coloque isso

if pay(cid,200000000) then

agora esta cobrando 20 golds por desbug, quanto ao tempo não sei 

 

não deu certo, ele bugou. nao da level nem consome gold

5nJc23M.png

Link para o post
Compartilhar em outros sites

não deu certo, ele bugou. nao da level nem consome gold

Você substituiu ou colocou abaixo ? O certo é substituir.

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites
local config = {
	gold = 20, -- Gold necessário
	cd = 2, -- Intervalo em minutos

	storage = 2612, -- Não necessita configurar
}

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
npcHandler.topic = {}

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(cid)                  		npcHandler:onThink(cid)                    end


local function creatureSayCallback(cid, type, msg)
	if not npcHandler:isFocused(cid) then
		return false
	end
	
	if msgcontains(msg, "promotion") or msgcontains(msg, "promote") then
		if getPlayerVocation(cid) > 4 then
			npcHandler:say("Sorry, you are already promoted.", cid)
		elseif not isPremium(cid) then
			npcHandler:say("Sorry, you must be premium to buy promotion.", cid)
		else
			npcHandler:say("Do you want to buy promotion for 20k?", cid)
			npcHandler.topic[cid] = 1
		end
	elseif msgcontains(msg, "yes") and npcHandler.topic[cid] == 1 then
		if doPlayerRemoveMoney(cid, 20000) then
			doPlayerSetVocation(cid, getPlayerVocation(cid) + 4)
			npcHandler:say("You are now promoted!", cid)
		else
			npcHandler:say("Sorry, you do not have enough money.", cid)
		end

		npcHandler.topic[cid] = 0
	elseif msgcontains(msg, "desbug") then
		if os.time() - getPlayerStorageValue(cid, config.storage) >= config.intervalo * 60 then
			npcHandler:say("Quer desbugar por ".. config.gold .." gold?", cid)
			npcHandler.topic[cid] = 2
		else
			npcHandler:say("Não posso te desbugar agora.")
		end
	elseif msgcontains(msg, "yes") and npcHandler.topic[cid] == 2 then
		if doPlayerRemoveMoney(cid, config.gold) then
			doPlayerAddLevel(cid, 1)
			setPlayerStorageValue(cid, config.storage, os.time())
			npcHandler:say("Pronto adicionado", cid)
		else
			npcHandler:say("Sorry, you do not have enough money.", cid)
		end

		npcHandler.topic[cid] = 0
	end


	return true
end

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

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites
local config = {
	gold = 20, -- Gold necessário
	cd = 2, -- Intervalo em minutos

	storage = 2612, -- Não necessita configurar
}

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
npcHandler.topic = {}

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(cid)                  		npcHandler:onThink(cid)                    end


local function creatureSayCallback(cid, type, msg)
	if not npcHandler:isFocused(cid) then
		return false
	end
	
	if msgcontains(msg, "promotion") or msgcontains(msg, "promote") then
		if getPlayerVocation(cid) > 4 then
			npcHandler:say("Sorry, you are already promoted.", cid)
		elseif not isPremium(cid) then
			npcHandler:say("Sorry, you must be premium to buy promotion.", cid)
		else
			npcHandler:say("Do you want to buy promotion for 20k?", cid)
			npcHandler.topic[cid] = 1
		end
	elseif msgcontains(msg, "yes") and npcHandler.topic[cid] == 1 then
		if doPlayerRemoveMoney(cid, 20000) then
			doPlayerSetVocation(cid, getPlayerVocation(cid) + 4)
			npcHandler:say("You are now promoted!", cid)
		else
			npcHandler:say("Sorry, you do not have enough money.", cid)
		end

		npcHandler.topic[cid] = 0
	elseif msgcontains(msg, "desbug") then
		if os.time() - getPlayerStorageValue(cid, config.storage) >= config.intervalo * 60 then
			npcHandler:say("Quer desbugar por ".. config.gold .." gold?", cid)
			npcHandler.topic[cid] = 2
		else
			npcHandler:say("Não posso te desbugar agora.")
		end
	elseif msgcontains(msg, "yes") and npcHandler.topic[cid] == 2 then
		if doPlayerRemoveMoney(cid, config.gold) then
			doPlayerAddLevel(cid, 1)
			setPlayerStorageValue(cid, config.storage, os.time())
			npcHandler:say("Pronto adicionado", cid)
		else
			npcHandler:say("Sorry, you do not have enough money.", cid)
		end

		npcHandler.topic[cid] = 0
	end


	return true
end

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

 

 

Vou testar, volto pra pra dizer se funcionou ou não.

 

@Edit, deu erro aqui na linha 8

Editado por seminu (veja o histórico de edições)

5nJc23M.png

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