-
Total de itens
789 -
Registro em
-
Última visita
-
Dias Ganhos
5
Tudo que ThiagoBji postou
-
Tópico fechado e movido para a lixeira por conter link offline.
-
8.6 Styller 8.60 Sem Bugs! Com Area Vip2
tópico respondeu ao mercenaryy de ThiagoBji em Lixeira Pública
Tópico fechado e movido para a lixeira por conter link offline.- 5 respostas
-
- styller yourots {editado 2.0}
- otserv
- (e 1 mais)
-
Tópico fechado e movido para a lixeira por conter link offline.
-
Qual distro você usa? executável? e versão? por exemplo, tfs 0.4 rev 3884
-
[Resolvido] [Pedido] Evento só com no minimo 10 players online
pergunta respondeu ao Mdcrf de ThiagoBji em Resolvidos
Vai no creaturescripts -> scripts -> crie um arquivo chamado startskills.lua e adicione: Depois vai no creaturescripts.xml e adicione isso: <event type="login" name="StartSkills" event="script" value="startskills.lua"/> -
8.6 Subwat Server V16 100 % Sem Bug Do God
tópico respondeu ao xXLukiinhasXx de ThiagoBji em Lixeira Pública
Tópico fechado por conter link offline! -
Link offline e tópico fechado por conter links offlines também de outro fórum!
- 4 respostas
-
- lembrarem do servidor yourots
- otserv
- (e 1 mais)
-
Link offline e tópico fechado! Se o autor tiver com um novo link, favor me enviar mensagem para eu reabrir o tópico novamente!
-
Obrigado por avisar, Marfito! Tópico atualizado com scan e video!
-
Download do servidor pelo 4shared http://www.4shared.com/rar/iGtymfcace/Rozinx_Edit_MyF.html
-
Centera Evolution - Alternativa para pequenos servidores
tópico respondeu ao Krono de ThiagoBji em OTServ Comum
Eu já pensei uma vez abrir esse servidor.. mas fiquei com preguiça e então nem abri haha Uma dica se possível, upe o download no mediashare e/ou mega, pois nesses dois sites tem pequenas chances do download ficar fora do ar.- 6 respostas
-
- 8.6
- center evolution
-
(e 2 mais)
Tags:
-
Retire o link de outro fórum fazendo favor, Mudrock.
-
Realmente, ótimo servidor! Faria um tremendo sucesso se o mundo de open tibia server hoje não fosse apenas Baiak e Global.
- 5 respostas
-
- servidor 8.6
- mapa 8.6
-
(e 3 mais)
Tags:
-
Dúvida resolvida e tópico fechado!
-
Você pegou alguma distro que não veio no seu servidor e colocou nele? se sim, pegue as libs dessa distro e pronto!
-
Você nunca viu um servidor com Dota? é um evento tãaao famoso! Um vídeo sobre o mesmo:
-
open pvp Aldarrow Global 10.77 ~ Abrindo amanhã
tópico respondeu ao MentZ de ThiagoBji em OTServlist
Fala tudo menos o ip, parabéns eim! -
[Resolvido] [Pedido] Evento só com no minimo 10 players online
pergunta respondeu ao Mdcrf de ThiagoBji em Resolvidos
-
Xampp 1.6.8 (se não funcionar direito no seu computador, use o de baixo) Xampp: 1.7.3 Gesior: baixe você mesmo na área de downloads aqui do xtibia Lembrando que, o gesior só dará erro se não for compatível com seu otserv e a dabase estiver incompleta, faltando tables e drops que não possui na sua db mas que é necessário para o funcionamento do website.
-
#Descrição: O evento ocorre com a separação automática de 2 times (Azul x Vermelho), onde um disputa com o outro a sala de prêmios. Para ter acesso à sala, um dos times deve derrotar os 3 geradores presentes antes do outro. #O que possui? - Totalmente automatizado (Script: Abertura, Entrega do premio, Designação dos vencedores e Encerramento) - Página explicativa (PHP: Os players entenderão como funciona o evento) - Talkactions ADM (Script: Comandos que podem ser usados para abrir o castle manualmente) - Tutorial (Arquivo: Explicando passo a passo a instalação) - Arena com 2 salas e waiting room (Mapa) - Entre outras coisas… *OBS: Este evento só funciona em TFS 0.4. DOWNLOAD: CLICK AQUI SCAN: CLICK AQUI Créditos: ChaitoSoft Jhon Thiagobji
-
Descrição: War system personalizado, um sistema diferente, personalizado e bom para quem gosta de mudar um pouco a rotina do mesmo sistema de sempre! otserv => data -> creaturescripts -> scripts -> warsystem.lua: local guild, enemy, guildFrags, enemyFrags = getPlayerGuildId(cid) local fightingGuilds = {} local tmp = db.getResult("SELECT `guild_id`, `enemy_id`, `guild_kills`, `enemy_kills`, `frags` FROM `guild_wars` WHERE `status` = 1 and (`guild_id` = "..getPlayerGuildId(cid).." or `enemy_id` = "..getPlayerGuildId(cid).. ") ;") warString = "" if tmp:getID() ~= -1 then i = 1 repeat if tmp:getDataInt("guild_id") == guild then enemy = tmp:getDataInt("enemy_id") guildFrags = tmp:getDataInt("guild_kills") enemyFrags = tmp:getDataInt("enemy_kills") else enemy = tmp:getDataInt("guild_id") guildFrags = tmp:getDataInt("enemy_kills") enemyFrags = tmp:getDataInt("guild_kills") end local enemyName, _tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy) if(_tmp:getID() ~= -1) then enemyName = _tmp:getDataString("name") _tmp:free() end fightingGuilds[i] = {} fightingGuilds[i].name = enemyName fightingGuilds[i].guildFrags = guildFrags fightingGuilds[i].enemyFrags = enemyFrags fightingGuilds[i].limit = tmp:getDataInt("frags") i = i + 1 until not(tmp:next()) tmp:free() table.sort(fightingGuilds, function (a, B) return (a.name < b.name) end) for k, v in pairs(fightingGuilds) do if (v.guildFrags < v.limit and v.enemyFrags < v.limit ) then if (warString == "") then warString = "Your guild is currently in war with the " .. v.name .. " (" .. v.guildFrags .. ":" .. v.enemyFrags .. " frags, limit ".. v.limit ..")" else warString = warString .. " and with the " .. v.name .. " (" .. v.guildFrags .. ":" .. v.enemyFrags.." frags, limit ".. v.limit .. ")" end end end end if (warString ~= "") then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, warString .. ".") end otserv => data -> creaturescripts -> creaturescripts.xml: <event type="kill" name="warSystem" event="script" value="warsystem.lua"/> otserv => data -> creaturescripts -> scripts -> login.lua: registerCreatureEvent(cid, "warSystem") Testado no theforgottenserver 0.3.6 e funciona perfeitamente!
-
Descrição: Ant-Divulgaçao Incluso no .exe, aceita Qualquer Items.OTB e muito mais! Versao: 8.6 Sources: TFS 0.4 Rev 3884 Para o Ant-divulgaçao funcionar voce precisa adicionar o seguinte em talkactions. Pasta Talkactions/Scripts Arquivo.lua Download: blocklinks.lua Tag talkactions.xml <talkaction words="illegalWords" event="script" value="blocklinks.lua"/> é só isso pessoal, as Sources já estão editadas para vocês compilar com ant-divulgaçao,e aceitar qualquer items.otb. Assim se você querer mudar o nome do projeto só fazer o mesmo. Downloads: Sources Dlls+Executavel Créditos: OTLand GM BLumaster Thiagobji
-
- executavel
- ant divulgação
- (e 7 mais)
-
Problema resolvido e tópico fechado a pedido do autor.
-
Nome: Advanced Vocation Changer Autor: JoseJunior23 Server: TFS 3.6 Como functiona? Você é Knight e quer ser Sorcerer, basta você digitar /acv 1 e sua vocação será mudada para sorcerer. OBS: O melhor de tudo é você não irá perder seus SKILLS/ML, pois eles serão guardados, cada vocação fica com seus ml/skills guardados em diferentes storages. enquanto ao HP/MANA será igual ao seu vocations.xml porem fiz a minha maneira, oque quer dizer que você irá ter que configurar essa parte. Comandos /acv 1 = sorcerer /acv 2 = druid /acv 3 = paladin /acv 4 = knight Instalação 1º na pasta server/mods cria um arquivo XML chamado Advanced Change Vocation e coloque isso dentro: <?xml version="1.0" encoding="UTF-8"?> <mod name="ADVANCED CHANGE VOCATION" version="1.0" author="josejunior23" contact="[email protected]<script cf-hash='f9e31' type="text/javascript"> /* */</script>" enabled="yes"> <talkaction words="/acv" case-sensitive="yes" event="script" value="ACV.lua"/> <event type="logout" name="acv_logout" event="script" value="ACV_logout.lua"/> <event type="login" name="acv_login" event="script" value="ACV_login.lua"/> <event type="death" name="acv_death" event="script" value="ACV_death.lua"/> </mod> 2º na pasta server/mods/scripts cria um arquivo LUA chamado ACV e coloque isso dentro: -- Advanced Vocation Changer! -- scripted by josejunior23 function onSay(cid, words, param, channel) if(acv_exhaustion.enable == true) and (isExhausted(cid)) then doPlayerSendTextMessage(cid, acv_msg_color, "You can't change your vocation now! You still need to wait: " .. fixTimer(getPlayerStorageValue(cid, acv_exhaustion.storage))) return true end if not (param) or not (isNumber(param)) or (tonumber(param) > 4) or (tonumber(param) < 1) then doPlayerSendTextMessage(cid, acv_msg_color, "You can change your vocation up to 1 till 4 vocations (/acv VOCATIONID)!\n 1 = sorcerer, 2 = druid, 3 = paladin and 4 = knight.") return true end if(tonumber(param) == getVocationCfg(getPlayerVocation(cid))) then doPlayerSendTextMessage(cid, acv_msg_color, "You are already " .. getArticle(getPlayerVocationName(cid)) .. " " .. getPlayerVocationName(cid) .. ".") return true end if(getCreatureCondition(cid, CONDITION_INFIGHT)) then doPlayerSendTextMessage(cid, acv_msg_color, "You may not change your vocation while in battle.") return true end local newvoc = acv_config[tonumber(param)] if(newvoc) then savePlayerVocation(cid) local vocID = getPlayerVocation(cid) local vocStorage = getVocationStorage(vocID) if(acv_fun_cfg.text.doCreatureSay == true) then doCreatureSay(cid, acv_fun_cfg.text.text, acv_fun_cfg.text.talkType) end if(acv_fun_cfg.effect.doSendMagicEffect == true) then doSendMagicEffect(getCreaturePosition(cid), acv_fun_cfg.effect.effect) end if(acv_exhaustion.enable == true) then addExhausted(cid, acv_exhaustion.time) end changePlayerVocation(cid, tonumber(param)) end return true end 3º na pasta server/mods/scripts cria um arquivo LUA chamado acv_login e coloque isso dentro: -- Advanced Vocation Changer! -- scripted by josejunior23 function onLogin(cid) if(getPlayerPromotionLevel(cid) == 1) and (getPlayerVocation(cid) <= 4) then doPlayerSetVocation(cid, getPlayerVocation(cid) + 4) end if(acv_enable_msg_on_login == true) then doPlayerSendTextMessage(cid, acv_msg_color, "Your vocation is: " .. getPlayerVocationName(cid) .. ".") end local events = {"acv_logout", "acv_death"} for i = 1, #events do registerCreatureEvent(cid, events[i]) end return true end 4º na pasta server/mods/scripts cria um arquivo LUA chamado acv_logout e coloque isso dentro: -- Advanced Vocation Changer! -- scripted by josejunior23 function onLogout(cid) savePlayerVocation(cid) return true end 5º na pasta server/mods/scripts cria um arquivo LUA chamado acv_death e coloque isso dentro: -- Advanced Vocation Changer! -- scripted by josejunior23 function onDeath(cid, corpse, deathList) savePlayerVocation(cid) return true end 6º na pasta server/data/lib cria um arquivo LUA chamado ACV_lib e coloque isso dentro: LEMBRE-SE DE CONFIGURAR O CODIGO ESSA PARTE! -- Advanced Vocation Changer! -- scripted by josejunior23 acv_enable_msg_on_login = true; acv_msg_color = MESSAGE_STATUS_CONSOLE_ORANGE; -- message colour send in default channel acv_exhaustion = {enable = true, storage = "acv_exh", time = 5}; -- time in seconds 60 x 60 = 3600 = 1 hour acv_first_storage = "firstvoc"; -- saves players first vocation acv_fun_cfg = { text = {doCreatureSay = true, text = "#CHANGING VOCATION#", talkType = TALKTYPE_ORANGE_1}, effect = {doSendMagicEffect = true, effect = 10} -- effect 10 = teleport } acv_config = { -- make sure none of those storages are already in use! [1] = 73974, -- sorcerer UNIQUE STORAGE!!! [2] = 73983, -- druid UNIQUE STORAGE!!! [3] = 73992, -- paladin UNIQUE STORAGE!!! [4] = 73991 -- knight UNIQUE STORAGE!!! } getFormula = function(cid) -- how to config -> change the numbers below to the same as vocations.xml (gainhp, gainmana) return { health = { -- Sorcerer [1] = 5, -- sorcerer gains X HEALTH each level (gainhp) [5] = 5, -- master sorcerer gains X HEALTH each level (gainhp) -- Druid [2] = 5, -- druid gains X HEALTH each level (gainhp) [6] = 5, -- elder druid gains X HEALTH each level (gainhp) -- Paladin [3] = 10, -- paladin gains X HEALTH each level (gainhp) [7] = 10, -- royal paladin gains X HEALTH each level (gainhp) -- Knight [4] = 22, -- knight gains X HEALTH each level (gainhp) [8] = 22 -- elite knight gains X HEALTH each level (gainhp) }, mana = { -- Sorcerer [1] = 30, -- sorcerer gains X MANA each level (gainmana) [5] = 30, -- master sorcerer gains X MANA each level (gainmana) -- Druid [2] = 30, -- druid gains X MANA each level (gainmana) [6] = 30, -- elder druid gains X MANA each level (gainmana) -- Paladin [3] = 15, -- paladin gains X MANA each level (gainmana) [7] = 15, -- royal paladin gains X MANA each level (gainmana) -- Knight [4] = 5, -- knight gains X MANA each level (gainmana) [8] = 5 -- elite knight gains X MANA each level (gainmana) } } end function fixTimer(v) local seconds, minutes, hours = v - os.time(), 0, 0 while seconds >= 60 do minutes = minutes + 1 seconds = seconds - 60 end while minutes >= 60 do hours = hours + 1 minutes = minutes - 60 end local str1, str2, str3 = hours > 1 and hours .. " hours, " or "" .. "", minutes > 1 and minutes .. " minutes and " or "" .. "", seconds .. " seconds." or "" .. "" return str1 .. str2 .. str3 end function isExhausted(cid) return getPlayerStorageValue(cid, acv_exhaustion.storage) > os.time() and true or false end function addExhausted(cid, time) -- time in seconds return setPlayerStorageValue(cid, acv_exhaustion.storage, os.time() +time) end function setStorageString(cid, storage, string) return setPlayerStorageValue(cid, storage, "S" .. string) end function getStorageString(cid, storage) return string.sub(getPlayerStorageValue(cid, storage), 2) end function getVocationStorage(id) return acv_config[getVocationCfg(id)] end function getPlayerFirstVocation(cid) return getPlayerStorageValue(cid, acv_first_storage) end function getVocationCfg(id) if(id > 4) then id = id - 4 end return id end function savePlayerVocation(cid) local maglevel, fist, club, sword, axe, dist, shield, fish = getPlayerMagLevel(cid), getPlayerSkillLevel(cid, 0), getPlayerSkillLevel(cid, 1), getPlayerSkillLevel(cid, 2), getPlayerSkillLevel(cid, 3), getPlayerSkillLevel(cid, 4), getPlayerSkillLevel(cid, 5), getPlayerSkillLevel(cid, 6) local vocID = getPlayerVocation(cid) local vocStorage = getVocationStorage(vocID) if(getPlayerPromotionLevel(cid) == 1) and (getPlayerVocation(cid) <= 4) then vocID = getPlayerVocation(cid) + 4 doPlayerSetVocation(cid, vocID) end return setStorageString(cid, vocStorage, maglevel .. "-" .. fist .. "-" .. club .. "-" .. sword .. "-" .. axe .. "-" .. dist .. "-" .. shield .. "-" .. fish .. "-" .. vocID) end function setupPlayerVocation(cid, arg) local pid = getPlayerGUID(cid) doRemoveCreature(cid, true) db.executeQuery("UPDATE `players` SET `maglevel` = " .. arg.maglevel .. " WHERE `id` = ".. pid .. ";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.fist .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 0 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.club .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 1 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.sword .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 2 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.axe .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 3 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.dist .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 4 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.shield .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 5 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.fish .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 6 ..";") return true end function changePlayerVocation(cid, id) savePlayerVocation(cid) local newVoc = getVocationStorage(id) if(getPlayerStorageValue(cid, newVoc) == -1) or (getPlayerStorageValue(cid, newVoc) == 0) then local level = getPlayerLevel(cid) local vocationsset = { [1] = 1 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 1, -- default Sorcerer [2] = 1 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 2, -- default Druid [3] = 1 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 3, -- default Paladin [4] = 1 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 4 -- default Knight } setStorageString(cid, newVoc, vocationsset[getVocationCfg(id)]) end if(getPlayerFirstVocation(cid) == -1) or (getPlayerFirstVocation(cid) == 0) then setPlayerStorageValue(cid, acv_first_storage, getPlayerVocationName(cid)) end local get = string.explode(getStorageString(cid, newVoc), "-") local maglevel, fist, club, sword, axe, dist, shield, fish, voc = get[1], get[2], get[3], get[4], get[5], get[6], get[7], get[8], get[9] voc = tonumber(voc) if(getPlayerPromotionLevel(cid) == 1) and (voc <= 4) then voc = voc + 4 end doPlayerSetVocation(cid, voc) setCreatureMaxHealth(cid, getPlayerLevel(cid) * getFormula(cid).health[voc]) doCreatureAddHealth(cid, getPlayerLevel(cid) * getFormula(cid).health[voc]) setCreatureMaxMana(cid, getPlayerLevel(cid) * getFormula(cid).mana[voc]) doCreatureAddMana(cid, getPlayerLevel(cid) * getFormula(cid).mana[voc]) setupPlayerVocation(cid, {maglevel = maglevel, fist = fist, club = club, sword = sword, axe = axe, dist = dist, shield = shield, fish = fish}) return true end The end. <3
-
- advanced vocation changer
- vocation
- (e 4 mais)
-
xampp => htdocs -> layouts -> tibiacom -> layout.php, nele encontre: if($config['status']['serverStatus_online'] == 1) Substitua por: if($config['status']['serverStatus_online'] >= 0) No layout.php, antes de <head> adicione: <?PHP $update_interval = 10; if(count($config['site']['worlds']) > 1) { $worlds .= '<i>Select world:</i> '; foreach($config['site']['worlds'] as $id => $world_n) { $worlds .= ' <a href="?subtopic=whoisonline&world='.$id.'">'.$world_n.'</a> , '; if($id == (int) $_GET['world']) { $world_id = $id; $world_name = $world_n; } } $main_content .= substr($worlds, 0, strlen($worlds)-3); } if(!isset($world_id)) { $world_id = 0; $world_name = $config['server']['serverName']; } $order = $_REQUEST['order']; if($order == 'level') $orderby = 'level'; elseif($order == 'vocation') $orderby = 'vocation'; if(empty($orderby)) $orderby = 'name'; $tmp_file_name = 'cache/whoisonline-'.$orderby.'-'.$world_id.'.tmp'; if(file_exists($tmp_file_name) && filemtime($tmp_file_name) > (time() - $update_interval)) { $tmp_file_content = explode(",", file_get_contents($tmp_file_name)); $number_of_players_online = $tmp_file_content[0]; $players_rows = $tmp_file_content[1]; } else { $players_online_data = $SQL->query('SELECT * FROM players WHERE world_id = '.(int) $world_id.' AND online > 0 ORDER BY '.$orderby); $number_of_players_online = 0; foreach($players_online_data as $player) { $number_of_players_online++; $acc = $SQL->query('SELECT * FROM '.$SQL->tableName('accounts').' WHERE '.$SQL->fieldName('id').' = '.$player['account_id'].'')->fetch(); if(is_int($number_of_players_online / 2)) $bgcolor = $config['site']['darkborder']; else $bgcolor = $config['site']['lightborder']; $rs = ""; if ($player['skulltime'] > 0 && $player['skull'] == 3) $rs = "<img style='border: 0;' src='./images/whiteskull.gif'/>"; elseif ($player['skulltime'] = $player['skull'] == 4) $rs = "<img style='border: 0;' src='./images/redskull.gif'/>"; elseif ($player['skulltime'] = $player['skull'] == 5) $rs = "<img style='border: 0;' src='./images/blackskull.gif'/>"; $players_rows .= '<TR BGCOLOR='.$bgcolor.'><TD WIDTH=10%><image src="images/flags/'.$acc['flag'].'.png"/></TD><TD WIDTH=70%><A HREF="?subtopic=characters&name='.urlencode($player['name']).'">'.$player['name'].$rs.'</A></TD><TD WIDTH=10%>'.$player['level'].'</TD><TD WIDTH=20%>'.$vocation_name[$world_id][$player['promotion']][$player['vocation']].'</TD></TR>'; } } Nessa parte: echo $config['status']['serverStatus_players'].'<br/>Players Online'; Substitua por: echo ''.$number_of_players_online.'<br/>Players Online';
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.