Ir para conteúdo
  • Cadastre-se

(Resolvido)Ajuda em melhorar script de add/remover dias premium


Ir para solução Resolvido por Nazo,

Posts Recomendados

Bom galera eu tenho um script aqui que ele adiciona e remove premium do jogador... So que tem um pequeno problema, quando removo bastante dias de premium ele buga e o jogador aparece como free account mais continua com acesso de premium.

Exemplo, o jogador tem 30 dias de premium na conta. Se eu usar o comando e remover 31 a conta dele já buga. Aparece free account porem ainda continua com acesso VIP. ai n importa se eu adc ou removo ele fica bugado até eu ir na database e zerar completamente o valor. Eu gostaria que quando fosse usar o comando de remover premium. E o jogador nao tivesse X dias de premium ele desse um erro avisando que o jogador não tem todo esse valor...

 

Script:

Spoiler

function onSay(cid, words, param)
         if param == "" then
            return  doPlayerPopupFYI(cid,"Está com problemas?\nAprenda os comandos!\n---------------\nAdicionar premium:\n/pa add days player\n/pa add 30 Wakon\n---------------\nRemover premium:\n/pa remove player\n/pa remove Wakon\n---------------\nVer Premium:\n/pa days player\n/pa days Wakon\n---------------")
         end
         if param:lower():find('add') == 1 and 3 then
            local _,_,id,name = param:lower():find('add (%d+) (.+)')
            name = name or ""
            id = tonumber(id or 1) or 1
            if tonumber(id) == nil or getPlayerByName(name) == false then
               return doPlayerSendTextMessage(cid,25,"Adicionar premium:\n/pa add days player\n/pa add 30 Wakon\n [Player: "..name.."]")
            end  
            if isPlayer(getPlayerByName(name)) == TRUE then
            doPlayerAddPremiumDays(getPlayerByName(name), id)


            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Foram adicionados "..tonumber(id).." dias de premium ao jogador "..name..".")
            doPlayerSendTextMessage(getPlayerByName(name),25,"Você recebeu "..tonumber(id).." dias de premium, relogue para atualizar.")
         else
           doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"O jogador "..name.." não esta online ou não existe.")
         end
         elseif param:lower():find('remove') == 1 and 3 then
   local _,_,id2,name2 = param:lower():find('remove (%d+) (.+)')
name2 = name2 or ""
            id2 = tonumber(id2 or 1) or 1
            if tonumber(id2) == nil or getPlayerByName(name2) == false then
               return doPlayerSendTextMessage(cid,25,"Remover premium:\n/pa remove days player\n/pa remove 30 Wakon\n [Player: "..name2.."]")
            end 
            if isPlayer(getPlayerByName(name2)) == TRUE then
   doPlayerRemovePremiumDays(getPlayerByName(name2), id2)
            return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Foram retirados "..tonumber(id2).." dias de premium do jogador "..name2..".")         
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"O jogador "..name2.." não esta online ou não existe.")
end
if param:lower():find('days') == 1 and 3 then
   local _,_,name3 = param:lower():find('days (.+)')
name3 = name3 or ""
prem = getPlayerPremiumDays(getPlayerByName(name3))
if isPlayer(getPlayerByName(name3)) == false then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"O jogador "..name3.." não esta online ou não existe.")
end 
if prem >= 1 then
               return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "O jogador "..name3.." tem "..prem.." dias de premium.")
  else
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"O jogador "..name3.." é free account.")
  end
end
return TRUE
end

 

 

Link para o post
Compartilhar em outros sites
  • Solução
function onSay(cid, words, param)
    if param == "" then
        return doPlayerPopupFYI(cid,"Está com problemas?\nAprenda os comandos!\n---------------\nAdicionar premium:\n/pa add days player\n/pa add 30 Wakon\n---------------\nRemover premium:\n/pa remove player\n/pa remove Wakon\n---------------\nVer Premium:\n/pa days player\n/pa days Wakon\n---------------")
    end
    if param:lower():find('add') == 1 and 3 then
        local _,_,id,name = param:lower():find('add (%d+) (.+)')
        name = name or ""
        id = tonumber(id or 1) or 1
        if tonumber(id) == nil or getPlayerByName(name) == false then
            return doPlayerSendTextMessage(cid,25,"Adicionar premium:\n/pa add days player\n/pa add 30 Wakon\n [Player: "..name.."]")
        end 
        if isPlayer(getPlayerByName(name)) == TRUE then
            doPlayerAddPremiumDays(getPlayerByName(name), id)
            
            
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Foram adicionados "..tonumber(id).." dias de premium ao jogador "..name..".")
            doPlayerSendTextMessage(getPlayerByName(name),25,"Você recebeu "..tonumber(id).." dias de premium, relogue para atualizar.")
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"O jogador "..name.." não esta online ou não existe.")
        end
    elseif param:lower():find('remove') == 1 and 3 then
        local _,_,id2,name2 = param:lower():find('remove (%d+) (.+)')
        name2 = name2 or ""
        id2 = tonumber(id2 or 1) or 1
        if tonumber(id2) == nil or getPlayerByName(name2) == false then
            return doPlayerSendTextMessage(cid,25,"Remover premium:\n/pa remove days player\n/pa remove 30 Wakon\n [Player: "..name2.."]")
        end 
        if isPlayer(getPlayerByName(name2)) == TRUE and getPlayerPremiumDays(getPlayerByName(name2)) >= id2 then
            doPlayerRemovePremiumDays(getPlayerByName(name2), id2)
            return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Foram retirados "..tonumber(id2).." dias de premium do jogador "..name2..".") 
        end
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"O jogador "..name2.." não esta online, não existe ou tem menos dias de premium do que será removido.")
    end
    if param:lower():find('days') == 1 and 3 then
        local _,_,name3 = param:lower():find('days (.+)')
        name3 = name3 or ""
        prem = getPlayerPremiumDays(getPlayerByName(name3))
        if isPlayer(getPlayerByName(name3)) == false then
            return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"O jogador "..name3.." não esta online ou não existe.")
        end 
        if prem >= 1 then
            return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "O jogador "..name3.." tem "..prem.." dias de premium.")
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"O jogador "..name3.." é free account.")
        end
    end
    return TRUE
end

 

Programador PHP, Lua, Java, database administrator.

 

"Nada é verdade, tudo é permitido."

Requiescat in pace.

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo