Ir para conteúdo
  • 0

Changename Hack


ThallesNovais

Pergunta

Pessoal esse script que eu tenho aqui de !changename ele da para pegar o char de outra pessoa

 

 

-- Creditos a Won Helder, apocarai, MatheusMkalo

function onSay(cid, words, param)

local maxLen = 30 -- tamanho maximo do nome

local itemid = 2160 ------ Numero do Item que será removido

local proibido = {"ADM"} -- simbolos proibidos

 

 

vip = getPlayerStorageValue(cid,13540) --Storage da vip

if vip == -1 then

doPlayerSendCancel(cid,"Você Não e vip .")

return TRUE

end

 

 

for i = 1, #proibido do

if string.find(tostring(param), proibido) then

doPlayerSendCancel(cid,"Não pode usar símbolos em seu nome.")

return TRUE

end

end

 

if tostring(param) == "" then -- checkar se não é nome vazio

doPlayerSendCancel(cid, "Você deve informar um nome.")

return TRUE

end

 

if string.len(tostring(param)) > maxLen then

doPlayerSendCancel(cid, "Você pode usar no máximo " .. maxLen .. " letras.")

return TRUE

end

 

if not getTilePzInfo(getCreaturePosition(cid)) then

doPlayerSendCancel(cid,"So pode ser usado em pz.")

return TRUE

end

 

if getPlayerItemCount(cid, itemid) >= 1 then

doPlayerRemoveItem(cid, itemid, 1)

db.executeQuery("UPDATE `players` SET `name` = '"..param.."' WHERE `id` = "..getPlayerGUID(cid)..";")

doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos.")

addEvent(doRemoveCreature, 3*1000, cid, true)

else

doPlayerSendCancel(cid,"Você não possui o item " .. getItemNameById(itemid) .. ".")

end

return TRUE

end

 

 

 

 

 

alguem poderia arumar isso para min exemplo tenho um char chamado Thalles ai eu to com outro char e falo !changename thalles eu fico com o char do Thalles

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

E se você vacilar, pessoas pegam até GODs com esse comando.

 

local config = {
lenght = 30,
itemid = 2160,
strings = {"ADM"}
}

function onSay(cid, words, param, channel)
if param ~= "" then
	if getPlayerStorageValue(cid, 13540) == -1 then
		return doPlayerSendCancel(cid, "Você não é VIP.")
	end

	for i = 1, #config.strings do
		if param:find(config.strings[i]) then
			doPlayerSendCancel(cid, "Você não pode usar ".. config.strings[i] .." em seu novo nome.")
			break
		end
	end

	if param:find("%c") or param:find("%p") then
		return doPlayerSendCancel(cid, "Você não pode usar caracteres especiais em seu novo nome.")
	end

	if string.len(param) > config.lenght then
		return doPlayerSendCancel(cid, "Você pode usar, no máximo, ".. config.lenght .." letras.")
	end

	if not getTilePzInfo(getThingPosition(cid)) then
		return doPlayerSendCancel(cid, "Só pode ser usado em Protection Zone.")
	end

	local result = db.getResult("SELECT `id` FROM `players` WHERE `name` = ".. param ..";")
	if result:getID() ~= -1 then
		return doPlayerSendCancel(cid, "Já existe alguém com esse nome no servidor.")
	end

	if getPlayerByNameWildcard(param) then
		return doPlayerSendCancel(cid, "Há alguém online com esse nome.")
	end

	if doPlayerRemoveItem(cid, config.itemid, 1) then
		local pid = getPlayerGUID(cid)
		doRemoveCreature(cid)
		db.executeQuery("UPDATE `players` SET `name` = ".. param .." WHERE `id` = ".. pid ..";")
	else
		doPlayerSendCancel(cid, "Você não possui ".. getItemNameById(config.itemid) ..".")
	end
else
	doPlayerSendCancel(cid, "Insira um novo nome.")
end
return true
end

 

Um amigo meu que é scripter fez esse !changename sem bugs pra vc.

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

  • 0

-- Creditos a Won Helder, apocarai, MatheusMkalo
function onSay(cid, words, param) 
local maxLen = 15 -- tamanho maximo do nome
local itemid = 2361 ------ Numero do Item que será removido
local proibido = {"!","@","*","gm","cm","god"} -- simbolos proibidos

    vip = getPlayerStorageValue(cid,13540) --Storage da vip
  if vip == -1 then
  doPlayerSendCancel(cid,"Você Não e vip .")
  return TRUE
   end

  for i = 1, #proibido do		  
	  if string.find(tostring(param), proibido[i]) then			 
		 doPlayerSendCancel(cid,"Não pode usar símbolos em seu nome.")			 
		 return TRUE		 
	  end	 
  end			  

  if tostring(param) == "" then -- checkar se não é nome vazio		
	 doPlayerSendCancel(cid, "Você deve informar um nome.")		
	 return TRUE	  
  end			 

  if string.len(tostring(param)) > maxLen then		 
	 doPlayerSendCancel(cid, "Você pode usar no máximo " .. maxLen .. " letras.")		 
	 return TRUE	  
  end			

  if not getTilePzInfo(getCreaturePosition(cid)) then	  
	 doPlayerSendCancel(cid,"So pode ser usado em pz.")	  
	 return TRUE	  
  end				   

  if getPlayerItemCount(cid, itemid) >= 1 then		  
	 doPlayerRemoveItem(cid, itemid, 1)		  
	 db.executeQuery("UPDATE `players` SET `name` = '"..param.."' WHERE `id` = "..getPlayerGUID(cid)..";")		   
	 doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos.")		  
	 addEvent(doRemoveCreature, 5*1000, cid, true)	 
  else		 
	 doPlayerSendCancel(cid,"Você não possui o item " .. getItemNameById(itemid) .. ".")	  
  end
return TRUE
end

 

vai funcionar perfeitamente

Link para o comentário
Compartilhar em outros sites

  • 0

-- Creditos a Won Helder, apocarai, MatheusMkalo
function onSay(cid, words, param)
local maxLen = 15 -- tamanho maximo do nome
local itemid = 2361 ------ Numero do Item que será removido
local proibido = {"!","@","*","gm","cm","god"} -- simbolos proibidos

	vip = getPlayerStorageValue(cid,13540) --Storage da vip
  if vip == -1 then
  doPlayerSendCancel(cid,"Você Não e vip .")
  return TRUE
end

  for i = 1, #proibido do		  
	  if string.find(tostring(param), proibido[i]) then			
		 doPlayerSendCancel(cid,"Não pode usar símbolos em seu nome.")			
		 return TRUE		
	  end	
  end			  

  if tostring(param) == "" then -- checkar se não é nome vazio		
	 doPlayerSendCancel(cid, "Você deve informar um nome.")		
	 return TRUE	  
  end			

  if string.len(tostring(param)) > maxLen then		
	 doPlayerSendCancel(cid, "Você pode usar no máximo " .. maxLen .. " letras.")		
	 return TRUE	  
  end			

  if not getTilePzInfo(getCreaturePosition(cid)) then	  
	 doPlayerSendCancel(cid,"So pode ser usado em pz.")	  
	 return TRUE	  
  end				  

  if getPlayerItemCount(cid, itemid) >= 1 then		  
	 doPlayerRemoveItem(cid, itemid, 1)		  
	 db.executeQuery("UPDATE `players` SET `name` = '"..param.."' WHERE `id` = "..getPlayerGUID(cid)..";")		  
	 doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos.")		  
	 addEvent(doRemoveCreature, 5*1000, cid, true)	
  else		
	 doPlayerSendCancel(cid,"Você não possui o item " .. getItemNameById(itemid) .. ".")	  
  end
return TRUE
end

 

vai funcionar perfeitamente

 

Não vai não. Falta a condição que verifica se já existe algum player com o nick escolhido.

 

No script do oneshot tem isso, grandes chances de funcionar.

Link para o comentário
Compartilhar em outros sites

  • 0

O Script do @Oneshot esta pegando perfeitamente a parte de não deixar o player colocar um nome já é existente só que ele não troca de nome

eo script do @Smartbox ele e praticamente igual o que eu uso só não tem a parte da vip que eu coloquei emtão script dele também deixa usar o nome de uma pessoa que já existe emtão @Oneshot só esta precisando pegar a parte de trocar o nome!

Link para o comentário
Compartilhar em outros sites

  • 0

Opa, ThallesNovais.

 

Foi um erro meu na query do banco de dados. Veja se agora funciona

 

local config = {
	lenght = 30,
	itemid = 2160,
	strings = {"ADM"}
}

function onSay(cid, words, param, channel)
	if param ~= "" then
			if getPlayerStorageValue(cid, 13540) == -1 then
					return doPlayerSendCancel(cid, "Você não é VIP.")
			end

			for i = 1, #config.strings do
					if param:find(config.strings[i]) then
							doPlayerSendCancel(cid, "Você não pode usar ".. config.strings[i] .." em seu novo nome.")
							break
					end
			end

			if param:find("%c") or param:find("%p") then
					return doPlayerSendCancel(cid, "Você não pode usar caracteres especiais em seu novo nome.")
			end

			if string.len(param) > config.lenght then
					return doPlayerSendCancel(cid, "Você pode usar, no máximo, ".. config.lenght .." letras.")
			end

			if not getTilePzInfo(getThingPosition(cid)) then
					return doPlayerSendCancel(cid, "Só pode ser usado em Protection Zone.")
			end

			local result = db.getResult("SELECT `id` FROM `players` WHERE `name` = ".. param ..";")
			if result:getID() ~= -1 then
					return doPlayerSendCancel(cid, "Já existe alguém com esse nome no servidor.")
			end

			if getPlayerByNameWildcard(param) then
					return doPlayerSendCancel(cid, "Há alguém online com esse nome.")
			end

			if doPlayerRemoveItem(cid, config.itemid, 1) then
					local pid = getPlayerGUID(cid)
					doRemoveCreature(cid)
					db.executeQuery("UPDATE `players` SET `name` = '".. param .."' WHERE `id` = ".. pid ..";")
			else
					doPlayerSendCancel(cid, "Você não possui ".. getItemNameById(config.itemid) ..".")
			end
	else
			doPlayerSendCancel(cid, "Insira um novo nome.")
	end
	return true
end

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

×
×
  • Criar Novo...