Ir para conteúdo
  • Cadastre-se

(Resolvido)[VIP] no nome, faltando a parte do "old name" (nao criar o char com o mesmo nick) ajuda


Ir para solução Resolvido por Dwarfer,

Posts Recomendados

Oi, achei um script aqui do Infinity sky que tem o nome [VIP] nos jogadores premium accounts, funciona 100% o script mas tem um problema...

 

Meu problema é:  eu tenho um char chamado JOAO, eu uso a VIP, e fico [VIP] JOAO  certo?
dai outro player pode criar o nick JOAO quando da o global save as 5 horas da manhã (ou quando fecha o ot) DAI BUGA TUDO =/, dai da pra criar outro char chamado JOAO, e fica 2 JOAO no server entende?

eu achei aqui na pasta do infinity sky um arquivo chamado "OLD NAME" (certamente é o script que bloqueia os nomes antigos de serem criados) só que ele nao funciona (tambem nao aparece nada na distro)

nao sei se esse script é o correto que "bloqueia" os nicks antigos.


Old Name

Citar

function onLogin(cid)
if getPlayerStorageValue(cid, 23112) == -1 then
setPlayerStorageValue(cid, 23112, 1)
db.query("UPDATE `players` SET `old_name` = '"..getCreatureName(cid).."' WHERE `old_name` = '' and `name` = '"..getCreatureName(cid).."';")
end
return true
end

MINHA DUVIDA:  EXISTE ALGUMA MANEIRA DE BLOQUEAR O ACCOUNT MANAGER DE CRIAR O PRIMEIRO NICK (tipo um storage)?  grato

achei isso no forum, mas nao sei se funciona e onde colocar, help :/

for _, name in pairs(Nomes da DB) do
    if name:find("[VIP]") then
        name = name:gsub("[VIP]", "")
        if selectedName == name then

            return error("Desculpe, mas já existe um personagem com este nome.") and false
        end
    end
end
Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

Acredito que para fazer a verificação no account manager, você teria que modificar algo nas sources do servidor. Uma alternativa é bloquear o player que tem o nome de um [VIP] e fazer ele alterar o nome.

 

Em creaturescripts/scripts:

 

checkName.lua

 

Spoiler

local tempo = 30 -- em segundos para kickar o player

function onLogin(cid)
if isVipName(cid) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your name is invalid. Use !unlock NewCharName to unlock your char name. You will be kicked in ".. tempo .." seconds.") 
doCreatureSetNoMove(cid, true)
addEvent(doRemoveCreature, tempo*1000, cid, true)
end
return true
end


function isVipName(cid)
local list = {}

local query = db.getResult("SELECT `name` FROM `players` WHERE `group_id` < 2 ")

if (query:getID() == -1) then
    return true 
end

repeat
local name = query:getDataString("name")
table.insert(list, name)
until not query:next()

for _, names in pairs(list) do
   if names:find("[VIP]") then
        names = names:gsub("%[VIP] ", "")
        if getPlayerName(cid) == names then
            return true
        end
    end
end
query:free()
return false
end

 

 

Adicione a tag no creaturescripts.xml: <event type="login" name="NameVip" event="script" value="checkName.lua"/>

 

Em talkactions/scripts:

 

unlock.lua

 

Spoiler

function onSay(cid, words, param, channel)

    local p = getPlayerPosition(cid)
    
    if getPlayerStorageValue(cid, 17843) ~= -1 then
        doPlayerSendTextMessage(cid,  MESSAGE_STATUS_CONSOLE_BLUE, "You can not use this command.")
        doSendMagicEffect(p, CONST_ME_POFF)
        return true
    end
    
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
        doSendMagicEffect(p, CONST_ME_POFF)
        return true
    end

    local guid = getPlayerGUIDByName(param)
	
    if(guid ~= nil) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Name " .. param .. " already exists.")
        doSendMagicEffect(p, CONST_ME_POFF)
    return true
    end

    setPlayerStorageValue(cid, 17843, 1)
    db.executeQuery("UPDATE `players` SET `name` = '" .. param .. "' WHERE name = '" .. getPlayerName(cid) .. "';")
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have unlocked your name from " ..getPlayerName(cid) .. " to " ..param..".")
    
return true
end

 

 

 

E em talkactions.xml: <talkaction words="!unlock" event="script" value="unlock.lua"/>

 

 

 

 

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

Contato:

 

Link para o post
Compartilhar em outros sites

Não. Já existe um char chamado [VIP] Joao, aí o cara vai e cria um char chamado Joao. No primeiro login dele vai ser verificado se já existe algum [VIP] com esse nome, se tiver, ele será obrigado a mudar o nome para outro. 

Contato:

 

Link para o post
Compartilhar em outros sites

ahh entendi, mas tenho +1 duvida, tipo, quando ele for da o !unlock, ai tem um char que ja existe chamado "Pedro" (sem o vip), se ele for da [!unlock Pedro] nao vai bugar n? (é uma possibilidade tlgd) 

Link para o post
Compartilhar em outros sites

funcionou nao =/ , eu loguei 2 char os 2 continuam on =x 599713253d55f_Semttulo.png.8eba834424d8576c3db74ac27d6085d1.png

Editado por poko360 (veja o histórico de edições)
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