Líderes
-
xWhiteWolf
HéroiPontos3605Total de itens -
-
-
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 08/27/15 em todas áreas
-
(Resolvido)[PEDIDO] Porta com requisitos
(Resolvido)[PEDIDO] Porta com requisitos
LeoNxz e 2 outros reagiu a Snowsz por uma resposta no tópico
3 pontosEssa verificação: if(item.uid == 2500 É totalmente desnecessária, só faz custar mais ao servidor, mesmo que seja pouco, de grão em grão a galinha enche o papo... Não é necessário colocar () nisso, ficaria até melhor sem , e está faltando return true no final do script, para ele poder abrir a porta caso tenha o skill. Também poderia fazer assim: function onUse(cid, item, fromPosition, itemEx, toPosition) return getPlayerSkillLevel(cid, SKILL_SWORD) < 20 and doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You need 20 sword fighting to open this door.") or true end3 pontos -
[C++] Lendo Memória
[C++] Lendo Memória
MaTTch e um outro reagiu a dm0000 por uma resposta no tópico
2 pontosExemplo de como pegar hp, ai é só usar a criatividade e pegar mana etc usando os endereços corretos. #include <iostream> #include <Windows.h> #include <TlHelp32.h> //Tibia 10.80 DWORD GameModule(LPCSTR moduleName, int pId); template<typename TYPE> TYPE RPM(HANDLE proc, DWORD address, SIZE_T size) { TYPE buffer = TYPE(); ::ReadProcessMemory(proc, (LPCVOID)address, &buffer, size, 0); return buffer; } int main() { std::cout << "Searching Tibia..." << std::endl; HWND hwndTibia = NULL; while (hwndTibia == NULL) { hwndTibia = ::FindWindow("TibiaClient", NULL); Sleep(16); } if (!hwndTibia) return 0; std::cout << "Tibia found." << std::endl; DWORD pid; ::GetWindowThreadProcessId(hwndTibia, &pid); DWORD tibiaAddr = GameModule("Tibia.exe", pid); HANDLE proc = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); while (true) { if (tibiaAddr && proc) { system("cls"); int hp = RPM<int>(proc, (tibiaAddr + 0x6D2030), sizeof(int)); int maxHp = RPM<int>(proc, (tibiaAddr + 0x6D2024), sizeof(int)); std::cout << "HP: " << hp << "/" << maxHp << std::endl; } else { break; } Sleep(16); } ::CloseHandle(proc); return 0; } DWORD GameModule(LPCSTR moduleName, int pId) { HANDLE hSnapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pId); MODULEENTRY32 allinfo; BOOL haveProcess = ::Module32First(hSnapShot, &allinfo); while (haveProcess) { if (!strcmp(moduleName, allinfo.szModule)) { return (DWORD)allinfo.modBaseAddr; } haveProcess = ::Module32Next(hSnapShot, &allinfo); } return 0; }2 pontos -
[8.60] Baiak ROX ! Editado By DeathRocks [Cast + Wars System]
[8.60] Baiak ROX ! Editado By DeathRocks [Cast + Wars System]
Druidzin reagiu a DeathRocks por uma resposta no tópico
1 pontoEae Galera do TibiaKing É o seguinte Hoje trago a vocês o Baiak Rox Editado por Min Espero que Gostem Oque eu Fiz ? | Novo Visual do Templo Totalmente ICE | Critical System | Task System | Dodge System | Run Event (CORRIDA MALUCA) | Reset System (ÁREA EXCLUSIVA COM CASTELO E HUNTS) para resetar fale !reset | Guild Frags System ( ACESSO AO PROMOTE E ITENS EXCLUSIVOS ) | War System (100% RODANDO EM SQLITE) | Cast System (100% Roda em Mysql ) ( Para Ativar vai em Config.lua e ache | enableCast = false | mude para true ) Duvidas entrem em http://www.tibiaking...os-na-distro/ | PvP Balanceado Agora com mais RPG | Armas Arrumadas Para Melhor PvP | Varios Eventos Automaticos | Battle Field Event | Capture The Flag Event | City War | Adicionado CASTLE 24HORAS (COM CASTELO) e AVISOS DE INVASORES | Itens DONATES | Área DONATE ~~ (Só Entra Quem Usar o Itens de Premium Days) | Vários Novos Script | Fast Atk Arrumado | Distro 0.4 Rodando 100% ( Se For 64x Bits) | Refinamento ( Aprimora seus Equipamentos ) | Frags no Look | Npc Hero Seller (Vende Itens Exclusivos para quem tiver honor points) Obs:Consegue no GFS) | Entre Outras Coisas | SENHA DO GOD: rox/styller | Aqui Vai Umas Prints | Castelo Reset System | Nova Imagem do Templo | Área Donate | Mostra de Itens Donate + Eventos | Download | Scan | Créditos | Gostou ? Então dei um REP1 ponto -
Pokémon Centurion V8.1 Editado Por By:Dudummc
Pokémon Centurion V8.1 Editado Por By:Dudummc
arcaydecom reagiu a dudummc por uma resposta no tópico
1 pontoBoa Noite , Boa Tarde ou Bom Dia TK's não sei a hora que vocês vão ver o Tópico Estava com meu Projeto do "Pokemon Reven wen" Fiz várias Ediçoes no Servidor Que Baixei aqui no Tibia King Mesmo e vim disponibilizá-los para vocês. Então bora ao que interessa né? • Menu: ├ Informações; ├ Edições; ├ Erros; ├ Prints; ├ Mapa ├ Download; ├ Atualização; ├ Utilitários; └ Créditos. • Informações Básicas • .Centurion V8 como base .Servidor Com lvl system .1 e 4 Geração #EuAcho .4 Geração (Incompleta ) • Edições / Ajustes • • NEW • Edições / Ajustes • • NEW CP SAFFRON FOI MODIFICADO COM QUEST INICIAL. • NEW Systema Novos. • NEW Systema !tutor adicionado • NEW Systema De Scroll Vip • NEW Systema Scroll EXP • NEW Systema de Intem Sumonador "Solta 1 Zapdos" Se Quiser VocÊs Podem Configurar. • NEW Novo comando "todosparaotemplo" , Para você modifica ele basta ir data/talkactions/scripts/todosparaotemplo.lua • NEW Otclient Extendido. • NEW Metade Dos Pokémon Estão Com Sprite novas. OBS: Quando Os Pokemon Morre Fica com a Sprite Veia Deles" , Basta Vocês Modifica Só Tbm" • NEW Cath De Pokémon Está Modificados OBS: "Só Os Normais Foram Modificados" • NEW Sprite Da Bike Foi Modificados Ingual Do "OTPOKEMON" • NEW Boost Stone Agora Boost em "5" em "5" • NEW Um novo systema tbm adicionado no server que agora da pra ver as quest que vocÊ fez e não fez , não estão modificadas certo. se quiser modifica basta ir data/talkactions/scripts/ServQuests.lua #BomSóissoqueeulembro • Erros do Servidor • Servidor Está Com um Erro Esse Troço Que Solta o Zapdos Se a Pessoa Usa Com ela Na beg Da Hns Erro. Que eu Saiba Tem Hns Bug Leve no Distro Facil De Arrumares. • Prints• https://www.facebook.com/pokemonrpgmelhor/photos/a.1634235853469486.1073741828.1612810068945398/1634235723469499/?type=1 https://www.facebook.com/pokemonrpgmelhor/photos/pb.1612810068945398.-2207520000.1409958444./1633374386888966/?type=1&theater https://www.facebook.com/pokemonrpgmelhor/photos/pb.1612810068945398.-2207520000.1409958444./1633383653554706/?type=1&theater https://www.facebook.com/pokemonrpgmelhor/photos/pb.1612810068945398.-2207520000.1409958444./1633413753551696/?type=1&theater • Downloads • Cliente OTC* MediaFire http://www.mediafire.com/download/ubalfgada3zhfo2/Client_Centurion_v8.1_Editado_By_Dudummc.rar Secan Client ~ https://www.virustotal.com/pt/file/bd16147a37c60d7dd0f45e76e4a53fa03fe43a28105504e2410e3da3e647c789/analysis/1409960058/ Servidor * MediaFire é 4 shared http://www.mediafire.com/download/pxp2bf85crayjsz/Servidor_Centurion_v8.1_By_Dudummc.rar http://www.4shared.com/rar/bOYkeAhwce/Server_Centurion_v81_Editado_P.html? • Créditos • Lordbaxx (Pelo Server) Eu (Por Editar o Servidor 65%) Max Willian (Por me Ajuda 20%) PxG (Pela Alguma Sprite's 80%) Alexandre cacaiu (Pokemon Centurion oficial) Obs: Se Está faltando algum crédito me avise pra mim colocar ( Não sei se está faltando algum) Obs: Qualquer Outra Duvida Estarei de Suporte no Tópico Se Ajudei Da REP+ Ae Secan Jaja Sai Do Client é servidor.1 ponto -
Mega Pack Sprites [+39,000] RPG Server.
Mega Pack Sprites [+39,000] RPG Server. Inclui: Sprites ... (.bmp) ( Monstro ) . ( Conjuntos ). (Itens diversos. ) ( Armas e armaduras. ) ( Paredes e pisos. ) Créditos: altaron Spritespack.rar (34.4 MB) (128 MB UN-ZIP) Download https://mega.nz/#!rk51lIAJ!WH5gTlc1HeZ0lIZOI6M-MGdyQK4Iw_yFOd-_UlvHTXo http://www.mediafire.com/file/6l64wfdy7hpp77k/Sprites+pack.rar Scan https://www.virustotal.com/pt/file/3bbb8c6030abd2d41bb33abf9a4453817cd31de5421030ccd26343044992f96c/analysis/ Creditos Altaron REUPLOAD!1 ponto
-
[GESIOR] Colocando Health/Mana/skills e Set na página Characters
[GESIOR] Colocando Health/Mana/skills e Set na página Characters
Jhonjhon775 reagiu a Tricoder por uma resposta no tópico
1 pontoPrévia Instalando <?php if(!defined('INITIALIZED')) exit; $name = ''; if(isset($_REQUEST['name'])) $name = (string) $_REQUEST['name']; if(!empty($name)) { $player = new Player(); $player->find($name); if($player->isLoaded()) { $number_of_rows = 0; $account = $player->getAccount(); $skull = ''; if ($player->getSkull() == 4) $skull = "<img style='border: 0;' src='./images/skulls/redskull.gif'/>"; else if ($player->getSkull() == 5) $skull = "<img style='border: 0;' src='./images/skulls/blackskull.gif'/>"; $main_content .= '<table border="0" cellspacing="1" cellpadding="4" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" style="font-weight:bold;color:white">Character Information</td></tr>'; $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td width="20%">Name:</td><td style="font-weight:bold;color:' . (($player->isOnline()) ? 'green' : 'red') . '">' . htmlspecialchars($player->getName()) . ' ' . $skull . ' <img src="' . $config['site']['flag_images_url'] . $account->getFlag() . $config['site']['flag_images_extension'] . '" title="Country: ' . $account->getFlag() . '" alt="' . $account->getFlag() . '" />'; if($player->isBanned() || $account->isBanned()) $main_content .= '<span style="color:red">[BANNED]</span>'; if($player->isNamelocked()) $main_content .= '<span style="color:red">[NAMELOCKED]</span>'; $main_content .= '<br /><img src="' . $config['site']['outfit_images_url'] . '?id=' . $player->getLookType() . '&addons=' . $player->getLookAddons() . '&head=' . $player->getLookHead() . '&body=' . $player->getLookBody() . '&legs=' . $player->getLookLegs() . '&feet=' . $player->getLookFeet() . '" alt="" /></td></tr>'; if(in_array($player->getGroup(), $config['site']['groups_support'])) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Group:</td><td>' . htmlspecialchars(Website::getGroupName($player->getGroup())) . '</td></tr>'; } $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Sex:</td><td>' . htmlspecialchars((($player->getSex() == 0) ? 'female' : 'male')) . '</td></tr>'; $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Profession:</td><td>' . htmlspecialchars(Website::getVocationName($player->getVocation())) . '</td></tr>'; $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Level:</td><td>' . htmlspecialchars($player->getLevel()) . '</td></tr>'; $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Residence:</td><td>' . htmlspecialchars($towns_list[$player->getTownID()]) . '</td></tr>'; $rank_of_player = $player->getRank(); if(!empty($rank_of_player)) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Guild Membership:</td><td>' . htmlspecialchars($rank_of_player->getName()) . ' of the <a href="?subtopic=guilds&action=show&guild='. $rank_of_player->getGuild()->getID() .'">' . htmlspecialchars($rank_of_player->getGuild()->getName()) . '</a></td></tr>'; } $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Balance:</td><td>' . htmlspecialchars($player->getBalance()) . ' gold coins</td></tr>'; $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Last login:</td><td>' . (($player->getLastLogin() > 0) ? date("j F Y, g:i a", $player->getLastLogin()) : 'Never logged in.') . '</td></tr>'; if($player->getCreateDate() > 0) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Created:</td><td>' . date("j F Y, g:i a", $player->getCreateDate()) . '</td></tr>'; } if($config['site']['show_vip_storage'] > 0) { $storageValue = $player->getStorage($config['site']['show_vip_storage']); $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>VIP:</td><td>' . (($storageValue === null || $storageValue < 0) ? '<span style="font-weight:bold;color:red">NOT VIP</span>' : '<span style="font-weight:bold;color:green">VIP</span>') . '</td></tr>'; } $comment = $player->getComment(); $newlines = array("\r\n", "\n", "\r"); $comment_with_lines = str_replace($newlines, '<br />', $comment, $count); if($count < 50) $comment = $comment_with_lines; if(!empty($comment)) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Comment:</td><td>' . $comment . '</td></tr>'; } $main_content .= '</TABLE>'; $main_content .= '<table width=100%><tr>'; $itemsList = $player->getItems(); $main_content .= '<td align=center><table with=100% style="border: solid 1px #888888;" CELLSPACING="1"><TR>'; $list = array('2','1','3','6','4','5','9','7','10','8'); foreach ($list as $number_of_items_showed => $slot) { if($slot == '8') // add Soul before show 'feet' { $main_content .= '<td style="background-color: '.$config['site']['darkborder'].'; text-align: center;">Soul:<br/>'. $player->getSoul() .'</td>'; } if($itemsList->getSlot($slot) === false) // item does not exist in database { $main_content .= '<TD style="background-color: '.$config['site']['darkborder'].';"><img src="' . $config['site']['item_images_url'] . $slot . $config['site']['item_images_extension'] . '" width="45"/></TD>'; } else { $main_content .= '<TD style="background-color: '.$config['site']['darkborder'].';"><img src="' . $config['site']['item_images_url'] . $itemsList->getSlot($slot)->getID() . $config['site']['item_images_extension'] . '" width="45"/></TD>'; } if($number_of_items_showed % 3 == 2) { $main_content .= '</tr><tr>'; } if($slot == '8') // add Capacity after show 'feet' { $main_content .= '<td style="background-color: '.$config['site']['darkborder'].'; text-align: center;">Cap:<br/>'. $player->getCap() .'</td>'; } } $main_content .= '</tr></TABLE></td>'; $hpPercent = max(0, min(100, $player->getHealth() / max(1, $player->getHealthMax()) * 100)); $manaPercent = max(0, min(100, $player->getMana() / max(1, $player->getManaMax()) * 100)); $main_content .= '<td align=center ><table width=100%><tr><td align=center><table CELLSPACING="1" CELLPADDING="4" width="100%"><tr><td BGCOLOR="'.$config['site']['lightborder'].'" align="left" width="20%"><b>Player Health:</b></td> <td BGCOLOR="'.$config['site']['lightborder'].'" align="left">'.$player->getHealth().'/'.$player->getHealthMax().'<div style="width: 100%; height: 3px; border: 1px solid #000;"><div style="background: red; width: ' . $hpPercent . '%; height: 3px;"></td></tr> <tr><td BGCOLOR="'.$config['site']['darkborder'].'" align="left"><b>Player Mana:</b></td><td BGCOLOR="'.$config['site']['darkborder'].'" align="left">' . $player->getMana() . '/' . $player->getManaMax() . '<div style="width: 100%; height: 3px; border: 1px solid #000;"><div style="background: blue; width: '.$manaPercent.'%; height: 3px;"></td></tr></table><tr>'; $expCurrent = Functions::getExpForLevel($player->getLevel()); $expNext = Functions::getExpForLevel($player->getLevel() + 1); $expLeft = bcsub($expNext, $player->getExperience(), 0); $expLeftPercent = max(0, min(100, ($player->getExperience() - $expCurrent) / ($expNext - $expCurrent) * 100)); $main_content .= '<tr><table CELLSPACING="1" CELLPADDING="4"><tr><td BGCOLOR="'.$config['site']['lightborder'].'" align="left" width="20%"><b>Player Level:</b></td><td BGCOLOR="'.$config['site']['lightborder'].'" align="left">'.$player->getLevel().'</td></tr> <tr><td BGCOLOR="'.$config['site']['darkborder'].'" align="left"><b>Player Experience:</b></td><td BGCOLOR="'.$config['site']['darkborder'].'" align="left">' . $player->getExperience() . ' EXP.</td></tr> <tr><td BGCOLOR="' . $config['site']['lightborder'].'" align="left"><b>To Next Level:</b></td><td BGCOLOR="'.$config['site']['lightborder'].'" align="left">You need <b>' . $expLeft . ' EXP</b> to Level <b>' . ($player->getLevel() + 1) . '</b>.<div title="' . (100 - $expLeftPercent) . '% left" style="width: 100%; height: 3px; border: 1px solid #000;"><div style="background: red; width: '.$expLeftPercent.'%; height: 3px;"></td></tr></table></td></tr></table></tr></TABLE></td>'; if($config['site']['show_skills_info']) { $main_content .= '<center><strong>Skills</strong><table cellspacing="0" cellpadding="0" border="1" width="200"> <tbody> <tr> <td style="text-align: center;"><a href="?subtopic=highscores&list=experience"><img src="images/skills/level.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=magic"><img src="images/skills/ml.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=fist"><img src="images/skills/fist.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=club"><img src="images/skills/club.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=sword"><img src="images/skills/sword.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=axe"><img src="images/skills/axe.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=distance"><img src="images/skills/dist.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=shield"><img src="images/skills/def.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=fishing"><img src="images/skills/fish.gif" alt="" style="border-style: none"/></td> </tr> <tr> <tr bgcolor="' . $config['site']['darkborder'] . '"><td style="text-align: center;"><strong>Level</strong></td> <td style="text-align: center;"><strong>ML</strong></td> <td style="text-align: center;"><strong>Fist</strong></td> <td style="text-align: center;"><strong>Mace</strong></td> <td style="text-align: center;"><strong>Sword</strong></td> <td style="text-align: center;"><strong>Axe</strong></td> <td style="text-align: center;"><strong>Dist</strong></td> <td style="text-align: center;"><strong>Def</strong></td> <td style="text-align: center;"><strong>Fish</strong></td> </tr> <tr> <tr bgcolor="' . $config['site']['lightborder'] . '"><td style="text-align: center;">' . $player->getLevel() . '</td> <td style="text-align: center;">' . $player->getMagLevel().'</td> <td style="text-align: center;">' . $player->getSkill(0) . '</td> <td style="text-align: center;">' . $player->getSkill(1) . '</td> <td style="text-align: center;">' . $player->getSkill(2) . '</td> <td style="text-align: center;">' . $player->getSkill(3) . '</td> <td style="text-align: center;">' . $player->getSkill(4) . '</td> <td style="text-align: center;">' . $player->getSkill(5) . '</td> <td style="text-align: center;">' . $player->getSkill(6) . '</td> </tr> </tbody> </table> <div style="text-align: center;"> <br /> </div></center>'; } $main_content .= '<center><table cellspacing="0" cellpadding="0" border="1" width="200"> <tbody> <tr bgcolor="' . $config['site']['darkborder'] . '"> <td style="text-align: center;"><img src="?subtopic=signature&name=' . urlencode($player->getName()) . '" alt="Signature" /></td> </tr> <tr bgcolor="' . $config['site']['lightborder'] . '"> <td style="text-align: center;"><b>Link:</b><input type="text" name="" size="100" value="' . htmlspecialchars($config['server']['url'] . '?subtopic=signature&name=' . urlencode($player->getName())) . '" /></td> </tr> </tbody> </table> <div style="text-align: center;"> <br /> </div></center>'; if(isset($config['site']['quests']) && is_array($config['site']['quests']) && count($config['site']['quests']) > 0) { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD align="left" COLSPAN=2 CLASS=white><B>Quests</B></TD></TD align="right"></TD></TR>'; $number_of_quests = 0; foreach($config['site']['quests'] as $questName => $storageID) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $number_of_quests++; $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=95%>' . $questName . '</TD>'; if($player->getStorage($storageID) === null) { $main_content .= '<TD><img src="images/false.png"/></TD></TR>'; } else { $main_content .= '<TD><img src="images/true.png"/></TD></TR>'; } } $main_content .= '</TABLE></td></tr></table><br />'; } $deads = 0; //deaths list $player_deaths = new DatabaseList('PlayerDeath'); $player_deaths->setFilter(new SQL_Filter(new SQL_Filter(new SQL_Field('player_id'), SQL_Filter::EQUAL, $player->getId()), SQL_Filter::CRITERIUM_AND,new SQL_Filter(new SQL_Field('id', 'players'), SQL_Filter::EQUAL, new SQL_Field('player_id', 'player_deaths')))); $player_deaths->addOrder(new SQL_Order(new SQL_Field('time'), SQL_Order::DESC)); $player_deaths->setLimit(20); foreach($player_deaths as $death) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $deads++; $dead_add_content .= "<tr bgcolor=\"".$bgcolor."\"><td width=\"20%\" align=\"center\">".date("j M Y, H:i", $death->getTime())."</td><td>Died at level " . $death->getLevel() . " by " . $death->getKillerString(); if($death->getMostDamageString() != '' && $death->getKillerString() != $death->getMostDamageString()) $dead_add_content .= ' and ' . $death->getMostDamageString(); $dead_add_content .= "</td></tr>"; } if($deads > 0) $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD COLSPAN=2 CLASS=white><B>Deaths</B></TD></TR>' . $dead_add_content . '</TABLE><br />'; if(!$player->getHideChar()) { $main_content .= '<TABLE BORDER=0><TR><TD></TD></TR></TABLE><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD COLSPAN=2 CLASS=white><B>Account Information</B></TD></TR>'; if($account->getRLName()) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=20%>Real name:</TD><TD>' . $account->getRLName() . '</TD></TR>'; } if($account->getLocation()) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=20%>Location:</TD><TD>' . $account->getLocation() . '</TD></TR>'; } $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); if($account->getLastLogin()) $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=20%>Last login:</TD><TD>' . date("j F Y, g:i a", $account->getLastLogin()) . '</TD></TR>'; else $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=20%>Last login:</TD><TD>Never logged in.</TD></TR>'; if($account->getCreateDate()) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=20%>Created:</TD><TD>' . date("j F Y, g:i a", $account->getCreateDate()) . '</TD></TR>'; } $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD>Account Status:</TD><TD>'; $main_content .= ($account->isPremium() > 0) ? '<b><font color="green">Premium Account</font></b>' : '<b><font color="red">Free Account</font></b>'; if($account->isBanned()) { if($account->getBanTime() > 0) $main_content .= '<font color="red"> [Banished until '.date("j F Y, G:i", $account->getBanTime()).']</font>'; else $main_content .= '<font color="red"> [Banished FOREVER]</font>'; } $main_content .= '</TD></TR></TABLE>'; $main_content .= '<br><TABLE BORDER=0><TR><TD></TD></TR></TABLE><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD COLSPAN=5 CLASS=white><B>Characters</B></TD></TR> <TR BGCOLOR="' . $bgcolor . '"><TD><B>Name</B></TD><TD><B>Level</B></TD><TD><b>Status</b></TD><TD><B> </B></TD></TR>'; $account_players = $account->getPlayersList(); $player_number = 0; foreach($account_players as $player_list) { if(!$player_list->getHideChar()) { $player_number++; $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); if(!$player_list->isOnline()) $player_list_status = '<font color="red">Offline</font>'; else $player_list_status = '<font color="green">Online</font>'; $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=52%><NOBR>'.$player_number.'. '.htmlspecialchars($player_list->getName()); $main_content .= ($player_list->isDeleted()) ? '<font color="red"> [DELETED]</font>' : ''; $main_content .= '</NOBR></TD><TD WIDTH=25%>'.$player_list->getLevel().' '.htmlspecialchars($vocation_name[$player_list->getVocation()]).'</TD><TD WIDTH="8%"><b>'.$player_list_status.'</b></TD><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=characters" METHOD=post><TR><TD><INPUT TYPE="hidden" NAME="name" VALUE="'.htmlspecialchars($player_list->getName()).'"><INPUT TYPE=image NAME="View '.htmlspecialchars($player_list->getName()).'" ALT="View '.htmlspecialchars($player_list->getName()).'" SRC="'.$layout_name.'/images/buttons/sbutton_view.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></FORM></TABLE></TD></TR>'; } } $main_content .= '</TABLE></TD><TD><IMG SRC="'.$layout_name.'/images/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD></TR></TABLE>'; } } else $search_errors[] = 'Character <b>'.htmlspecialchars($name).'</b> does not exist.'; } if(!empty($search_errors)) { $main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($search_errors as $search_error) $main_content .= '<li>'.$search_error; $main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; } $main_content .= '<BR><BR><FORM ACTION="?subtopic=characters" METHOD=post><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>'; $main_content .= '</TABLE>';1 ponto -
TFS 0.4 CAST
TFS 0.4 CAST
Lurk reagiu a luanluciano93 por uma resposta no tópico
1 pontoOlá pessoal, tive a iniciativa de criar esse tópico para atualizar e otimizar as sources do TFS 0.4 DEV que é uma das mais usadas no mundo do otserv. Conteúdo totalmente gratuito e pretendemos melhora-lo cada vez mais. Qualquer um pode colaborar, postando bugs, erros, otimizando códigos, comentar aqui no tópico, toda ajuda é bem vinda, vamos tornar essa a melhor source disponível. Conto com vocês. Versão do Tibia: 8.60 Alguns sistema já implementados na source: • TFS 0.4 DEV rev 3777 (by TFS Team) • Anti-Divulgação (.servegame, .no-ip, .net, .com, .org, .pl, .biz, .br, .sytes, .info) • War System • Cast System (by Summ) • Retirado bugs de anti-push .. • Retirado bugs de elfbot ... • Retirado erro de não aceitar outros items ... • Retirado erro de Malformed File ... • Add creatureevent onMoveItem() ... • Add função getCreaturePathTo () ... • E vários outros! Complementos: • Add cast System (passo a passo): [AQUI] • Pode add o comando na config.lua: healthHealingColor = COLOR_GREEN -- [podendo alterar a cor]. manaHealingColor = COLOR_DARKPURPLE -- [podendo alterar a cor]. Downloads: • Distro Compilada 32x • Distro Compilada 64x • Sources 7 TESTADO EM WINDOWS, DEBIAN 7.8, UBUNTU 12.04 E 14.05! • Compilar em Linux: • Erros para arrumar: Obrigado ao runeraserver pelo incentivo em fixa-la para linux E é isso pessoal, espero ter ajudado, abraços1 ponto -
Liberando espaço de sprites no old client
Liberando espaço de sprites no old client
miguelshtaek1 reagiu a GabrielSapient por uma resposta no tópico
1 pontoConsegui liberar mais de 15 mil sprites usando essa ferramenta no Object Builder. 1. Baixe o Object Builder na seção: GitHub Latest commits compiled Latest commits Lembrando que necessário o Adobe Air para rodar qualquer versão do Object Builder. 2. Siga: 2.1: Abra suas sprites por ele; OBS: Faça um backup de suas sprites antes, este programa ainda está em beta, mas comigo foi certinho. 2.2: Tools> Sprites Optimizer: 2.3: Deixe desse jeito para melhor resultado, e clique em Start: 2.4: Veja o resultado: 3. Créditos: Eu - pelo tutorial; Nailson - Por ser o criador do object builder, e contribuições de: https://github.com/Mignari/ObjectBuilder/graphs/contributors.1 ponto -
Erondino v17.1 By {ABEROS} BPO Open Source
Erondino v17.1 By {ABEROS} BPO Open Source
Danielcrf reagiu a Valakinhas por uma resposta no tópico
1 pontoV17.1 *Informações +Edições Spoiler Foi adicionado o mapa novamente +Print's Spoiler http://prntscr.com/757ioo http://prntscr.com/757kja +Erros/Bug's +Creditos +Download + Scan Server: Link OTC: Link Scan Server: Link Dat e spr desbloqueado: Link QUALQUER ERRO E BUG, COMENTAR NESSE TÓPICO Desculpa pelos erros ortográficos. ah antes que me esqueça ID da vara de pesca 25801 ponto -
[creaturescripts] Recompensa por level para X vocations
Para quem não sabe como funciona o script : Cada vocation ao atingir X level ganha uma X recompensa(podendo ganhar mais de um item por level). • Adicionando o script • Em "data/creaturescripts/scripts/vocreward.lua" : local c = { [{1,5}] = { [13] = {items = {{itemid = 2191, count = 1}}, storage = 40953}, [19] = {items = {{itemid = 2188, count = 1}}, storage = 40954}, [22] = {items = {{itemid = 8921, count = 1}}, storage = 40955}, [26] = {items = {{itemid = 2189, count = 1}}, storage = 40956}, [33] = {items = {{itemid = 2187, count = 1}, {itemid = 2152, count = 25}}, storage = 40957}, [37] = {items = {{itemid = 8920, count = 1}, {itemid = 2152, count = 50}}, storage = 40958}, [42] = {items = {{itemid = 8922, count = 1}, {itemid = 2160, count = 1}}, storage = 40959} }, [{2,6}] = { [13] = {items = {{itemid = 2186, count = 1}}, storage = 40953}, [19] = {items = {{itemid = 2185, count = 1}}, storage = 40954}, [22] = {items = {{itemid = 8911, count = 1}}, storage = 40955}, [26] = {items = {{itemid = 2181, count = 1}}, storage = 40956}, [33] = {items = {{itemid = 2183, count = 1}, {itemid = 2152, count = 25}}, storage = 40957}, [37] = {items = {{itemid = 8912, count = 1}, {itemid = 2152, count = 50}}, storage = 40958}, [42] = {items = {{itemid = 8910, count = 1}, {itemid = 2160, count = 1}}, storage = 40959} }, [{3,7}] = { [12] = {items = {{itemid = 2389, count = 5}}, storage = 40953}, [16] = {items = {{itemid = 2389, count = 10}}, storage = 40954}, [20] = {items = {{itemid = 3965, count = 10}}, storage = 40955}, [25] = {items = {{itemid = 7378, count = 10}}, storage = 40956}, [30] = {items = {{itemid = 2456, count = 1}, {itemid = 2544, count = 100}}, storage = 40957}, [35] = {items = {{itemid = 7364, count = 100}, {itemid = 2152, count = 75}}, storage = 40958}, [40] = {items = {{itemid = 7365, count = 100}, {itemid = 2160, count = 1}}, storage = 40959} }, [{4,8}] = { [15] = {items = {{itemid = 2409, count = 1}}, storage = 40953}, [30] = {items = {{itemid = 2392, count = 1}, {itemid = 2152, count = 75}}, storage = 40957}, [40] = {items = {{itemid = 2407, count = 1}, {itemid = 2160, count = 1}}, storage = 40959} } } function onAdvance(cid, skill, oldlevel, newlevel) if skill ~= SKILL__LEVEL then return true end for voc, x in pairs(c) do if isInArray(voc, getPlayerVocation(cid)) then for level, z in pairs(x) do if newlevel >= level and getPlayerStorageValue(cid, z.storage) ~= 1 then local text = "" for v = 1, #z.items do count, info = z.items[v].count, getItemInfo(z.items[v].itemid) local ret = ", " if v == 1 then ret = "" elseif v == #z.items then ret = " and " end text = text .. ret text = text .. (count > 1 and count or info.article).." "..(count > 1 and info.plural or info.name) doPlayerAddItem(cid, z.items[v].itemid, z.items[v].count) end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabens, voce alcancou o level "..level.." e obteve "..text..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FIREWORK_YELLOW) setPlayerStorageValue(cid, z.storage, 1) end end end end return true end Em "data/creaturescripts/creaturescripts.xml" : <event type="advance" name="VocReward" event="script" value="vocreward.lua"/> Em "data/creaturescripts/scripts/login.lua" : registerCreatureEvent(cid, "VocReward") • Configurando •1 ponto
-
Sprite do cp do Pxg, e itens do Pxg
Sprite do cp do Pxg, e itens do Pxg
Allone reagiu a Developer Berg por uma resposta no tópico
1 pontoOlá Galerinha como eu estou " Bonzinho Hoje " heuheu venho aqui ter a honra de passar para vcs vários itens do PXG, é isso mesmo que vc leu e quais são esses itens ? ( Sabem aquele novo cp que o Pxg tem ? aquele bonito que teve agr no update ? Ss é ele mesmo, fora outros itens muito massas que vou deixar os prints ) Obs: coloquei esse tópico nessa área por causa que no tópico " Download De Sprites " n ta podendo + criar tópico lá, então Agradeço se moverem pra o lugar Certo Link do download --->>> http://www.mediafire.com/download/9v349c4kjdv94s1/Sprites+fodas.rar Scan --->>>https://www.virustotal.com/pt/file/c16b849d74e50f467c2a048957e7b604016d2cfdd5b218b34ba86115a92b06b8/analysis/1430576442/ Obs: quando for abrir no Object Builder vc precisa marcar as opções Estendido e Transparência1 ponto -
[TFS 1.2] Bless free for low level - Bless de graça para level baixo
[TFS 1.2] Bless free for low level - Bless de graça para level baixo
Viniciusvgs10 reagiu a Tricoder por uma resposta no tópico
1 pontoInstalando Coloque isso depois de function onLogin(player) em data/creaturescripts/scripts/others/login.lua -- Free bless freeBless = { level = 50, blesses = {1, 2, 3, 4, 5} } if player:getLevel() <= freeBless.level then for i=1,#freeBless.blesses do doPlayerAddBlessing(player, freeBless.blesses[i]) end end Créditos eduardojuniosm1 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)
apolosexygostoso reagiu a Qwizer por uma resposta no tópico
1 pontotem que ser o 1.0 de preferenca com as sources que foi postada.1 ponto -
(Resolvido)Spell de Sacrificio
1 pontoVer isso. http://www.tibiaking.com/forum/topic/36279-pedido-spells-auto-explosao/1 ponto
-
tfs 0.4 rev 3884
1 pontoTente removendo: type > SHOOT_EFFECT_NONE ||1 ponto
-
tfs 0.4 rev 3884
1 ponto
-
OT LIST NAO ADICIONA
1 pontoDepende de onde voce esta hospedando o ip com a mascara de ip (dns), hospede no no-ip que fica melhor creio eu1 ponto
-
Afk System!
1 pontoALO, COM QUEM EU FALO? ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ INTRODUÇÃO Galera, nesse topico estarei ensinando um projeto meu de Afk System, que foi esqueçido. Esse sistema é bem basico e simples, porém é legal, util e interresante... Só avisando... Ele é totalmente configuravel xD Então vamos la... ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ COMO FUNCIONA O jogador digitará um comando e fica saindo automaticamente umas mensagens em cima dele, também apareçerá uma mensagem de o jogador estará ausente, e apareçerá tambem uma janela dissendo que se o jogador se mover será cancelado o sistema. NÃO INTENDEU? VEJA COM SEUS PROPRIOS OLHOS. ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ ENSINANDO Crie um arquivo chamado "Afk" em tipo ".lua" em: data\talkactions\scripts e coloca essas configurações dentro do arquivo criado: Após fazer isso abra o arquivo "TalkActions" do tipo ".xml". Localizado em: data\talkactions E coloque essa linha no aquivo: ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ CONFIGURANDO ESSAS CONFIGURAÇÕES SÃO PARA TROCAR AS MENSAGENS. Onde está escrito em VERMELHO, é onde fica as mensagem que fica em cima do Jogador. Obs¹: Caso queira mensagem diferentes, digite-as entre aspas e separadas por virgula Obs²: Essas mensagens ficam repetindo sequencialmente. O número escrito em AZUL, é o tempo em segundos que a mensagem apareçerá (Intervalo) Em AMARELO, é a mensagem que apareçerá em vermelho, essa mensagem é como se fosse porque o jogador está ausente(Configurado somente no arquivo, não pelo jogador) O CINZA ESCURO, é a mensagem que apereçerá na janela, para alertar o jogador que se ele se mover ele para de mandar essas mensagens. ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ AJUDEI? GOSTOU? FOI BOM? ESTÁ EXPLICATIVO? ESTÁ ORGANIZADO? DA REP+ afinal, não explode o Dedo.. ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬1 ponto
-
Mapping Inspirations
1 pontoOlá Galera do T.K Venho através dessa publicação compartilhar um album de imagens que ajudara muito a qualquer mapper Esse meu album contém mais de 1.000 fotos, de todo estilo de mapas feitos de 2008 a 2012, essas imagens ajuda você mapper a ter inspirações na hora de fazer qualquer mapa, mais lembrando, apenas inspirações e não copias. Eu já fui um mapper bom em meados de 2008 a 2011, sempre vivia em forum compartilhando e apreendendo sobre mapping, hoje infelizmente, não possuo mais tempo, eu faço faculdade de Arquitetura e trabalho no ramo, pra ver né oque antes era apenas uma brincadeira levei pro lado pessoal e hoje projeto coisas na vida real haha, pois bem não vou contar sobre mim, segue em anexo algumas imagens e o link de download. Imagens : "AOnde estou? que lugar bonitoo!!" "Nesse frio sombriu, algo bom não se esconde la dentro" "AInda bem que o Navio aguentou o mar congelado" http://www.4shared.com/rar/q-q_k6Ps/fotos_mapping.html?" title="Download do arquivo!" target="_blank"> https://www.virustotal.com/pt/url/a9eca194081cc4ca4f2d331d152ebc7c8733b44940fca4f3b966da966e93454f/analysis/1438196938/ title="Scan do arquivo!" target="_blank""> Ps: se publiquei no lugar errado me corrigam, mas procurei deixar aqui pois, não são mapas para deixar na area de downlaod de mapas, e sim fotos, então achei melhor deixar na area de inspirações de mapping. Mas se estiver errado mova para sessão correta. Att : TIO KAUSEN1 ponto
-
Sprite do cp do Pxg, e itens do Pxg
Tópico aprovado e movido a área correta, obrigado por contribuir.1 ponto
-
Listão de Tutoriais Web
Listão de Tutoriais Web
DiigooMix reagiu a luanluciano93 por uma resposta no tópico
1 pontoListão de Tutoriais Web (Atualização 04/08/2014) Bom, como andei revirando a seção de tutoriais de websites e percebi que tem muitaaaaa coisa boa e que já foi esquecida pelo fato de estar no final da lista desta seção eu resolvi fazer esse listão para ajudar a procura .. chega de papo e vamos lá. Começando ... • [Vídeo-Aula] Criando um website para seu servidor • Instalando Xampp + Website. • Criando website com Vertrigo. • Colocando seu website online. • Criando um servidor com website (Windowns). Métodos de Pagamento ... • Gesior Pagseguro Automático. • [Modern] Pagseguro Automático. • Página de pagamentos [paypal, pagseguro e deposito]. Protegendo ... • Protegendo Gesior e Xampp. Gesior AAC ... • Inserir painel de acessos. • Sistema de Tickets. • Página de Confirmar Doação. • Box Top 5 Level. • Página de Guild War System. • Página de Guild War System [TFS 1.0]. • Página de Calendário de Eventos. • Página de Chat. • Página de Death List Modificada. • Página de Characters Modificada. • Página de Most Creature Killers. • Página de Montarias (Mounts). • Página do evento Battlefield. • Página que mostra informações do servidor. • Página de Quests Status. • Top 5 items mais vendidos. • Adicionando Lista de Vítimas em Characters. Modern AAC... • Criando site para Poketibia. • Criando novas vocations. • Shop System. • Adicionando Change Sex no shop. Znote AAC... • Sistema Helpdesk. Nicaw AAC... • Shop System. Outros ... • [phpMYADMIN] Comandos úteis! • Arrumando Acentos. • Monster Loot Checker. • Fundamentos do PHP e OtServ. • Retirando :8090 do Website. • Urls Limpas1 ponto -
[SPELL] Kamui in
[SPELL] Kamui in
Ackerzin reagiu a xWhiteWolf por uma resposta no tópico
1 pontoFala galera do TK, tirei essa madrugada pra trazer um conteúdo novo a pedido do membro @alanmtd1, trata-se da spell Kamui do Obito só que eu fiz ela um pouquinho diferente; Testado em TFS 0.3.6, cliente 8.54; Descrição pra quem não conhece: O player fala 'kamui in', se ele tiver com um target vai entrar e o target; do contrário entra ele e todos que estiverem à sua volta; Feito isso eles serão teleportados para o Kamui, um lugar que você vai criar no seu mapa editor e colocar NO-PVP ZONE, spawn de monstro e NO Logout. Preste bem atenção nisso porque se você esquecer quaisquer um desses vai dar bug. Depois de X segundos todos os players/monstros que vc teleportou voltarão para onde estavam (a menos que eles morram no kamui). Porque isso ocorre? Simples, eu só fui perceber como os caras do Naruto Online fizeram esse script depois de ter terminado a minha versão e eu to com preguiça demais de refazer tudo pra ficar igualzinho à versão deles hahauhauhauh então é importante que o kamui seja um local onde não haja mortes, justamente pra não haverem mensagens de erro tipo essa: [26/07/2014 04:27:46] [Error - Spell Interface] [26/07/2014 04:27:46] In a timer event called from: [26/07/2014 04:27:46] data/spells/scripts/especiais/kamui.lua:onCastSpell [26/07/2014 04:27:47] Description: [26/07/2014 04:27:47] (luaDoTeleportThing) Thing not found Bom, vamos ao script: Agora em spells.xml: <instant name="KAMUI" words="kamui in" lvl="120" mana="200" prem="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="especiais/kamui.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> Bom, pra configurar vc mexe na parte inicial do script e ja tá tudo explicadinho... quem sabe um dia eu refaça esse script pra ficar igualzinho o deles auhuhea até lá usem essa versão aí que até que está bem caprichadinha. Toda vez que alguém morrer no kamui vai aparecer uma mensagem de erro mas ela não afeta em nada, podem ficar relaxados. O único jeito de remover isso é impedindo as mortes dentro do kamui oque tira toda a graça da coisa, espero que tenham gostado ;]1 ponto -
[SPELL] Kamui in
[SPELL] Kamui in
Rooan reagiu a xWhiteWolf por uma resposta no tópico
1 pontoentão é só remover todos os addEvent... ficando assim: local config = { pos = {x=42, y=234, z=7}, -- posição que será teleportado effect1 = 66, -- efeito ao ser teleportado effect2 = 10, -- efeito ao voltar storage = 19329, -- storage que fica guardado o cooldown from = {x=35, y=228, z=7}, --- quina do kamui (pra impedir players de usarem o kamui dentro do kamui) to = {x=49, y=240, z=7}, --- quina do kamui (pra impedir players de usarem o kamui dentro do kamui) cooldown = 60, --- tempo entre um uso e outro (após usar a spell vc vai ficar X segundos sem poder usar ela novamente) msg = "KAMUI OUT!" } local exceptions = {'trainer', 'aegis', 'god anderson'} --- nome das criaturas que não poderão ser levadas pro kamui (sempre em minúsculo e entre aspas) function canEffect(pos, pz, proj) -- Night Wolf based on Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTilePzInfo(pos) and not pz then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function onCastSpell(cid, var) local pos = getPlayerPosition(cid) if isInRange(pos, config.from, config.to) then doPlayerSendCancel(cid, "You cannot use Kamui spell inside the Kamui!") return false end if os.time() - getPlayerStorageValue(cid, config.storage) >= config.cooldown then doPlayerSetStorageValue(cid, config.storage, os.time()) if isCreature(getCreatureTarget(cid)) then target = getCreatureTarget(cid) for i = 1, #exceptions do if getCreatureName(target):lower() == exceptions[i] then doPlayerSendCancel(cid, "You can't take ".. getCreatureName(target) .." to Kamui.") return false end end --------------- PLAYER----------- doSendMagicEffect(pos, config.effect1) doTeleportThing(cid, config.pos) -------------------- OPONENTE ---------------- doSendMagicEffect(getThingPos(target), config.effect1) doTeleportThing(target, config.pos) ------------------------------------- if isPlayer(target) and isCreature(cid) then doPlayerSendTextMessage(target, 27, "You were teleported by ".. getCreatureName(cid) ..".") end if isPlayer(cid) and isCreature(target) then doPlayerSendTextMessage(cid, 27, "You teleported ".. getCreatureName(target) .."!") end else ---------- levar quem tá em volta do player --------------- local teleportPosition = { {x = pos.x, y = pos.y - 1, z = pos.z}, {x = pos.x, y = pos.y + 1, z = pos.z}, {x = pos.x - 1, y = pos.y, z = pos.z}, {x = pos.x + 1, y = pos.y, z = pos.z}, {x = pos.x - 1, y = pos.y + 1, z = pos.z}, {x = pos.x - 1, y = pos.y - 1, z = pos.z}, {x = pos.x + 1, y = pos.y - 1, z = pos.z}, {x = pos.x + 1, y = pos.y + 1, z = pos.z} } local mobas = {} local checker = 0 for _, tPos in ipairs(teleportPosition) do doSendMagicEffect(tPos, config.effect2) local mob = getTopCreature(tPos).uid if canEffect (tPos) and mob ~= 0 and (isMonster(mob) or isPlayer(mob)) then for i = 1, #exceptions do if getCreatureName(mob):lower() == exceptions[i] then checker = 1 break end end if checker ~= 1 then table.insert(mobas, mob) end end end if #mobas > 0 then for _, pid in ipairs(mobas) do doSendMagicEffect(getThingPos(pid), config.effect1) doTeleportThing(pid, config.pos) if isPlayer(pid) and isCreature(cid) then doPlayerSendTextMessage(pid, 27, "You were teleported by ".. getCreatureName(cid) ..".") end end end ---------------------------- doSendMagicEffect(pos, config.effect1) doTeleportThing(cid, config.pos) if isPlayer(cid) then doPlayerSendTextMessage(cid, 27, "You teleported yourself.") end end else doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, config.storage))).." seconds.") end return true end1 ponto -
(Resolvido)[pedido Spells] auto-explosao
(Resolvido)[pedido Spells] auto-explosao
Dersonpe reagiu a xWhiteWolf por uma resposta no tópico
1 pontolocal cooldown = 24*60*60 function onCastSpell(cid, var) if os.time() - getPlayerStorageValue(cid, 19329) >= cooldown then doPlayerSetStorageValue(cid, 19329, os.time()) local target = getCreatureTarget(cid) doCreatureAddHealth(cid, -getCreatureHealth(cid)) doCreatureAddHealth(target, -getCreatureHealth(target)) doCreatureSay(cid, "SUICIDE!!", 20) doSendMagicEffect(getPlayerPosition (cid), 0) doSendMagicEffect(getPlayerPosition (target), 0) else doPlayerSendCancel(cid, "Your skill is in cooldown, you can use it again after "..math.floor((cooldown - (os.time() - getPlayerStorageValue(cid, 19329)))/60).." minute(s).") end return true end <instant name="Suicide" words="suicide" lvl="50" mana="20" prem="1" range="4" needtarget="1" blockwalls="1" exhaustion="2000" groups="1,2000" icon="88" needlearn="0" event="script" value="especiais/assistedsuicide.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant>1 ponto -
OTClient pararecido com PXG! [Download]
Teria um tutorial completo sobre como editar cada coisinha? Consegui por dat e spr normalmente, mas eu estou colocando é do próprio tibia, quero fazer uso deste cliente em meu ot tibia, consegui abrir e até entrar no jogo . O que quero saber é como configurar as coisas em sua totalidade, como por exemplo, a parte onde ficam os equips, como faço para que apareçam os equips como no tibia, elmo, armor, arma direita, arma esquerda(escudo), legs, bots. Desde já agradeço1 ponto
-
(Resolvido)Bônus no Conjunto de itens
(Resolvido)Bônus no Conjunto de itens
Kranxz reagiu a xWhiteWolf por uma resposta no tópico
1 pontosegue essa lógica: movements\scripts\set.lua: -- NW SET SYSTEM local config = { slot1 = 4, slot2 = 8, item1 = 8889, item2 = 11234 } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, 50) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, 50) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, 50) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, 50) function onEquip(cid, item, slot) if getPlayerSlotItem(cid, config.slot2).itemid == config.item2 and getPlayerSlotItem(cid, config.slot1).itemid == config.item1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Now that you're using the full set you'll receive a special bonus...") doAddCondition(cid, condition) doSendMagicEffect(getCreaturePos(cid), 10) end return true end function onDeEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're no longer receiving the special bonus..") doRemoveCondition(cid, CONDITION_ATTRIBUTES) return true end movements.xml <!-- Set Items --> <movevent type="Equip" itemid="11234" slot="feet" event="script" value="set.lua"/> <movevent type="Equip" itemid="8889" slot="armor" event="script" value="set.lua"/> <movevent type="DeEquip" itemid="11234" slot="feet" event="script" value="set.lua"/> <movevent type="DeEquip" itemid="8889" slot="armor" event="script" value="set.lua"/>1 ponto -
Fazendo Foto Do Mapa Completo!
1 pontoCara , abra o mapa , depois vai em file no seu remeres , logo apos clique em export depois export minimapa , logo apos selecione o local desejado a salvar coloque um nome e cliquem em salvar , ele vai carregar uns 13 minimapa se não me engano são os "Z" ai se vai no no mine mapa 7 e pronto ajudei rep+ , se tiver vaga pra mapper no seu poektibia se quiser que eu seja só fala com migo1 ponto
-
Correção Clonar items NPC usando ElfBot
Se você já teve um servidor, já sabe como que é isso. Por falha humana, em todos npcs esquecerem de definir um valor minimo para os itens agrupáveis ser vendido, com isso se você coloca-se no elfbot auto buyitems IDdoITEM 0 ele iria comprar e não pagar nada. Para os que não corrigiram pelos NPCS tambem há como corrigir pelas sources. npc.cpp if(NpcState* npcState = getState(player, true)) { npcState->amount = amount; npcState->subType = count; npcState->itemId = itemId; npcState->buyPrice = getListItemPrice(itemId, SHOPEVENT_BUY); npcState->ignoreCap = ignoreCap; npcState->inBackpacks = inBackpacks; const NpcResponse* response = getResponse(player, npcState, EVENT_PLAYER_SHOPBUY); executeResponse(player, npcState, response); } substitua por if(NpcState* npcState = getState(player, true)) { if(amount <= 0){ amount = 1; } npcState->amount = amount; npcState->subType = count; npcState->itemId = itemId; npcState->buyPrice = getListItemPrice(itemId, SHOPEVENT_BUY); npcState->ignoreCap = ignoreCap; npcState->inBackpacks = inBackpacks; const NpcResponse* response = getResponse(player, npcState, EVENT_PLAYER_SHOPBUY); executeResponse(player, npcState, response); } Créditos: Matheus Mkalo1 ponto
-
Pokemons iniciais
Pokemons iniciais
simahamed reagiu a The Legend Youtube por uma resposta no tópico
1 pontoAmigo se nao der certo me avise Adicione Esse Seguinte linha no: actions/actions.xml <!-- Quests POD --> <action uniqueid="9996" event="script" value="pokeballs.lua"/> <action uniqueid="9997" event="script" value="pokeballs.lua"/> <action uniqueid="9998" event="script" value="pokeballs.lua"/> Feito isso Crie Uma pasta dentro do actions/script/pokeballs.xml e cole isto dentro -- annihilator chests function onUse(cid, item, frompos, item2, topos) local hp = 800 if item.uid == 9996 then queststatus = getPlayerStorageValue(cid,8749) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"Caterpie.") local ball1 = doPlayerAddItem(cid,2522,1) doPlayerAddItem(cid,2149,50) doItemSetAttribute(ball1, "aid", hp) setPlayerStorageValue(cid,8749,1) else doPlayerSendTextMessage(cid,22,"Voce ja pegou seu pokemon.") end elseif item.uid == 9997 then queststatus = getPlayerStorageValue(cid,8749) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"Ratata.") local ball2 = doPlayerAddItem(cid,2527,1) doPlayerAddItem(cid,2149,50) doItemSetAttribute(ball2, "aid", hp) setPlayerStorageValue(cid,8749,1) else doPlayerSendTextMessage(cid,22,"Voce ja pegou seu pokemon.") end elseif item.uid == 9998 then queststatus = getPlayerStorageValue(cid,8749) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"Weddle.") local ball3 = doPlayerAddItem(cid,2522,1) doPlayerAddItem(cid,2149,50) doItemSetAttribute(ball3, "aid", hp) setPlayerStorageValue(cid,8749,1) else doPlayerSendTextMessage(cid,22,"Voce ja pegou seu pokemon.") end else return 0 end return 1 end e Pronto e lembrando se nao der certo me avise1 ponto -
[Talkaction] !aol elaborado
1 pontoTodo ot apelado ou global precisa desse comando, mas o meu eh um pouco melhor T.T Em talkactions/scripts: local config = { level = 10, -- level minimo price = 10000, -- preço unidade effect = CONST_ME_POFF, -- efeito ao comprar aol id = 2173 -- id do item comprado (aol no caso) } function onSay(cid, words, param) if param == "" and doPlayerRemoveMoney(cid,config.price)and getPlayerLevel(cid) >= config.level then doPlayerAddItem(cid, config.id) doSendMagicEffect(getThingPos(cid), config.effect) elseif not isNumeric(param) or tonumber(param) < 0 then doPlayerSendCancel(cid, "Command positive numeric param is required.") else local config2 = { error = "You do not have enought level "..config.level.." or money ("..config.price*param.."gps)", msg = "You bought "..param.." amulet of loss, it costs "..(tonumber(param)*config.price).."gps." } if getPlayerLevel(cid) >= config.level and doPlayerRemoveMoney(cid, config.price*tonumber(param)) then doSendMagicEffect(getThingPos(cid), config.effect) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config2.msg) for i = 1,param do doPlayerAddItem(cid, config.id, 1) end else doPlayerSendCancel(cid, config2.error) end end return true end[/PHP] Talkactions.xml: [PHP]<talkaction words="!aol;/aol" event="script" value="aol.lua"/> Obs: Esse script nao eh do lá aquelas coisas mas me ensinou algumas coisas (: Obs2: Faz um tempo legal que fiz esse script.1 ponto
-
Compilar Tibiaeditor
-1 pontosPreciso de ajuda para construir essas fontes https://github.com/asamy45/TibiaEditor quando eu abro o Visual Studio 2010, abre o Wizard Convert para converter as fontes , já que foi feito em uma versão anterior do VS , e no fim da conversão aparecem estes avisos: e quando eu tento construir da desses erros : pelo que entendi diz que os arquivos não estão no lugar que pede , mas os arquivos estão lá ... e como eu sou muito de noob quando se trata dos erros que aparecem nos programas , peço a sua ajuda, alguém pode me ajudar ?-1 pontos