Ir para conteúdo

ArielZeRah

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    ArielZeRah deu reputação a luanluciano93 em Trade Offline V2.0   
    Refiz grande parte do script e atualizei para a versão em revscript (TFS 1.3+). Peço a permissão ao dono do tópico para eu criar um novo tópico do sistema que atualizei ou, se preferir, postar aqui.
     
  2. Gostei
    ArielZeRah deu reputação a WooX em Trade Offline V2.0   
    TFS 0.4 não reconhece item.id somente item.itemid, substitua todas as ocorrências no script, exemplo da linha 50,
    de:
    if getItemInfo(item.id).charges > 0 then para:
    if getItemInfo(item.itemid).charges > 0 then  
  3. Obrigado
    ArielZeRah deu reputação a Erimyth em [Tutorial] Protegendo seu Gesior e XAMPP!   
    Galerinha todo mundo sabe que o Gesior é uma bosta no quesito segurança e o XAMPP também tem suas falhas, porém muitos ainda utilizam o Gesior e o XAMP por diversos motivos, até mesmo por afinidade. Hoje eu vim aqui dar algumas dicas valiosas para que você possa tornar seu querido Gesior e seu XAMPP um pouco mais seguro.
     
    1 - Se você utiliza XAMPP, siga os passos abaixo para tornar-lo mais seguro:
    Crie um senha relativamente boa e segura para o seu xampp/phpMyAdmin. Exclua completamente a pasta webdav. Vá até o seu phpMyAdmin > Privilégios e exclua o usuário pma. Vá até a pasta phpMyadmin/config.inc.php e procure pela seguinte tag:
    $cfg['blowfish_secret'] = 'xampp'; E mude a palava xampp por algo completamente sem sentido, exemplo:
    $cfg['blowfish_secret'] = 'hsdewu1721has1au'; Ainda em config.inc.php e procure pela seguinte tag:
    $cfg['Servers'][$i]['auth_type'] = 'config'; E mude-a para:
    $cfg['Servers'][$i]['auth_type'] = 'cookie'; Agora vá até php/php.ini e procure pela seguinte tag:
    Safe_mode = Off Ative-o, deixando assim:
    Safe_mode = On Prontinho, seu XAMPP está bem mais seguro!
     
    2 - Bom agora vamos ao Gesior, vá até o arquivo config/config.php e faça as edições nas seguintes tags:
    $config['site']['access_news'] = 6; // access level needed to edit news $config['site']['access_tickers'] = 6; // access level needed to edit tickers $config['site']['access_admin_panel'] = 6; // access level needed to open admin panel Mude todas para 6 para não termos problemas com invasões ao sistema de tickers, porém lembre de por page_acess 6 na sua account pelo phpMyAdmin para você administrar seu site.
     
    3 - Vá até layouts/sua-skin/layout.php e procure a tag <body e substitua por essa:
    <body onBeforeUnLoad="SaveMenu();" onUnload="SaveMenu();" oncontextmenu="return false" onselectstart="return false" ondragstart="return false"> Agora, logo abaixo da tag <body>, você adicionará o seguinte código:
    <?php { $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql); $sql = trim($sql); $sql = strip_tags($sql); $sql = addslashes($sql); return $sql; }   function protect($str) { if( !is_array($str) ) { $str = preg_replace("/(from|select|insert|delete|where|drop table|show tables)/i","",$str); $str = preg_replace('~&amp;#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))',$str); $str = preg_replace('~&amp;#([0-9]+);~e', 'chr("\\1")',$str); $str = str_replace("<script","",$str); $str = str_replace("script>","",$str); $str = str_replace("<Script","",$str); $str = str_replace("Script>","",$str); $str = trim($str); $tbl = get_html_translation_table(HTML_ENTITIES); $tbl = array_flip($tbl); $str = addslashes($str); $str = strip_tags($str); return strtr($str,$tbl); } else return $str; }   $nome = anti_injection($_POST["nome"]); $senha = anti_injection($_POST["senha"]);   $link = htmlspecialchars($_POST['link'], ENT_QUOTES); echo $link;    header("Content-Type: text/html;  charset=ISO-8859-1",true)?> Ainda em layout.php logo abaixo da tag <head>, você adicionará o seguinte código:
    <script type="text/javascript"> function click() { if (event.button==2||event.button==3) { oncontextmenu='return false'; } } document.onmousedown=click document.oncontextmenu = new Function("return false;") </script> Esses códigos te ajudarão a se previr contra SQL Injection, mas eu afirmo logo que isso não é 100% seguro.
     
    4 - Vá até o arquivo guilds.php e localize a seguinte tag:
    $guild_logo = $guild->getCustomField('logo_gfx_name'); if(empty($guild_logo) || !file_exists("guilds/".$guild_logo)) $guild_logo = "default_logo.gif";  Agora substitua por isso:
    foreach (array("/", "\\", "..") as $char) {     $guild_logo = str_replace($char, "", $guild->getCustomField('logo_gfx_name')); } if (empty($guild_logo) || !file_exists("guilds/".$guild_logo)) {     $guild_logo = "default_logo.gif"; }   Pronto, seu guilds.php está seguro agora.
     
    5 - Exclua completamente o arquivo houses.php, ele é um arquivo muito inutilizado e ainda muito vulnerável, pessoas maliciosas podem conseguir ver sua config.lua através dele, portanto apenas exclua.
     
    Pronto, por enquanto é só, se você tiver mais dicas para deixar o Gesior e o XAMPP mais seguro, poste nesse tópico que você com certeza estará ajudando muitas pessoas necessitadas!
     
    Créditos:
    Matheus gpedro Red Stian
      Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!  
  4. Obrigado
    ArielZeRah deu reputação a Aksz em (Resolvido)alguém.. ajuda com essa query?   
    O erro continua, porém é outra coluna

     
    ALTER TABLE newsticker ADD COLUMN date int(11) NOT NULL;  
  5. Obrigado
    ArielZeRah deu reputação a Aksz em (Resolvido)alguém ajuda com esse erro?   
    Você instalou esse sistema recentemente? 
    pois está faltando a tabela castlewinners, no banco de dados.
    Verifica se tem as tabelas para criar certinho se não tiver fiz essa aqui para você por para testar.

     
    -- -------------------------------------------------------- -- Servidor: 127.0.0.1 -- Versão do servidor: 5.6.27-log - MySQL Community Server (GPL) -- OS do Servidor: Win64 -- HeidiSQL Versão: 12.1.0.6537 -- -------------------------------------------------------- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET NAMES utf8 */; /*!50503 SET NAMES utf8mb4 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- Copiando estrutura para tabela not.castlewinners CREATE TABLE IF NOT EXISTS `castlewinners` ( `uid` int(11) NOT NULL AUTO_INCREMENT, `pid` int(11) NOT NULL, `date` int(11) NOT NULL, PRIMARY KEY (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- Copiando dados para a tabela not.castlewinners: ~0 rows (aproximadamente) /*!40103 SET TIME_ZONE=IFNULL(@OLD_TIME_ZONE, 'system') */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; /*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;  
  6. Obrigado
    ArielZeRah recebeu reputação de Vodkart em (Resolvido)Mostrar Guild Dominante Castle - SATI   
    Resolvido pode fechar!
    solução acima nos spoiller

    Obrigado  @vitinhoo96
  7. Curtir
    ArielZeRah deu reputação a Erimyth em [Sistema de Ticket] Atendimento - Gesior Acc   
    SOLUÇÕES -  HelpDesk 100%
     



    Olaaa pessoal Tudo bemm ??? Entao consegui instalar aqui em meu gesior  1.0    
    E Consegui tbm salvar todas as imagens. Como vi que muitos estão procurando vou postar a solução aqui para vocês... 

    Se Possível Liberem um REP+  foi um prazer ajuda-los......

    Vamos la.
    Primeiramente para concertar o BUG de que admin nao pode responder os tickets, faça o seguinte:
     
    Vá até a linha que tem o código abaixo:
    $account = $ots->createObject('Account'); E substitua por:
    $account = new Account;
    Agora segue a pasta de Imagens, jogue ela dentro de www/imagens

    Link Mediafire: Opção de download:
    http://www.mediafire.com/download/vv1x3brp9axlq3h/bug.rar
     
     
    Se Possível Liberem um REP+  foi um prazer ajuda-los......

    Download diretamente do fórum:
    bug.rar
  8. Curtir
    ArielZeRah deu reputação a Sh0z em (Resolvido)AJUDA COM ERRO SHOP PLESS   
    tu colocou o css dele?
  9. Curtir
    ArielZeRah deu reputação a Movie em Ensinando como compilar TFS 0.4 [COM IMAGENS]   
    https://github.com/Fir3element/3777/ no final da página tem um tutorial.
     

  10. Curtir
    ArielZeRah deu reputação a Cat em Encontrar itens e códigos escondidos no Mapa   
    Existe a possibilidade de você baixar um mapa com algumas "manhas", e alguns players sabendo disso podem se beneficiar em seu servidor. Por exemplo, uma bag com crystal coins, uma action numa parede que te teleporte até a sala de recompensas da POI, etc.
    Abaixo mostrarei como encontrar itens e códigos escondidos no mapa:
     
    No menu superior, Edit - Find Item (CTRL + F). No quadro de pesquisa CTRL + F (Search for item), selecione o item clique em OK, você será teleportado até a posição em que o item está e poderá removê-lo. Se ele estiver atrás de uma árvore por exemplo, você pode usar a tecla de atalho G (ghost loose items), que deixa as sprites transparentes.
     
     
     
     
    No menu superior, Edit - Find Unique / Action. Também é possível cadastrar action/unique ids e criar quests escondidas no mapa. Essa opção te mostra todos os uniqueids e actionids que existem. Clique nas opções da lista para ir até a posição.
     
     
     
    No menu superior, Edit - Find Containers Esta opção mostra os containers que existem no mapa. Chests e bookcases, bags e backpacks, corpses e coffins, boxes,  barrels e tudo que da pra clicar, abrir e pegar um item dentro. Clique nas opções da lista para ser teleportado até o item.
     

     
    ______________________________________________________
     
     
     
     
  11. Haha
    ArielZeRah deu reputação a Spooky Ghost em Recomendações VPS'Hospdagem.   
    Uma empresa falando para trocar de fornecedor kkkkkkk só pode ser piada, agradecemos pela alerta @roriscrave
     
    Com toda certeza não irei fazer um contrato rs, e tenho certeza que vários também não vão.
  12. Curtir
    ArielZeRah deu reputação a roriscrave em Recomendações VPS'Hospdagem.   
    Mais como saber qual usar é também saber qual NÃO USAR.
     
    Sou cliente da ServerCore desde 2013, e assim eles me trataram hoje, não recomendo a empresa e vou migrar dela, como eles mesmos pediram para que eu fizesse.
    3 dias para verificar o pagamento e extremamente arrogante.
    edit: meu pagamento foi aprovado no dia 10, e dia 29 ainda não tinha sido resolvido.
     
    Não estou mostrando meu nome nem IP para preservação da privacidade.
     

  13. Curtir
    ArielZeRah deu reputação a Victor Fasano Raful em [ERRO] Ao criar contas no gesior   
    Eu que ajudei a desenvolver a pagina =( sei todos os mecanismos possiveis.
  14. Curtir
    ArielZeRah deu reputação a f0lp em ERRO EXECUTAVEL   
    Execute o o seguinte no SQL da sua DB:
    DROP TABLE IF EXISTS shop_history;CREATE TABLE shop_history(`id` int(11) NOT NULL auto_increment,`to_name` varchar(255) NOT NULL default '0',`to_account` int(11) NOT NULL default '0',`from_nick` varchar(255) NOT NULL,`from_account` int(11) NOT NULL default '0',`price` int(11) NOT NULL default '0',`offer_id` int(11) NOT NULL default '0',`trans_state` varchar(255) NOT NULL,`trans_start` int(11) NOT NULL default '0',`trans_real` int(11) NOT NULL default '0',PRIMARY KEY (`id`));
  15. Curtir
    ArielZeRah deu reputação a Nych em [8.6] CityWar - Evento   
    Este é um evento do tipo lastmanstanding, um evento de guerra que rolava na cidade.
    Foi feito pro tfs 0.4
     
    Informações sobre configuração está na lib.
     
    Em creaturescripts:
    Adicione no login. lua:
    -- Verificar se é primeira vez que loga, pois ao usar storage ele ja começa com -1, -- Então vamos zera-lo para que os frags/kills comecem do 0. if (getPlayerStorageValue(cid, 102089) ~= 1) then setPlayerStorageValue(cid, 102089, 1) setPlayerStorageValue(cid, configCityWar.storageEvent1, 0) setPlayerStorageValue(cid, configCityWar.storageEvent2, 0) end registerCreatureEvent(cid, "WarCityDeath") warCityDeath.lua:
    function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if isInArea(getCreaturePosition(cid), configCityWar.fromPos, configCityWar.toPos) then setPlayerStorageValue(cid, configCityWar.storageEvent2, getPlayerStorageValue(cid, configCityWar.storageEvent2)+1) setPlayerStorageValue(lastHitKiller, configCityWar.storageEvent1, getPlayerStorageValue(lastHitKiller, configCityWar.storageEvent1)+1) end return true end creaturescripts.xml
    <event type="preparedeath" name="WarCityDeath" event="script" value="warCityDeath.lua"/>  
    globalevents:
    function onTime(interval) OpenEventCityWar() return true end <globalevent name="CityWar" time="13:18" event="script" value="GlobalEventCityWar.lua"/>  
    lib:
    -- Funcionamento: Assim que iniciado o evento, aparecerá um teleport em uma posição pré-determinada na variavel "teleportPosition" que levará -- os jogadores que pretendem entrar no evento para a posição no mapa configurado em "teleportToPosition", nesse lugar será tipo uma sala de espera -- que todos os player vão esperar o tempo configurado em "timeTeleport", para que os portões/pedras configurados em "positionsTrapFlorest" sejam -- abertos e assim iniciando o evento! Não esquece de colocar pvp tool e no logout em toda zona do evento. configCityWar = { teleportId = 1387, -- id do teleport. storageEvent1 = 59682, -- storage no qual será guardada o número de kill do jogador no evento. storageEvent2 = 59683, -- storage no qual será guardada o número de death do jogador no evento. storageGlobal = 92831, -- verifica se evento está aberto ou feixado. teleportToPosition = {x = 97, y = 72, z = 7}, -- posição para qual o teleporte leva. teleportPosition = {x = 32347, y = 32213, z = 7, stackpos = 1}, -- posição que é criado o teleporte na cidade, não é necessario alterar o stackpos. timeOpen = 5, -- tempo em minutos que abrirá o teleporte após iniciar o evento. timeShow = 3, -- tempo em que fica mostrando na tela os tops frags do evento. timeTeleport = 30, -- tempo em minutos para o portal do evento ser fechado altomaticamente, 5 minutos antes do final do evento em si. fromPos = {x = 32366, y = 32213, z = 7}, -- area superior esquerda do mapa do evento. toPos = {x = 32370, y = 32217, z = 7}, -- area inferior direita do mapa do evento. } recompensaCityWar = { {itemid = 2160, quant = 5}, {itemid = 2316, quant = 1} -- pode adicionar quantos premios for necessario, mas a ultima linha deixa sem a virgula final. } function OpenEventCityWar() -- abri o evento. local posTp = configCityWar.teleportPosition for i=0, 255 do posTp.stackpos = i if (getThingfromPos(posTp).itemid == configCityWar.teleportId) then doRemoveItem(getThingfromPos(posTp).uid) end end setGlobalStorageValue(configCityWar.storageGlobal, 1) addEvent(OpenTeleport, 1000*60*configCityWar.timeOpen) doBroadcastMessage("O teleport para a City War iniciará em ".. configCityWar.timeOpen .." minutos!") end function OpenTeleport() -- abri teleporte inicial. doCreateTeleport(configCityWar.teleportId, configCityWar.teleportToPosition, configCityWar.teleportPosition) addEvent(printCityWar, 1000*60*configCityWar.timeShow) addEvent(CloseTeleportCityWar, 1000*60*configCityWar.timeTeleport) end function printCityWar() if (getStatusCityWar()) then showTopsCityWar() addEvent(printCityWar, 1000*60*configCityWar.timeShow) end end function CloseTeleportCityWar() -- fexa teleporte na cidade. local posTp = configCityWar.teleportPosition for i=0, 255 do posTp.stackpos = i if (getThingfromPos(posTp).itemid == configCityWar.teleportId) then doRemoveItem(getThingfromPos(posTp).uid) end end addEvent(CloseEventCityWar, 1000*60*5) doBroadcastMessage("O evento City War acabará em 5 minutos!") end function CloseEventCityWar() -- fecha o evento. setGlobalStorageValue(configCityWar.storageGlobal, 0) removePlayersCityWar() premiarTopsCityWar() zeraStoragesPlayers() doBroadcastMessage("O evento City War foi finalizado, agradecemos aos participantes!") end function removePlayersCityWar() -- remove os players do evento. local online = getPlayersOnline() for i=1, #online do if isInArea(getPlayerPosition(online[i]), configCityWar.fromPos, configCityWar.toPos) then doTeleportThing(online[i], getTownTemplePosition(getPlayerTown(online[i]))) end end end function premiarTopsCityWar() -- adiciona os premios para os ganhadores. for i=1, 5 do local S = string.explode(listaFrags[i], "-") if getPlayerByNameWildcard(S[2]) then for i=1, #recompensaCityWar do doPlayerAddItem(getPlayerByNameWildcard(S[2]), recompensaCityWar[i].itemid, recompensaCityWar[i].quant) end else local parcel = doCreateItemEx(9081, 1) for i=1, #recompensaCityWar do doAddContainerItem(parcel, recompensaCityWar[i].itemid, recompensaCityWar[i].quant) end doPlayerSendMailByName(S[2], parcel) end end end function showTopsCityWar() -- mostra na tela os top frags. local listaFrags = {} local online = getPlayersOnline() for i=1, #online do listaFrags[#listaFrags+1] = getPlayerStorageValue(online[i], configCityWar.storageEvent1) .."-".. getPlayerName(online[i]) .."-".. getPlayerStorageValue(online[i], configCityWar.storageEvent2) end local stringAux = "" for j=1, #listaFrags-1 do for i=1, #listaFrags-j do local listaPosition1 = string.explode(listaFrags[i], "-") local listaPosition2 = string.explode(listaFrags[i+1], "-") if (tonumber(listaPosition1[1]) < tonumber(listaPosition2[1])) then stringAux = listaFrags[i] listaFrags[i] = listaFrags[i+1] listaFrags[i+1] = stringAux end end end local textPrint = "Top City War fraggers: " for i=1, 5 do local listaPosition = string.explode(listaFrags[i], "-") if i~=5 then textPrint = textPrint.. listaPosition[2] .."[".. listaPosition[1] .."/".. listaPosition[3] .."], " else textPrint = textPrint.. listaPosition[2] .."[".. listaPosition[1] .."/".. listaPosition[3] .."]." end end doBroadcastMessage(textPrint) end function getTopsCityWar() -- retorna uma lista com os top frags. local listaFrags = {} local online = getPlayersOnline() for i=1, #online do listaFrags[#listaFrags+1] = getPlayerStorageValue(online[i], configCityWar.storageEvent1) .."-".. getPlayerName(online[i]) .."-".. getPlayerStorageValue(online[i], configCityWar.storageEvent2) end local stringAux = "" for j=1, #listaFrags-1 do for i=1, #listaFrags-j do local listaPosition1 = string.explode(listaFrags[i], "-") local listaPosition2 = string.explode(listaFrags[i+1], "-") if (tonumber(listaPosition1[1]) < tonumber(listaPosition2[1])) then stringAux = listaFrags[i] listaFrags[i] = listaFrags[i+1] listaFrags[i+1] = stringAux end end end return listaFrags end function getStatusCityWar() -- retorna se o evento esta aberto ou feixado. if (getGlobalStorageValue(configCityWar.storageGlobal) > 0) then return true end return false end function zeraStoragesPlayers() db.executeQuery("UPDATE `player_storage` SET `value` = 0 WHERE `key` = '".. configCityWar.storageEvent1 .."';") db.executeQuery("UPDATE `player_storage` SET `value` = 0 WHERE `key` = '".. configCityWar.storageEvent2 .."';") end  
    talkactions:
    function onSay(cid, words, param, channel) OpenEventCityWar() return true end <talkaction log="yes" words="/opencity" access="5" event="script" value="openCityWar.lua"/>  
  16. Curtir
    ArielZeRah deu reputação a Cat em Lista de Clients de Tibia (download)   
    Lista de Clients de Tibia (download)
    Acesse abaixo as listas contendo download de Tibia Clients para cada versão, 7.x, 8.x, 9.x, 10.x e 11.x.
     
     
     
     
     
     
     
     
  17. Curtir
    ArielZeRah recebeu reputação de Cat em (World Type) Não Aparece No Site Pra Criar Conta.   
    Galera, esse Script que tava com erro. agora tah 100% pra criar MODO, "pvp", open", etc.. soh copiar e ser feliz.
    sempre procurei essa resposta, e nuka ninguém me ajudou. tive que descubri sozinho qual era o erro, agora que achei COMPARTILHANDO com voces.


  18. Obrigado
    ArielZeRah recebeu reputação de Bruxo Ots em Compilar TFS 1.3 Vcpkg   
    reputado!
  19. Curtir
    ArielZeRah deu reputação a Bruxo Ots em Compilar TFS 1.3 Vcpkg   
    Fala tigrada, videozinho curto ensinando a compilar usando a nova forma de compilar as sources tfs.
     
    Utilizei a base do pessoal da otg, mas o processo serve para ambas sources.
     
     
     
    Links Uteis
     
    Downloads
    Visual Studio
    Git
     
     
    Comandos para instalação do Vcpkg
    cd C:/ git clone https://github.com/Microsoft/vcpkg cd vcpkg ./bootstrap-vcpkg.bat ./vcpkg integrate install  
    Bibliotecas
     
    64x ./vcpkg install --triplet x64-windows boost-iostreams boost-asio boost-system boost-filesystem boost-variant boost-lockfree luajit libmariadb pugixml cryptopp x32 ./vcpkg install boost-iostreams boost-asio boost-system boost-filesystem boost-variant boost-lockfree luajit libmariadb pugixml cryptopp
    Todo o credito a equipe do TFS
     
    Links de Download sem scan pois são de fontes confiaveis.
  20. Curtir
    ArielZeRah deu reputação a luanluciano93 em Add e Remover Premium points por comando   
    Olá pessoal, trago para vocês um script talkaction que add e remove premium points por comandos in-game.

    Primeira, vá em data/talkactions/talkactions.xml e add a tag:
    <talkaction words="/addpoints;/removepoints" access="3" script="premium_points.lua"/> Depois crie um arquivo chamado premium_points.lua em data/talkactions/scripts/ e coloque esse código dentro:
    function onSay(cid, words, param) local t = string.explode(param, ",") if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Missing params.") return true end local player, balance, pid = getPlayerByName(t[1]), t[2], getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "That players doesnt exist or is offline.") return true end if t[2] == null then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Missing ammount of points.") return true end local accountName = getPlayerAccount(player) local accountPoints = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `name` = '" .. accountName .. "' LIMIT 1;") local points = tonumber(accountPoints:getDataInt("premium_points")) local name = getPlayerName(cid) if(words == "/addpoints") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You added "..balance.." premium points to "..t[1].." account.") doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE, "You got "..balance.." premium points from "..name..".") points = (points+balance) db.query("UPDATE `accounts` SET `premium_points` = " .. points .. " WHERE `name`='" .. accountName .. "' LIMIT 1;") elseif (words == "/removepoints") then points = (points-balance) if points < 0 then doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE, ""..name.." removed all your premium points.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You removed all "..t[1].." account premium points.") db.query("UPDATE `accounts` SET `premium_points` = '0' WHERE `name`='" .. accountName .. "' LIMIT 1;") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You removed "..balance.." premium points to "..t[1].." account.") db.query("UPDATE `accounts` SET `premium_points` = " .. points .. " WHERE `name`='" .. accountName .. "' LIMIT 1;") doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE, ""..name.." removed "..balance.." premium points from your account.") end end return true end Para usar é simples: /COMANDO PLAYER, QUANTIDADE
     
    exemplo: /addpoints Luan, 10
     
    Créditos: Shispa
     
    Bem simples né pessoal? Espero que ajude, abraços e até mais!
  21. Curtir
    ArielZeRah deu reputação a Lokyskiller em (Resolvido)CRIAR UM BOW VIP COM ELEMENTO   
  22. Obrigado
    ArielZeRah deu reputação a LeoTK em (Resolvido)Item Help-Me.   
    @Rush Of Dead
     
  23. Obrigado
    ArielZeRah deu reputação a Bruno Minervino em (Resolvido)[PEDIDO] Script TOP LEVEL   
    Em data/creaturescripts/creaturescripts.xml adicione:
    <event type="login" name="TopEffect" event="script" value="topeffect.lua"/> Em data/creaturescripts/scripts/login.lua adicione no fim:
    registerCreatureEvent(cid, "TopEffect") Agora crie um arquivo em data/creaturescripts/scripts com o nome topeffect.lua e adicione:
    local tempo = 10 --tempo em segundos function onLogin(cid) query = db.getResult("SELECT `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1") if (query:getID() ~= -1) then name = query:getDataString("name") if getPlayerName(cid) == name then TopEffect(cid) end end return true end function TopEffect(cid) if isPlayer(cid) then doSendAnimatedText(getCreaturePosition(cid), "[TOP]", TEXTCOLOR_LIGHTBLUE) doSendMagicEffect(getCreaturePosition(cid), 30) addEvent(TopEffect, tempo*1000, cid) end return true end Altere apenas a primeira linha de acordo com sua necessidade.
    Espero ter ajudado!
     
    EDIT: Coloquei um outro efeito também rsrs
  24. Curtir
    ArielZeRah deu reputação a DdJs em [8.6] Simple Baiak   
    Parabéns, seu tópico de conteúdo foi aprovado!
    Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
    Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.
     
  25. Gostei
    ArielZeRah deu reputação a LeoTK em Servidores VPS Qual Melhor ?!   
    @arielson Cara custo e beneficio e qualidade use a 4youstart se você tiver um capital melhor use a servercore e se tiver paciência e nível de inglês bom use a ovh

Informação Importante

Confirmação de Termo