
Histórico de Curtidas
-
ArielZeRah deu reputação a luanluciano93 em Trade Offline V2.0Refiz 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.
-
ArielZeRah deu reputação a WooX em Trade Offline V2.0TFS 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
-
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('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))',$str); $str = preg_replace('~&#([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! -
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;
-
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) */;
-
ArielZeRah recebeu reputação de Vodkart em (Resolvido)Mostrar Guild Dominante Castle - SATIResolvido pode fechar!
solução acima nos spoiller
Obrigado @vitinhoo96
-
ArielZeRah deu reputação a Erimyth em [Sistema de Ticket] Atendimento - Gesior AccSOLUÇÕ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
-
ArielZeRah deu reputação a Sh0z em (Resolvido)AJUDA COM ERRO SHOP PLESStu colocou o css dele?
-
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.
-
ArielZeRah deu reputação a Cat em Encontrar itens e códigos escondidos no MapaExiste 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.
______________________________________________________
-
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.
-
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.
-
ArielZeRah deu reputação a Victor Fasano Raful em [ERRO] Ao criar contas no gesiorEu que ajudei a desenvolver a pagina =( sei todos os mecanismos possiveis.
-
ArielZeRah deu reputação a f0lp em ERRO EXECUTAVELExecute 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`)); -
ArielZeRah deu reputação a Nych em [8.6] CityWar - EventoEste é 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"/>
-
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.
-
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.
-
ArielZeRah recebeu reputação de Bruxo Ots em Compilar TFS 1.3 Vcpkgreputado!
-
ArielZeRah deu reputação a Bruxo Ots em Compilar TFS 1.3 VcpkgFala 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.
-
ArielZeRah deu reputação a luanluciano93 em Add e Remover Premium points por comandoOlá 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!
-
ArielZeRah deu reputação a Lokyskiller em (Resolvido)CRIAR UM BOW VIP COM ELEMENTO
-
ArielZeRah deu reputação a LeoTK em (Resolvido)Item Help-Me.@Rush Of Dead
-
ArielZeRah deu reputação a Bruno Minervino em (Resolvido)[PEDIDO] Script TOP LEVELEm 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
-
ArielZeRah deu reputação a DdJs em [8.6] Simple BaiakParabé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.
-
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