Líderes
-
Natanael Beckman
MembroPontos574Total de itens -
-
xWhiteWolf
HéroiPontos3605Total de itens -
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 09/02/16 em todas áreas
-
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
HoverBlood e um outro reagiu a Johncore por uma resposta no tópico
2 pontosAo acessar sua database mysql, você entra na tabela Accounts, em seguida tem a opção Type: o seu provavelmente está 1 você coloca 5 e dar enter. em seguida acessa a tabela Players, você seleciona seu GOD, ai edita, tem uma opção chamada group_id, voce coloca 3 e dar enter. Apartir dai seu ADM tem acesso a tudo, usa todos os comandos, não ganha exp, você consegue sim usar qualquer spell, monstros nao te detectam, no seu look aparece GOD ou adm e você tambem automaticamente, tem todas as addons e montarias. Dar REP+ se funcionar blz, abraços 1. In Weapons.xml, example: you need assassin star infinite, you remove (action="removecount") 2. Use this Talkactions.xml, is complete. To you create iten, you say example: /i plate armor 3. REP+ please bro 4. Thx2 pontos -
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
necroids e um outro reagiu a Enzo Caue por uma resposta no tópico
2 pontosVá até global.lua e verifique a primeira linha, se estiver assim -> dofile('data/lib/libs.lua'), retire o ´s´. Agora vá até data/lib e renomeie o libs.lua para lib.lua2 pontos -
Pokémon Centurion [8.54] PDA
Pokémon Centurion [8.54] PDA
samuelandrade45 reagiu a SlowK por uma resposta no tópico
1 pontoPokémon Centurion (Tópico atualizado apenas para melhorar a aparência, servidor sem atualização desde 19/06/2014). Distro: Pokémon Dash Online Advanced 1.0 (PDA [Baseada na TFS 0.3.6]) (Não tenho source). - Antigo cliente 8.54 - • Informações • - Ataques m1 ao m12 - Sistema de bike - Sistema de boost - Trade Center - Mapa LunusOT - Sistema de profissões - Pokémons com níveis (com evolução) - Vários Shinies dentre eles da nova geração - Rocket (Giovani) e Police - Addons novos - Alguns Pokés com remakes - Várias quests escondidas • Algumas imagens • (Caso não estejam aparecendo, baixe aqui: IMAGENS) Senha do ADM: god/god • Links • Servidor Cliente (Mediafire já fornece scan semelhante ao vírustotal, basta descer a página um pouco). • Créditos • Cacaiu Alexandre Bruno Maciel Patrick Estrela SlowMCZ Obs: Servidor não será mais atualizado, nem darei ajuda, pois faz muito tempo que não mexo com tal server.1 ponto -
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
anderson de souza reagiu a Qwizer por uma resposta no tópico
1 pontoGlobal 11/12x [v32] - New Falcons - New Asuras - Warzone 4,5,6 - Exercise Training - Raids 100% - Monstros 100% - Trainer Offline 100% - Trainer Online 100% - Taming system funcionando 100%; - Database completa - War System 100% - Global MAP Full - Store 100% - Imbuement - Prey System - Entre outros sistemas. Projeto no: GITHUB Scan Vírus Total IMAGES Créditos:1 ponto -
ShopGuild Points 100% add em player offline. Atualizado
ShopGuild Points 100% add em player offline. Atualizado
Rodrigo94 reagiu a Natanael Beckman por uma resposta no tópico
1 pontoObrigatoriamente 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> 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> 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> 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> 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> 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> 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.1 ponto -
All bugs OTSERV - REVELADO ! -
All bugs OTSERV - REVELADO ! -
Corporation Brasil reagiu a AntigoLiberato por uma resposta no tópico
1 pontoEstou me aposentando definitivamente do Tibia, então quero lhes deixar minha experiência, não que isso signifique algo, porque no fundo eu sei que não significa nada. ESTOU COLOCANDO O POST EM ABERTO, CADA UM FAZ COM ESSE CONHECIMENTO OQUE QUISER. Pode ser usado para os desenvolvedores de distros fixa-los, para ADMS de otserv fixa-los, e ao mesmo tempo serve para curiosos, saírem por ai para brincar... eu não me importo como isso será usado, que comece a GUERRA DOS BUGS ! Alguns desses bug, são novos, e ninguém ou quase ninguém sabe, ! como o numero 7° por exemplo. não quero créditos. só peço que não deletem o POST, nem deixe PRIVADO, isso seria muita sacanagem com quem ainda usa o FORUM ! BOA DANÇA A TODOS. ------------------------------------------------------------------------------- 1 - Bug do Sample: Envie dinheiro por transfer para quaisquer character Sample do servidor, exemplo: Knight Sample, Sorcerer Sample, etc.. E então todos os characters novos que criarem conta vão vir com o dinheiro que você transferiu para o Sample. --------------------------------------------------------------- --------------------------------------------------------------- 2 - Bug House: Entupa a casa de lixo, leather boots, ou items não estaquiaveis, e então de !leavehouse. existem 2 formas de fazer esse bug, com varios itens em stack na house ou varios itens dentro de varias bps, estocados, dentro de uma bp na house. assim que os itens forem enviados para o Mail, o servar Laga. "cai" não causa rollback, porém, pode ser que se tiver Muito item mesmo dentro de muitas bps, tudo estocado, pode ser que de um error da distro quando der !leavehouse ou save no server, podendo causar rollback. (* o do rollback não testei). ---------------------------------------------------------------- ---------------------------------------------------------------- 3 - Bug Stack SAVE/CLEAN: O bug é baseado em colocar muitos itens na stack. existem varios modos de faze-lo, o mais simples, achar um npc dar ignore capacity e ir compando de 100 em 100 algum item barato, por exemplo: shovel, pick, rope... apartir de 500 paginas do brownser field, já começa lagar, quando tiver 800 900 paginas começa a travar o OT, e na hora so server save o server junto com o site cai, por uns 2 ~~ 8 minutos,(varia). OT "cai" sem rollback, pois a distro não fecha. (Se fizer com muitos itens estocados na BP na hora do save, pode também dar erro na distro, podendo causar rollback) ---------------------------------------------------------------- ---------------------------------------------------------------- 4 - Bug de Crash: Coloque vários items na stack, e do lado da stack, utilize browse field, o servidor vai carregar.. (me passaram esse bug, testei e não obtive resultado). ---------------------------------------------------------------- ---------------------------------------------------------------- uma leve explicação de um admin de otserv, apelidado de <Removido>: Simplificando, quaisquer bugs que tenha muito items em um SQM ou stack, pode fazer o servidor crashar, isso é um problema no protocolgame.cpp, poucos servidores tem isso arrumado. ---------------------------------------------------------------- ---------------------------------------------------------------- 5 - BUG HotkeyEquipe das distro 10.0+ 1.1 /1.2 possuí um BUG. todos que conhecem um bug do stealth ring, acredita que seja isso o causador, mas estudando esse bug eu descobri que não tem nada a ver com o stealth ring, o BUG é no HotkeyEquip. Esse bug existe muitas variações, pode ser feito por exemplo, segurando o "F9"(não precisa ser necessariamente o F9) com autoequipe em algum item provavelmente o Server crash com Rollback. Se utilizar com wpe, ou rPE, as chancer de cairem são certas, caso a Distro tenha erro nisso. Não é possível conserta-lo colocando delay, acompanhei alguns ADMS com seus servers, e descobri que o delay ajuda a prevenir, porem ainda há possibilidades de ser derrubado. - Farei um breve relato, um server coloco um delay bem grande na HotkeyEquipe e eu descobri uma forma de derrubar com o rPE, segue oque eu fiz : consegui derrubar o <Removido> do <Removido> da seguinte forma. ele diminuiu o delay do autoEquip. certo ~ item usado, Hat inicial de mage, (aquele de armor 1 ou 3 se não me engano). programa utilizado - Redox packet Editor. equipa na mao /\ - packet 30 (RPE - REDOX PACKET EDITOR) equipa hotkey - packet 30 (RPE - REDOX PACKET EDITOR) equipa na mão \/ - packet 30 (RPE - REDOX PACKET EDITOR) chapeu tem que começar estando na backpack. essa é a ordem *start no programa. equipa o hat mão /\ (puxando o item mouse) desequipa na mão \/ (puxando o item mouse) equipa hotkey /\ (exemplo F9) *Stop no programa. puxa com a mão o hat para backpack \/ coloca velocidade packet em 30, e da start no programa. OT crash em 5 ~ 25 segundos. claro que pode existir variaçoes e tal, o bug continua sendo do HotkeyEquip. Eu desconfio que o bug tenha haver com o programa puxar o hat para o set e ao mesmo tempo o hotkeyEquipe faz isso, oque causa Debug, se não ocorrer Debug, o ot crash. Esse bug é critico e abre possíbilidades a muitos outros que podem ser no momento desconhecidos. -------------------------------------------------------------- -------------------------------------------------------------- 6 - -Bug "FALSO CLONE", e itens agrupaveis, (testei com flechas) Exemplo: compra 101 flechas, Deixa as 100 equipadas - *Start no Programa (rPE) puxa para backpack 51 \/ puxa devolta para o lugar dela as 51 /\ E usa o hotkeyEquipe na flecha. *Stop o programa. coloca o packet por volta do 30 ~ 40 e start as flechas começam a ser "clonadas" em falso. só na interface do tibia. e vai lotando a backpack disso, chega uma hora e da debug, se não desse o debug, acredito que o OT crasharia. ~~~~~ ------------------------------------------- - Juntamente O "BUG do Crossbow ou itens de 2 mão" Tem que ter 2 fator pra clonar... 1° poder colocar items agrupaveis na mão 2° subir a crossbow na mão e tirar o shield se tiver esses 2 fator vc deixa 100 items agrupaveis na mão, por Exemplo, 100 Gold, 100 Food, 100 Worn. etc... E Deixa 1 na backpack. Exemplo 100 gold na mão, e um 1 Gold na backpack Deixa uma crossbow ou qualquer outro item de 2 mão na backpack encha a backpack com itens. Exemplo, preencha todo o espaço que ficou vazio com Label na backpack. Então empura a crossbow para a mão aonde está os 100 gold nisso o primeiro item agrupavel que estiver na backack vai se tornar 100. ai vai clonar o item. (esse bug, foi passado para mim a pouco tempo, já não tenho interesse por Tibia por isso nem testar eu testei.) --------------------------------------------------------------- --------------------------------------------------------------- 7 - Um BUG RARO, o Inbox do Depot é limitado a uma quantia X de itens, passando dessa quantia não tem como colocar mais itens dentro da Inbox, justamente para evitar Bugs. Porém existe uma forma de burlar esse sistema. Utilizer o rPE e descobri uma falha nisso, fiz o seguinte: programei o rPE para fazer o seguinte ciclo, rapidamente. Comprar backpack Jogar essa backpack dentro de outra backpack e abri-la. Depois repitir o processo. e isso 100 % afk em pouco tempo, as bps criam grande profundidade. e quando você joga isso no depot, e ele aceita, sempre que você ir la nas ultimas backpack, porque fica uma dentro da outra. você poderá colocar a quantidade de itens e bps que quiser, criando um ciclo infinito, que certamente uma hora dará algum problema no server save, de lag, ou até mesmo de crash. tecnicamente impossível fazer isso, porem se souber usar rPE, wpe ou editores de pacotes, fica muito muito rapido mesmo, 10 ~ 20 minutos, 100 %¨afk. então se o Limite de itens no inbox é 3 mil itens, da para colocar infinitos itens, se for colocado nas bps profundas. esse processo tem que ser feito organizado, comprando 1 bp de cada vez pelo npc, jogando dentro da outra e abrindo ela. tudo com programas. *acredito que não haverão loucos para fazer com a mão hahaha ---------------------------------------------------------- explicação ADM Marlon: (ou seja muitos itens "food" ham" dentro de bps e bps tendo muita cap e quantidade, se enviado ao inbox e ficar lá já dara peso no mysql, database, causando assim lag no servidor. --------------------------------------------------------------- --------------------------------------------------------------- 8 - BUG "PARCEL, MARKET" (MAIL). O bug consiste em lotar o Mail de itens, com varias e varias paginas. o bug também funciona, caso tenha muitos itens dentro da Backpack que for enviada. (não precisa necessariamente lotar varias paginas, pode ser quantidade de itens na backpack). Bug simples, enviar grande quantidade de itens dentros de bps.. por PARCEL. *tem que ser grande quantidade mesmo =) *server laga e cai, não precisa ser itens pesados o bug é a quantidade de itens e não a CAP/PESO. @ ~~ o Market funciona da mesma forma, porém o processo é outro. eu por exemplo anunciei 2000 mil colares a preço de 1 gp e cancelei a venda, dai os itens volta para o Mail, e vai repetindo o processo, até Lotar. *Pode ser feito com qualquer item, desde que tenha em grande quantidade. E se o OT não tiver programado para deletar altas quantidades de itens no Mail e os intens ficar lá, toda vez que o player logar e deslogar o CHAR o Server Vai TRAVAR Hard. e pode ser que se o char ficar ligado, forçará a maquina em que o server ta hospedado, podendo causar Lags. ----------------------------------------------------------- ----------------------------------------------------------- 9 - Bug inutil, programar no rPE para salvando o outfuit atual e o comando !changesex faz o CHAR andar "mancando" é engraçado até. ----------------------------------------------------------- ----------------------------------------------------------- 10 - Bug House Rollback (*bug não confirmado). Lotar a house de lixo, paginas e paginas nas stack, e deixar os itens lá e não pagar o aluguel e nem logar o char (dependendo do sistema que o ot usa), quando o char for expulso da house, vai dar um erro na distro, vai rolar rollback, e os itens não vão para o Mail, vão continuar na House. ---------------------------------------------------------- ---------------------------------------------------------- 11 - BUG BAÚ QUEST, com mc e mw coloque um char em cima de um baú de quest tem que ter 2 bau um do lado do outro. então suba em cima de um logando o char e tacando mw em volta, quando logar, estará em cima do Baú, e mova seu char para o Baú ao lado, isso criará um Loop infinito crashando o OT com rollback. serve não somente para Baús, mas para pisos com Action de movimento. EXEMPLO: https://www.youtube.com/watch?v=ube4b-q4Ncg com mcs também você pode acessar algumas areas VIP do server, se as mesmas não tiver proteção. ----------------------------------------------------------- ----------------------------------------------------------- 12 - BUG EXPLOIT (cast), configura rPE ou wpe, para ir de uma cidade a outra muito rapidamente, e usa um programa de BOT para ir logando spectadors no CAST SYSTEM, isso causa Lag, e todos serão desconectador do OT LAGS/KICKS. acredito que não de rollback. no video ele logou + de 600 spectadors no Cast. nunca testei, porém existe um video do AVZ no youtube mostrando, Saudações ao Avz e seus bugs loucos. kkkk https://www.youtube.com/watch?v=CJ6loeCbtvI ----------------------------------------------------------- ----------------------------------------------------------- 13 - BUG DA PORTA, encontrar uma porta (se tiver), que empurre itens, para baixo, quando fechada, então é só lotar a stack de lixo, e fechar a porta, e quando ela empurrar os itens, o server Laga. ----------------------------------------------------------- ----------------------------------------------------------- 14 - Bug Canledando, (*não testado) colocar muitos itens para vender e ficar cancelando, dizem que dá Lag. não cheguei a testar. ----------------------------------------------------------- ----------------------------------------------------------- 15 - FAMOSO BUG DO CAST SYSTEM - dizem que ficar spamando magias dentro dele com mcs, e programas, Laga. *não testado @ - ROLLBACK cast. Existe um bug, colocado propositalmente, pelos safadinhos de plantão que compartilham cast nos Foruns. eu não sei fazer o bug, mas desconfio do que possa ser. algo relacionado a um simbolo. --- EXEMPLOS: ---------------------------------------------------------------- (((((((((๑۩۞۩๑ ☜ ☞ ☎ ☏♂ ♀♬ ♪ ♩ ♭ ♪o(‧'''‧)o☜♥☞♠ ♣☺ ☻⊕ ¤ ☼ #㊚㊛๑۩۩.. ..۩۩๑ ╗╬ ═ ╓ ╩ ┠ ┨┯ ┷┓┗ ┛┳⊥﹃﹄┌ ┐└ ┘∟「」 ↑↓→←↘↙┇┅ ﹉﹊﹍﹎ ㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉㊊㊋㊌㊍㊎㊏㊐๑•ิ.•ั๑)))))) ---------------------------------------------------------------- Não sao esses simbo-los e eu desconheço qual seja. também não me dei ao trabalho de procura-lo. - * as formas que eu suspeito que podem ocorrer o bug. * Simbo-lo desconhecido * aberto como senha - EX: !Cast on ♥ - * Simbo-lo desconhecido * usado para fechar o cast - EX: !Cast off ♥ - * Simbo-lo desconhecido * Usado no defalt do cast EX: ♥ no defalt. ------------------------------------------------------------ ------------------------------------------------------------ 16 - BUG RUNAS em alguns OT, jogar runas na aguá pode crashar também. exemplo: "tacar" a avalanche rune na aguá, no espaço preto, na larva, na gosma verda. etc... ------------------------------------------------------------ ------------------------------------------------------------ 17 - BUG ANIMATE RUNE Se no servidor os bixos sumonados, dão teletransporte até quem os criou pode existir um bug que é com Animate rune, você Monta uma trap em algum buraco com itens em volta que não permitir que suba em cima, e nem que os bixos empurrem, use a runa, Junte Muitos skeletons, uns 40 + e quando pular no buraco, crasha o server. ------------------------------------------------------------ ------------------------------------------------------------ 18 - BUG DO BANK E REPORT BANK - Libere toda sua CAP, compre muitas backpacks, tenha muito dinheiro no BANCO, e use o rPE ou wpe, para depositar e retirar o Dinheiro rapidamente, isso causará Lag, praticamente imediato. tem que ser + de 300kk, por volta dos 400 ~ 800kk funciona + em servidores de exp alta. @ - BUG REPORT Usar os mesmos programas para ficar pacotando a database do OT, atráves do Ctrl + z, que geralmente é usado para reportar BUGS. ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Bugs que eu conheço da versão 8.5, 8.6 !disband - tem explicação na internet * creio que já foi fixado a muito tempo !deathlist - não sei fazer, se alguém souber, favor compartilhar conhecimento... ------------------------------------------------------------ ------------------------------------------------------------ Informações ~~ : Houses, com NPCS que vendem itens baratos ao lado, é mamata para facilitar os bugs, comprando tudo direto na house. ------------------------------------ existe o bug de ir colocando bp dentro de bp com rPE, wpe como já citei. até ficar muito pesado. e depois colocar itens dentro. fazer dentro de houses com NPC ao lado é mais facíl. outra forma é fazer isso no depot também, causa os mesmo problemas, no depot é recomendado fazer do lado de um npc que vende parcel, e ir colocando um parcel dentro do outro.. ------------------------------------ voltaréi a falar do BUG numero 7 - uma breve citação, é possivel através da profundidade, das bps, colocar não somente itens dentro do depot mesmo quando ultrapassar o limite, mas também funcionar para colocar itens dentro de backpacks profundas dentro do Mail. (ou seja, coloca itens lá dentro atrávez de parcel ou backpacks que já estão lá dentro)... ------------------------------------1 ponto -
Launcher AutoUpdate C#
1 pontoVou te ajudar! No visual studio, dê 2 cliques em Form1.cs Vai abrir a página do design do launcher, clique em qualquer lugar na área branca, onde quando vc abre o launcher aparece a imagem que vc fala que nao muda, quando clicar, repare do lado direito >> onde tem 'url' Ali é onde você coloca o link para o seu site, que quer que apareça no launcher! (Não se esqueça do http://) Espero ter ajudado!1 ponto
-
Pagina Buy Points não tem forma de pagamento pelo PagSeguro
Pagina Buy Points não tem forma de pagamento pelo PagSeguro
Digoshow reagiu a Natanael Beckman por uma resposta no tópico
1 pontoCalma mais tarde posto nova atualização no gesior com donate.1 ponto -
ShopGuild Points 100% add em player offline. Atualizado
ShopGuild Points 100% add em player offline. Atualizado
Digoshow reagiu a Natanael Beckman por uma resposta no tópico
1 pontoNão tem erro, no novo gesior não precisa disso.1 ponto -
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
+REP PLease1 ponto
-
GesiorACC 2019 8.60 UPDATE 29/06/2019
GesiorACC 2019 8.60 UPDATE 29/06/2019
Digoshow reagiu a Natanael Beckman por uma resposta no tópico
1 pontoMais simples, em latestnews.php procure por: `g`.`logo_gfx_name` Troque por: `g`.`guild_logo` Tópico atualizado hoje 01/09/2016.1 ponto -
O items.otb possui um limite ?
O items.otb possui um limite ?
Calvin reagiu a Valakinhas por uma resposta no tópico
1 pontoo otb tem o mesmo limite que o old cliente que seria 65k de items1 ponto -
3 dias VIPs ao Logar pela primeira vez
3 dias VIPs ao Logar pela primeira vez
markim1986 reagiu a Vodkart por uma resposta no tópico
1 pontomysql_real_query(): SELECT `premiumgift` FROM `players` WHERE `id = 55 - MYSQL ERROR: Unknown column 'premiumgift' in 'field list' (1054) se está dando esse erro é pq diz que não existe essa coluna na db!! testei aqui e funcionou1 ponto -
Como Diminuir Featured Article
1 pontoVeja se funcionou, vc queria aumentar né ? É para versão 8.6 ? Pois nao vi como é que fica no seu site mais tenta ai. new 1.txt1 ponto
-
All bugs OTSERV - REVELADO ! -
All bugs OTSERV - REVELADO ! -
Lurk reagiu a xWhiteWolf por uma resposta no tópico
1 pontotestei todos os bugs ditos no tfs 1.2 q tem na otland e nenhum deles resultou em alguma coisa, quanto à deathlist do 8.6, eu já passei por isso e o problema é q quem fez o schema da database não tinha o mínimo conhecimento de banco de dados e fez uma baita gambiarra danada. A query da deathlist é outra gambiarra maior ainda e isso explica por si só o crash. A solução q eu encontrei foi refazer o script de deathlist usando uma query q eu confiasse. Quem tiver precisando só utilizar... SELECT player_id, date, level, all_kills.name FROM ( SELECT kill_id, name FROM player_killers INNER JOIN players ON player_id = id UNION SELECT * FROM environment_killers ) AS all_kills INNER JOIN player_deaths ON player_deaths.id = all_kills.kill_id WHERE player_id = 1-- pegar por script -- ORDER BY player_id, level DESC; se quiser só as ultimas 10 mortes tira o ; ali do fim e coloca embaixo LIMIT 10; Ps: aqui tem um print sem o limit mostrando que a query é rapida (testei num banco altamente populado) player_id é o id do char q eu quis verificar a deathlist, date é a data em unix time (os.time(), usando um os.date com esse numero vc retorna a data e hora em q ocorreu a morte) o level q ele estava e quem matou; Se não tiver "a ____" no all_kills.name então foi morte pra um player. EDIT 2: Não usem cast system, saibam configurar maxpacket no config.lua (30~50), botem timeBetweenActions de 1 ou 2 segundos (1000 milisegundos no config.lua), constantemente chequem o git do forgotten server olhando os bugs, os commits e os prs, se possível se registre no git para receber notificações de tudo q rola por lá, duvido q seu server será explorado. Oque você não consegue resolver por source vc consegue resolver por script, então fiquem ligados e sempre testem tudo antes de abrir um sv só pra ganhar dinheiro.1 ponto -
Shiny Miltank SPRITE completo
Shiny Miltank SPRITE completo
Arthur leandrohh reagiu a L3K0T por uma resposta no tópico
1 pontoBom ai está o Shiny Miltank. Baixar Sprite para recortar: Download>>> shiny miltank.zip Baixar Sprite para importar OBD: Download>> Shiny miltank em OBD.zip Créditos: otpokemon.com por que tirei de lá! Scan sprite recortar: https://www.virustotal.com/pt/file/ab7cfa8ebdfc148c1c7f8504640da18f2202fd03847d4e2efce67319ce2ff611/analysis/1464549420/ Scan sprite OBD: Rep+1 ponto -
Recentes Trabalhos - Mapping
Recentes Trabalhos - Mapping
Beyond Sky reagiu a Heyron por uma resposta no tópico
1 pontoTentando fazer um "deserto sombrio" no qual habita Ghastly Dragon.1 ponto -
Recentes Trabalhos - Mapping
Recentes Trabalhos - Mapping
Ryukiimaru reagiu a Darkressxx1 por uma resposta no tópico
1 pontoTemple(Respawn): City(NoIdea Style): City(Desert Style):1 ponto -
(Base) Do Pokepro e Pokelute queria saber...
(Base) Do Pokepro e Pokelute queria saber...
Djmarcelinho reagiu a ragemmp por uma resposta no tópico
1 pontoblz1 ponto -
Tile que da haster
1 pontoEm "Data/movements/scripts", arquivo gaara.lua: local t = { vocations = {500}, newSpeed = 400 } function onStepIn(cid, item, position, fromPosition) if isInArray(t.vocations, getPlayerVocation(cid)) then local bs = getCreatureBaseSpeed(cid) setPlayerStorageValue(cid, speedGaara, bs) doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, getPlayerStorageValue(cid, speedGaara) + t.newSpeed) end return true end function onStepOut(cid, item, position, fromPosition) if isInArray(t.vocations, getPlayerVocation(cid)) then doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, getPlayerStorageValue(cid, speedGaara)) end return true end Em "Data/movements", no arquivo movements.xml, adicione as tags: <movevent type="StepIn" itemid="450" event="script" value="gaara.lua"/> <movevent type="StepOut" itemid="450" event="script" value="gaara.lua"/> Se der algum problema, avise.1 ponto
-
Sprites Mega Evoluções
Sprites Mega Evoluções
NyckDragon reagiu a TioDoLeite por uma resposta no tópico
1 pontoBom galera do TK, vim disponibilizar algumas sprites das Mega Evoluções do anime Pokémon Mega Alakazam Mega Ampharos [Novo] Mega Banete [Novo] Mega Blastoise Mega Blaziken Mega Charizard X Mega Charizard Y Mega Gengar Mega Latias [Novo] Mega Lucario Mega Tyranitar Print DOWNLOAD 4SHARED / MEDIAFIRE Créditos. PokeXGames por ter feito a maioria das sprites; Eu por ter cortado (Mega Latias, Mega Banete), e postado. Atualizado - 17 de outubro de 2014, 22:20.1 ponto -
[Pedido] Sprites Jiraya e Tobirama
[Pedido] Sprites Jiraya e Tobirama
Matheus Reis reagiu a LeoTK por uma resposta no tópico
1 pontocaros amigos pegue o client de um serve que tenha essas sprites, baixem o tibia unpacker abra o client .. abra o tibia unpacker procure pelo client.exe e descompile ele ... pegue o dat.spr do client e sejam felizes1 ponto -
Lista completa de Magic Effects e Shoot Type
Fonte: http://www.tibiaking.com/forum/topic/49095-lib-000-const/ Eu mesmo... CONST_ME: CONST_ME_DRAWBLOOD = 0 CONST_ME_LOSEENERGY = 1 CONST_ME_POFF = 2 CONST_ME_BLOCKHIT = 3 CONST_ME_EXPLOSIONAREA = 4 CONST_ME_EXPLOSIONHIT = 5 CONST_ME_FIREAREA = 6 CONST_ME_YELLOW_RINGS = 7 CONST_ME_GREEN_RINGS = 8 CONST_ME_HITAREA = 9 CONST_ME_TELEPORT = 10 CONST_ME_ENERGYHIT = 11 CONST_ME_MAGIC_BLUE = 12 CONST_ME_MAGIC_RED = 13 CONST_ME_MAGIC_GREEN = 14 CONST_ME_HITBYFIRE = 15 CONST_ME_HITBYPOISON = 16 CONST_ME_MORTAREA = 17 CONST_ME_SOUND_GREEN = 18 CONST_ME_SOUND_RED = 19 CONST_ME_POISONAREA = 20 CONST_ME_SOUND_YELLOW = 21 CONST_ME_SOUND_PURPLE = 22 CONST_ME_SOUND_BLUE = 23 CONST_ME_SOUND_WHITE = 24 CONST_ME_BUBBLES = 25 CONST_ME_CRAPS = 26 CONST_ME_GIFT_WRAPS = 27 CONST_ME_FIREWORK_YELLOW = 28 CONST_ME_FIREWORK_RED = 29 CONST_ME_FIREWORK_BLUE = 30 CONST_ME_STUN = 31 CONST_ME_SLEEP = 32 CONST_ME_WATERCREATURE = 33 CONST_ME_GROUNDSHAKER = 34 CONST_ME_HEARTS = 35 CONST_ME_FIREATTACK = 36 CONST_ME_ENERGYAREA = 37 CONST_ME_SMALLCLOUDS = 38 CONST_ME_HOLYDAMAGE = 39 CONST_ME_BIGCLOUDS = 40 (OBS: são as nuvens do exevo gran mas vis) CONST_ME_ICEAREA = 41 CONST_ME_ICETORNADO = 42 CONST_ME_ICEATTACK = 43 CONST_ME_STONES = 44 CONST_ME_SMALLPLANTS = 45 CONST_ME_CARNIPHILA = 46 CONST_ME_PURPLEENERGY = 47 CONST_ME_YELLOWENERGY = 48 CONST_ME_HOLYAREA = 49 CONST_ME_BIGPLANTS = 50 (é quase igual, só que cresce mais, não consegui gif) CONST_ME_CAKE = 51 CONST_ME_GIANTICE = 52 CONST_ME_WATERSPLASH = 53 CONST_ME_PLANTATTACK = 54 CONST_ME_TUTORIALARROW = 55 CONST_ME_TUTORIALSQUARE = 56 CONST_ME_MIRRORHORIZONTAL = 57 CONST_ME_MIRRORVERTICAL = 58 CONST_ME_SKULLHORIZONTAL = 59 CONST_ME_SKULLVERTICAL = 60 CONST_ME_ASSASSIN = 61 CONST_ME_STEPSHORIZONTAL = 62 (Ignorado) CONST_ME_BLOODYSTEPS = 63 (Ignorado) CONST_ME_STEPSVERTICAL = 64 (Ignorado) CONST_ME_YALAHARIGHOST = 65 CONST_ME_BATS = 66 CONST_ME_SMOKE = 67 CONST_ME_INSECTS = 68 CONST_ME_NONE = 255 CONST_ME_LAST = CONST_ME_INSECTS Depois eu posto o CONST_ANI1 ponto
-
BOSS INQ + TP ABERTO + PROXIMA SALA
BOSS INQ + TP ABERTO + PROXIMA SALA
Bluetooth reagiu a rodrigodias12 por uma resposta no tópico
1 pontoEai turma tudo beleza? sou novato na area de script mais esse eu consegui resolver e testei no TFS 1.0 10.37, acredito que alguém esteja precisando pois ele estava dando alguns erros no console e o tp nao aparecia apos a morte do boss, então ai vai: O script funciona da seguinte maneira - Você mata o boss da inq e o tp aparece levando para a proxima sala segue o script: local config = { timeToRemove = 160, message = "You now have 2 minutes to exit this room through the teleporter. It will bring you to the next room only during his time or the teleporter will disappear", teleportId = 9773, bosses = { ["Ushuriel"] = { pos={ x=33157, y=31725, z=11, stackpos=1 }, aid=1001 }, ["Zugurosh"] = { pos={ x=33123, y=31689, z=11, stackpos=1 }, aid=1002}, ["Madareth"] = { pos={ x=33194, y=31768, z=11, stackpos=1 }, aid=1003}, ["Annihilon"] = { pos={ x=33200, y=31704, z=11, stackpos=1 }, aid=1005}, ["Hellgorak"] = { pos={ x=33107, y=31735, z=11, stackpos=1 }, aid=1006} }, brothers ={ ["Golgordan"] = {pos={ x=33235, y=31734, z=11, stackpos=1 },aid=1004, brother = "Latrivan"}, ["Latrivan"] = {pos={ x=33235, y=31734, z=11, stackpos=1 },aid=1004, brother = "Golgordan"}, brothersArea ={ fromPos = {x = 33224, y = 31722, z = 11}, toPos = {x = 33240, y = 31734, z = 11} } } } local function removal(position) doRemoveItem(getTileItemById(position, config.teleportId).uid, 1) return TRUE end function onKill(cid, target, lastHit) if(config.bosses[getCreatureName(target)]) then local t = config.bosses[getCreatureName(target)] local teleport = doCreateItem(config.teleportId, t.pos) local position = t.pos doSetItemActionId(teleport, t.aid) doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1) addEvent(removal, config.timeToRemove * 1000, position) elseif(config.brothers[getCreatureName(target)]) then local t = config.brothers[getCreatureName(target)] local brother = getCreatureByName(t.brother) if(isMonster(brother) == true) then if(isInRange(getCreaturePosition(brother), config.brothers.brothersArea.fromPos, config.brothers.brothersArea.toPos) == true) then return TRUE end else local teleport = doCreateItem(config.teleportId, t.pos) local position = t.pos doSetItemActionId(teleport, t.aid) doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1) addEvent(removal, config.timeToRemove * 1000, position) end end return TRUE end Faça a copia de algum arquivo.lua da pasta creaturescript e cole isso dentro salve/feche renomeie para Inquisition. em creaturescript.xml adicione: <event type="kill" name="inquisitionPortals" script="Inquisition.lua"/> Adicione também em cada um dos bosses da inq a seguinte tag <script> <event name="inquisitionPortals"/> </script> Favor adicionar os possíveis créditos caso houver! Agradeço1 ponto