Ir para conteúdo

Tricoder

Héroi
  • Registro em

  • Última visita

Tudo que Tricoder postou

  1. Magina rs, se surgir novamente problemas como esse, cria um tópico aqui porque é mais fácil de alguém ver e te ajudar.
  2. Quando acontecer algum erro, por favor, ao criar um tópico informe QUAL erro aparece, de preferência, coloque imagem porque não tem como adivinhar de qual erro você está falando. O que apareceu ao clicar em submit?
  3. Instalando globalevents.xml <globalevent name="SummonTeleport" interval="1000" script="summon_teleport.lua"/> globalevents/scripts/summon_teleport.lua local distFromMaster = 7 ------ DISTANCIA QUE O SUMMON FICARÁ DO PLAYER function onThink(interval) for _, player in ipairs(Game.getPlayers()) do local playerPos = player:getPosition() if not Tile(playerPos):hasFlag(TILESTATE_PROTECTIONZONE) then local summons = player:getSummons() if #summons ~= 0 then for i = 1, #summons do local summon = summons[i] local summonPos = summon:getPosition() if summonPos.z ~= playerPos.z or summonPos:getDistance(playerPos) > distFromMaster then summon:teleportTo(playerPos) summon:getPosition():sendMagicEffect(CONST_ME_TELEPORT) end end end end end return true end Créditos Printer, luanluciano93
  4. Vê se esse daqui vai:
  5. @Murill, por isso. Provavelmente seja TFS 1.0, o do tópico é só pra versões inferiores. Tente isso e avise se funcionou: globalevents.xml <globalevent name="text" interval="3500" script="text.lua"/> globalevents/scripts/text.lua local effects = { {position = Position(995, 100, 7), text = 'Teleports', effect = CONST_ME_GROUNDSHAKER}, {position = Position(281, 254, 8), text = 'TP Room'}, -- text only {position = Position(307, 254, 1), text = 'Event', effect = CONST_ME_GROUNDSHAKER}, } function onThink(interval) for i = 1, #effects do local settings = effects[i] local spectators = Game.getSpectators(settings.position, false, true, 7, 7, 5, 5) if #spectators > 0 then if settings.text then for i = 1, #spectators do spectators[i]:say(settings.text, TALKTYPE_MONSTER_SAY, false, spectators[i], settings.position) end end if settings.effect then settings.position:sendMagicEffect(settings.effect) end end end return true end OU essa caso não funcione o primeiro: local fields = { {x = 995, y = 1000, z = 7, text = "Teleports", eff = CONST_ME_GROUNDSHAKER}, {x = 281, y = 254, z = 8, text = "TP Room"}, -- text only {x = 307, y = 254, z = 15, text = "Event", eff = CONST_ME_GROUNDSHAKER}, } function onThink(interval) for i = 1, #fields do local pos = fields[i] local people = getSpectators(pos, 7, 5, false, true) if people then if pos.text then doCreatureSay(people[1], pos.text, TALKTYPE_ORANGE_1, false, 0, pos) end if pos.eff then doSendMagicEffect(pos, pos.eff) end end end return true end Acho que agora vai!
  6. Verificou se o bug provavelmente não é no próprio shop?
  7. Tricoder postou uma resposta no tópico em Playground (Off-topic)
    não
  8. Tricoder postou uma resposta no tópico em Ouvidoria
    Fórum está meio desanimado em relação à novos conteúdos, acho que vocês poderiam procurar meios de incentivar o pessoal a postar. Vejo mais pessoas pedindo suporte do que postando conteúdo.
  9. Tricoder postou uma resposta no tópico em Suporte Tibia OTServer
    Posta o script aqui
  10. Pré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;">&nbsp;<br />&nbsp;</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;">&nbsp;<br />&nbsp;</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&#160;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>&#160;</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.'.&#160;'.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>';
  11. <movevent type="Equip" itemid="155" slot="shield" level="8" event="function" value="onEquipItem"> <vocation id="1" showInDescription="1"/> <vocation id="2" showInDescription="1"/> </movevent>
  12. Tricoder postou uma resposta no tópico em Suporte Tibia OTServer
    Altere o tempo que o player pode ficar afk. config.lua idleWarningTime = 14 * 60 * 1000 ---- Com 14 minutos irá avisar pra se mover ou será kikado idleKickTime = 15 * 60 * 1000 ------- Com 15 minutos irá kikar o char Se mesmo assim não kikar, é porque talvez o tile seja anti-kick, ai você terá que ver no RME e até mesmo nos seus scripts.
  13. Descrição Por mais simples que isso pareça ser para alguns, há iniciantes em que não sabem e acabam tendo dúvidas sobre isso. Então resolvi fazer um breve tutorial pra isso. Diretório Vá na pasta de seu website e abra createaccount.php Para localizar alguma dessas funções, dê CTRL + F e cole a frase em inglês. Account Name e Password Quantidade MÍNIMA de letras que a pessoa pode colocar em Account Name. Altere o 6 para o de sua preferência. elseif(strlen($s) < 6) $e['acc'] = 'This account name is too short!'; Quantidade MÁXIMA de letras que a pessoa pode colocar em Account Name. Altere o 6 para o de sua preferência. elseif(strlen($s) > 10) $e['acc'] = 'This account name is too long!'; Nessa parte o < 6 indica a quantidade MÍNIMA que pode ter o password e o > 29 indica o MÁXIMO. if(strlen($s1) < 6 || strlen($s1) > 29) $err[] = 'The password must have at least 8 and less than 30 letters!'; E-mail O 49 indica o número MÁXIMO de letras que pode ter o e-mail. elseif(strlen($s) > 49) $e['email'] = 'Your email address is too long!'; Criação do Personagem/Char < 2 indica o número MÍNIMO de letras que o nome do char pode ter e > 29 indica o número MÁXIMO. elseif(strlen($s) < 2 || strlen($s) > 29) $e['name'] = 'A name must have at least 2 but no more than 29 letters!'; O 1 indica o número MÍNIMO de letras que pode ter uma palavra, ex: Azhaurn a Knight if($len == 1) { $e['name'] = 'This name contains a word with only one letter. Please use more than one letter for each word!'; > 14 número MÁXIMO de letras em uma palavra. Ex: Mrs Azhaurnbehavir elseif($len > 14) { $e['name'] = 'This name contains a word that is too long. Please use no more than 14 letters for each word!'; > 3 número MÁXIMO de PALAVRAS que o nome do char pode ter. Ex: The Old Killer if($total > 3) { $e['name'] = 'This name contains more than 3 words. Please choose another name!'; IMPEDINDO QUE CRIEM CHAR COM DETERMINADO NOME Essencial para impedir que pessoas entrem pra divulgar determinado servidor através do nome do char ou até mesmo xingar os staffers ou se passar por eles. Procure por: $e['name'] = 'This character name is already used. Please select another one!'; Acima disso, há provavelmente: foreach(array Nessa parte você coloca os nomes que você quer que NÃO possa ser utilizado. Por exemplo, no meu está assim: foreach(array('game', 'customer', 'support', 'fuck', 'haha', 'sux', ' abc', 'suck', 'noob', 'tutor', 'admin', 'account', 'gay', 'password', 'manager', 'underwar', 'ot novo', 'entrem', 'ot bosta') as $v) E é isso!
  14. Screenshot do Bug Corrigindo Vá em system/load.compat.php do seu htdocs e procure por: $statusInfo = new ServerStatus('127.0.0.1', $config['server']['statusPort'], 1); Mude para: $statusInfo = new ServerStatus('127.0.0.1', 7171, 1); Lembrando que isso é para o Gesior 2012.
  15. Descrição Automaticamente aparece a mensagem no Broadcast. Instalando data/globalevents/scripts/others/autobroadcast function onThink(interval, lastExecution) local MESSAGE = { "[COMMAND] Use !buypromotion.", "[FORUM] Report bugs on the forum! We have admins checking there every day!", "[Fixing] We are working on to fix POI, INQ and Svargrond Arena. Updates, check our website", "[INFO] You can buy your blessings in Thais temple.", } Game.broadcastMessage(MESSAGE[math.random(1, #MESSAGE)], MESSAGE_STATUS_WARNING) return true end Não esqueça de acrescentar a tag em globalevents.xml Créditos à luanluciano93 por indentar!
  16. Se o que o @Trypox disse não resolver, baixe a libs recente do github.
  17. Vá em data/lib/configuration e altere o valor em vermelho dos pokemons que você quiser aumentar a velocidade: ["Bulbasaur"] = {offense = 0.7, defense = 6, specialattack = 5, vitality = 3.5, agility = 190, exp = 90, level = 20, wildLvl = 30, type = "grass", type2 = "poison"},
  18. Tricoder postou uma resposta no tópico em Tibia Global OTServer
    Screenshots Informações Este datapack foi disponibilizado por R.yan e Iryont Caso queira saber mais, basta acessar: www.thoraot.com Download e Scan Download: MediaFire Senha: TibiaKing.com Scan: VirusTotal
  19. Vá no seu PHPMyAdmin, entre na sua database, clique no simbolo do SQL Execute isso: SET GLOBAL max_allowed_packet = 16776192; Clique em "run" ou "ok".
  20. Provavelmente você esqueceu de abrir as portas no firewall/roteador.
  21. Se seu servidor tiver o sistema de auto loot tenta desativar ele e veja se o erro persiste mesmo assim. Marca como melhor resposta se resolver, se não, avise se persistir o erro.
  22. Informações Sistema disponibilizado e atualizado por hellboy. Para TFS 0.3.6, 0.4 e 1.0: Clique nesse tópico. Basicamente é a mesma função. Adicionado no sistema: lista de players ignorados. Instalando data/lib/hunger.lua -- Hunger System by Kronos -- version="1.2" -- author Hellboy aka Kronos (idea Nandonalt) -- CONFIG hungerConfig = { FIRST_LOGIN = -1, storageStage = 3636, storageOnDeathFeed = 3637, storageDmgAndCheckTicks = 3638, dmgAmount = 1, dmgAndCheckTicks = 5, newPlayerFeed = 30, ignore = { "Account Manager" }, stages = { [1] = {minFeed = 15, msg = "You will die if you don't eat something."}, [2] = {minFeed = 90, msg = "You are very hungry."}, [3] = {minFeed = 200, msg = "You are hungry."}, [4] = {minFeed = 395, msg = "You can eat something."}, [5] = {minFeed = 400, msg = "You are full."} } } -- /CONFIG function Player.hungerIgnorePlayer(self) return isInArray(hungerConfig.ignore, self:getName()) end function Player.hungerGetFeed(self) local feedCondition = self:getCondition(CONDITION_REGENERATION, CONDITIONID_DEFAULT) if feedCondition then return math.floor(feedCondition:getTicks() / 1000) end return 0 end function Player.hungerGetFeedStorage(self) return self:getStorageValue(hungerConfig.storageOnDeathFeed) end function Player.hungerSetFeedStorage(self, value) self:setStorageValue(hungerConfig.storageOnDeathFeed, value) end function Player.hungerGetStage(self) return self:getStorageValue(hungerConfig.storageStage) end function Player.hungerSetStage(self) local feed = self:hungerGetFeed() local tmpStage = 0 for stageNumber, stageInfo in ipairs(hungerConfig.stages) do tmpStage = stageNumber if stageInfo.minFeed >= feed then break end end self:setStorageValue(hungerConfig.storageStage, tmpStage) end function Player.hungerGetStageMsg(self) local stageId = self:getStorageValue(hungerConfig.storageStage) return hungerConfig.stages[stageId].msg end function Player.hungerDoDmg(self) self:addHealth(-hungerConfig.dmgAmount) return true end Adicione em data/lib/lib.lua dofile('data/lib/hunger.lua') data/creaturescripts/scripts/hunger.lua function onLogin(player) if player:hungerIgnorePlayer() then return true end local value = player:hungerGetFeedStorage() if value > 0 then player:feed(value) elseif value == hungerConfig.FIRST_LOGIN then player:feed(hungerConfig.newPlayerFeed) end player:hungerSetFeedStorage(0) player:setStorageValue(hungerConfig.storageDmgAndCheckTicks, 0) player:registerEvent("HungerDeath") player:registerEvent("Hunger") player:hungerSetStage() local msg = player:hungerGetStageMsg() player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg) return true end function onThink(player, interval) local counter = (player:getStorageValue(hungerConfig.storageDmgAndCheckTicks) +1) % hungerConfig.dmgAndCheckTicks if counter == 0 then -- status changed ? send msg : do nothing local stage = player:hungerGetStage() player:hungerSetStage() local newStage = player:hungerGetStage() if stage ~= newStage then local msg = player:hungerGetStageMsg() player:sendTextMessage(MESSAGE_STATUS_DEFAULT, msg) end if player:hungerGetFeed() == 0 then player:hungerDoDmg() end end player:setStorageValue(hungerConfig.storageDmgAndCheckTicks, counter) return true end function onDeath(player, corpse, killer, mostDamageKiller, unjustified, mostDamageUnjustified) local feedLvl = player:hungerGetFeed() if feedLvl < hungerConfig.newPlayerFeed then player:hungerSetFeedStorage(hungerConfig.newPlayerFeed) else player:hungerSetFeedStorage(feedLvl) end return true end Adicione em data/creaturescripts/creaturescripts.xml <event type="login" name="HungerLogin" script="hunger.lua" /> <event type="death" name="HungerDeath" script="hunger.lua" /> <event type="think" name="Hunger" script="hunger.lua" /> data/talkactions/scripts/hunger.lua function onSay(player, words, param) local msg = player:hungerGetStageMsg() player:sendTextMessage(MESSAGE_STATUS_DEFAULT, msg) return true end Adicione em data/talkactions/talkactions.xml <talkaction words="/hunger" script="hunger.lua" /> Dúvidas ou problemas, poste no tópico!
  23. Tente adicionar em data/lib/100-compat db.executeQuery = db.query
  24. Isso acontece quando compra o item, certo?

Informação Importante

Confirmação de Termo