Jump to content
Close
F0RG1

Script /B GM

Recommended Posts

Ola galera queria uma ajuda de vocês estou criando no meu OT uma porta tipo a 999 do global, mas queria colocar algo significativo para quem for o primeiro a conseguir chegar ao level algo realmente que faca o player gostar e os outros quando ver também se dedicar a conseguir o certo level...

 

Então oque pensei e que queria colocar um item X em um bau e através desse item o player que estiver ele possa falar como se fosse o /b do GOD 

**OBS: Seria outro comando /player100 xxxxx , queria que em vez da mensagem fosse vermelha colocasse verde para não confundir com o ADM GM GOD falando, que e existisse um exaut/delay para o players que tiver o item não spamar as mensagem e por ultimo se tivesse tipo um tanto de mensagem que pode-se mandar tipo 100 mensagem e depois através de um NPC ou comando algo assim pudesse carregar o item atravez de COIS 

Isso e opcional se der para fazer colocar seria bacana se não agradeço tudo bem, OBG


Edited by F0RG1 (see edit history)

Share this post


Link to post
Share on other sites

Esta é uma mensagem automática! Este tópico foi movido para a área correta.
Pedimos que você leia as regras do fórum.

Spoiler

This is an automated message! This topic has been moved to the correct area.
Please read the forum rules.

 



                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Share this post


Link to post
Share on other sites

Data/talkactions/scripts

PlayerBroadcast.lua

Spoiler

local config = {
	itemID = 9999, -- id do item necessario
	cor = "green", -- cor da mensagem de acordo com o constant.lua da lib
	tempo = 1, -- tempo de delay em minutos
	storage = 84454, -- storage para armazenar o delay do player
	storage2 = 84455, -- storage que determina quantos usos do item o player ainda tem
}


function onSay(cid, words, param, channel)
	if(param == '') then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
		return true
	end
	if getPlayerItemCount(cid, config.itemID) < 1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode usar o comando sem ter ".. getItemNameById(config.itemID) ..".")
		return true
	end
	if getPlayerItemCount(cid, config.itemID) >= 1 and getPlayerStorageValue(cid, config.storage2) <= 0 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Acabou sua permissão para usar ".. getItemNameById(config.itemID) ..", compre mais no NPC.")
		return true
	end
	
	if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 and getPlayerStorageValue(cid, config.storage2) >= 1 then
		setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*60))
		setPlayerStorageValue(cid, config.storage2, (getPlayerStorageValue(cid, config.storage2)) - 1)
		doBroadcastMessage(""..getCreatureName(cid)..": "..param.."", config.cor)
		return true
	else
		doPlayerSendCancel(cid, "Espere " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " segundos para falar novamente.")
		return true
	end
end

 

data/talkactions

talkactions.xml

	<talkaction words="/player100" event="script" value="PlayerBroadcast.lua"/>

data/npc

Rechargebroad.xml

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Recharger" script="Rechargerbroad.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">
<health now="150" max="150"/>
<look type="510" head="115" body="148" legs="39" feet="41"/>

	<parameters>
		<parameter key="message_greet" value="Ola jogador, deseja {recarregar}?"/>

	</parameters>

</npc>

 

data/npc/scripts

Rechargerbroad.lua

Spoiler

local config = {
	itemprice = 2160, -- id do dinheiro necessário para recarregar
	price = 50, -- quantos 'itemprice' será necessário para recarregar
	itemID = 9999, -- id do item
	usos = 100, -- quantos usos do comando o player vai comprar
	storage = 84455, -- storage que salva quantos usos do item o player vai ganhar ( mesmo do storage2 da talkaction)
}

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() 
	doCreatureSetLookDirection(getNpcId(), (2))
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
	
	
	if(msgcontains(msg, 'recarregar') or msgcontains(msg, 'yes')) then
		selfSay('Voce deseja recarregar seu '.. getItemNameById(config.itemID) ..' por '.. price ..' '.. itemprice ..'?', cid)
		talkState[talkUser] = 1
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
		if getPlayerStorageValue(cid, config.storage) <= 0 then
			if(getPlayerItemCount(cid, config.itemID) >= 1) then
				if(doPlayerRemoveItem(cid, config.itemprice, config.price) == TRUE) then
					setPlayerStorageValue(cid, config.storage, config.usos)
					selfSay('Pronto, agora você pode usar por mais '.. config.usos ..' vezes!', cid)
				else
					selfSay('Desculpe, mas voce nao tem dinheiro.', cid)
				end
			else
				selfSay('Desculpe, mas voce nao possui '.. getItemNameById(config.itemID) ..'', cid)
			end
		else
			elfSay('Desculpe, mas voce ainda pode usar o comando '.. getPlayerStorageValue(cid, config.storage) ..' vezes.', cid)
		end
		talkState[talkUser] = 0
	elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
		talkState[talkUser] = 0
		selfSay('Ok, obrigado.', cid)
	end
	
	
	return true
end


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

 

Criei sem testar, qualquer coisa só falar.


Edited by luangop
correções (see edit history)

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Share this post


Link to post
Share on other sites

@luangop  O único erro que to tento e com o NPC eu add no mapa com o RME ai abro o servidor mas ai quando chego perto com o personagem da ERRO no client do tibia e fecha sozinho tento entra e fica dando erro e fechando, fora isso ta tudo certinho nem um erro na distro obrigado desde já mesmo.. 

a versao do tibia e 8.6 nao sei se muda alguma coisa


Edited by F0RG1 (see edit history)

Share this post


Link to post
Share on other sites
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Recharger" script="Rechargerbroad.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">
<health now="150" max="150"/>
<look type="510" head="115" body="148" legs="39" feet="41"/>

	<parameters>
		<parameter key="message_greet" value="Ola jogador, deseja {recarregar}?"/>

	</parameters>

</npc>

 



Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Share this post


Link to post
Share on other sites

Deu certo cara, agora aconteceu outra coisa quando falo com o NPC 

Hi

ele diz - Recharger: Ola [ADM] Bru, deseja recarregar?

 ai eu digo yes entao  ele não diz nada ele nao interagem ....

sei que to incomodando você mas se puder ver isso para mim ficarei mt agradecido


Edited by F0RG1 (see edit history)

Share this post


Link to post
Share on other sites
16 horas atrás, F0RG1 disse:

Deu certo cara, agora aconteceu outra coisa quando falo com o NPC 

Hi

ele diz - Recharger: Ola [ADM] Bru, deseja recarregar?

 ai eu digo yes entao  ele não diz nada ele nao interagem ....

sei que to incomodando você mas se puder ver isso para mim ficarei mt agradecido

E não aparece nenhum erro na distro?

Tente assim:
 

local config = {
	itemprice = 2160, -- id do dinheiro necessário para recarregar
	price = 50, -- quantos 'itemprice' será necessário para recarregar
	itemID = 9999, -- id do item
	usos = 100, -- quantos usos do comando o player vai comprar
	storage = 84454, -- storage que salva quantos usos do item o player vai ganhar ( mesmo do storage2 da talkaction)
}

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() 
	doCreatureSetLookDirection(getNpcId(), (2))
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
	
	
	if(msgcontains(msg, 'recarregar') or msgcontains(msg, 'yes')) then
		selfSay('Voce deseja recarregar seu '.. getItemNameById(config.itemID) ..' por '.. price ..' '.. itemprice ..'?', cid)
		talkState[talkUser] = 1
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
		if getPlayerStorageValue(cid, config.storage) <= 0 then
			if(getPlayerItemCount(cid, config.itemID) >= 1) then
				if(doPlayerRemoveItem(cid, config.itemprice, config.price) == TRUE) then
					setPlayerStorageValue(cid, config.storage, config.usos)
					selfSay('Pronto, agora você pode usar por mais '.. config.usos ..' vezes!', cid)
				else
					selfSay('Desculpe, mas voce nao tem dinheiro.', cid)
				end
			else
				selfSay('Desculpe, mas voce nao possui '.. getItemNameById(config.itemID) ..'', cid)
			end
		else
			elfSay('Desculpe, mas voce ainda pode usar o comando '.. getPlayerStorageValue(cid, config.storage) ..' vezes.', cid)
		end
		talkState[talkUser] = 0
	elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
		talkState[talkUser] = 0
		selfSay('Ok, obrigado.', cid)
	end
	
	
	return true
end


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

Não incomoda não, eu não manjo nada de npc, estou fazendo na sorte então isso é um aprendizado para mim rsrs



Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Share this post


Link to post
Share on other sites
7 horas atrás, luangop disse:

E não aparece nenhum erro na distro?

 

 

Me Desculpa nao tinha visto, quando eu falo com o NPC falo : yes

da esse erro na distro

 

npc.png


Share this post


Link to post
Share on other sites

 

@luangop man eu consegui aqui arrumar o npc OBG mesmo

se der altera ali no storage = 84454 para storage2 = 84455 rs

ai ta fufando depois que altera isso!

vlws 

 

o unico erro que ta dando erro no npc quando vai verificar quantos vezes ainda tem para carregar 

getPlayerStorageValue(cid, config.storage) 

 

mas ta funfando tudo so isso mesmo que nao ta funfando...

 

 

 


Share this post


Link to post
Share on other sites
7 horas atrás, F0RG1 disse:

 

@luangop man eu consegui aqui arrumar o npc OBG mesmo

se der altera ali no storage = 84454 para storage2 = 84455 rs

ai ta fufando depois que altera isso!

vlws 

 

o unico erro que ta dando erro no npc quando vai verificar quantos vezes ainda tem para carregar 

getPlayerStorageValue(cid, config.storage) 

 

mas ta funfando tudo so isso mesmo que nao ta funfando...

 

 

 

Editei tudo na minha primeira resposta lá, desculpe a demora.

E como já falei acima, não manjo nada de NPC, fiz na sorte então se saiu algo que presta já estou no lucro kkk

Seria bem mais fácil fazer por talkaction, porém por NPC adiciona mais RPG ao jogo.


Edited by luangop
a (see edit history)

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...