Tudo que Tricoder postou
-
Globalevents- Criando teleports falantes para tibia.
Magina rs, se surgir novamente problemas como esse, cria um tópico aqui porque é mais fácil de alguém ver e te ajudar.
-
Ajuda com Gesior create character
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?
-
[TFS 1.0/1.1/1.2] Summon teleportando mesmo que você tenha subido
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
-
AJUDA COM CHARACTER.PHP
Vê se esse daqui vai:
-
Globalevents- Criando teleports falantes para tibia.
@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!
-
Globalevents- Criando teleports falantes para tibia.
@Murill, qual seria a versão do seu TFS?
-
Estão clonando item do site no meu OT 10.76-ajuda?
Verificou se o bug provavelmente não é no próprio shop?
- [FOTO] Foto Perfil
-
Incentivar membros a postarem
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.
-
Spaw infinito
Posta o script aqui
-
[GESIOR] Colocando Health/Mana/skills e Set na página Characters
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;"> <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>';
-
{ajuda} editar novo item movements.xml
<movevent type="Equip" itemid="155" slot="shield" level="8" event="function" value="onEquipItem"> <vocation id="1" showInDescription="1"/> <vocation id="2" showInDescription="1"/> </movevent>
-
Treiner
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.
-
Entendendo as funções do Create Account e do Create Character
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!
-
Corrigindo BUG do status do Gesior 2012 (Server Offline)
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.
-
[TFS 1.2] Auto Broadcast
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!
-
Erro ao tentar abrir o servidor
Se o que o @Trypox disse não resolver, baixe a libs recente do github.
-
Pokemon não acompanha o dono!
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"},
-
[7.7] ThoraOT distro
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
-
(Resolvido)ERRO NO DISTRO
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".
-
O server não fica ON
Provavelmente você esqueceu de abrir as portas no firewall/roteador.
-
(Resolvido)Erro estranho
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.
-
[TFS 1.2] Hunger System - Sistema de Fome
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!
-
(Resolvido)BUG EM SCRIPT
Tente adicionar em data/lib/100-compat db.executeQuery = db.query
-
AJUDA ERRO OTSERV 8.60
Isso acontece quando compra o item, certo?