Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 05/23/11 em todas áreas

  1. thalia

    [8.54]Pokeserver Tfs 0.3.6 [V3.0]

    Oi galera do xtibia, alguns já me conhece , posto scripts na seção de actions/talk/move! Aqui está a versão 3.0 do PokeServer TFS 0.3.6pl1, ~~( O que contém na versão 3.0? ) ~~ ~~>Fly System - Bug corrigido ~~>Ride System- Bug corrigido ~~>Catch System- Bug corrigido ~~>Go/back System- Bug corrigido ~~>Stones System - Bug corrigido ~~>Npc Heal - Bug arrumano ~~>Todos os 151 pokemons (50% configurados) ~~>Skill System - Para cada tipo de pokemon é um poder difirente! ~~>Mapa Svke 70% ~~>Todas as outfits Stones,Go/back,Npc,Fly,Ride,Skill, foram testados, então não venha encher o saco falando merda <--! Download !--> Server 3.0 Client (È extremamento necessario para poder entrar no server!) Versão 3.0 do server de pokemon Faça você mesmo! Créditos ao Drakylucas por me ajuda a fazer os scripts! Não se esqueça de clicar ali no icone verde
    1 ponto
  2. Creditos: Vodkart Kydrai fala galerinha resolvi posta alguns script que acontece quando o player mata algum monstro ... o primeiro é o script que acontece quando voce mata um Monstro abre o teleport. o segundo é matar o monstro e sumir a parede por algum tempo. Obs: o Nome do monstro deve ser colocado com Letra Maiuscula. [ Matar monstro e abrir Teleport ] creaturescript\script [ Matar Monstro e parede sumir por determinado tempo ] creaturescript\script [ Matar Monstro e ser teleportado ] [ Matar Monstro e Ganhar Storage ]
    1 ponto
  3. Vou postar o tão famoso Guild War System Com Escudos. Vou começar pelo site : Vá em Xampp/Htdocs e crie e um arquivo chamado wars.php,dentro add isto: <?php $main_content = "<h1 align=\"center\">Guild Wars</h1> <script type=\"text/javascript\"><!-- function show_hide(flip) { var tmp = document.getElementById(flip); if(tmp) tmp.style.display = tmp.style.display == 'none' ? '' : 'none'; } --></script> <a onclick=\"show_hide('information'); return false;\" style=\"cursor: pointer;\"><h1><center>» Click to se the commands «<center></h1></a> <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"4\" id=\"information\" style=\"display: none;\";> <tr align=\"center\"><b>You must send this commands in GUILD CHAT.</tr> <tr style=\"background: #512e0b;\"><td align=\"center\" class=\"white\"><b>Command</b></td><td colspan=\"2\" align=\"center\" class=\"white\"><b>Description</b></td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/war invite, guild name, fraglimit</b></td><td>Sends an invitation to start the war. Example: <font color=red><BR>/war invite, Chickens, 150<BR></font><B>(Invite a guild to war with 150 frags count.)</B></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/war invite, guild name, fraglimit, money</b></td><td>Send the invitation to start the war. Example: <font color=red><BR>/war invite, Chickens, 150, 10000</font><br><B> (Invite a guild to war with 150 frags count and payment of 10000 gold coins <- you need donate to guild to use it.)<B></td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/war accept, guild name</b></td><td>Accepts the invitation to start a war. Example: <font color=red><BR>/war accept, Chickens</font><BR><B>(Accept the war against guild \"Chickens\".)</b></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/war reject, guild name</b></td><td>Rejects the invitation to start a war. Example: <font color=red><BR>/war reject, Chickens</font><BR><B>(Reject a invitation to war from Chickens.)</B></td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/war cancel, guild name</b></td><td>Cancels the invitation. Example: <font color=red><BR>/war cancel, Chickens</font><br><b>(Cancel my guild invitation to war with Chickens.)</b></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/balance</b></td><td>See the guild balance - balance of money.</td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/balance donate value</b></td><td>Deposits money on the guild's bank account. All players can donate. Example: <font color=red><BR>/balance donate 100000 </font><BR><B>(You will donate 100k to your guild balance.)</B></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/balance pick value</b></td><td>Withdraws money from the guild's bank account. Can be used only by the guild leader. Example: <font color=red><BR>/balance pick 100000 </font><BR><B>(You will withdraw 100k from your guild balance.)</B></td></tr> </table> <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"4\"> <tr> <td style=\"background: #512e0b\" class=\"white\" width=\"150\"><b>Aggressor</b></td> <td style=\"background: #512e0b\" class=\"white\"><b>Information</b></td> <td style=\"background: #512e0b\" class=\"white\" width=\"150\"><b>Enemy</b></td> </tr><tr style=\"background: #F1E0C6;\">"; $count = 0; foreach($SQL->query('SELECT * FROM `guild_wars` WHERE `status` IN (1,4) OR ((`end` >= (UNIX_TIMESTAMP() - 604800) OR `end` = 0) AND `status` IN (0,5));') as $war) { $a = $ots->createObject('Guild'); $a->load($war['guild_id']); if(!$a->isLoaded()) continue; $e = $ots->createObject('Guild'); $e->load($war['enemy_id']); if(!$e->isLoaded()) continue; $alogo = $a->getCustomField('logo_gfx_name'); if(empty($alogo) || !file_exists('guilds/' . $alogo)) $alogo = 'default_logo.gif'; $elogo = $e->getCustomField('logo_gfx_name'); if(empty($elogo) || !file_exists('guilds/' . $elogo)) $elogo = 'default_logo.gif'; $count++; $main_content .= "<tr style=\"background: " . (is_int($count / 2) ? $config['site']['darkborder'] : $config['site']['lightborder']) . ";\"> <td align=\"center\"><a href=\"?subtopic=guilds&action=show&guild=".$a->getId()."\"><img src=\"guilds/".$alogo."\" width=\"64\" height=\"64\" border=\"0\"/><br />".$a->getName()."</a></td> <td align=\"center\">"; switch($war['status']) { case 0: { $main_content .= "<b>Pending acceptation</b><br />Invited on " . date("M d Y, H:i:s", $war['begin']) . " for " . ($war['end'] > 0 ? (($war['end'] - $war['begin']) / 86400) : "unspecified") . " days. The frag limit is set to " . $war['frags'] . " frags, " . ($war['payment'] > 0 ? "with payment of " . $war['payment'] . " bronze coins." : "without any payment.")."<br />Will expire in three days."; break; } case 3: { $main_content .= "<s>Canceled invitation</s><br />Sent invite on " . date("M d Y, H:i:s", $war['begin']) . ", canceled on " . date("M d Y, H:i:s", $war['end']) . "."; break; } case 2: { $main_content .= "Rejected invitation<br />Invited on " . date("M d Y, H:i:s", $war['begin']) . ", rejected on " . date("M d Y, H:i:s", $war['end']) . "."; break; } case 1: { $main_content .= "<font size=\"6\"><span style=\"color: red;\">" . $war['guild_kills'] . "</span> : <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span></font><br /><br /><span style=\"color: darkred; font-weight: bold;\">On a brutal war</span><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ($war['end'] > 0 ? ", will end up at " . date("M d Y, H:i:s", $war['end']) : "") . ".<br />The frag limit is set to " . $war['frags'] . " frags, " . ($war['payment'] > 0 ? "with payment of " . $war['payment'] . " bronze coins." : "without any payment."); break; } case 4: { $main_content .= "<font size=\"6\"><span style=\"color: red;\">" . $war['guild_kills'] . "</span> : <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span></font><br /><br /><span style=\"color: darkred;\">Pending end</span><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ", signed armstice on " . date("M d Y, H:i:s", $war['end']) . ".<br />Will expire after reaching " . $war['frags'] . " frags. ".($war['payment'] > 0 ? "The payment is set to " . $war['payment'] . " bronze coins." : "There's no payment set."); break; } case 5: { $main_content .= "<i>Ended</i><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ", ended on " . date("M d Y, H:i:s", $war['end']) . ". Frag statistics: <span style=\"color: red;\">" . $war['guild_kills'] . "</span> to <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span>."; break; } default: { $main_content .= "Unknown, please contact with gamemaster."; break; } } $main_content .= "<br /><br /><a onclick=\"show_hide('war-details:" . $war['id'] . "'); return false;\" style=\"cursor: pointer;\">» Details «</a></td> <td align=\"center\"><a href=\"?subtopic=guilds&action=show&guild=".$e->getId()."\"><img src=\"guilds/".$elogo."\" width=\"64\" height=\"64\" border=\"0\"/><br />".$e->getName()."</a></td> </tr> <tr id=\"war-details:" . $war['id'] . "\" style=\"display: none; background: " . (is_int($count / 2) ? $config['site']['darkborder'] : $config['site']['lightborder']) . ";\"> <td colspan=\"3\">"; if(in_array($war['status'], array(1,4,5))) { $deaths = $SQL->query('SELECT `pd`.`id`, `pd`.`date`, `gk`.`guild_id` AS `enemy`, `p`.`name`, `pd`.`level` FROM `guild_kills` gk LEFT JOIN `player_deaths` pd ON `gk`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `gk`.`war_id` = ' . $war['id'] . ' AND `p`.`deleted` = 0 ORDER BY `pd`.`date` DESC')->fetchAll(); if(!empty($deaths)) { foreach($deaths as $death) { $killers = $SQL->query('SELECT `p`.`name` AS `player_name`, `p`.`deleted` AS `player_exists`, `k`.`war` AS `is_war` FROM `killers` k LEFT JOIN `player_killers` pk ON `k`.`id` = `pk`.`kill_id` LEFT JOIN `players` p ON `p`.`id` = `pk`.`player_id` WHERE `k`.`death_id` = ' . $death['id'] . ' ORDER BY `k`.`final_hit` DESC, `k`.`id` ASC')->fetchAll(); $count = count($killers); $i = 0; $others = false; $main_content .= date("j M Y, H:i", $death['date']) . " <span style=\"font-weight: bold; color: " . ($death['enemy'] == $war['guild_id'] ? "red" : "lime") . ";\">+</span> <a href=\"index.php?subtopic=characters&name=" . urlencode($death['name']) . "\"><b>".$death['name']."</b></a> "; foreach($killers as $killer) { $i++; if($killer['is_war'] != 0) { if($i == 1) $main_content .= "killed at level <b>".$death['level']."</b> by "; else if($i == $count && $others == false) $main_content .= " and by "; else $main_content .= ", "; if($killer['player_exists'] == 0) $main_content .= "<a href=\"index.php?subtopic=characters&name=".urlencode($killer['player_name'])."\">"; $main_content .= $killer['player_name']; if($killer['player_exists'] == 0) $main_content .= "</a>"; } else $others = true; if($i == $count) { if($others == true) $main_content .= " and few others"; $main_content .= ".<br />"; } } } } else $main_content .= "<center>There were no frags on this war so far.</center>"; } else $main_content .= "<center>This war did not began yet.</center>"; $main_content .= "</td> </tr>"; } if($count == 0) $main_content .= "<tr style=\"background: ".$config['site']['darkborder'].";\"> <td colspan=\"3\">Currently there are no active wars.</td> </tr>"; $main_content .= "</table>"; $main_content .= '<div align="right"><small><b>Customized by: <a href="http://www.xtibia.com/forum/user/240289-walef-xavier">Walef Xavier</a></b></small></div><br />'; ?> Agora vá em Xampp/Htdocs/index.php e add o seguinte: case "wars"; $subtopic = "wars"; $topic = "Guild Wars"; include("wars.php"); break; Agora para finalizar a parte do site vá em Xampp/Htdocs/Layout/Tibiacom/layout.php e add o seguinte: <a href='?subtopic=wars'> <div id='submenu_wars' 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_polls' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=red>Guild Wars</font></div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Agora vamos para seu Ot: Va em GlobalEvents/scripts/start.lua e add o seguinte: db.executeQuery("DELETE FROM `guild_wars` WHERE `status` = 0 AND `begin` < " .. (os.time() - 2 * 86400) .. ";") db.executeQuery("UPDATE `guild_wars` SET `status` = 5, `end` = " .. os.time() .. " WHERE `status` = 1 AND `end` > 0 AND `end` < " .. os.time() .. ";") Agora vá em Lib e crie um arquivo .lua chamado 101-war,dentro add o seguinte: WAR_GUILD = 0 WAR_ENEMY = 1 Agora para finalizar vamos colocar os comandos em Talkactions ! Vá em Talkactions/scripts e crie dois arquivos chamados war.lua e balance.lua,dentro add o seguinte: War.lua function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then doPlayerSendChannelMessage(cid, "", "You cannot execute this talkaction.", TALKTYPE_CHANNEL_W, 0) return true end local t = string.explode(param, ",") if(not t[2]) then doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0) return true end local enemy = getGuildId(t[2]) if(not enemy) then doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0) return true end if(enemy == guild) then doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0) return true end local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy) if(tmp:getID() ~= -1) then enemyName = tmp:getDataString("name") tmp:free() end if(isInArray({"accept", "reject", "cancel"}, t[1])) then local query = "`guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild if(t[1] == "cancel") then query = "`guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy end tmp = db.getResult("SELECT `id`, `begin`, `end`, `payment` FROM `guild_wars` WHERE " .. query .. " AND `status` = 0") if(tmp:getID() == -1) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending invitation for a war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end if(t[1] == "accept") then local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = _tmp:getID() < 0 or _tmp:getDataInt("balance") < tmp:getDataInt("payment") _tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_W, 0) return true end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. tmp:getDataInt("payment") .. " WHERE `id` = " .. guild) end query = "UPDATE `guild_wars` SET " local msg = "accepted " .. enemyName .. " invitation to war." if(t[1] == "reject") then query = query .. "`end` = " .. os.time() .. ", `status` = 2" msg = "rejected " .. enemyName .. " invitation to war." elseif(t[1] == "cancel") then query = query .. "`end` = " .. os.time() .. ", `status` = 3" msg = "canceled invitation to a war with " .. enemyName .. "." else query = query .. "`begin` = " .. os.time() .. ", `end` = " .. (tmp:getDataInt("end") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `status` = 1" end query = query .. " WHERE `id` = " .. tmp:getDataInt("id") if(t[1] == "accept") then doGuildAddEnemy(guild, enemy, tmp:getDataInt("id"), WAR_GUILD) doGuildAddEnemy(enemy, guild, tmp:getDataInt("id"), WAR_ENEMY) end tmp:free() db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE) return true end if(t[1] == "invite") then local str = "" tmp = db.getResult("SELECT `guild_id`, `status` FROM `guild_wars` WHERE `guild_id` IN (" .. guild .. "," .. enemy .. ") AND `enemy_id` IN (" .. enemy .. "," .. guild .. ") AND `status` IN (0, 1)") if(tmp:getID() ~= -1) then if(tmp:getDataInt("status") == 0) then if(tmp:getDataInt("guild_id") == guild) then str = "You have already invited " .. enemyName .. " to war." else str = enemyName .. " have already invited you to war." end else str = "You are already on a war with " .. enemyName .. "." end tmp:free() end if(str ~= "") then doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0) return true end local frags = tonumber(t[3]) if(frags ~= nil) then frags = math.max(10, math.min(1000, frags)) else frags = 100 end local payment = tonumber(t[4]) if(payment ~= nil) then payment = math.max(100000, math.min(1000000000, payment)) tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = tmp:getID() < 0 or tmp:getDataInt("balance") < payment tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W, 0) return true end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild) else payment = 0 end local begining, ending = os.time(), tonumber(t[5]) if(ending ~= nil and ending ~= 0) then ending = begining + (ending * 86400) else ending = 0 end db.query("INSERT INTO `guild_wars` (`guild_id`, `enemy_id`, `begin`, `end`, `frags`, `payment`) VALUES (" .. guild .. ", " .. enemy .. ", " .. begining .. ", " .. ending .. ", " .. frags .. ", " .. payment .. ");") doBroadcastMessage(getPlayerGuildName(cid) .. " has invited " .. enemyName .. " to war till " .. frags .. " frags.", MESSAGE_EVENT_ADVANCE) return true end if(not isInArray({"end", "finish"}, t[1])) then return false end local status = (t[1] == "end" and 1 or 4) tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status) if(tmp:getID() ~= -1) then local query = "UPDATE `guild_wars` SET `end` = " .. os.time() .. ", `status` = 5 WHERE `id` = " .. tmp:getDataInt("id") tmp:free() doGuildRemoveEnemy(guild, enemy) doGuildRemoveEnemy(enemy, guild) db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. (status == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end if(status == 4) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1") if(tmp:getID() ~= -1) then if(tmp:getDataInt("end") > 0) then tmp:free() doPlayerSendChannelMessage(cid, "", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end local query = "UPDATE `guild_wars` SET `status` = 4, `end` = " .. os.time() .. " WHERE `id` = " .. tmp:getDataInt("id") tmp:free() db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has signed an armstice declaration on a war with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end doPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end balance.lua local function isValidMoney(value) if(value == nil) then return false end return (value > 0 and value <= 99999999999999) end function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(guild == 0) then return false end local t = string.explode(param, ' ', 1) if(getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER and isInArray({ 'pick' }, t[1])) then if(t[1] == 'pick') then local money = { tonumber(t[2]) } if(not isValidMoney(money[1])) then doPlayerSendChannelMessage(cid, '', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_W, 0) return true end local result = db.getResult('SELECT `balance` FROM `guilds` WHERE `id` = ' .. guild) if(result:getID() == -1) then return false end money[2] = result:getDataLong('balance') result:free() if(money[1] > money[2]) then doPlayerSendChannelMessage(cid, '', 'The balance is too low for such amount.', TALKTYPE_CHANNEL_W, 0) return true end if(not db.query('UPDATE `guilds` SET `balance` = `balance` - ' .. money[1] .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;')) then return false end doPlayerAddMoney(cid, money[1]) doPlayerSendChannelMessage(cid, '', 'You have just picked ' .. money[1] .. ' money from your guild balance.', TALKTYPE_CHANNEL_W, 0) else doPlayerSendChannelMessage(cid, '', 'Invalid sub-command.', TALKTYPE_CHANNEL_W, 0) end elseif(t[1] == 'donate') then local money = tonumber(t[2]) if(not isValidMoney(money)) then doPlayerSendChannelMessage(cid, '', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_W, 0) return true end if(getPlayerMoney(cid) < money) then doPlayerSendChannelMessage(cid, '', 'You don\'t have enough money.', TALKTYPE_CHANNEL_W, 0) return true end if(not doPlayerRemoveMoney(cid, money)) then return false end db.query('UPDATE `guilds` SET `balance` = `balance` + ' .. money .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;') doPlayerSendChannelMessage(cid, '', 'You have transfered ' .. money .. ' money to your guild balance.', TALKTYPE_CHANNEL_W, 0) else local result = db.getResult('SELECT `name`, `balance` FROM `guilds` WHERE `id` = ' .. guild) if(result:getID() == -1) then return false end doPlayerSendChannelMessage(cid, '', 'Current balance of guild ' .. result:getDataString('name') .. ' is: ' .. result:getDataLong('balance') .. ' bronze coins.', TALKTYPE_CHANNEL_W, 0) result:free() end return true end Agora vá em Talkactions/talkactions.xml e add as duas tags: <talkaction words="/war" channel="0" event="script" value="war.lua" desc="(Guild channel command) War management."/> <talkaction words="/balance" channel="0" event="script" value="balance.lua" desc="(Guild channel command) Balance management."/> Pronto,seu Guild War Systema está instalado...mas para funcionar necessitará das tabelas na sua database e do Tfs 0.4 .Vou posta-los abaixo,respectivamente. . Tabelas . Para quem ainda não sabe add tabelas a sua database,vou ensinar: Acesse seu phpmyadmin,digite sua senha (caso tenha),clique no nome da sua database a esquerda,assim que carregar a sua database clique em SQL lá em cima...Aparecerá um espaço em branco lá voce irá add as seguintes tabelas...e depois clicar em Executar. CREATE TABLE IF NOT EXISTS `guild_wars` ( `id` INT NOT NULL AUTO_INCREMENT, `guild_id` INT NOT NULL, `enemy_id` INT NOT NULL, `begin` BIGINT NOT NULL DEFAULT '0', `end` BIGINT NOT NULL DEFAULT '0', `frags` INT UNSIGNED NOT NULL DEFAULT '0', `payment` BIGINT UNSIGNED NOT NULL DEFAULT '0', `guild_kills` INT UNSIGNED NOT NULL DEFAULT '0', `enemy_kills` INT UNSIGNED NOT NULL DEFAULT '0', `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `status` (`status`), KEY `guild_id` (`guild_id`), KEY `enemy_id` (`enemy_id`) ) ENGINE=InnoDB; ALTER TABLE `guild_wars` ADD CONSTRAINT `guild_wars_ibfk_1` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_wars_ibfk_2` FOREIGN KEY (`enemy_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE; ALTER TABLE `guilds` ADD `balance` BIGINT UNSIGNED NOT NULL AFTER `motd`; CREATE TABLE IF NOT EXISTS `guild_kills` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `guild_id` INT NOT NULL, `war_id` INT NOT NULL, `death_id` INT NOT NULL ) ENGINE = InnoDB; ALTER TABLE `guild_kills` ADD CONSTRAINT `guild_kills_ibfk_1` FOREIGN KEY (`war_id`) REFERENCES `guild_wars` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_kills_ibfk_2` FOREIGN KEY (`death_id`) REFERENCES `player_deaths` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_kills_ibfk_3` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE; ALTER TABLE `killers` ADD `war` INT NOT NULL DEFAULT 0; Pronto o Guild Wars System está totalmente instalado...falta apenas o Tfs 0.4 ! O meu The Forggoten Server 0.4 também comprei do mesmo cara que me vendeu o GWS,tenho um também que comprei na ChaitoSoft,mais conversei com eles por Msn e não permitirão que eu postasse pra ninguem,rsrs. Então vou postar o link do download e o scan: TFS 0.4 DEV Scan Ai está a DEV.... Também será necessario usar o items.xml e items.otb , a não ser que o que vc tenha seja compativel com o distro. Item.xml e otb Scan Obs: Este distro não carrega scripts que tenha a função "dbExecute.query",sempre que tiver mude para "db.query" .Todo o script ja está configurado para funcionar assim,não se preucupe. Só isso,obrigado a todos...que Deus Abençoe voces sempre !
    1 ponto
  4. Pedro Menezes

    Tutorial De Fakes [Firework]

    Olá comunidade XTibiana, vou postar mais um Tutorial de Fakes! Sim! Mais um, mas este aqui tem algumas técnicas diferentes dos antigos rs. porém aconcelho também a ver mais tutoriais! Ok, ok, sem lero-lero,vamos ao tutorial! *faça seu mapa no OTmapEditor, quando fizer tire print! Então Abra o Fireworks, e faça um arquivo menor que o tamanho da print para poder alinhar a fake. Por exemplo esse mapa que eu fiz tem 602x506, faça um arquivo com 550x450. Aperte ok. Pronto, cole o mapa no firework Perceberam que a imagem está maior que o tamanho permitido? Então está certo. Agora vamos alinhar o cenário, vá em View>Grid>Show Grid Você vai ver que apareceu uns quadrados na tela... Depois vá em View>Grid>Edit Grid Edite o “grid” da seguinte maneira: 32x32 pixels Color: uma cor forte detalhe a cor que escolhi, uma cor forte, este verde é uma boa escolha Depois de feito isso vamos alinhar. Escolha alguma parte do mapa e coloque dentro do quadrado verde do grid. Como na imagem! Usei como ponto fixo a junção das duas paredes. Nossa fake agora está perfeitamente alinhada Vamos agora colocar o Personagem! Escolha a Outfit que deseje, copie e cole no Fireworks. ps: se aparecer uma pergunta, aperte “do not resample” É simples demais, selecione a ferramenta “Magic Wand tool” (atalho no Teclado “w”) E selecione os pixels que deseja deletar. No caso da minha outfit são os pixels cinzas. Clique neles e vá em Select>>Select Similar e aperte delete. Para tirar esses pixels do contorno da outfit, aperte ctrl+d. Agora vamos alinhar o personagem. Para alinhar o personagem, você coloca ele dentro de um dos quadrados da grid, coloque ele colado na parte esquerda e na parte inferior. Depois mova 8 pixels para a direita e 8 para cima. Ok, char alinhado, pegue a life bar e coloque a dois pixels da cabeça. (para tirar o fundo “cinza” é do mesmo jeito da outfit ok?) A Life bar fica a dois pixels da cabeça. ;D Vamos fazer as falas, abra o fakerlab Desk (download aqui) e digite o que quiser. E aperte copiar Vá no fireworks e cole, e tire os pixels brancos, do mesmo jeito que foi removido o da life bar e o da outfit. Para alinhar a fala, ele tem que ficar entre a barra de vida e o Nick: Pronto, sua fake está pronta. agora é só exportar (ctrl + shift + c). e aqui o resultado final: ps: ingorem o fato de só ter o Tymaoes na fake, fiquei com preguiça de colocar mais persongens rs. bom, espero que tenham realmente gostado do tutorial, dia 11 devo editar ele para arrumar algumas coisas (ou geral rs) Se gostarem rep+ e indiquem também! TUTORIAL FEITO ÚNICO E EXCLUSIVAMENTE PARA O XTIBIA.COM, CÓPIAS SÃO PROIBIDAS! créditos: Pedro
    1 ponto
  5. Subwat

    Heroserv War [8.60] 15.11.2010 (0.0.3)

    Informações Pessoal venho-les Trazer Um servidor de War diferente..Inovador,e MUITO mais MUITO FODA!,quem conhece Heroserv Sabe o grande PVP que esse server tem,wands hit 6000~10000 arrow atk 500 swords club axes atks 500,compra de skill LIFE mana......tudo isso Num só servidor! então,foi baseado No Heroserv.com e No LoucoServ.com Que trago Hoje HEROSERV WAR! UDPATE INFOS pots infinitos mana rune no cyric compra de vida mana e skills preço menor Spells Utani vip Hur exevo gran trap exevo mas dead exevo gran mas frigo exevo song pally pally hur exevo bolt hur exori element exori mas gran Cidades Sphere Sistemas compra de skill !melee,!distance. compra de vida !buyvida. compra de !buymana. saber quanto de vida tens !myhp saber quanto de mana tens !mymp comprar promotion !promotion saber os spells !spells ao matar um player ganha 10k! nasce com SUPER SET! itens SPECIAIS NO NPC! training monks GRANDE AREA! Screen Shots download HEROSERV WAR 0.0.3 créditos Gean Riot (por tudo) alissow OTS (distro) gostou clica REP+ xD
    1 ponto
  6. felipol

    Remeres Map_Editor (8.60X)

    LEIA ATENTAMENTE E SEM PREGUIÇA! (para um trabalho bem feito) * Opção de download rapido: Download - Rme 2.1 + Tibia.dat e spr Bom galera muito nego aqui no XTibia ta se matando para poder conseguir abrir o REMERES MAP EDITOR na versão 2.1 (8.60x). Claro ja foram postados tutoriais solucionando o problema do mesmo. Porém esse aqui é diferente e 100% cérto. Vou ensinar perfeitamente como você pode abrir seu REMERES de outra forma sem que isso se torne um problema maldito de solucionar! Antes de tudo: Desinstale seu REMERES e seu TIBIA Agora! Primeiramente você vai diretamente no site OFFICIAL do Remeres Map Editor abaixo: SITE OFFICIAL: Clique Aqui Para faser o download. Após ter feito o download do Remeres, vá direto para o outro site abaixo: SITE OFFICIAL: Clique Aqui e baixe a versão do Tibia 8.60x (OBS: se você tem o tibia baixado no seu PC de qualquer outro site, desinstale-o.) PRONTO! já baixou os dois arquivos acima? Muito bem, agora vamos faser o seguinte: 1° Vá para a pasta: Meu Computador > Disco Local (C:) > Arquivos de Programas > Tibia 2° Na pasta do Tibia existem dois arquivos super importantes para esse procedimento, chamados: Tibia.spr e Dat, copie-os! 3° Volte para a pasta: Arquivos de Programas e crie uma nova pasta chamada: SPR 4° Dentro désta pasta SPR criada, você vai colar os dois arquivos: Tibia.spr e Dat. (Feche) 5° Abra seu Remeres map editor 6° Quando Aparecer a mensagem para procurar "Couldn't Find Tibia.dat Or Tibi.spr" você vai abrir a pasta SPR que criou a pouco! PRONTO! Seu Remeres map editor está pronto para ser ultilizado =D Dúvidas? (MSN: fefo_wg@hotmail.com) Se possível o teste, e aprovação do tutorial; Rep+ Recomende para seus amigos. :XTibia_smile:
    1 ponto
  7. Demonbholder

    Sistema De Alquimia

    Booooas galera! Eu estava com essa idéia na cabeça já faz um tempo, mas ai tava com um problema e não conseguia arrumar. Well, na madrugada passada, eu fui ver o script e descobri um jeito de consertar, assim, eu criei o sistema de alquimia. Então é isso ai, não quero ficar enrolando muito, vamos logo ao script... Como Funciona: O sistema é composto por uma talkaction e uma action. A talkaction serve para criar novas gemas, ou seja, fundir gemas já existentes e transformá-las em outras. Já a action serve para fundir a arma a gema, sendo que há um hierarquia entre as gemas e armas. A hierarquia é assim: Há as gemas iniciais, que são pérolas, que podem refinar as armas escolhidas para o set1. Há as gemas secundárias e o gold nugget (item dado na fusão das perolas) que podem refinar armas de set2. Há as gemas terciárias e o small diamond (item dado na fusão dos diamantes) que refinam armas de set3. Há as gemas de nível 4, o life crystal e o crystal o Power, que refinam armas do set4. E por fim, há o gold ingot que refina armas do set5. Action: Armas a serem refinadas, facilmente editável. Quanto irá ser adicionado em cada arma, facilmente editável. Efeitos. Talkaction: Funcionamento. Efeitos. Id das gemas editável. Scripts: Action: function onUse(cid, item, fromPosition, itemEx, toPosition) local itens = { set1 = {2434, 7430, 2392, 7408, 2432}, set2 = {7437, 7755, 2451, 7380}, set3 = {7427, 7421, 7402, 2393, 2414, 7434}, set4 = {7429, 7414, 8930, 6528, 2454}, set5 = {2421, 8927, 2408, 2390, 2431, 2415} } local extra = getItemAttribute(item.uid, "extraattack") == nil and 0 or getItemAttribute(item.uid, "extraattack") local extrd = getItemAttribute(item.uid, "extradefense") == nil and 0 or getItemAttribute(item.uid, "extradefense") if isInArray({2143, 2144}, itemEx.itemid) and isInArray(itens.set1, item.itemid) then if math.random(1, 7) > extra/10 + 1 then doItemSetAttribute(item.uid, "extraattack", extra+10) doItemSetAttribute(item.uid, "extradefense", extrd+5) doSendMagicEffect(getPlayerPosition(cid), math.random(1, 32)) else doPlayerSendCancel(cid, "Falhou.") doSendMagicEffect(getPlayerPosition(cid), 2) end doRemoveItem(itemEx.uid, 1) end if isInArray({2157, 2149, 2146, 2147}, itemEx.itemid) and isInArray(itens.set2, item.itemid) then if math.random(1, 7) > extra/20 + 2 then doItemSetAttribute(item.uid, "extraattack", extra+20) doItemSetAttribute(item.uid, "extradefense", extrd+10) doSendMagicEffect(getPlayerPosition(cid), math.random(1, 32)) else doPlayerSendCancel(cid, "Falhou.") doSendMagicEffect(getPlayerPosition(cid), 2) end doRemoveItem(itemEx.uid, 1) end if isInArray({2145, 9941, 9942}, itemEx.itemid) and isInArray(itens.set3, item.itemid) then if math.random(1, 7) > extra/30 + 3 then doItemSetAttribute(item.uid, "extraattack", extra+30) doItemSetAttribute(item.uid, "extradefense", extrd+15) doSendMagicEffect(getPlayerPosition(cid), math.random(34, 55)) else doPlayerSendCancel(cid, "Falhou.") doSendMagicEffect(getPlayerPosition(cid), 2) end doRemoveItem(itemEx.uid, 1) end if isInArray({9980, 7315, 2158, 2153, 2154, 2155, 2156}, itemEx.itemid) and isInArray(itens.set4, item.itemid) then if math.random(1, 8) > extra/35 + 4 then doItemSetAttribute(item.uid, "extraattack", extra+35) doItemSetAttribute(item.uid, "extradefense", extrd+20) doSendMagicEffect(getPlayerPosition(cid), math.random(34, 55)) else doPlayerSendCancel(cid, "Falhou.") doSendMagicEffect(getPlayerPosition(cid), 2) end doRemoveItem(itemEx.uid, 1) end if itemEx.itemid == 9971 and isInArray(itens.set5, item.itemid) then if math.random(1, 9) > extra/50 + 5 then doItemSetAttribute(item.uid, "extraattack", extra+50) doItemSetAttribute(item.uid, "extradefense", extrd+30) doSendMagicEffect(getPlayerPosition(cid), 65) else doPlayerSendCancel(cid, "Falhou.") doSendMagicEffect(getPlayerPosition(cid), 2) end doRemoveItem(itemEx.uid, 1) end return TRUE end Tag: <action itemid="2434;7430;2392;7408;2432;7437;7755;2451;7380;7427;7421;7402;2393;2414;7434;7429;7414;8930;6528;2454;2421;8927;2408;2390;2431;2415" event="script" value="nomeDoArquivo.lua"/> Comentário: Se for editar as armas a serem refinadas, edite no script e na tag, pois os ids da tag são os das armas. Talkaction: function onSay(cid, words, param) local tab = {2149, 2146, 2147} local t = {2158, 2154, 2155, 2156} local t3 = {{item=7315, msg="Você ganhou um life crystal."}, {item=9980, msg="Você gnhou um crystal of power."}} local maths = math.random(1, 2) if param == '' then doPlayerSendCancel(cid, "Param required.") doSendMagicEffect(getCreaturePosition(cid), 2) end -- PEARL -- if param == 'pearl' then if getPlayerItemCount(cid, 2143) > 0 and getPlayerItemCount(cid, 2144) > 0 then doPlayerRemoveItem(cid, 2143, 1) doPlayerRemoveItem(cid, 2144, 1) doPlayerAddItem(cid, 2157, 1) doPlayerSendTextMessage(cid, 4, "Você fez um gold nugget.") doSendMagicEffect(getPlayerPosition(cid), math.random(1, 32)) else doPlayerSendCancel(cid, "Você não tem os itens necessários.") doSendMagicEffect(getCreaturePosition(cid), 2) end end -- DIAMOND -- if param == 'diamond' then pakaresult = "" for i, itens in ipairs(tab) do if getPlayerItemCount(cid, itens) > 0 then pakaresult = pakaresult ~= "" and pakaresult .. "/" .. itens or "/" .. itens end end local ite = string.explode(pakaresult, "/") if #ite > 2 then doPlayerRemoveItem(cid, ite[2], 1) doPlayerRemoveItem(cid, ite[3], 1) doPlayerAddItem(cid, 2145, 1) doPlayerSendTextMessage(cid, 4, "Você fez um small diamond.") doSendMagicEffect(getPlayerPosition(cid), math.random(34, 55)) else doPlayerSendCancel(cid, "Você não tem os itens necessários.") doSendMagicEffect(getCreaturePosition(cid), 2) end end -- CRYSTAL -- if param == 'crystal' then if getPlayerItemCount(cid, 9941) > 0 and getPlayerItemCount(cid, 9942) > 0 then doPlayerRemoveItem(cid, 9942, 1) doPlayerRemoveItem(cid, 9941, 1) doPlayerAddItem(cid,t3[maths].item, 1) doPlayerSendTextMessage(cid, 4, t3[maths].msg) doSendMagicEffect(getPlayerPosition(cid), math.random(34, 55)) else doPlayerSendCancel(cid, "Você não tem os itens necessários.") doSendMagicEffect(getCreaturePosition(cid), 2) end end -- GOLD -- if param == 'gold' then pakoresult = "" for n, iten in ipairs(t) do if getPlayerItemCount(cid, iten) > 0 then pakoresult = pakoresult ~= "" and pakoresult .. "/" .. iten or "/" .. iten end end local ite = string.explode(pakoresult, "/") if #ite > 2 then doPlayerRemoveItem(cid, ite[2], 1) doPlayerRemoveItem(cid, ite[3], 1) doPlayerAddItem(cid, 9971, 1) doPlayerSendTextMessage(cid, 4, "Você fez um gold ingot.") doSendMagicEffect(getPlayerPosition(cid), 65) else doPlayerSendCancel(cid, "Você não tem os itens necessários.") doSendMagicEffect(getCreaturePosition(cid), 2) end end return true end Tag: <talkaction words="Words" event="script" value="nomeDoArquivo.lua"/> Comentário: Talkaction funcionando perfeitamente, se desejar, edite o id das gemas. Então é isso galera, demorei 4 horas pra fazer, espero que gostem.
    1 ponto
  8. koalawopit

    Tutorial Para Caverna De Dragons

    Boa Noite Venho aqui trazer mais um tutorial enviadopelocarlosalbertó que eu fiz para ajudar a fazer uma cave de Dragons bonitinha. Dragões vivem em cavernas, perto de ambientes quentes e sem muita vegetação. Visto isso podemos saber um pouco de como montar uma caverna de Dragon. Faça o formato da caverna, tente não deixar muito reto dando umas "quebradas" no formato. IDS: 5639 até 5652. Faça uma pequena variação de Grounds, usando lava, mountain ground. Mas você pode usar outros tipos de grounds, sempre mantendo a coerencia. IDS:4417,598. Use as mesmas bordas citadas na primeira imagem para fazer uma segunda camada de montanha dando mais uma embelezada no seu mapa. Bote mais um pouco da cave mountain no meio para dar mais uma dinâmica ao seu mapa. ID:5639 até 5652 e detalhe com Debris e Dirt afinal nunca que um dragão viviria num lugar limpo. Sua base está pronta agora só faltam os detalhes. Usei os seguintes IDS:3613 ( debris), 389 (lava hole), 1487 (fire field), 397 (stalagmites), 8251 (hole), 6485 (debris²), 5396 (mangrove morta), 4171 (cogumelo morto), 4169 (cogumelos mortos grandes). Bom está ai o tutorial e agora o resultado se você estiver jogando no mapa. Se eu te ajudei ou fiz um bom tutorial, me de um REP+ . Até a proxima OBS: desculpe a desorganização do tópico, sou péssimo com isso.
    1 ponto
  9. pedrop157

    Algumas Sprites

    s speaks pode usar (y) eu fiz elas para treinar pq nunca tinha feito ;x --- +1 Wall
    1 ponto
  10. tyuahoi

    Ajuuuuuda

    nunca tente usar qualquer arquivo sem antes verificar se é da mesma versão... os erros de Can't add column key to table accounts, already exist? nao é problema ele apenas ta falando que as colunas ja estao criadas na sua database ai ele nao conseguil adicionalas (: Sobre o erro do STEP 4 provavelmente vc n esta usando a database certa tente usar outra ...
    1 ponto
  11. tyuahoi

    Criar Personagem Pelo Site

    acesse: http://localhost/phpmyadmin entre na sua database, e va na tabela Players la vai ter 4 char com os nomes: Druid Sample Sorcerer Sample Knight Sample Paladin Sample acesse esses char e edite: exp: 4200 level: 8 life 185 mana:10 < Nao tenho ctz Pronto crie um char e veja se vc fez certo :b
    1 ponto
  12. simples no seu arquivo php coloque assim echo "Este texto é <font color=\"blue\">Azul</font>!"; esse texto sairia em azul se for uma variável faça assim echo '<font color="green">' . variavel. '</font><br>'; esse em verde.
    1 ponto
  13. joaohd

    100Hd Virar 1 Thousand

    É uma action: function onUse(cid, item) local config = { HundredId = 2148, ThousandId = 2150 } if item.itemid == config.HundredId then if item.type == 100 then doRemoveItem(item.uid) doPlayerAddItem(cid, config.ThousandId, 1) end elseif item.itemid == config.ThousandId then doRemoveItem(item.uid, 1) doPlayerAddItem(cid, config.HundredId, 100) end return true end Acho que funciona. flw
    1 ponto
  14. Vilden

    Xtibia Do #1 - Otserv

    A idéia dele e boa /\ 'Vocês ai de cima' deveriam respeita mais as opnioes dos membros, não que vocês não respeitem mais por exemplo, se 10~20 pessoas acham que tal coisa deveria ser feita se isso é uma coisa boa porque não fazer? porque fica enrolando essa porra? não deu certo? desfaz. a voz do povo e a voz de deus Aprovação de Tutoriais: Liberar para que, moderadores e colaboradores aprovem tutoriais, gente não tem essa de que colaborador não tem experiência pra aprovar tutorial não.. se ele não tem experiência porque está no 'cargo' de colaborador?? vocês não confiam neles? ta. Download de OTservs Moderadores baixarem os otservers faze um scan, não precisa nem ser no 'vírus total'... Usando seu próprio antivírus, mais deixando claro com qual antivírus foi feito o scan, e também que avaliem dando uma nota (0~10) Anúncio de Servidores e Monte Sua Equipe Se vocês colocarem uma 'forma' onde ele só precise preenche já ajuda, claro que a solução seria uma lista estilo a otservlist mais em conjunto com o forum.. Scripting Criar algum tipo de reputação especial para eles, não só para eles e sim para mappers também, assim com certeza acho que iriam ajudar mais. algo do tipo Scripter ~> Scripter Medio ~> Scripter Expert ~> Script Supreme mais não liberar esse tipo de 'reputação' para noix membros, deixem colaboradores e moderadores avaliarem.. Mapping Bote alguém que realmente se importa com a área para desenvolver eventos, moderar concursos etc.. e usa o mesmo tipo de reputação como citado a cima Bjs :*
    1 ponto
  15. diiiiiiii

    [Tutorial] Criando Magias

    Não consegui ;x Tipo, depois de tudo que é feito aí, não tem que levar algo pro spells.xml , e fazer algo tipo :
    1 ponto
  16. Kydrai

    Vip System By Account V1.0

    Acho que esse ajuda: function onLogin(cid) if (isVip(cid) == TRUE and string.match(getCreatureName(cid), "%p%a+%p") ~= '[VIP]') or (isVip(cid) == FALSE and string.match(getCreatureName(cid), "%p%a+%p") == '[VIP]') then doPlayerSendTextMessage(cid, 4, "Você vai ser kikado em 10 segundos para mudar seu nome.") addEvent(doChangeStats, 10000, cid) end return TRUE end function doChangeStats(cid) local ne = string.match(getCreatureName(cid), "%p%a+%p") == '[VIP]' and string.sub(getCreatureName(cid), 7) or "[VIP] " .. getCreatureName(cid) local id = getPlayerGUID(cid) if string.match(getCreatureName(cid), "%p%a+%p") == '[VIP]' then setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)/2) setCreatureMaxMana(cid, getCreatureMaxMana(cid)/2) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/2) doCreatureAddMana(cid, getCreatureMaxMana(cid)/2) else setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)*2) setCreatureMaxMana(cid, getCreatureMaxMana(cid)*2) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)*2) doCreatureAddMana(cid, getCreatureMaxMana(cid)*2) end doRemoveCreature(cid) db.executeQuery("UPDATE players SET name = '"..ne.."' WHERE id = "..id) end Fonte: http://www.xtibia.com/forum/topic/154907-sistema-vip-kydrai-nick-vip/
    1 ponto
  17. leobr

    Pokemon Fight

    tbm vo baxa e dps posta se fico bom se tiver problemas talvez resolvo TIPO BAIXEI SEU SERVE E TALZ MAIS MANO EU ENTREI E TODA HORA DA DEBUG ¬¬ NA VERDADE E SO LA NA CASINHA QUANDO VC FAIZ SEU CHAR TIPO DA PRA MUDA A AREA EU AXO SL MAIS AXO Q DA MAIS CONSERTA LA PRA FICA MAIS LEGA =D RISCA TUDO CONSEGUI ARRUMA
    1 ponto
  18. RaulDias

    [Advanced Reset System 2.0]

    Muito bom!!nota 10. abraços!
    1 ponto
  19. Kydrai

    [ Talkaction ] !guild List

    Conseguiu faze o script eh Achei que ficou legal o resultado.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...