Ir para conteúdo
  • Cadastre-se

(Resolvido)Premmy no nick


Ir para solução Resolvido por FeeTads,

Posts Recomendados

.Qual servidor ou website você utiliza como base? 

TSF 0.4 [8.60]

 

Boa tarde,

 

Gostaria de um sistema que quando o player adquirisse Premmy (não VIP), o nick dele mudaria para "[P] Nick", ( ou seja, acrescentar um "[P]")

Claro que ao acabar a PT, o [P] também seria removido

 

Editado por lolksky (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
3 minutos atrás, FeeTads disse:

vc diz o premmy estilo global? que aparece no login box?
image.png.045f8fce11a5c534a3e808724ca55965.png

esse?

 

ou é um premmy de storage?

Acredito que seja do login box, pq aparece lá a quantidade de dias de PA.

 

Link para o post
Compartilhar em outros sites
18 horas atrás, So volto tarde disse:

compartilha esse premmy pra gnt

 

esse eh o isPremium(cid) da source ja, pra pegar todo o script eh chatinho kkkkk, vou fazer o script pra ele, mas caso ele não tenha na source n vai funfar tbm

Em 13/07/2022 em 15:46, lolksky disse:

Gostaria de um sistema que quando o player adquirisse Premmy (não VIP), o nick dele mudaria para "[P] Nick", ( ou seja, acrescentar um "[P]")

Claro que ao acabar a PT, o [P] também seria removido

function Split(s, delimiter)
    result = {};
    for match in (s..delimiter):gmatch("(.-)"..delimiter) do
        table.insert(result, match);
    end
    return result;
end

function onLogin(cid)
	
  	if getPlayerAccess(cid) > 2 then -- ignora GM+
    	return true
    end
	local func = db.query or db.executeQuery
	local namePlayer = getPlayerName(cid)
	if isPremium(cid) and getPlayerStorageValue(cid, 25425466) == -1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!")		--Msg em vermelho na tela do player
		addEvent(function()
			if isCreature(cid) then																				--verifica se o player ainda ta on e executa
				setPlayerStorageValue(cid, 25425466, 1)   														--seta storage da mudança pra 1, pode mudar pra qualquer numero o "25415466"
				doRemoveCreature(cid)																			--desloga o char
				func("UPDATE `players` SET `name` = [P] "..namePlayer.." WHERE `name` = "..namePlayer..";")		--executa a função na DB
			end
		end, 2000)																								-- 2000 = 2s pra deslogar o player
	elseif not isPremium(cid) and getPlayerStorageValue(cid, 25425466) == 1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!")
		addEvent(function()
			if isCreature(cid) then																				--verifica se o player ainda ta on e executa
				setPlayerStorageValue(cid, 25425466, -1) 														--seta a storage pra -1
				-- não mexer em nada daqui pra baixo  ******
				local split = Split(getPlayerName(cid), " ") 													-- função pra tirar o [P]
				local nomeAntigo = ''
				for i=2, #split do
					nomeAntigo = nomeAntigo + split[i]
					if i+1 <= #split then																	--se ainda tiver mais nomes
						nomeAntigo = nomeAntigo + ' '															-- caso seja nome composto add espaço ex: Pedro Mauro
					end
				end
				-- não mexer em nada pra cima ******
				doRemoveCreature(cid)																			--desloga o char
				func("UPDATE `players` SET `name` = "..nomeAntigo.." WHERE `name` = "..namePlayer..";") 		--executa a função na DB
			end						
		end, 2000)																								-- 2000 = 2s pra deslogar o player
	end
    return true
end

 

@lolksky ta na mão, PORÉM sugiro **FORTEMENTE** tu testar isso antes de por em pratica no teu OT kkk, não cheguei testar pra ver se ta 100%

Editado por FeeTads (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
3 horas atrás, FeeTads disse:

 

esse eh o isPremium(cid) da source ja, pra pegar todo o script eh chatinho kkkkk, vou fazer o script pra ele, mas caso ele não tenha na source n vai funfar tbm


function Split(s, delimiter)
    result = {};
    for match in (s..delimiter):gmatch("(.-)"..delimiter) do
        table.insert(result, match);
    end
    return result;
end

function onLogin(cid)
	
  	if getPlayerAccess(cid) > 2 then -- ignora GM+
    	return true
    end
	local func = db.query or db.executeQuery
	local namePlayer = getPlayerName(cid)
	if isPremium(cid) and getPlayerStorageValue(cid, 25425466) == -1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!")		--Msg em vermelho na tela do player
		addEvent(function()
			if isCreature(cid) then																				--verifica se o player ainda ta on e executa
				setPlayerStorageValue(cid, 25425466, 1)   														--seta storage da mudança pra 1, pode mudar pra qualquer numero o "25415466"
				doRemoveCreature(cid)																			--desloga o char
				func("UPDATE `players` SET `name` = [P] "..namePlayer.." WHERE `name` = "..namePlayer..";")		--executa a função na DB
			end
		end, 2000)																								-- 2000 = 2s pra deslogar o player
	elseif not isPremium(cid) and getPlayerStorageValue(cid, 25425466) == 1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!")
		addEvent(function()
			if isCreature(cid) then																				--verifica se o player ainda ta on e executa
				setPlayerStorageValue(cid, 25425466, -1) 														--seta a storage pra -1
				-- não mexer em nada daqui pra baixo  ******
				local split = Split(getPlayerName(cid), " ") 													-- função pra tirar o [P]
				local nomeAntigo = ''
				for i=2, #split do
					nomeAntigo = nomeAntigo + split[i]
					if i+1 <= #split then																	--se ainda tiver mais nomes
						nomeAntigo = nomeAntigo + ' '															-- caso seja nome composto add espaço ex: Pedro Mauro
					end
				end
				-- não mexer em nada pra cima ******
				doRemoveCreature(cid)																			--desloga o char
				func("UPDATE `players` SET `name` = "..nomeAntigo.." WHERE `name` = "..namePlayer..";") 		--executa a função na DB
			end						
		end, 2000)																								-- 2000 = 2s pra deslogar o player
	end
    return true
end

 

@lolksky ta na mão, PORÉM sugiro **FORTEMENTE** tu testar isso antes de por em pratica no teu OT kkk, não cheguei testar pra ver se ta 100%

Perdoa a ignorância... mas onde coloco isso? <3

Link para o post
Compartilhar em outros sites
5 minutos atrás, lolksky disse:

Perdoa a ignorância... mas onde coloco isso? <3

cria um arquivo com o nome que quiser tipo no scripts do creaturescripts

data > creaturescripts > scripts > nomePremmy.lua

 

ai vai no creaturescripts.xml

data > creaturescripts > creaturescripts.xml

 

e coloca isso em qualquer lugar:

<event type="login" name="nomePremmy" event="script" value="nomePremmy.lua"/>

Agora, FeeTads disse:

cria um arquivo com o nome que quiser tipo no scripts do creaturescripts

que no caso, o script que eu te mandei ai, vai escrito dentro desse nomePremmy, cria o arquivo .lua e cola o script dentro

Link para o post
Compartilhar em outros sites
36 minutos atrás, FeeTads disse:

cria um arquivo com o nome que quiser tipo no scripts do creaturescripts

data > creaturescripts > scripts > nomePremmy.lua

 

ai vai no creaturescripts.xml

data > creaturescripts > creaturescripts.xml

 

e coloca isso em qualquer lugar:

<event type="login" name="nomePremmy" event="script" value="nomePremmy.lua"/>

 

Apareceu a mensagem que iria deslogar para mudar o nome, mas não apareceu o [P] e acusou isso:

 

OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: near "Teste": syntax error (UPDATE "players" SET "name" = [P] Teste WHERE "name" = Teste;)

Link para o post
Compartilhar em outros sites
21 minutos atrás, lolksky disse:

Apareceu a mensagem que iria deslogar para mudar o nome, mas não apareceu o [P] e acusou isso:

 esqueci de por as aspas da func da DB kkkk

 

segue o código atualizado:

 

function Split(s, delimiter)
    result = {};
    for match in (s..delimiter):gmatch("(.-)"..delimiter) do
        table.insert(result, match);
    end
    return result;
end

function onLogin(cid)
	
  	if getPlayerAccess(cid) > 2 then -- ignora GM+
    	return true
    end
	local func = db.query or db.executeQuery
	local namePlayer = getPlayerName(cid)
	if isPremium(cid) and getPlayerStorageValue(cid, 25425466) == -1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!")		--Msg em vermelho na tela do player
		addEvent(function()
			if isCreature(cid) then																				--verifica se o player ainda ta on e executa
				setPlayerStorageValue(cid, 25425466, 1)   														--seta storage da mudança pra 1, pode mudar pra qualquer numero o "25415466"
				doRemoveCreature(cid)																			--desloga o char
				func('UPDATE `players` SET `name` = "[P] '..namePlayer..'" WHERE `name` = "'..namePlayer..'"')		--executa a função na DB
			end
		end, 6000)																								-- 2000 = 2s pra deslogar o player
	elseif not isPremium(cid) and getPlayerStorageValue(cid, 25425466) == 1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!")
		addEvent(function()
			if isCreature(cid) then																				--verifica se o player ainda ta on e executa
				setPlayerStorageValue(cid, 25425466, -1) 														--seta a storage pra -1
				-- não mexer em nada daqui pra baixo  ******
				local split = Split(getPlayerName(cid), " ") 													-- função pra tirar o [P]
				local nomeAntigo = ''
				local space = " "
				for i=2, #split do
					nomeAntigo = nomeAntigo..split[i]
					if i+1 <= #split then																	--se ainda tiver mais nomes
						nomeAntigo = nomeAntigo..space														-- caso seja nome composto add espaço ex: Pedro Mauro
					end
				end
				-- não mexer em nada pra cima ******
				doRemoveCreature(cid)																			--desloga o char
				func('UPDATE `players` SET `name` = "'..nomeAntigo..'" WHERE `name` = "'..namePlayer..'"') 			--executa a função na DB
			end						
		end, 6000)																								-- 2000 = 2s pra deslogar o player
	end
    return true
end

 

copia esse e cola, pq mexi da func de update, esse é pra ta 100%

21 minutos atrás, lolksky disse:

[P] e acusou isso:

acabei mexendo um pouco mais, kkkk vou colocar outra verificação mano, pra checar se ja tem [p] no nome na hora de tirar

Editado por FeeTads (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
10 minutos atrás, FeeTads disse:

 esqueci de por as aspas da func da DB kkkk

 

segue o código atualizado:

 



function Split(s, delimiter)
    result = {};
    for match in (s..delimiter):gmatch("(.-)"..delimiter) do
        table.insert(result, match);
    end
    return result;
end

function onLogin(cid)
	
  	--if getPlayerAccess(cid) > 2 then -- ignora GM+
    	--return true
   -- end
	local func = db.query or db.executeQuery
	local namePlayer = getPlayerName(cid)
	if isPremium(cid) and getPlayerStorageValue(cid, 25425466) == -1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!")		--Msg em vermelho na tela do player
		addEvent(function()
			if isCreature(cid) then																				--verifica se o player ainda ta on e executa
				setPlayerStorageValue(cid, 25425466, 1)   														--seta storage da mudança pra 1, pode mudar pra qualquer numero o "25415466"
				doRemoveCreature(cid)																			--desloga o char
				func('UPDATE `players` SET `name` = "[P] '..namePlayer..'" WHERE `name` = "'..namePlayer..'"')		--executa a função na DB
			end
		end, 6000)																								-- 2000 = 2s pra deslogar o player
	elseif not isPremium(cid) and getPlayerStorageValue(cid, 25425466) == 1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!")
		addEvent(function()
			if isCreature(cid) then																				--verifica se o player ainda ta on e executa
				setPlayerStorageValue(cid, 25425466, -1) 														--seta a storage pra -1
				-- não mexer em nada daqui pra baixo  ******
				local split = Split(getPlayerName(cid), " ") 													-- função pra tirar o [P]
				local nomeAntigo = ''
				for i=2, #split do
					nomeAntigo = nomeAntigo + split[i]
					if i+1 <= #split then																	--se ainda tiver mais nomes
						nomeAntigo = nomeAntigo + ' '															-- caso seja nome composto add espaço ex: Pedro Mauro
					end
				end
				-- não mexer em nada pra cima ******
				doRemoveCreature(cid)																			--desloga o char
				func('UPDATE `players` SET `name` = "'..nomeAntigo..'" WHERE `name` = "'..namePlayer'"') 			--executa a função na DB
			end						
		end, 6000)																								-- 2000 = 2s pra deslogar o player
	end
    return true
end

 

copia esse e cola, pq mexi da func de update, esse é pra ta 100%

 

[19:52:05.028] [Error - CreatureScript Interface]
[19:52:05.031] In a timer event called from:
[19:52:05.032] data/creaturescripts/scripts/nomePremmy.lua:onLogin
[19:52:05.032] Description:
[19:52:05.033] data/creaturescripts/scripts/nomePremmy.lua:34: attempt to perform arithmetic on local 'nomeAntigo' (a string value)
[19:52:05.033] stack traceback:
[19:52:05.034]  data/creaturescripts/scripts/nomePremmy.lua:34: in function <data/creaturescripts/scripts/nomePremmy.lua:27>

 

 

E o [P] continua no nome apos tirar o PA

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

 

function Split(s, delimiter)
    result = {};
    for match in (s..delimiter):gmatch("(.-)"..delimiter) do
        table.insert(result, match);
    end
    return result;
end

function onLogin(cid)
	
  	if getPlayerAccess(cid) > 2 then -- ignora GM+
    	return true
   end
	local func = db.query or db.executeQuery
	local namePlayer = getPlayerName(cid)
	local checkPremmy = Split(namePlayer, " ")
	
	if isPremium(cid) and checkPremmy[1] ~= "[P]" then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!")		--Msg em vermelho na tela do player
		addEvent(function()
			if isCreature(cid) then																				--verifica se o player ainda ta on e executa
				doRemoveCreature(cid)																			--desloga o char
				func('UPDATE `players` SET `name` = "[P] '..namePlayer..'" WHERE `name` = "'..namePlayer..'"')		--executa a função na DB
			end
		end, 6000)																								-- 2000 = 2s pra deslogar o player
	elseif not isPremium(cid) and checkPremmy[1] == "[P]" then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!")
		addEvent(function()
			if isCreature(cid) then																				--verifica se o player ainda ta on e executa
				-- não mexer em nada daqui pra baixo  ******
				local split = Split(getPlayerName(cid), " ") 													-- função pra tirar o [P]
				local nomeAntigo = ''
				local space = " "
				for i=2, #split do
					nomeAntigo = nomeAntigo..split[i]
					if i+1 <= #split then																	--se ainda tiver mais nomes
						nomeAntigo = nomeAntigo..space														-- caso seja nome composto add espaço ex: Pedro Mauro
					end
				end
				-- não mexer em nada pra cima ******
				doRemoveCreature(cid)																			--desloga o char
				func('UPDATE `players` SET `name` = "'..nomeAntigo..'" WHERE `name` = "'..namePlayer..'"') 			--executa a função na DB
			end						
		end, 6000)																								-- 2000 = 2s pra deslogar o player
	end
    return true
end

 

coloca esse código todo no lugar.

 

e testa em OUTRO boneco qualquer pra ver

Editado por FeeTads (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
38 minutos atrás, FeeTads disse:

 


function Split(s, delimiter)
    result = {};
    for match in (s..delimiter):gmatch("(.-)"..delimiter) do
        table.insert(result, match);
    end
    return result;
end

function onLogin(cid)
	
  	if getPlayerAccess(cid) > 2 then -- ignora GM+
    	return true
   end
	local func = db.query or db.executeQuery
	local namePlayer = getPlayerName(cid)
	local checkPremmy = Split(namePlayer, " ")
	
	if isPremium(cid) and checkPremmy[1] ~= "[P]" then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!")		--Msg em vermelho na tela do player
		addEvent(function()
			if isCreature(cid) then																				--verifica se o player ainda ta on e executa
				doRemoveCreature(cid)																			--desloga o char
				func('UPDATE `players` SET `name` = "[P] '..namePlayer..'" WHERE `name` = "'..namePlayer..'"')		--executa a função na DB
			end
		end, 6000)																								-- 2000 = 2s pra deslogar o player
	elseif not isPremium(cid) and checkPremmy[1] == "[P]" then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!")
		addEvent(function()
			if isCreature(cid) then																				--verifica se o player ainda ta on e executa
				-- não mexer em nada daqui pra baixo  ******
				local split = Split(getPlayerName(cid), " ") 													-- função pra tirar o [P]
				local nomeAntigo = ''
				local space = " "
				for i=2, #split do
					nomeAntigo = nomeAntigo..split[i]
					if i+1 <= #split then																	--se ainda tiver mais nomes
						nomeAntigo = nomeAntigo..space														-- caso seja nome composto add espaço ex: Pedro Mauro
					end
				end
				-- não mexer em nada pra cima ******
				doRemoveCreature(cid)																			--desloga o char
				func('UPDATE `players` SET `name` = "'..nomeAntigo..'" WHERE `name` = "'..namePlayer..'"') 			--executa a função na DB
			end						
		end, 6000)																								-- 2000 = 2s pra deslogar o player
	end
    return true
end

 

coloca esse código todo no lugar.

 

e testa em OUTRO boneco qualquer pra ver

 

Agora parece que foi! hehe

vou fazer mais testes, qualquer coisa retorno

 

De toda forma, muito obrigado até aqui. Você é fera demais !

Link para o post
Compartilhar em outros sites
1 hora atrás, lolksky disse:

De toda forma, muito obrigado até aqui. Você é fera demais !

tmj meu bom, se ajudei deixa o REP+ marotinho kkkkkkk, qualquer coisa se houver bug só responder, se puder, aki embaixo na esquerda tem "mark as solution" pra marcar o código como solucionado, isso ajuda caso alguém queira encontrar, se vc puder marcar como solucionado ali

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