Tudo que celohere postou
- TFS 1.2 [8.0] Downgraded By NINJA
-
Preciso de ajuda
Player.h static uint64_t getExpForLevel(int32_t lv) { lv--; return ((50ULL * lv * lv * lv) - (150ULL * lv * lv) + (400ULL * lv)) / 3ULL; } Apenas mude essa fórmula para a que você quiser recompile e pronto.
-
TFS 1.2 [8.0] Downgraded By NINJA
Você vai precisar atualizar algumas coisas mas pode usar isso(o distro e a pasta data estão desatualizados então você vai precisar modificar algumas coisas, alem de ter um problema com os npcs que causam um crash no servidor quando usado no windows 64x , a solução atual é usar a versão 32x ou em linux já que ninguém identificou o real problema até hoje) https://otland.net/threads/8-0-tfs-1-2.263797/page-4#post-2583168
- TFS 1.2 [8.0] Downgraded By NINJA
- TFS 1.2 [8.0] Downgraded By NINJA
- TFS 1.2 [8.0] Downgraded By NINJA
- TFS 1.2 [8.0] Downgraded By NINJA
- TFS 1.2 [8.0] Downgraded By NINJA
- TFS 1.2 [8.0] Downgraded By NINJA
- TFS 1.2 [8.0] Downgraded By NINJA
- TFS 1.2 [8.0] Downgraded By NINJA
-
[8.10] OTX 2.9
Parabéns mano, ótimo trabalho ?
- TFS 1.2 [8.0] Downgraded By NINJA
- TFS 1.2 [8.0] Downgraded By NINJA
- TFS 1.2 [8.0] Downgraded By NINJA
- TFS 1.2 [8.0] Downgraded By NINJA
- TFS 1.2 [8.0] Downgraded By NINJA
-
Falar em um Channel e sair no default
.Qual servidor ou website você utiliza como base? tfs 1.2 8.0 Qual o motivo deste tópico? eu fiz um loot channel e deixei bloqueado para conversas, ou seja se falar algo não aparece, apenas o loot dos monstros mesmo. Eu gostaria de saber se tem como fazer o que foi digitado no loot channel sair no default ( atrapalha na hora de conversar com npcs etc) ,se alguem puder me ajudar com isso obg desde já.
-
TFS 1.2 [8.0] Downgraded By NINJA
Esse é o tfs downgraded pelo Ninja da Otland , eu fiz umas mudanças pra deixar ele mais legal (na minha opinião) . E agora eu quero disponibilizar pra todos esse download , com a intenção de contribuir pelo menos um pouco com a comunidade. Eu apenas quero avisar que não sou um programador profissional , e talvez eu tenha feito alguma ***** , mas até o momento nao encontrei nenhum bug crítico.Eu não sei se esse server é estável pq nao cheguei a por ele online , enfim todos os créditos vão para o Ninja da Otland pelo downgrade ,para o tfs team pelo distro em si e pra mim Celohere por essas alterações. Changelog Bugs algumas fotos do servidor rodando: EDIT: novo link: fixed crash on re-login -- credits to danielsalim1 and mattyx14 -- fixed monster walk dashing -- credits to me -- EDIT 2: fix players login in the same sqm EDIT 3: fixed runes stack on full container bug -- crédits to me -- eu criei um repositório no github ,se alguem quiser reportar algum bug ou quiser me ajudar com algum fix ,sera muito bem vindo https://github.com/celohere/tfs-1.2-8.0 EDIT 4: mais algumas modificações fixed use of lifefluid on hotkeys -- crédits to me -- fixed fluid wrong message on hotkeys -- crédits to danielsalim1 -- added auto recharge ammo ( arrows e bolts recarregam automaticamente agora) -- crédits to Joe Rod and Emilianenko -- added player ban (agora o ban por excessive player killing esta banindo apenas o jogador, e nao a conta inteira ) -- crédits to Gesior.pl -- EDIT 5: Fixed container queryAdd issues -- Crédits to Nekiro -- Fixed push the last creature from stack -- crédits to Jhon_ and Emilianenko -- Fixed a crash related to houses -- crédits to DSpeichert -- EDIT 6: novo link atualizado as modificações podem ser vista no changelog tfs_8.0-master.rar
-
Bloquear talkaction !leavehouse
.Qual servidor ou website você utiliza como base? tfs 1.2 8.0 esse aqui >> https://github.com/ninjalulz/forgottenserver/tree/8.0 Qual o motivo deste tópico? eu gostaria de saber se é possível fazer o script !leavehouse checar se tem items dentro da casa do player(se não for possível com um script talvez com alguma modificação nas sources? ) , e caso tenha items dentro da casa , não executar o script e mandar alguma mensagem para o player limpar a casa antes de usar esse comando e só permitir o !leavehouse se a casa estiver vazia. O que eu quero com esse script e evitar que players mal intencionados abusem desse comando pra tentar lagar/crashar o servidor enviando uma enorme quantidade de items para o depot,Se for possível eu agradeço mto , desde ja obrigado ?
-
Znote AAC add paginação
obrigado pela resposta ,mas nao funcionou =( , eu consegui uma mais ou menos , nao e do jeito que eu queria mas talvez de pra modificar <span class="pagination" float: "right"> <?php $pages = ceil(min(($highscore['rows'] / $highscore['rowsPerPage']), (count($scores[$type]) / $highscore['rowsPerPage']))); for ($i = 0; $i < $pages; $i++) { $x = $i + 1; if ($x == $page) echo "<a href=\"?".$_SERVER['QUERY_STRING']."&pag=".$x."\" class=\"current\">".$x."</a>"; else echo "<a href=\"?".$_SERVER['QUERY_STRING']."&pag=".$x."\">".$x."</a>"; } ?> </span>
-
Znote AAC add paginação
bom dia, eu estou tentando deixar meu highscores mais bonito, e gostaria de adcionar uma paginaçao do tipo que apenas clica pra ir a proxima pagina de skills, e a partir da segunda pagina apareça um back pra retornar pra pagina anterior.Assim como nessas fotos : Desde ja agradeço muito , aqui esta meu highscores.php eu removi paginaçao antiga pq era mto feia :P <?php require_once 'engine/init.php'; include 'layout/overall/header.php'; if ($config['log_ip']) { znote_visitor_insert_detailed_data(3); } // Fetch highscore type $type = (isset($_GET['type'])) ? (int)getValue($_GET['type']) : 7; if ($type > 9) $type = 7; // Fetch highscore vocation $configVocations = $config['vocations']; //$debug['configVocations'] = $configVocations; $vocationIds = array_keys($configVocations); $vocation = 'all'; if (isset($_GET['vocation']) && is_numeric($_GET['vocation'])) { $vocation = (int)$_GET['vocation']; if (!in_array($vocation, $vocationIds)) { $vocation = "all"; } } // Fetch highscore page $page = getValue(@$_GET['page']); if (!$page || $page == 0) $page = 1; else $page = (int)$page; $highscore = $config['highscore']; $loadFlags = ($config['country_flags']['enabled'] && $config['country_flags']['highscores']) ? true : false; $loadOutfits = ($config['show_outfits']['highscores']) ? true : false; $rows = $highscore['rows']; $rowsPerPage = $highscore['rowsPerPage']; function skillName($type) { $types = array( 1 => "Club", 2 => "Sword", 3 => "Axe", 4 => "Distance", 5 => "Shield", 6 => "Fish", 7 => "Experience", // Hardcoded 8 => "Magic Level", // Hardcoded 9 => "Fist", // Since 0 returns false I will make 9 = 0. :) ); return $types[(int)$type]; } function pageCheck($index, $page, $rowPerPage) { return ($index < ($page * $rowPerPage) && $index >= ($page * $rowPerPage) - $rowPerPage) ? true : false; } $cache = new Cache('engine/cache/highscores'); if ($cache->hasExpired()) { $vocGroups = fetchAllScores($rows, $config['TFSVersion'], $highscore['ignoreGroupId'], $configVocations, $vocation, $loadFlags, $loadOutfits); $cache->setContent($vocGroups); $cache->save(); } else { $vocGroups = $cache->load(); } if ($vocGroups) { $vocGroup = (is_array($vocGroups[$vocation])) ? $vocGroups[$vocation] : $vocGroups[$vocGroups[$vocation]]; ?> <br><img src="layout/images/titles/t_highscores.png"/><p><br> <h1>Ranking for <?php echo skillName($type) ?></h1> <table> <tbody> <tr><td style="background: none;"> <table id="highscoresTable" class="table table-striped table-hover"> <tbody><tr bgcolor="#20222c"> <td width="6%"class="whites" style=" background-color: #5d5b5b; color: #f9f6f6; ">Rank</td> <td width="40%" class="whites" style=" background-color: #5d5b5b; color: #f9f6f6; ">Name</td> <td width="20%" class="whites" style=" background-color: #5d5b5b; color: #f9f6f6; ">Vocation</td> <td width="15%" class="whites" style=" background-color: #5d5b5b; color: #f9f6f6; ">Level</td> <?php if ($type === 7) echo "<td colspan='1' style='background-color: #5d5b5b; color: #f9f6f6;' >Experience</td>"; ?> </tr> <?php for ($i = 0; $i < count($vocGroup[$type]); $i++) { if ($vocGroup[$type] === false) { ?> <tr> <td colspan="5">Nothing to show here yet.</td> </tr> <?php } else { if (pageCheck($i, $page, $rowsPerPage)) { $flag = ($loadFlags === true && strlen($vocGroup[$type][$i]['flag']) > 1) ? '<img src="' . $config['country_flags']['server'] . '/' . $vocGroup[$type][$i]['flag'] . '.png"> ' : ''; ?> <tr> <?php if ($loadOutfits): ?> <td class="outfitColumn"><img src="<?php echo $config['show_outfits']['imageServer']; ?>?id=<?php echo $vocGroup[$type][$i]['type']; ?>&addons=<?php echo $vocGroup[$type][$i]['addons']; ?>&head=<?php echo $vocGroup[$type][$i]['head']; ?>&body=<?php echo $vocGroup[$type][$i]['body']; ?>&legs=<?php echo $vocGroup[$type][$i]['legs']; ?>&feet=<?php echo $vocGroup[$type][$i]['feet']; ?>" alt="img"></td> <?php endif; ?> <td><?php echo $i+1; ?></td> <td><?php echo $flag; ?><a href="characterprofile.php?name=<?php echo $vocGroup[$type][$i]['name']; ?>"><?php echo $vocGroup[$type][$i]['name']; ?></a></td> <td><?php echo vocation_id_to_name($vocGroup[$type][$i]['vocation']); ?></td> <td><?php echo $vocGroup[$type][$i]['value']; ?></td> <?php if ($type === 7) echo "<td>". $vocGroup[$type][$i]['experience'] ."</td>"; ?> </tr> <?php } } } ?> </table> <th width="15%" valign="top" align="right"> <table border="0" cellpadding="1" cellspacing="1"> <tbody><tr bgcolor="#20222c"> <td class="whites" style=" background-color: #5d5b5b; color: #f9f6f6; ">Choose a Skill</td> </tr> <tr bgcolor="#1b1e26"> <td> <a href="highscores.php" class="size_xs">Experience</a><br> <a href="highscores.php?type=8&vocation=all&page=1" class="size_xs">Magic</a><br> <a href="highscores.php?type=5&vocation=all&page=1" class="size_xs">Shielding</a><br> <a href="highscores.php?type=4&vocation=all&page=1" class="size_xs">Distance</a><br> <a href="highscores.php?type=9&vocation=all&page=1" class="size_xs">Fist</a><br> <a href="highscores.php?type=2&vocation=all&page=1" class="size_xs">Sword</a><br> <a href="highscores.php?type=3&vocation=all&page=1" class="size_xs">Axe</a><br> <a href="highscores.php?type=1&vocation=all&page=1" class="size_xs">Club</a><br> <a href="highscores.php?type=6&vocation=all&page=1" class="size_xs">Fishing</a><br> </td> </tr> </tbody></table> </th></tr></tbody></table> <?php } include 'layout/overall/footer.php'; ?>
-
Znote skill list no highscores.php
eu consegui resolver essa parte , meu problema agora e a paginação , gostaria de colocar um back/next abaixo do rank poderia me ajudar? <?php require_once 'engine/init.php'; include 'layout/overall/header.php'; if ($config['log_ip']) { znote_visitor_insert_detailed_data(3); } // Fetch highscore type $type = (isset($_GET['type'])) ? (int)getValue($_GET['type']) : 7; if ($type > 9) $type = 7; // Fetch highscore vocation $configVocations = $config['vocations']; //$debug['configVocations'] = $configVocations; $vocationIds = array_keys($configVocations); $vocation = 'all'; if (isset($_GET['vocation']) && is_numeric($_GET['vocation'])) { $vocation = (int)$_GET['vocation']; if (!in_array($vocation, $vocationIds)) { $vocation = "all"; } } // Fetch highscore page $page = getValue(@$_GET['page']); if (!$page || $page == 0) $page = 1; else $page = (int)$page; $highscore = $config['highscore']; $loadFlags = ($config['country_flags']['enabled'] && $config['country_flags']['highscores']) ? true : false; $loadOutfits = ($config['show_outfits']['highscores']) ? true : false; $rows = $highscore['rows']; $rowsPerPage = $highscore['rowsPerPage']; function skillName($type) { $types = array( 1 => "Club", 2 => "Sword", 3 => "Axe", 4 => "Distance", 5 => "Shield", 6 => "Fish", 7 => "Experience", // Hardcoded 8 => "Magic Level", // Hardcoded 9 => "Fist", // Since 0 returns false I will make 9 = 0. :) ); return $types[(int)$type]; } function pageCheck($index, $page, $rowPerPage) { return ($index < ($page * $rowPerPage) && $index >= ($page * $rowPerPage) - $rowPerPage) ? true : false; } $cache = new Cache('engine/cache/highscores'); if ($cache->hasExpired()) { $vocGroups = fetchAllScores($rows, $config['TFSVersion'], $highscore['ignoreGroupId'], $configVocations, $vocation, $loadFlags, $loadOutfits); $cache->setContent($vocGroups); $cache->save(); } else { $vocGroups = $cache->load(); } if ($vocGroups) { $vocGroup = (is_array($vocGroups[$vocation])) ? $vocGroups[$vocation] : $vocGroups[$vocGroups[$vocation]]; ?> <h1>Ranking for <?php echo skillName($type) .", ". (($vocation === 'all') ? 'any vocation' : vocation_id_to_name($vocation)) ?>.</h1> <form action="" method="GET"> <select name="type"> <option value="7" <?php if ($type == 7) echo "selected"; ?>>Experience</option> <option value="8" <?php if ($type == 8) echo "selected"; ?>>Magic</option> <option value="5" <?php if ($type == 5) echo "selected"; ?>>Shield</option> <option value="2" <?php if ($type == 2) echo "selected"; ?>>Sword</option> <option value="1" <?php if ($type == 1) echo "selected"; ?>>Club</option> <option value="3" <?php if ($type == 3) echo "selected"; ?>>Axe</option> <option value="4" <?php if ($type == 4) echo "selected"; ?>>Distance</option> <option value="6" <?php if ($type == 6) echo "selected"; ?>>Fish</option> <option value="9" <?php if ($type == 9) echo "selected"; ?>>Fist</option> </select> <select name="vocation"> <option value="all" <?php if (!is_int($vocation)) echo "selected"; ?>>Any vocation</option> <?php foreach ($configVocations as $v_id => $v_data) { if ($v_data['fromVoc'] === false) { $selected = (is_int($vocation) && $vocation == $v_id) ? " selected $vocation = $v_id" : ""; echo '<option value="'. $v_id .'"'. $selected .'>'. $v_data['name'] .'</option>'; } } ?> </select> <select name="page"> <?php $pages = ceil(min(($highscore['rows'] / $highscore['rowsPerPage']), (count($vocGroup[$type]) / $highscore['rowsPerPage']))); for ($i = 0; $i < $pages; $i++) { $x = $i + 1; if ($x == $page) echo "<option value='".$x."' selected>Page: ".$x."</option>"; else echo "<option value='".$x."'>Page: ".$x."</option>"; } ?> </select> <input type="submit" value=" View " class="btn btn-info"> </form> <table id="highscoresTable" class="table table-striped table-hover"> <tr class="yellow"> <?php if ($loadOutfits) echo "<td>Outfit</td>"; ?> <td>Rank</td> <td>Name</td> <td>Vocation</td> <td>Level</td> <?php if ($type === 7) echo "<td>Points</td>"; ?> </tr> <?php for ($i = 0; $i < count($vocGroup[$type]); $i++) { if ($vocGroup[$type] === false) { ?> <tr> <td colspan="5">Nothing to show here yet.</td> </tr> <?php } else { if (pageCheck($i, $page, $rowsPerPage)) { $flag = ($loadFlags === true && strlen($vocGroup[$type][$i]['flag']) > 1) ? '<img src="' . $config['country_flags']['server'] . '/' . $vocGroup[$type][$i]['flag'] . '.png"> ' : ''; ?> <tr> <?php if ($loadOutfits): ?> <td class="outfitColumn"><img src="<?php echo $config['show_outfits']['imageServer']; ?>?id=<?php echo $vocGroup[$type][$i]['type']; ?>&addons=<?php echo $vocGroup[$type][$i]['addons']; ?>&head=<?php echo $vocGroup[$type][$i]['head']; ?>&body=<?php echo $vocGroup[$type][$i]['body']; ?>&legs=<?php echo $vocGroup[$type][$i]['legs']; ?>&feet=<?php echo $vocGroup[$type][$i]['feet']; ?>" alt="img"></td> <?php endif; ?> <td><?php echo $i+1; ?></td> <td><?php echo $flag; ?><a href="characterprofile.php?name=<?php echo $vocGroup[$type][$i]['name']; ?>"><?php echo $vocGroup[$type][$i]['name']; ?></a></td> <td><?php echo vocation_id_to_name($vocGroup[$type][$i]['vocation']); ?></td> <td><?php echo $vocGroup[$type][$i]['value']; ?></td> <?php if ($type === 7) echo "<td>". $vocGroup[$type][$i]['experience'] ."</td>"; ?> </tr> <?php } } } ?> </table> <?php } include 'layout/overall/footer.php'; ?>
-
Znote skill list no highscores.php
Boa tarde pessoal eu estou tentando colocar uma lista pra selecionar as skills ao lado dos highscores , mas nao to conseguindo sozinho =( , aqui vao umas fotos pra ilustrar melhor a primeira foto e como eu quero deixar , a segunda foi o melhor que eu consegui , se alguem puder ajudar eu agradeço mto
-
Empire Map 7.6
Acredito que seja o mapa do antigo Pbot aqui vai o download pra quem ainda procura por ele pbot.rar pbot.rar