Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 10/26/15 em todas áreas

  1. Distro 10.90 32bits e 64bits

    Deep house e um outro reagiu a Riisezor por uma resposta no tópico

    2 pontos
    Amigo ele nao ta disponibilizando um OT pronto. e sim um Distro 100% Estável.. basta vc ler um pouco os comentarios q ira ver. preste mais atenção antes de sair reclamando do trabalho dos outros...
  2. Pokémon [Titanium]

    xDark199 reagiu a ClaudioMarcio por uma resposta no tópico

    1 ponto
    Fala ai galera tudo bem com vocês? então venho aqui mais uma vez trazer um servidor para download , agora o do Pokémon Titanium , lembrando que não fiz nada nesse servidor estou apenas postando para download Informações Básicas do Servidor - Servidor Com Sistema de level nos Pokémons - Servidor com Pokémons da 1° até a 6° Geração ( Incompleta ) ( 1° e 2° gera com suas respectivas formas Shinys) - Novas Pokebolas , umas 5 por ai - Mapa original do servidor - Sistema de Bike - Sistema de ovos Pokémon - Sistema de clan - Pokémons Selvagens tem o nome "Wild" na frente - Golden Arena - Sistema de Duelo entre outros Sistemas ..... Algumas Print sobre o Servidor : Spoiler Link para download do Servidor: Servidor https://mega.co.nz/#!KYJTFDrT!THO6iGH4Leg-xnB0Qt1XWSQzGZzBbxvl6QDrtPNGvYE Client(Mega)http://www.4shared.com/rar/JCJcuV5Uba/Zombi_TRs_PGalaxy_Client.html Créditos : Aline PGalaxy Team Gabrieltxu Slicer Caso Gostou do servidor deixe seu curtir ai para ajudar :3 , Irei atualizar mais tarde o topico deixar ele com uma aparencia mais agradavel , obrigado a todos
  3. Obrigatoriamente leia tudo! Atualizado 01/07/2014 Opa galera mais uma vez eu trazendo o melhor para todos. Hoje vou postar o sistema de Guild de Points que eu utilizo em meu OTserver, acredito que dificilmente será encontrado por ae um tão completo e sem bugs igual o que será postado logo abaixo, é um sistema completo que é utilizado pelo líder da guild executando um comando que, se tiver de acordo com as regras que seram feitas por você, todos os membros da guild iram receber os pontos uma unica vez, lembrando que quando os pontos são adicionados a um player ele não receberá entrando em outra guild e não receberá criando outro personagem na conta, resumindo ele só receberá uma unica vez na conta e com um player só. E um dos detalhes que me causava dor de cabeça era que quando um líder executava o comando, quem estava online recebia os pontos, mais quem estava offline não recebia, isso acontecia normalmente porque tem guilds que contém 50, 70, 100 players, portanto nem sempre todos estavam online. O comando só pode ser executado uma vez por dia cada guild, para não gerar processamentos desnecessários e assim um mal funcionamento do servidor. Cada administrador pode configurar seu sistema da forma que quiser, por ser um sistema muito simples, você pode bota que todos os players estejam no minimo level x, que a guild só possa executar o comando quando estiver quantidade x de players online, isso é bom porque traz um certa dificuldade para fraudes de pontos, e o sistema só vira bagunça dependendo do que você vai oferecer no seu shop guild, eu particularmente só utilizei esse comando porque muitas guilds grandes pediam pontos, eles me cobravam uma quantidade x de pontos e eu cobrava uma quantidade x de player então pra automatizar o processo e não ter dor de cabeça foi feito todo esse sistema. Se você analisar bem vai ver que tudo isso só gera mais crescimento ao seu servidor. Bom, vamos ao sistema: Em talkactions.xml, adicione a tag abaixo: <talkaction words="!guildpoints" event="script" value="guildpoints.lua"/> Na pasta talkactions/scripts faça um .lua com o nome guildpoints e dentro dele adicione os coder abaixo: GuildPointsConfigs = { ExecuteIntervalHours = 24, NeedPlayersOnline = 10, NeedDiferentIps = 6, MinLevel = 80, AddPointsForAcc = 9 } function getGuildPlayersValidAccIDS(GuildID, MinLevel) local RanksIDS = {} local AccsID = {} local ValidAccsID = {} Query1 = db.getResult("SELECT `id` FROM `guild_ranks` WHERE guild_id = '".. GuildID .."'") if(Query1:getID() == -1) then return ValidAccsID end for i = 1, Query1:getRows() do table.insert(RanksIDS, Query1:getDataInt("id")) Query1:next() end Query2 = db.getResult("SELECT `account_id` FROM `players` WHERE `rank_id` IN (".. table.concat(RanksIDS, ', ') ..") AND `level` >= ".. MinLevel .."") if(Query2:getID() == -1) then return ValidAccsID end for i = 1, Query2:getRows() do local AccID = Query2:getDataInt("account_id") if #AccsID > 0 then for k = 1, #AccsID do if AccID == AccsID[k] then AddAccList = false break end AddAccList = true end if AddAccList then table.insert(AccsID, AccID) end else table.insert(AccsID, AccID) end Query2:next() end Query3 = db.getResult("SELECT `id` FROM `accounts` WHERE `guild_points_stats` = 0 AND `id` IN (".. table.concat(AccsID, ', ') ..")") if(Query3:getID() == -1) then return ValidAccsID end for i = 1, Query3:getRows() do local AccID = Query3:getDataInt("id") if #ValidAccsID > 0 then for k = 1, #ValidAccsID do if AccID == ValidAccsID[k] then AddAccList = false break end AddAccList = true end if AddAccList then table.insert(ValidAccsID, AccID) end else table.insert(ValidAccsID, AccID) end Query3:next() end return ValidAccsID end function onSay(cid, words, param, channel) if(getPlayerGuildLevel(cid) == 3) then local GuildID = getPlayerGuildId(cid) Query = db.getResult("SELECT `last_execute_points` FROM `guilds` WHERE id = '".. GuildID .."'") if(Query:getID() == -1) then return true end if Query:getDataInt("last_execute_points") < os.time() then local GuildMembers = {} local GuildMembersOnline = {} local PlayersOnline = getPlayersOnline() for i, pid in ipairs(PlayersOnline) do if getPlayerGuildId(pid) == GuildID then if getPlayerLevel(pid) >= GuildPointsConfigs.MinLevel then table.insert(GuildMembersOnline, pid) end end end if #GuildMembersOnline >= GuildPointsConfigs.NeedPlayersOnline then local IPS = {} for i, pid in ipairs(GuildMembersOnline) do local PlayerIP = getPlayerIp(pid) if #IPS > 0 then for k = 1, #IPS do if PlayerIP == IPS[k] then AddIPList = false break end AddIPList = true end if AddIPList then table.insert(IPS, PlayerIP) end else table.insert(IPS, PlayerIP) end end if #IPS >= GuildPointsConfigs.NeedDiferentIps then local ValidAccounts = getGuildPlayersValidAccIDS(GuildID, GuildPointsConfigs.MinLevel) db.executeQuery("UPDATE `guilds` SET `last_execute_points` = ".. os.time() +(GuildPointsConfigs.ExecuteIntervalHours * 3600) .." WHERE `guilds`.`id` = ".. GuildID ..";") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "".. #ValidAccounts .." Players received points") if #ValidAccounts > 0 then db.executeQuery("UPDATE `accounts` SET `guild_points` = `guild_points` + " ..GuildPointsConfigs.AddPointsForAcc .. ", `guild_points_stats` = ".. os.time() .." WHERE `id` IN (" .. table.concat(ValidAccounts, ',') ..");") for i, pid in ipairs(GuildMembersOnline) do local PlayerMSGAccID = getPlayerAccountId(pid) for k = 1, #ValidAccounts do if PlayerMSGAccID == ValidAccounts[k] then doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, "You received "..GuildPointsConfigs.AddPointsForAcc .." guild points.") break end end end end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only ".. #IPS .." players are valid, you need ".. GuildPointsConfigs.NeedDiferentIps .." players with different ips.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Has only ".. #GuildMembersOnline .." players online you need ".. GuildPointsConfigs.NeedPlayersOnline .." players online at least from level ".. GuildPointsConfigs.MinLevel ..".") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "The command can only be run once every "..GuildPointsConfigs.ExecuteIntervalHours .." hours.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only guild leader can request points.") end return true end No coder acima bem no inicio tem as linhas seguintes para configurar: ExecuteIntervalHours = 24, ( Intervalo para execução do comando, ae está de 24 em 24hrs) NeedPlayersOnline = 10, (Quantos players é preciso está online para poder executar o comando.) NeedDiferentIps = 6, (Quantos IPS diferentes são necessários para executar o comando no exemplo ae tem 6.) MinLevel = 80, (Aqui adicione o level minimo, é necessário que todos os player da guild tenha o level pedido para o lider executar o comando.) AddPointsForAcc = 9, (Aqui é a quantidade de pontos para adicionar em cada player da guild.) Em data/globalevents/scripts crie um arquivo chamado shopguild.lua e adicione o code a seguir: local SHOP_MSG_TYPE = MESSAGE_EVENT_ORANGE local SQL_interval = 30 function onThink(interval, lastExecution) local result_plr = db.getResult("SELECT * FROM z_ots_guildcomunication WHERE `type` = 'login';") if(result_plr:getID() ~= -1) then while(true) do local id = tonumber(result_plr:getDataInt("id")) local action = tostring(result_plr:getDataString("action")) local delete = tonumber(result_plr:getDataInt("delete_it")) local cid = getCreatureByName(tostring(result_plr:getDataString("name"))) if isPlayer(cid) then local itemtogive_id = tonumber(result_plr:getDataInt("param1")) local itemtogive_count = tonumber(result_plr:getDataInt("param2")) local container_id = tonumber(result_plr:getDataInt("param3")) local container_count = tonumber(result_plr:getDataInt("param4")) local add_item_type = tostring(result_plr:getDataString("param5")) local add_item_name = tostring(result_plr:getDataString("param6")) local received_item = 0 local full_weight = 0 if add_item_type == 'container' then container_weight = getItemWeightById(container_id, 1) if isItemRune(itemtogive_id) == TRUE then items_weight = container_count * getItemWeightById(itemtogive_id, 1) else items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count) end full_weight = items_weight + container_weight else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) if isItemRune(itemtogive_id) == TRUE then full_weight = getItemWeightById(itemtogive_id, 1) else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) end end local free_cap = getPlayerFreeCap(cid) if full_weight <= free_cap then if add_item_type == 'container' then local new_container = doCreateItemEx(container_id, 1) local iter = 0 while iter ~= container_count do doAddContainerItem(new_container, itemtogive_id, itemtogive_count) iter = iter + 1 end received_item = doPlayerAddItemEx(cid, new_container) else local new_item = doCreateItemEx(itemtogive_id, itemtogive_count) doItemSetAttribute(new_item, "description", "This item can only be used by the player ".. getPlayerName(cid) .."!") doItemSetAttribute(new_item, "aid", getPlayerGUID(cid)+10000) received_item = doPlayerAddItemEx(cid, new_item) end if received_item == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS GuildShop.') db.executeQuery("DELETE FROM `z_ots_guildcomunication` WHERE `id` = " .. id .. ";") db.executeQuery("UPDATE `z_shopguild_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS GuildShop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.') end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS GuildShop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.') end end if not(result_plr:next()) then break end end result_plr:free() end return true end Em data/globalevents/globalevents.xml adicione a seguinte tag: <globalevent name="shopguild" interval="300" event="script" value="shopguild.lua"/> Certo, a parte do servidor é esta, ta feita, vamos adicionar a database o coder a seguir: ALTER TABLE `accounts` ADD `guild_points` INTEGER(11) NOT NULL DEFAULT 0; ALTER TABLE `accounts` ADD `guild_points_stats` INT NOT NULL DEFAULT '0'; ALTER TABLE `guilds` ADD `last_execute_points` INT NOT NULL DEFAULT '0'; CREATE TABLE `z_shopguild_offer` ( `id` int(11) NOT NULL auto_increment, `points` int(11) NOT NULL default '0', `itemid1` int(11) NOT NULL default '0', `count1` int(11) NOT NULL default '0', `itemid2` int(11) NOT NULL default '0', `count2` int(11) NOT NULL default '0', `offer_type` varchar(255) default NULL, `offer_description` text NOT NULL, `offer_name` varchar(255) NOT NULL, `pid` INT(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`)) CREATE TABLE `z_shopguild_history_item` ( `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`)) CREATE TABLE `z_shopguild_history_pacc` ( `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', `pacc_days` 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`)) CREATE TABLE IF NOT EXISTS `z_ots_guildcomunication` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `param1` varchar(255) NOT NULL, `param2` varchar(255) NOT NULL, `param3` varchar(255) NOT NULL, `param4` varchar(255) NOT NULL, `param5` varchar(255) NOT NULL, `param6` varchar(255) NOT NULL, `param7` varchar(255) NOT NULL, `delete_it` int(2) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13107; Olha estamos quase finalizando tudo, só precisamos terminar a parte de web. O meu GuildShop eu copiei meu shopsystem.php e fiz umas modificações, simples você pode fazer o mesmo é menos trabalhoso. Copie o shopsystem.php renomeie para shopguild.php, após abra-o e modifique como manda a seguir: shop_system para shopguild_system premium_points para guild_points premium points para guild points z_shop_offer para z_shopguild_offer shopsystem para shopguild z_shop_history_pacc para z_shopguild_history_pacc z_shop_history_item para z_shopguild_history_item z_ots_comunication para z_ots_guildcomunication Ou utilize este já pronto: shopguild.php O shopguildadmin.php está no link abaixo, basta fazer o mesmo procedimento: shopguildadmin.php Em index.php add: case "shopguild"; $topic = "Shop Guild"; $subtopic = "shopguild"; include("shopguild.php"); break; case "shopguildadmin"; $topic = "ShopGuild Admin"; $subtopic = "shopguildadmin"; include("shopguildadmin.php"); break; Vá em config.php adicione: $config['site']['shopguild_system'] = 1; $config['site']['access_adminguild_panel'] = 9; Vá em layouts.php adicione abaixo de buypoints: <a href='?subtopic=shopguild'> <div id='submenu_shopguild' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)'onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_shopguild' class='ActiveSubmenuItemIcon'style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Shop Guild</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Em layouts.php add depois do shopadmin: if($group_id_of_acc_logged >= $config['site']['access_adminguild_panel']) echo "<a href='?subtopic=shopadmin'> <div id='submenu_shopguildadmin' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)'onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_shopguildadmin' class='ActiveSubmenuItemIcon'style='background-image:url(".$layout_name."/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=red>! ShopGuild Admin !</font></div> <div class='RightChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> </div> </a>"; Em shopsystem.php procure por: elseif($action == 'show_history') { if(!$logged) { $main_content .= 'Please login first.'; } else{ $items_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($items_history_received)) { foreach($items_history_received as $item_received) { if($account_logged->getId() == $item_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $items_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$item_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $item_received['from_account']) $items_received_text .= '<i>Your account</i>'; else $items_received_text .= $item_received['from_nick']; $items_received_text .= '</td><td>'.$item_received['offer_id'].'</td><td>'.$item_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $item_received['trans_start']).'</td>'; if($item_received['trans_real'] > 0) $items_received_text .= '<td>'.date("j F Y, H:i:s",$item_received['trans_real']).'</td>'; else $items_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>'; $items_received_text .= '</tr>'; } } $paccs_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_pacc').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($paccs_history_received)) { foreach($paccs_history_received as $pacc_received) { if($account_logged->getId() == $pacc_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $paccs_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$pacc_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $pacc_received['from_account']) $paccs_received_text .= '<i>Your account</i>'; else $paccs_received_text .= $pacc_received['from_nick']; $paccs_received_text .= '</td><td>'.$pacc_received['pacc_days'].' days</td><td>'.$pacc_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $pacc_received['trans_real']).'</td></tr>'; } } $main_content .= '<center><h1>Transactions History</h1></center>'; if(!empty($items_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="6"><font color="white" size="4"><b>&nbsp;Item Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Cost</b></td><td><b>Bought on page</b></td><td><b>Received on '.$config['server']['serverName'].'</b></td></tr>'.$items_received_text.'</table><br />'; if(!empty($paccs_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="5"><font color="white" size="4"><b>&nbsp;Pacc Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Duration</b></td><td><b>Cost</b></td><td><b>Added:</b></td></tr>'.$paccs_received_text.'</table><br />'; if(empty($paccs_received_text) && empty($items_received_text)) $main_content .= 'You did not buy/receive any items or PACC.'; } } Troque por: elseif($action == 'show_history') { if(!$logged) { $main_content .= 'Please login first.'; } else{ $items_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($items_history_received)) { foreach($items_history_received as $item_received) { if($account_logged->getId() == $item_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $items_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$item_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $item_received['from_account']) $items_received_text .= '<i>Your account</i>'; else $items_received_text .= $item_received['from_nick']; $items_received_text .= '</td><td>'.$item_received['offer_id'].'</td><td>'.$item_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $item_received['trans_start']).'</td>'; if($item_received['trans_real'] > 0) $items_received_text .= '<td>'.date("j F Y, H:i:s",$item_received['trans_real']).'</td>'; else $items_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>'; $items_received_text .= '</tr>'; } } $itemsguild_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shopguild_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($itemsguild_history_received)) { foreach($itemsguild_history_received as $itemguild_received) { if($account_logged->getId() == $itemguild_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $itemsguild_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$itemguild_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $itemguild_received['from_account']) $itemsguild_received_text .= '<i>Your account</i>'; else $itemsguild_received_text .= $itemguild_received['from_nick']; $itemsguild_received_text .= '</td><td>'.$itemguild_received['offer_id'].'</td><td>'.$itemguild_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $itemguild_received['trans_start']).'</td>'; if($itemguild_received['trans_real'] > 0) $itemsguild_received_text .= '<td>'.date("j F Y, H:i:s",$itemguild_received['trans_real']).'</td>'; else $itemsguild_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>'; $itemsguild_received_text .= '</tr>'; } } $paccs_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_pacc').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($paccs_history_received)) { foreach($paccs_history_received as $pacc_received) { if($account_logged->getId() == $pacc_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $paccs_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$pacc_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $pacc_received['from_account']) $paccs_received_text .= '<i>Your account</i>'; else $paccs_received_text .= $pacc_received['from_nick']; $paccs_received_text .= '</td><td>'.$pacc_received['pacc_days'].' days</td><td>'.$pacc_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $pacc_received['trans_real']).'</td></tr>'; } } $paccsguild_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shopguild_history_pacc').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($paccsguild_history_received)) { foreach($paccsguild_history_received as $paccguild_received) { if($account_logged->getId() == $paccguild_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $paccsguild_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$paccguild_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $paccguild_received['from_account']) $paccsguild_received_text .= '<i>Your account</i>'; else $paccsguild_received_text .= $paccguild_received['from_nick']; $paccsguild_received_text .= '</td><td>'.$paccguild_received['pacc_days'].' days</td><td>'.$paccguild_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $paccguild_received['trans_real']).'</td></tr>'; } } $main_content .= '<center><h1>Transactions History</h1></center>'; if(!empty($items_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="6"><font color="white" size="4"><b>&nbsp;ShopServer Item Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Cost</b></td><td><b>Bought on page</b></td><td><b>Received on '.$config['server']['serverName'].'</b></td></tr>'.$items_received_text.'</table><br />'; if(!empty($itemsguild_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="6"><font color="white" size="4"><b>&nbsp;ShopGuild Item Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Cost</b></td><td><b>Bought on page</b></td><td><b>Received on '.$config['server']['serverName'].'</b></td></tr>'.$itemsguild_received_text.'</table><br />'; if(!empty($paccs_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="5"><font color="white" size="4"><b>&nbsp;ShopServer VIP Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Duration</b></td><td><b>Cost</b></td><td><b>Added:</b></td></tr>'.$paccs_received_text.'</table><br />'; if(!empty($paccsguild_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="5"><font color="white" size="4"><b>&nbsp;ShopGuild VIP Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Duration</b></td><td><b>Cost</b></td><td><b>Added:</b></td></tr>'.$paccsguild_received_text.'</table><br />'; if(empty($paccs_received_text) && empty($items_received_text)) $main_content .= 'You did not buy/receive any items or PACC.'; if(empty($paccsguild_received_text) && empty($itemsguild_received_text)) $main_content .= 'You did not buy/receive any items or PACC.'; } } Finalmente terminamos! Bom todo esse processo é feito só para facilitar tudo pra você e o player e pra diferenciar o Shop System do Shop Guild, porque um sustenta as despesas do server e o outro atrai player, porque pra conseguir player é preciso ter player. Galera acredito que não esteja faltando nada, espero que gostem e tudo que eu poder fazer para nossas melhoras estarei postando, me desculpem meus erros de português mais o que importa aqui é o script está correto, abraços! Créditos: Natanael Beckman LukeSkywalker (Raphael Luiz) .lua 100% Não proíbo ninguém de copia o tópico só peço que onde você adicione inclua os créditos mencionados.
  4. [CTF] Capture The Flag 2.0(Automático)

    Deathstroke reagiu a MaXwEllDeN por uma resposta no tópico

    1 ponto
    #Introdução Este é um sistema de rouba bandeira, no qual tem dois times que se enfrentam e tentam se infiltrar na fortaleza do inimigo, roubar a bandeira dele e retornar para sua base com ela. #Instalação Faça o download do sistema (anexado ao tópico) e cole na pasta do seu servidor. Atualizado 28/03/2014 Após ter instalado os arquivos nas suas respectivas pastas e instalado as tags nos arquivos xml, abra a pasta do seu servidor, e em seguida abra a pasta spells/scripts/support, e abra o arquivo invisible.lua com algum editor de texto, depois de function onCastSpell(cid, var) cole isso: if (getPlayerStorageValue(cid, 16700) ~= -1) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end ficando assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_INVISIBLE) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) function onCastSpell(cid, var) if (getPlayerStorageValue(cid, 16700) ~= -1) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end return doCombat(cid, combat, var) end #Configuração Como na maioria dos meus códigos: as configurações ficam na lib, então: waitpos = {x = 93, y = 117, z = 6}, -- Posição da sala de espera tppos = {x = 92, y = 117, z = 7}, -- Onde o TP vai aparecer days = {2, 5, 7}, -- Dias que o evento vai abrir xp_percent = 0.5, -- Porcentagem de xp que o player vai receber quando ganhar timeclose = 1, -- Tempo para iniciar o CTF winp = 10, waitpos = {x = 93, y = 117, z = 6}, -- Posição da sala de espera Posição onde os players que entrarem no teleport vão ficar esperando, até o evento iniciar tppos = {x = 92, y = 117, z = 7}, -- Onde o TP vai aparecer Posição de onde o teleport vai aparecer days = {2, 5, 7}, -- Dias que o evento vai abrir Dias que o evento vai iniciar. xp_percent = 0.5, -- Porcentagem de exp que o player vai ganhar Quando o evento acaba, os players da equipe que venceu ganham uma quantidade de experiência baseada na experiência que eles já têm, exemplo: Meu player tem 1200000000 de exp, quando o evento acabar, ele vai ganhar 0.5% da exp que ele tem, no caso desse exemplo 6000000 de exp. timeclose = 1, -- Tempo, em minutos, para iniciar o CTF Tempo para o teleport sumir e os players que estão na sala de espera serem teletransportados para o evento. winp = 10, -- Quantos pontos uma equipe precisa marcar para vencer Quantos pontos uma equipe precisa marcar para vencer o evento. Para configurar o horário que o evento vai abrir, é só você modificar na tag do globalevents.xml: <globalevent name="CTFCheck" time="19:33:00" event="script" value="CTFMax.lua"/> Você não precisa criar as bandeiras pelo map editor. O script irá adicioná-las automaticamente. É isso, essa versão é uma remake, vários bugs reportados pela galera na v.1 foram corrigidos, o script ficou mais simples Capture The Flag.rar
  5. !addlevel [Comando para dar level]

    bkmadara reagiu a Absolute por uma resposta no tópico

    1 ponto
    Fala galera do TK, trago hoje um comando simples que já vi pedidos. É o comando de adicionar level, para você que gosta de se editar, dar level para tests ou eventos, como quiser rs. Vamos lá: Siga meus passos que em 1 minuto o servidor terá o comando. Em data/talkactions/scripts crie um arquivo com o nome de addlevel.lua com o seguinte conteúdo: function onSay(cid, words, param) if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Name and level required.") return TRUE end local t = string.explode(param, ",") local player = getPlayerByNameWildcard(t[1]) local amount = tonumber(t[2]) if(not t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to add a ,then the level to set.") end if (doPlayerAddExp(player, getExperienceForLevel(amount)-(getPlayerExperience(player)))) == LUA_ERROR then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Error") end doCreatureAddMana(player, getCreatureMaxMana(player)-getCreatureMana(player)) doCreatureAddHealth(player, getCreatureMaxHealth(player)-getCreatureHealth(player)) return TRUE end Em data/talkactions/talkactions.xml adicione a seguinte linha: <talkaction log="yes" access="5" words="!addlevel" event="script" value="addlevel.lua"/> Para adicionar level a algum player: !addlevel playername, 100 !addlevel = comando executado apenas pelos Administradores do servidor. !playername = nome do jogador que vai receber o level 100 = quantidade de level que irá receber Nota: O Comando já dará ao player o level/vida/mana e exp tudo de acordo! Simples e fácil para adaptar em seu servidor! Espero ter ajudado Absolute.
  6. [SCRIPT] Bike Box otPokemon

    Linkin reagiu a Viny 13 por uma resposta no tópico

    1 ponto
    Olá tibiaking, á pedido de Summer Slyer, vim fazer esse script, referente a Bike Box do otPokémon 1) Crie um arquivo em " data\actions\scripts " e renomei para Bike Box.lua dentro do arquivo cole isso : Adicione essa tag no ACTIONS.XML em Data/Actions : Configurando a SCRIPT 2) Nesse passo você vai ter que criar varias 4 Novas script de bike ( 5 Se o seu servidor não ter uma bike normal ) Vá em data/actions/script crie um arquivo com esse nome bike azul.lua dentro desse arquivo adicione isso : Adicione essa tag em Actions.xml Configurando á SCRIPT Para você criar as outras bikes é só repetir esse processo e botar os ID NO "actions.xml" e na script da bikebox Se você for prescisar das sprites da Bike Box confira esse meu topico : Creditos : Caso gostar do meu conteúdo, apenas repute a minha postagem. Se no jogo ao você tentar abrir á Bike Box e não conseguir verifique no seu item editor e Object Builder, as opções que estão marcada na Bike Box !
  7. Para quem não sabe como funciona o script é o seguinte o ADM pode usar o comando para adicionar um item para todos os players online no servidor. • Adicionando o script • Em "data/talkactions/talkactions.xml" adicione está tag : <talkaction log="yes" words="/additem" access="5" event="script" value="additem.lua"/> Em "data/talkactions/scripts" crie um arquivo lua com o nome "additem" e adicione este script nele : function onSay(cid, words, param, channel) local t = string.explode(param, ",") if t[1] ~= nil and t[2] ~= nil then local list = {} for i, tid in ipairs(getPlayersOnline()) do list[i] = tid end for i = 1, #list do doPlayerAddItem(list[i],t[1],t[2]) doBroadcastMessage(getPlayerName(cid) .. " Acabou de dar: " .. t[2] .." ".. getItemNameById(t[1]) .. " para todos os players online!") end else doPlayerPopupFYI(cid, "No parm...\nSend:\n /itemadd itemid,how_much_items\nexample:\n /itemadd 2160,10") end return true end • Configurando •
  8. Object Builder

    LUCASMDC reagiu a EdMignari por uma resposta no tópico

    1 ponto
    Object Builder é o programa usado para editar itens, outfits, efeitos e mísseis no cliente. Ele edita e compila os arquivos dat e spr. (Object Builder) Versões suportadas:7.10 - 10.41 Download: Adobe AIR Object Builder 0.3.4 Scan ___________________________ Sources GitHub
  9. 1 ponto
    [C++] doCreatureCastSpell (0.3.6pl1) Escrito e testado: 0.3.6PL1 [8.54 - 8.60] Salve galera do TibiaKing, eu fui procurar na internet sobre essa função e vi que já tentaram cria-la, porém não conseguiram, ou se conseguiram nunca postaram. Então eu resolvi faze-la para vocês, e eu percebi que ninguém nunca tinha feito, por causa de uma dúvida, e um certo grau de dificuldade. Certamente, eu tive uma dificuldade no começo, porém ao desenvolver da função eu percebi que não era nada de mais. Então eu trago aqui pra vocês esta função, cuja a ideia é fazer com que a criatura (jogador ou monstro) a utilize uma magia pelo nome dela, importante lembrar que o nome da magia, não é as palavras mágicas, exemplo: "utani hur" é a palavra mágica e "haste" é o nome da magia. Enfim, sem mais delongas e vamos aos códigos Vá ao arquivo "LuaScript.cpp" e procure por: //doPlayerAddExperience(cid, amount) lua_register(m_luaState, "doPlayerAddExperience", LuaScriptInterface::luaDoPlayerAddExperience); E abaixo adicione: //doCreatureCastSpell // by OrochiElf. lua_register(m_luaState, "doCreatureCastSpell", LuaScriptInterface::luaDoCreatureCastSpell); Agora procure por: E abaixo adicione: int32_t LuaScriptInterface::luaDoCreatureCastSpell(lua_State* L) // by OrochiElf. { //doCreatureCastSpell(cid, spellname) std::string spellName = popString(L); ScriptEnviroment* env = getEnv(); if(Creature* creature = env->getCreatureByUID(popNumber(L))) { InstantSpell* spell = g_spells->getInstantSpellByName(spellName); if(!spell) { lua_pushboolean(L, false); return 1; } Creature* target = creature->getAttackedCreature(); if(target) spell->castSpell(creature, target); else spell->castSpell(creature, creature); lua_pushboolean(L, true); } else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } Agora vá ao arquivo "LuaScript.h" e procure por: static int32_t luaDoPlayerAddItem(lua_State* L); E abaixo adicione: static int32_t luaDoCreatureCastSpell(lua_State* L); // by OrochiElf Exemplo, eu tenho um pet, e quero que ele utilize a magia de "utani hur" - "haste". Talkaction Code: function onSay(cid, words, param, channel) local summon = getCreatureSummons(cid)[1] if isCreature(summon) then doCreatureCastSpell(summon, "haste") end return true end Esta função é muito requisitada para fazer servidores de pokémon, evitando gambiarras. Que foi o motivo para qual eu desenvolvi ela Créditos. Tony Araújo (OrochiElf) 100%
  10. Resetando Seu Server Sem Deletar Players ou Items

    Miragem reagiu a LeoTK por uma resposta no tópico

    1 ponto
    olá galera do tibiaking esse é meu primeiro topico então desculpem erros de português bom vamos lá essa função é para server em sqlite que querem resetar sem deletar players ou items. bom primeiro vou falar que essa função pode ser editada por você mais darei algumas opções vejá abaixo algumas funções como editar mais tags siga abaixo \/ é isso espero que tenha ajudado alguma dúvida comente para resolver-mos juntos obs¹: para executar as funções na sqlite procure na parte superior open SQL query editor coloque as funções nele e aperte f9
  11. [MOD] Pokedex Window para base PDA [v1.0]

    Igor Suzuki reagiu a deivaoo por uma resposta no tópico

    1 ponto
    Eai galera, blz? Bom, vim trazer pra vcs a versão 1.0 do mod de pokedex que eu desenvolvi mês passado visando aprendizado no mundo de OTC, com o objetivo também de mostrar que o otclient é flexível suficiente para se fazer muitas coisas sem a necessidade das sources tanto do servidor quanto do client... Para aqueles que não conhecem, vejam o Show Off desse trabalho. Eu fiz essa versão com o objetivo de não fazer alterações no servidor... Ou seja, tem apenas edições no OTC. Atualizações: 1. Adicionado um pack com 276 imagens de pokemons (16,1MB); 2. Pokemons shiny tem a exibição da imagem de pokemons normais (para alterar, basta remover a linha 75 do arquivo game_pokedex.lua, na pasta modules/game_pokedex de seu client); 3. Pokedex fecha ao se deslogar do char com ela aberta [créditos a @Soulviling pela ideia]; Bom, sem mais delongas; Instalação fácil: Passo 1. Faça o download do arquivo RAR (download no final do tópico); Passo 2. Copie a pasta modules pro seu client; Passo 3. "Deseja substituir?" [X]Sim [ ]Não Passo 4. Só vai até o passo 3; Bom, segue uma imagem ATUALIZADA Download e Scan
  12. PVP DEDINHO, Foxworld, with crosshair

    Reds reagiu a Komic por uma resposta no tópico

    1 ponto
    Olá galera do TK vim trazer um script que muitos pediram aqui no forum e falaram que era apenas nas source para colocar em seu OTServ é muito facil vou dar um exemplo Exemplo: Vá até o script da SD que fica em "Data/spells/scripts", no arquivo suddendeath.lua e após a function onCastSpell, adicione: if isPlayer(getCreatureTarget(cid)) == TRUE and getCreatureTarget(cid) ~= getTopCreature(variantToPosition(var)).uid then doPlayerSendCancel(cid, "You can not shoot this directly on players.") return FALSE end if isPlayer(variantToNumber(var)) == TRUE then doPlayerSendCancel(cid, "You can not shoot this directly on players.") return FALSE end Pronto seu PVP dedinho está feito se quiser em todas as runas basta adicionar nos script. não sou bom para criar topicos caso a moderação queira pode editar. Creditos: Limos OTLAND.
  13. 1 ponto
    Tem certeza que está na database do servidor > accounts > conta do adm > de ctrl + f e coloque page acess, coloca 999 ou 9
  14. Espaço vazio no topo da página

    Danilo Matos reagiu a Aksz por uma resposta no tópico

    1 ponto
    Pode até ser , eu pedi a pagina para que eu pudesse olhar mais você ainda nao passou.
  15. MEU OT ESTA SENDO NUKADO TODA HORA

    teussharke reagiu a vankk por uma resposta no tópico

    1 ponto
    Voce precisa ter uma protecao contra DDoS para que com essa protecao voce filtre os travegos ruins, vulgo DDoS. Para isso requer $$. Se voce hospeda seu servidor em casa, recomendo levar para uma empresa especializada contra DDoS. E se voce ja tem uma maquina com alguma empresa manda um ticket perguntando sobre a protecao contra DDoS e veja quanto custa. Porém, para te ajudar um pouco procure por CSF firewall no google e instale, e talvez isso possa mitigar um pouco do travego.
  16. Erro scritp evento global exp

    M4G0 reagiu a .HuRRiKaNe por uma resposta no tópico

    1 ponto
    Troque para esse: function onSay(cid, words, param, channel) local config = { storage = 102590, } if(param == 'cancel') then if getGlobalStorageValue(config.storage) > 0 then setGlobalStorageValue(config.storage, -1) doBroadcastMessage("Double Exp cancelado") end return true end param = tonumber(param) if(not param or param < 0) then doPlayerSendCancel(cid, "Digite por quantas horas o evento ira durar") return true end if getGlobalStorageValue(config.storage) - os.time() <= 0 then setGlobalStorageValue(config.storage, os.time()+param*60*60) doBroadcastMessage("Exp bonus ativado 50% + EXP por "..param.." horas! Aproveite.") end return true end
  17. PVP DEDINHO, Foxworld, with crosshair

    Sommer reagiu a MarceLoko por uma resposta no tópico

    1 ponto
    function onCastSpell(cid, var) if isPlayer(getCreatureTarget(cid)) == TRUE and getCreatureTarget(cid) ~= getTopCreature(variantToPosition(var)).uid then doPlayerSendCancel(cid, "You can not shoot this directly on players.") return FALSE end return doCombat(cid, combat, var) end me parece ser o mais adequado... de qualquer forma, vc nunca poderá atirar a sd pela tela se o player estiver marcado como seu target desculpa nao testar, pois nem ao menos tenho servidor que nao seja 1.x aqui o ideal é realmente mexer na source, e é bem melhor e simples
  18. (Resolvido)[Ajuda] Velocidade da bike

    Gaant reagiu a Gantz por uma resposta no tópico

    1 ponto
    local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionFormula(condition, 1.7, -36, 1.7, -36) function onSay(cid, words, param) doRemoveCondition(cid, CONDITION_HASTE) local pos = getThingPos(cid) if(param == '') then doSendMagicEffect(pos, 12) doAddCondition(cid, condition) return true end local t = string.explode(param, '"') if(t[2]) then doCreatureSay(cid, "Correr: ".. t[2], 20, false, 0, pos) doSendMagicEffect(pos, 12) doAddCondition(cid, condition) end return true end
  19. Narvia.eu layout

    lordPein reagiu a Tricoder por uma resposta no tópico

    1 ponto
    Download: zivera.rar Scan: VirusTotal
  20. GLOBAL {TIBIAFACE} v.23 10.82

    daniel1997 reagiu a Danilo Matos por uma resposta no tópico

    1 ponto
    Estou com o mesmo problema!
  21. Acho que o fórum bugou, porquê pra mim aparece. Qualquer coisa põe doPlayerSetTown(cid, 1) Debaixo da linha que tu fez seta e muda o 1. Aqui era pra ser completo:local config = { useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')) } function onLogin(cid) local text = "- Bem vindo ao novo BaiakZica [8.60], here's a list of commands:\n!bless -> Get blessed by the Gods\n!frags -> See your current frags\nCtrl+R -> Report bugs to staff\n- Visite: BaiakZica.no-ip.biz e adquira seus Points." local useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')) local loss = getConfigValue('deathLostPercent') if(loss ~= nil) then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10) end local lastLogin = getPlayerLastLoginSaved(cid) if(lastLogin > 0) then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE, text) else doPlayerSendOutfitWindow(cid) doPlayerSetTown(cid, 1) end if(not isPlayerGhost(cid)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) end registerCreatureEvent(cid, "Mail") registerCreatureEvent(cid, "GuildMotd") registerCreatureEvent(cid, "Idle") if(config.useFragHandler) then registerCreatureEvent(cid, "SkullCheck") end registerCreatureEvent(cid, "inquisitionPortals") registerCreatureEvent(cid, "countKill") registerCreatureEvent(cid, "SaveReportBug") --registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid, "AdvanceSave") registerCreatureEvent(cid, "kill") registerCreatureEvent(cid, "reward") --registerCreatureEvent(cid, "30") registerCreatureEvent(cid, "ArenaKill") registerCreatureEvent(cid, "killbossesbroadcast") registerCreatureEvent(cid, "PythiusDead") registerCreatureEvent(cid, "zombieevent") registerCreatureEvent(cid, "Achievements") registerCreatureEvent(cid, "Frags") registerCreatureEvent(cid, "demonOakLogout") registerCreatureEvent(cid, "demonOakDeath") registerCreatureEvent(cid, "demonOakComplete") registerCreatureEvent(cid, "PlayerDeath") registerCreatureEvent(cid, "WoeExp") registerCreatureEvent(cid, "PlayerItems") registerCreatureEvent(cid, "ExpVip") registerCreatureEvent(cid, "Addons") registerCreatureEvent(cid, "DeathBroadCast") if (InitArenaScript ~= 0) then InitArenaScript = 1 for i = 42300, 42309 do setGlobalStorageValue(i, 0) setGlobalStorageValue(i+100, 0) end end if getPlayerStorageValue(cid, 42309) < 1 then for i = 42300, 42309 do setPlayerStorageValue(cid, i, 0) end end if getPlayerStorageValue(cid, 42319) < 1 then for i = 42310, 42319 do setPlayerStorageValue(cid, i, 0) end end if getPlayerStorageValue(cid, 42329) < 1 then for i = 42320, 42329 do setPlayerStorageValue(cid, i, 0) end end if getPlayerStorageValue(cid, 42355) == -1 then setPlayerStorageValue(cid, 42355, 0) end setPlayerStorageValue(cid, 42350, 0) setPlayerStorageValue(cid, 42352, 0) return true end
  22. Correr (Poketibia)

    gah silva reagiu a Gaant por uma resposta no tópico

    1 ponto
    O primeiro lá é na pasta do servidor\data\talkactions\scripts daí tu cria um arquivo chamado correr.lua põe esse texto dentro do correr.lua Agora vai na pasta anterior servidor\data\talkactions\ e vai ter um arquivo chamado talkactions.xml daí você adiciona isso aqui em uma linha
  23. 1 ponto
    Video de Demonstração ________________________________________________ Baseado neste evento: http://www.tibiawiki.com.br/wiki/Silencer_Plateau ________________________________________________ data/actions/script/ResonanceChamber.lua --Config local config = { item = 22535, storage = 34380, position = { Position(33637, 32516, 5), -- Top Left Position(33664, 32537, 5), -- botton Right Position(33650, 32527, 5) -- Center }, raid = { [1] = {"silencer", math.random(8,15) }, [2] = {"silencer", math.random(11,18) }, [3] = {"silencer", math.random(8,15) }, [4] = {"Sight of Surrender", math.random(3,8) } }, globalEventTime = 30 * 60 * 1000, -- [30min] waiting time to get started again timeBetweenraid = 1 * 60 * 1000, -- [1min] Waiting time between each raid cleanraid = true -- Clean zone after globalEventTime } local function isWalkable(position) local tile = Tile(position) if not tile then return false end local ground = tile:getGround() if not ground or ground:hasProperty(CONST_PROP_BLOCKSOLID) then return false end local items = tile:getItems() for i = 1, tile:getItemCount() do local item = items[i] local itemType = item:getType() if itemType:getType() ~= ITEM_TYPE_MAGICFIELD and not itemType:isMovable() and item:hasProperty(CONST_PROP_BLOCKSOLID) then return false end end return true end local function raids(monster) local randX,randY,randZ = 0,0,0 randX = math.random(config.position[1].x, config.position[2].x) randY = math.random(config.position[1].y, config.position[2].y) randZ = math.random(config.position[1].z, config.position[2].z) if isWalkable(Position(randX, randY, randZ)) then Game.createMonster(monster, Position(randX, randY, randZ)) else raids(monster) end end local function cleanRaid() local mostersraid= Game.getSpectators(config.position[3], false, false, 13, 13, 11, 11) for i = 1, #mostersraid do if mostersraid[i]:isMonster() then mostersraid[i]:remove() end end end function onUse(cid, item, fromPosition, itemEx, toPosition) local player = Player(cid) local max,time,monster = 0,0,"" if item.itemid ~= config.item then return true end local spectators,hasPlayer,hasMonsters = Game.getSpectators(config.position[3], false, false, 13, 13, 11, 11),false,false for i = 1, #spectators do if spectators[i]:isPlayer() then if spectators[i]:getName() == player:getName() then hasPlayer = true end elseif spectators[i]:isMonster() then hasMonsters = true end end if not hasPlayer then player:sendCancelMessage('Use on Silencer Plateau is located in the south-eastern part of Roshamuul') return true end if hasMonsters then player:sendCancelMessage('You need kill all monsters') return true end if Game.getStorageValue(config.storage) <= 0 then if math.random(0,10000) < 7000 then player:say("PRRRR...*crackle*", TALKTYPE_MONSTER_SAY) item:remove(1) return true else player:say("PRRRROOOOOAAAAAHHHH!!!", TALKTYPE_MONSTER_SAY) end local raid = config.raid for y, x in pairs(raid) do local i = 1 while i <= #x do print(x[i]) print(x[i+1]) time = time + config.timeBetweenraid for j = 1, x[i+1] do Game.setStorageValue(config.storage,x[i+1]) addEvent(raids,time,x[i]) end i = i + 2 end end addEvent(Game.setStorageValue, config.globalEventTime, config.storage, 0) if config.cleanraid then addEvent(cleanRaid, config.globalEventTime) end item:remove(1) else player:sendCancelMessage('You need to wait') end end data/actions/actions.xml <action itemid="22535" script=ResonanceChamber.lua"/> ________________________________________________ Créditos: Omin
  24. 1 ponto
    Olá Galerinha do TibiaKing demorei algum tempinho para disponibilizar o Pack mas está pronto. Segue ScreenShot de algumas sprites e a seguir Download. ScreenShot de algumas sprites: Download: http://www.4shared.c..._EddyHavoc.html Senha para extrair os Arquivos: eddyhavoc Exclusivo TibiaKing Créditos a todos os autores que criaram as sprites ! Se a pedido quiser que cite o seu nome post aqui no tópico a sprite de sua autoria e prove que é de sua autoria.
  25. [Link Quebrado]Base OtPokémon.com + Client

    Alysson334 reagiu a Prisco por uma resposta no tópico

    1 ponto
    eu to querendo baixa mais no scan foi detectado trojan Ta Sem S3DB(ARQUIVO DAS CONTAS) procure um qualquer ae obs: tem que botar um com o nome Otpokemon.s3db
  26. [NPC] Quest por missões.

    Deletera reagiu a Pedro. por uma resposta no tópico

    1 ponto
    Olá, boa noite TK, venho trazer para vocês um script que uso no meu servidor, que serve de missão. Acho maneiro, para RPGS. A função do script é uma quest, o player precisa entregar um item ao NPC, no caso um pergaminho, que lhe dará acesso a clicar na arvore, porém para chegar até a arvore voce tem que procurar uma alavanca, para aparecer uma escada. Vamos lá. Crie um arquivo npc/script/Wyat.lua e adicione. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) -- OTServ event handling functions start function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end -- OTServ event handling functions end function doCreatureSayWithDelay(cid,text,type,delay,e) if delay<=0 then doCreatureSay(cid,text,type) else local func=function(pars) doCreatureSay(pars.cid,pars.text,pars.type) pars.e.done=TRUE end e.done=FALSE e.event=addEvent(func,delay,{cid=cid, text=text, type=type, e=e}) end end --returns how many msgs he have said already function cancelNPCTalk(events) local ret=1 for aux=1,table.getn(events) do if events[aux].done==FALSE then stopEvent(events[aux].event) else ret=ret+1 end end events=nil return(ret) end function doNPCTalkALot(msgs,interval) local e={} local ret={} if interval==nil then interval=3000 end --3 seconds is default time between messages for aux=1,table.getn(msgs) do e[aux]={} doCreatureSayWithDelay(getNpcCid(),msgs[aux],TALKTYPE_PRIVATE_NP,(aux-1)*interval,e[aux]) table.insert(ret,e[aux]) end return(ret) end function creatureSayCallback(cid, type, msg) -- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself. if (not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, 'here') and getPlayerStorageValue(cid, 60200) == -1 then npcHandler:say('This is an old castle. Terrifying {beasts} used to live here.', cid) talk_state = 5 elseif msgcontains(msg, 'beasts') and talk_state == 5 then npcHandler:say('I can tell you more about the castle, however I will need a {favour}.', cid) talk_state = 6 elseif msgcontains(msg, 'favour') and talk_state == 6 then npcHandler:say('I heared about an {old parchment}, which contains ancient alchemists formulas.', cid) talk_state = 7 elseif msgcontains(msg, 'old parchment') and talk_state == 7 then npcHandler:say('Its the piece of paper. The legend says the necromancers from Tanami desert are keeping it in their {library}.', cid) talk_state = 8 elseif msgcontains(msg, 'library') then npcHandler:say('The library can be found to the north of Aldruhn city. I really need this paper, but I am not strong enough to defeat necromancers. Bring it to me, and I will tell you more about beasts.', cid) setPlayerStorageValue(cid, 60200, 1) talk_state = 0 elseif (msgcontains(msg, 'parchment') or msgcontains(msg, 'alchemist') or msgcontains(msg, 'here') or msgcontains(msg, 'alchemists') or msgcontains(msg, 'formulas') or msgcontains(msg, 'done') or msgcontains(msg, 'reward')) and getPlayerItemCount(cid,9733) < 1 and getPlayerStorageValue(cid, 60202) == -1 and getPlayerStorageValue(cid, 60200) == 1 then npcHandler:say('I need you to find it as fast as possible! Please be quick.', cid) elseif getPlayerStorageValue(cid, 60200) == 1 and getPlayerStorageValue(cid, 60201) == -1 and (msgcontains(msg, 'parchment') or msgcontains(msg, 'here') or msgcontains(msg, 'alchemist') or msgcontains(msg, 'alchemists') or msgcontains(msg, 'formulas') or msgcontains(msg, 'done') or msgcontains(msg, 'reward') or msgcontains(msg, 'beast')) then if getPlayerItemCount(cid,9733) >= 1 then if doPlayerRemoveItem(cid,9733,1) then local msgs={ "Okay. I really appreciate it. As I promised: The beast used to terrorize the people from villages nearby. Those were horrible years, many heroes died trying to defeat the beast, but no one survived....", "The name of the beas was Ortheus, this name scares me even to this day. Soon after, Telas came. He was a very brave hero, but not strong enough to kill her alone....", "Luckily for him, he had more luck than cleverness. It was a few seconds separating him from death, then he saw his sword nearby which ensured him victory....", "The beast was changed into a beautiful, red tree. This tree is still here. Some old lever in basement opens the way upstairs. You should start searching there. You have my blessing. Good luck, you can have glory, or die in pain." } doNPCTalkALot(msgs,9000) --if the 2750 is ommited, it uses 3000 always setPlayerStorageValue(cid, 60201, 1) setPlayerStorageValue(cid, 60202, 1) elseif msgcontains(msg, 'things') then npcHandler:say('The beast used to eat human bodies. Many people died here. Many heroes tried to defeat beast, but no one survived. Then {telas} came.', cid) talk_state = 11 elseif msgcontains(msg, 'telas') and talk_state == 11 then npcHandler:say('He was powerful, but not as strong as the beast. He was also very lucky, and this ensured him {victory}.', cid) talk_state = 12 elseif msgcontains(msg, 'victory') and talk_state == 12 then npcHandler:say('The beast was finally defeated. Telas changed her into a beautiful {tree}, but be aware, bad things happen near it.', cid) talk_state = 13 elseif msgcontains(msg, 'tree') and talk_state == 13 then npcHandler:say('The tree is still here. Some old lever in basement opens the way upstairs. You should start searching there. You got my blessing. Good luck, you can have glory, or die in pain.', cid) setPlayerSetStorageValue(cid,60201, 1) doSendMagicEffect(getCreaturePosition(cid), 14) talk_state = 0 end end end ------------------------------------------------ confirm no ------------------------------------------------ -- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself. return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) crie um xml, Wyat.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Wyat" script="wyat.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150"/> <look type="9" corpse="6080"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. What are you looking for {here}?"/> </parameters> </npc> Vamos lá, explicar o Script. você vai falar com o npc, e ele te dará pistas de onde está o [iTEM] que ele quer que você entregue, assim que você entregar ele te dará acesso para passar. Quando ele te der o acesso, você poderá ser teleportado pela arvore. Vamos ao script dela. Actions/script e crie tree.lua e adicione function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, 60201) == -1 then doCreatureSay(cid, "You little worm! You dont have enough power to touch me.", TALKTYPE_ORANGE_2, getCreaturePosition(cid)) elseif getPlayerStorageValue(cid, 60201) == 1 then local tppos = {x=1341, y=1094, z=8} doSendMagicEffect(getCreaturePosition(cid), 17) doTeleportThing(cid,tppos) end end adicione essa tag em xml. <action uniqueid="60200" script="new/tree.lua"/> Sem a storage voce não conseguira ser teleportado, e com a storage será para a cords da config.
  27. Otitemeditor

    otteN reagiu a linkinbr por uma resposta no tópico

    1 ponto
    Desculpa pela demora!!! Tenta utilizar as DLLs que recompilei então, só substituir tudo na pasta Plugins do OTItemEditor http://www.4shared.com/rar/b2A9dX37ce/plugins.html Segue o scan: https://www.virustotal.com/pt/file/88c7cd319ee978eb27bcb115c043e1f0fe51c69d3d377d778be9471070d6e8b8/analysis/1435503645/
  28. Removendo Erro Shutdown Console 0.3.6

    Senegaal reagiu a L3K0T por uma resposta no tópico

    1 ponto
    Bom pessoal eu estava sofrendo com um erro, que dava shutdown em meu server, ele não reiniciava, ficava só no shutdown o dia todo, então eu resolvi verificar esse código game.cpp, resolvi meu problema e venho compartilhar com vocês. Vá em game.cpp procure void Game::shutdown() até exit(1);#endif } e substitua entre ele por esse abaixo: void Game::shutdown() { std::clog << "Preparing"; Scheduler::getInstance().shutdown(); std::clog << " to"; Dispatcher::getInstance().shutdown(); std::clog << " shutdown"; Spawns::getInstance()->clear(); std::clog << " the"; Raids::getInstance()->clear(); std::clog << " server"; cleanup(); std::clog << "- done." << std::endl; if(services) services->stop(); #ifndef __DONT_FORCE_SHUTDOWN__ exit(-1); #endif } Pronto, só compilar novamente via console ele vai fechar e reiniciar.
  29. [Pedido] Salario para Tutores

    fezeRa reagiu a zipter98 por uma resposta no tópico

    1 ponto
    Seria melhor fazer isso por globalevent. Caso, por exemplo, um tutor não tenha condições de logar no dia do pagamento, seria uma tremenda injustiça ganhar os premium points apenas no próximo mês. Supondo que seu sistema de pontos seja igual ao citado pelo Lyon, escrevi este pequeno código que, à 00:00 de todo dia 1º, os tutores do servidor recebam uma quantidade configurável de premium points. local config = { tutorId = 3, --Group ID do tutor. day = "1", --Dia do mês que receberá o salário. pPoints = xxx, --Premium points. } function onTime() if os.date("%d") == config.day then local tutors = db.getResult("SELECT account_id FROM players WHERE group_id = "..config.tutorId) if tutors:getID() ~= -1 then repeat db.executeQuery("UPDATE accounts SET premium_points = premium_points + "..config.pPoints.." WHERE id = "..tutors:getDataInt("account_id")) until not tutors:next() tutors:free() end end return true end Tag: <globalevent name="Salary" time="00:00" event="script" value="nome_do_arquivo.lua"/>
  30. Ideias e boms scripts para PokeTibia

    Fawkzz1 reagiu a Drazyn1291 por uma resposta no tópico

    1 ponto
    galera como eu estou parando de ser um OTadmin vou mandar tudo que der para compartilha com vcs e vou começar com estas ideias e anotações de scripts para os curiosos : Servidores de Base e Auxilio XRain: www.tibiaking.com/forum/topic/27903-nova-vers%C3%A3opokemon-xrainpda-by-malconte/ Pyrus-OT: www.tibiaking.com/forum/topic/45169-pokemon-pyrus-ot/ Paraiso: www.tibiaking.com/forum/topic/44630-854pok%C3%A9mon-paraiso-bydungeon-man-13/ Generations : www.tibiaking.com/forum/topic/41868-pokemon-x-generation-spells-pxg-best/ Open Soucer : PStorm 3.20:www.tibiaking.com/forum/topic/45299-854npo-derivado-pokestorm-320-linux/ Dash V9: www.tibiaking.com/forum/topic/44734-pokemon-dash-v9-o-melhor-open/ Forums : www.tibiaking.com/forum/ ::REMOVIDO:: by Zet0N0Murmurou Base Para WebSite OTP Completo: www.tibiaking.com/forum/topic/38301-modenacc-website-otpokemon-v40-completo/ OTP Normal: www.tibiaking.com/forum/topic/43161-edi%C3%87%C3%83o-em-template-otpokemon-v40/ Tipos de Pokemons Leaf_Thunder_Dark_Fairy_Psichic_Fire_Iron_Dragon_Water_Combat_Comun_Venon_Flyging_Bug_Earth_Rock_Ice_Legendary_Shiny Adicionar novos tipo de pokemon : http://www.tibiaking.com/forum/topic/44030-tutorial-como-adicionar-novos-tipos-de-pokemons-fairy/ PokeDex: pokemondb.net/pokedex/national Scripts Destaque Infraestrutura: www.tibiaking.com/forum/forum/263-tutoriais-e-dicas-de-infraestrutura/ Outros Tutoriais: www.tibiaking.com/forum/forum/124-outros-tutoriais/ Events Event Five Fase Quest: www.tibiaking.com/forum/topic/39375-evento-five-fase-quest/ Torneio System: www.tibiaking.com/forum/topic/42722-pokemon-torneio-system/ Dota: www.tibiaking.com/forum/topic/17181-evento-dota-completo/ Run Event: www.tibiaking.com/forum/topic/33974-run-event/ Pikachu Event: www.tibiaking.com/forum/topic/39549-pikachu-event-derivados-estilo-zombie/ Futbol System: www.blacktibia.org/t3316-sistema-de-futbol Plants vc Zombies: www.blacktibia.org/t33324-minigame-plants-vs-zombies Window Catch: www.tibiaking.com/forum/topic/44200-mod-catch-window-v13/ Xwhitewolf: www.tibiaking.com/forum/user/103767-xwhitewolf/ Cargo + Renomear: www.tibiaking.com/forum/topic/47608-script-para-dar-cargos-e-renomear-os-nomes/#entry275678 1Mensagen p/ iniciante: www.tibiaking.com/forum/topic/47325-mensagens-para-iniciantes/ 2Mensagem primeiro login: www.tibiaking.com/forum/topic/36577-mensagem-no-primeiro-login/ Changer nick: www.tibiaking.com/forum/topic/25204-talkaction-change-name-in-game-30/ Mudar Nome Em Game NPC jogo da velha: www.tibiaking.com/forum/topic/25196-npc-tic-tac-toe/ NPC jogado de jogo da velha inteligente com niveis Converter Imagem para OTBM: www.tibiaking.com/forum/topic/12557-converta-imagens-para-otbm/?fromsearch=1 Win e Lose Core: www.tibiaking.com/forum/topic/42723-pokemon-win-e-lose-score-system/ 1Portal Text: www.tibiaking.com/forum/topic/40356-simples-texto-piscando-no-ot/ 2Tile Informativo: www.tibiaking.com/forum/topic/9839-moveevents-tile-informativo/ Kill Monster Open Portal: www.tibiaking.com/forum/topic/39340-creature-scripts-quando-matar-poke-abre-tp/ Limite Premmium Tile: www.tibiaking.com/forum/topic/12441-area-vip-premmium-tile/ Extra Area Exp: www.tibiaking.com/forum/topic/36528-extra-area-experience/ Pvp Team: www.tibiaking.com/forum/topic/28193-creatureevent-pvp-team/ City Inicial: www.tibiaking.com/forum/topic/28151-tile-que-muda-city-natal/ Diminuir Perda de Exp: www.tibiaking.com/forum/topic/23616-creaturescript-diminuir-a-perda-de-xp-quando-o-player-morre/ 1Login Menssage: www.tibiaking.com/forum/topic/20910-login-message/ 2Mensagen Boas Vindas:www.tibiaking.com/forum/topic/21870-creaturescript-mensagem-de-boas-vindas/ Hit Menssage: www.tibiaking.com/forum/topic/12594-creaturescripts-hit-message/ Item Proibido De Trade: www.tibiaking.com/forum/topic/9707-creatureevent-item-que-nao-pode-dar-trade/ Janela System: www.tibiaking.com/forum/topic/46265-talk-sistema-de-janelas/ Quest c/ Recompensa de Pokemon: www.tibiaking.com/forum/topic/40511-atualizado-quest-que-da-pok%C3%A9mon-como-recompensa/ Auto-Loot = Pxg: www.tibiaking.com/forum/topic/41693-pda-autoloot-igual-pxg/ Stone Box: www.tibiaking.com/forum/topic/36813-action-stone-box/ Item P/ Player On: www.tibiaking.com/forum/topic/33793-talkactions-adicionar-item-para-todos-players-online/ Item Para Player:www.tibiaking.com/forum/topic/35865-talkaction-adicionar-x-item-para-o-player/ Liberador De Pokemon: www.tibiaking.com/forum/topic/37853-item-faz-poke-selvagem-aparecer/ Boost e Shiny Stone: www.tibiaking.com/forum/topic/35575-actions-script-scripts-boost-stone-e-shiny-stone-configur%C3%A1veis/ Rare Candy: www.tibiaking.com/forum/topic/24769-action-rare-candy/ Invasão: www.tibiaking.com/forum/topic/25526-talkaction-invasao-espec%C3%ADfica/ Entrada De Quest Especial: www.tibiaking.com/forum/topic/23196-action-entrada-dark-abra-charizard-valley/ Backpack com nick de Player: www.tibiaking.com/forum/topic/7909-actioncriando-backpack-com-nome-do-player/ Primeira Quest: www.tibiaking.com/forum/topic/14763-primeira-quest/?p=78253 TV Cam System: www.tibiaking.com/forum/topic/11348-854-tv-cam-system/ Bike System: www.blacktibia.org/t5816-actions-bike-system-pokemon Saffari: www.blacktibia.org/t12743-inovador-saffari-zone-para-tibia-o-poketibia-100-sin-bugs Primeiro Item: www.blacktibia.org/t20216-mod-first-items-facil Pokedex Complet: www.blacktibia.org/t533-script-pokedex-completo Auto Mensagens: www.tibiaking.com/forum/topic/1979-globalevents-mensagens-automaticas/ PopUP: www.tibiaking.com/forum/topic/26838-novo-sistema-de-noticias/ Monster Check Info: www.blacktibia.org/t6538-mod-monster-info-check-info Raibow System: www.blacktibia.org/t14881-talkaction-new-rainbow-system Character Info: www.tibiaking.com/forum/topic/8387-talkaction-character-info/ List de Staff: www.tibiaking.com/forum/topic/25523-talkaction-lista-de-staff/ Emoticos: www.tibiaking.com/forum/topic/34443-mods-emoticons/ Mensagen quando Staff Onlinewww.tibiaking.com/forum/topic/44773-simples-mensagem-quando-staff-logar/ NPC Anunciante: www.tibiaking.com/forum/topic/19832-npc-anunciante/ Criar Log GM: www.tibiaking.com/forum/topic/2627-talkaction-criar-logs-gm/ Comando Mute Atualizado: www.tibiaking.com/forum/topic/16321-talkaction-comando-mute-atualisado/ Staff Fala por PLayer: www.tibiaking.com/forum/topic/23403-talkaction-gm-faz-player-falar/ Online Diferente: www.tibiaking.com/forum/topic/34765-talkactions-online-diferente/ Novo Report: www.tibiaking.com/forum/topic/36554-talkaction-mandar-mensagem-para-pasta-do-servidor/ Spy Player: www.tibiaking.com/forum/topic/36462-comando-spy-players/ Pokemon Falar: www.tibiaking.com/forum/topic/42656-comando-adicionando-comando-say/ Correr System: www.tibiaking.com/forum/topic/44601-correr-poketibia/page-2#entry258010 Limpador de Backpack: www.tibiaking.com/forum/topic/44454-limpador-de-backpack-tfs-10/ Tempo Online: www.tibiaking.com/forum/topic/31329-m%C3%A9dia-online/ Ditto System = Pxg: www.tibiaking.com/forum/topic/35599-pda-ditto-system-igual-pxg/ Price Loot: www.tibiaking.com/forum/topic/25387-sistema-de-price-nos-loots/ Monstro C/ Aparencia de Item: www.tibiaking.com/forum/topic/47636-mostro-com-aparencia-de-itemajuda/ Player Account Info: www.tibiaking.com/forum/topic/42199-talkaction-player-account-information/ Video OTS Em Linux: www.tibiaking.com/forum/topic/8751-videootserv-em-linux-site/ Dicas De Segunrança Web: www.tibiaking.com/forum/topic/33036-10-dicas-de-seguran%C3%A7a-para-seu-servidor-web/ Deixar Servido + Bonito: www.tibiaking.com/forum/topic/8077-3-em-1-deixe-seu-servidor-mais-bonito/ Espero ajudar muita gente. Feliz ano novo galera
  31. 1 ponto
    Não curto ot de naruto, mas ta muito bom ! REP++ pra ti heheh
  32. [8.60] STemplo

    guerrafox reagiu a thiagobji por uma resposta no tópico

    1 ponto
    [8.60] STemplo Download (mediafire): http://www.mediafire.com/download/y63683mrek5g118/STemplo.rar Download (mega): https://mega.co.nz/#!tF8zRSID!S7rSeBR-idkeSwgBA7KaH-uc7Xyya1j06RraMNkJ7ZQ Scan: https://www.virustotal.com/pt/url/bb4936cd190bcfc1bf9574d6a91f469e08c687243a2c7f7f2622a40470e17c58/analysis/1414626203/
  33. Runa que heala vida e mana ao mesmo tempo

    sergioopo reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    dsclp a demora, taí seu script. A formula atual é um valor random entre level+ml e level+ml*X, edite a vontade function onUse(cid, item, fromPosition, itemEx, toPosition) local ml = getPlayerMagLevel(cid) local lvl = getPlayerLevel(cid) -------edite a formula aqui--------- formulafor = math.random(((lvl+ml)*5)-(lvl+ml)) --formula forte, vai ser a mesma pra Vida de Knight e Mana de Sorc/Druid formulafra = math.random(((lvl+ml)*2)-(lvl+ml)) --formula fraca, pra mana de knight e vida de sorc/druid formulamed = math.random(((lvl+ml)*3)-(lvl+ml)) --formula média para paladins que usam tanto vida quanto mana -------------------------------------------- if itemEx.itemid == 1 and isPlayer(itemEx.uid) == TRUE then if isSorcerer(itemEx.uid) or isDruid(itemEx.uid) then doSendMagicEffect(getThingPos(itemEx.uid), 1) doPlayerAddMana(itemEx.uid,formulafor) doCreatureAddHealth(itemEx.uid,formulafra) elseif isKnight(itemEx.uid) then doSendMagicEffect(getThingPos(itemEx.uid), 1) doPlayerAddMana(itemEx.uid,formulafra) doCreatureAddHealth(itemEx.uid,formulafor) elseif isPaladin(itemEx.uid) then doSendMagicEffect(getThingPos(itemEx.uid), 1) doPlayerAddMana(itemEx.uid,formulamed) doCreatureAddHealth(itemEx.uid,formulamed) end if item.type > 1 then doChangeTypeItem(item.uid,item.type-1) else doRemoveItem(item.uid,1) end end if isPlayer(itemEx.uid) == FALSE then doPlayerSendCancel(cid,"You can only use this rune in you or in players.") doSendMagicEffect(getThingPos(item.uid), 2) end return 1 end
  34. Free for use!

    bim reagiu a Nogard por uma resposta no tópico

    1 ponto
  35. Free for use!

    bim reagiu a Nogard por uma resposta no tópico

    1 ponto
    kk
  36. [talkAction] Comando /ban

    Eddy2000 reagiu a principe sharingan por uma resposta no tópico

    1 ponto
    Vá em data/talkactions/scripts crie um arquivo bannes.lua e cole isso: function onSay(cid, words, param, channel) Vá em Talkactions.xml e cole está tag: Exemplo: /ban Principe,60 Dias de banimento. Nick to Player a ser banido. Sabe o Ban IP que c tava querendo ? Você pode usar o CTRL + Y para dar ban no player. Ban IP, etc. Mas ta ae o comando como c pediu
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo