Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 12/17/11 em todas áreas
-
Reset System with sources
1 pontoTestado: MySQL & SQLite Distro: TFS 0.4_SVN & TFS 0.3.6 MySQL ALTER TABLE `players` ADD `resets` INT(11) NOT NULL DEFAULT "0"; SQLite ALTER TABLE players ADD resets INTEGER not null default 0 Adicionando nas sources player.h procure por: uint32_t level; logo abaixo, adicione: uint32_t resets; iologindata.cpp procure por query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`," substitua por: query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`, `resets`, " procure por player->level = std::max((uint32_t)1, (uint32_t)result->getDataInt("level")); logo abaixo adicione: player->resets = (uint32_t)result->getDataInt("resets"); procure por query << "`maglevel` = " << player->magLevel << ", "; logo abaixo adicione: query << "`resets` = " << player->resets << ", "; players.cpp procure por: s << " (Level " << level << ")"; substitua por: s << " (Level " << level << ") [Reset " << resets << "]"; players.h procure por: void setPromotionLevel(uint32_t pLevel); logo abaixo adicione: uint32_t getResets() { return resets;} void setResets(int32_t amount) { resets += amount; if (resets < 0) {resets = 0;} } luascript.cpp para 0.3.6 static int32_t luaDoPlayerSetIdleTime(lua_State* L); logo abaixo adicione: static int32_t luaGetResets(lua_State* L); static int32_t luaSetResets(lua_State* L); talkactions.xml <talkaction words="!rank;/rank" event="script" value="ranks.lua"/> <talkaction words="!reset;/reset" script="reset.lua"/> ranks.lua Créditos: Dark Skyllen, Marcryzius, Mock, Kydrai, Cykotitan, gpedro*. * adaptação para 0.4 para 0.4 int32_t LuaInterface::luaDoPlayerSetIdleTime(lua_State* L) { //doPlayerSetIdleTime(cid, amount) int64_t amount = popNumber(L); ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) { player->setIdleTime(amount); lua_pushboolean(L, true); } else { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } logo abaixo adicione: int32_t LuaInterface::luaGetResets(lua_State* L) { //getResets(cid) ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) lua_pushnumber(L, player->getResets()); else { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } int32_t LuaInterface::luaSetResets(lua_State* L) { //setResets(cid, amount) int32_t amount = popNumber(L); ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) { player->setResets(amount); lua_pushboolean(L, true); } else { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } procure por: //doPlayerSetIdleTime(cid, amount) lua_register(m_luaState, "doPlayerSetIdleTime", LuaInterface::luaDoPlayerSetIdleTime); logo abaixo adicione: //getResets(cid) lua_register(m_luaState, "getResets", LuaInterface::luaGetResets); //setResets(cid, amount) lua_register(m_luaState, "setResets", LuaInterface::luaSetResets); luascript.h procure por: reset.lua1 ponto
-
Critical Chance Hit
1 pontoEsse sistema foi postado na otland pelo usuário VirrageS Foi testado em um TFS 0.4 REV.3884 Vamos lá: ITEM.CPP Embaixo de: case ATTR_ARTICLE: { std::string article; if(!propStream.getString(article)) return ATTR_READ_ERROR; setAttribute("article", article); break; } Colocar: case ATTR_CRITICALHITCHANCE: { int32_t criticalHitChance; if(!propStream.getLong((uint32_t&)criticalHitChance)) return ATTR_READ_ERROR; setAttribute("criticalhitchance", criticalHitChance); break; } Embaixo de: bool begin = true; if(tmp) { s << " (Arm:" << tmp; begin = false; } Colocar: if(it.criticalHitChance || (item && item->getCriticalHitChance())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Crit Chance:" << std::showpos << int32_t(item ? item->getCriticalHitChance() : it.criticalHitChance) << "%"<< std::noshowpos; } Embaixo de: if(it.defense || it.extraDefense || (item && (item->getDefense() || item->getExtraDefense()))) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Def:" << int32_t(item ? item->getDefense() : it.defense); if(it.extraDefense || (item && item->getExtraDefense())) s << " " << std::showpos << int32_t(item ? item->getExtraDefense() : it.extraDefense) << std::noshowpos; } Colocar: if(it.criticalHitChance || (item && item->getCriticalHitChance())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Crit Chance:" << std::showpos << int32_t(item ? item->getCriticalHitChance() : it.criticalHitChance) << "%"<< std::noshowpos; } ITEM.H Embaixo de: ATTR_DUALWIELD = 43, Colocar: ATTR_CRITICALHITCHANCE = 44, Embaixo de: int32_t getAttack() const; Colocar: int32_t getCriticalHitChance() const; Embaixo de: inline bool Item::isScriptProtected() const { const bool* v = getBooleanAttribute("scriptprotected"); if(v) return *v; return false; } Colocar: inline int32_t Item::getCriticalHitChance() const { const int32_t* v = getIntegerAttribute("criticalhitchance"); if(v) return *v; return items[id].criticalHitChance; } ITEMS.CPP Embaixo de: attackSpeed = 0; Colocar: criticalHitChance = 0; Embaixo de: else if(tmpStrValue == "extradefense" || tmpStrValue == "extradef") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.extraDefense = intValue; } Colocar: else if(tmpStrValue == "criticalhitchance") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.criticalHitChance = intValue; } ITEMS.H TROCAR: int32_t attack, extraAttack, defense, extraDefense, armor, breakChance, hitChance, maxHitChance, POR: int32_t attack, criticalHitChance, extraAttack, defense, extraDefense, armor, breakChance, hitChance, maxHitChance, LUASCRIPT.CPP Embaixo de: setField(L, "text", item->text); Colocar: setField(L, "criticalHitChance", item->criticalHitChance); PLAYER.CPP Embaixo de: int32_t Player::getArmor() const { int32_t i = SLOT_FIRST, armor = 0; for(; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) armor += item->getArmor(); } if(vocation->getMultiplier(MULTIPLIER_ARMOR) != 1.0) return int32_t(armor * vocation->getMultiplier(MULTIPLIER_ARMOR)); return armor; } Colocar: int32_t Player::getCriticalHitChance() const { int32_t i = SLOT_FIRST, crit = 0; for(; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) crit += item->getCriticalHitChance(); } return crit; } PLAYER.H Embaixo de: virtual int32_t getArmor() const; Colocar: virtual int32_t getCriticalHitChance() const; WEAPONS.CPP Substituir todos: if(random_range(1, 100) < g_config.getNumber(ConfigManager::CRITICAL_HIT_CHANCE)) Por: if(random_range(1, 100) < player->getCriticalHitChance() + g_config.getNumber(ConfigManager::CRITICAL_HIT_CHANCE)) A tag para se colocar no items.xml é a seguinte: <attribute key="criticalHitChance" value="5" /> Espero que gostem!1 ponto
-
[Action] Remover Pedra com Alavanca
Bom galera, tava sem nada para fazer aqui, e resolvi criar uma action muito simples, mais que tem gente que ainda procura... - Oque ela faz? Ela remove uma pedra que esta em um lugar X, e se usar a alavanca denovo.. a pedra é criada novamente. - Para que isso serve? Pode ser usados em servers de war, em quest's com rpg e etc... - Como eu 'instalo' isso em meu servidor? Muito simples, siga os passos... 1. Vá para a pasta data\actions\scripts e crie um arquivo lua chamado alavanca, depois bote isso dentro: function onUse(cid, item, toPosition) rock1pos = {x=XXXX, y=YYYY, z=ZZ, stackpos=1} -- Posição da Pedra getrock1 = getThingfromPos(rock1pos) UniID = 3331 -- UniqueID que vai ser adicionado na alavanca rockID = 1304 -- ID da pedra if item.uid == UniID and item.itemid == 1945 and getrock1.itemid == rockID then doRemoveItem(getrock1.uid, 1) doTransformItem(item.uid, item.itemid+1) doSendMagicEffect(rock1pos, 2) elseif item.uid == UniID and item.itemid == 1946 then doCreateItem(rockID, 1, rock1pos) doTransformItem(item.uid,item.itemid-1) doSendMagicEffect(rock1pos, 13) end return TRUE end 2. Adicione esse tag em actions.xml : <action uniqueid="3331" script="alavanca.lua"></action> Só isso galerinha, é um script simples que eu fiz para passar o tempo!. Abraços..1 ponto
-
Correção Clonar items NPC usando ElfBot
Se você já teve um servidor, já sabe como que é isso. Por falha humana, em todos npcs esquecerem de definir um valor minimo para os itens agrupáveis ser vendido, com isso se você coloca-se no elfbot auto buyitems IDdoITEM 0 ele iria comprar e não pagar nada. Para os que não corrigiram pelos NPCS tambem há como corrigir pelas sources. npc.cpp if(NpcState* npcState = getState(player, true)) { npcState->amount = amount; npcState->subType = count; npcState->itemId = itemId; npcState->buyPrice = getListItemPrice(itemId, SHOPEVENT_BUY); npcState->ignoreCap = ignoreCap; npcState->inBackpacks = inBackpacks; const NpcResponse* response = getResponse(player, npcState, EVENT_PLAYER_SHOPBUY); executeResponse(player, npcState, response); } substitua por if(NpcState* npcState = getState(player, true)) { if(amount <= 0){ amount = 1; } npcState->amount = amount; npcState->subType = count; npcState->itemId = itemId; npcState->buyPrice = getListItemPrice(itemId, SHOPEVENT_BUY); npcState->ignoreCap = ignoreCap; npcState->inBackpacks = inBackpacks; const NpcResponse* response = getResponse(player, npcState, EVENT_PLAYER_SHOPBUY); executeResponse(player, npcState, response); } Créditos: Matheus Mkalo1 ponto
-
Vizalain Server [8.6]
1 pontoVizalain Server [8.6] - Servidor Feito Para Exp Baixa ( 0 ~ 5000 ) - Hunts ( 20 Free, 12 VIP e mais algumas á esquerda da city ) - Quests ( Anihilator, Demon Oak [ Editada por Mim ], Vizalain Weapons, Vizalain Ring, DH ) - Items 8.6 ( Draken Set.. com Draken Boots Sem Lixo ) Hunts Free Download http://www.4shared.com/file/AGFPb5Ab/Vizalain_Server_86.html? ACC GOD : god/portari4 http://www.virustotal.com/file-scan/report.html?id=1220a08021fb97b2d251baba45f581dab86fbe0f8734b906020b7689619462f0-1324086255 Créditos Portarri1 ponto
-
Peça aqui sua hotkey para ElfBot NG
auto 200 isattacking { ifnoplayeronscreen { if [$target.distance <= 1] { say 'exori gran' | wait 1900 }} auto 200 isattacking { ifplayeronscreen { say 'exori hur' | wait 900 }} eu só consegui fazer em duas hotkeys.1 ponto
-
Peça aqui sua hotkey para ElfBot NG
auto 200 ifplayeronscreen { isattacking { say 'exori hur' | wait 200 }} else ifnoplayeronscreen {{ isattacking { say "exori gran" | wait 1900}}} depois eu dou mais uma editada para ele só soltar exori gran do lado do monstro. assim ta bom, é impossível pegar white skull agora (:1 ponto
-
AlienBot Platinum - Estrutura
AlienBot Platinum - Estrutura
KleitonProcurado reagiu a Renato por uma resposta no tópico
1 pontoAlienBot Platinum é a nossa versão 2.0. Fiquem ligados nessa XtremeVersion. O AlienBot 1.0 foi totalmente excluído de nossos planos. O AlienBot Platinum foi começado do zero. 100% INDETECTÁVEL. ├ Options │ ├ Level Spy │ ├ Light Hack │ ├ Dash │ ├ Outfits │ ├ Addons │ ├ Auto Fishing │ ├ ExpToLevel │ ├ Skills/h │ ├ Reconnect │ ├ Integrated Skills ├Tools │ ├ Self Heal │ │ ├ Spell │ │ ├ Potion │ │ ├ Rune │ ├ Heal Friend │ │ ├ Exura Sio │ │ ├ Rune │ │ ├ Potion │ ├ Mana Restore │ │ ├ Potion │ ├ Alerts │ ├ Rune Maker │ ├ Auto Flags │ │ ├ Auto Cure Poison │ │ ├ Auto Cure Paralyze │ │ ├ Auto Utamo │ │ ├ Auto Haste │ ├ Training │ │ ├ Mana Caster │ │ ├ Train with Monks │ │ ├ Train with Slimes │ │ ├ Anti-kick │ │ ├ Eat Food ├War Tools │ ├ Combo Leader │ ├ Catch Sight │ ├ BlackList │ ├ Spell/Rune Attacker ├Cave Bot │ ├ Attacker │ ├ Spell/Rune Attacker │ ├ Walker │ │ ├ Add MyPosition │ │ ├ Ramp - North/South/East/West │ │ ├ Up - Ladder/Rope │ │ ├ Learn │ │ ├ Convert NG Waypoints │ ├ Looting Como estão vendo, falta muita coisa! E ainda quero por mais! SUGESTÕES, EU QUERO SUGESTÕõÕõÕES!!! Sugestões de mais ferramentas, mais utilitários, etc! ACOMPANHEM O TÓPICO FREQUENTEMENTE, SEMPRE ATUALIZAREM AO TERMINAR UMA FERRAMENTA.1 ponto -
Como criar um site para seu servidor!
certifique-se de está tudo certo no config.lua se está mysql a senha está certa se vc retirou os espaços no começo das frases eo os traços --1 ponto
-
O que estão achando do nosso novo portal?
Eai meus tibianos favoritos! Hoje venho aqui com uma enquete oficial, para saber o que vocês estão achando de nosso novo portal. Como todos já devem ter percebido, semana passada implementamos esse lindo portal que vos-vêem, e também reestruturamos o design do fórum, modificando a cor padrão de laranja para marrom, junto a modificações relevantes no bg/logotipo, modificações na segurança e em outros aspectos do fórum, então se o nosso logo esta bugando o nosso layout em seu navegador, aperte Ctrl + F5 para ele atualizar a cache, e, se mesmo assim continuar, aperte Ctrl + Shift + Del, e limpe as caches manualmente. Mas chega com essa blablabla porque não vim aqui falar sobre nossas modificações - até porque já foi muito comentado em outras notícias daqui - e sim especialmente do nosso Novo Portal. A enquete está ai, podem votar até o dia 17 de Dezembro de 2011 (2 meses) que é quando a mesma acaba! (se está vendo a notícia pelo portal, clique aqui para votar) Atenciosamente, Renato Ribeiro e Equipe TibiaKing.1 ponto
-
(Resolvido) Erro Ao criar conta no site via xampp AJUDEM PLX
Vai no seu config.php Procura essa linha apaga ela e poe essa: Agora procura essa linha: e mude para: Tenta criar o char e ve se vai dar o erro1 ponto
-
(Resolvido) Erro Ao criar conta no site via xampp AJUDEM PLX
Me manda ai os IDS e nome das cidades que eu faço pra vc1 ponto
-
(Resolvido) Erro Ao criar conta no site via xampp AJUDEM PLX
Perdão , eu não vi que o problema era com site.. para mim era no account manager hehehe Vá no config.php do seu site e configure isso ó: $config['site']['newchar_towns'][0] = array(3,5,1,6); $towns_list[0] = array(3 => 'Bree', 5 => 'Edoras', 1 => 'Dunedain', 6 => 'Rivendell'); // list of towns, id => 'name', $towns_list[0] - for world id 0 Começa pela segunda linha 3(ID do templo) => 'Nome da cidade do Map editor' e assim por diante.. essas vão aparecer no seu site na hora de criar o char Agora a primeira linha array(3,5,1,6) entre os parenteses coloque os IDS dos templos que você colocou na segunda linha Agora acho que vai =)1 ponto
-
(Resolvido) Erro Ao criar conta no site via xampp AJUDEM PLX
Faça o seguinte. Primeiro no seu mapa você tem que "setar" a cidade, ou seja, vá no seu mapeditor e em Map> Edit Towns ( Control+T ) Lá você tem que criar um templo no mapa. Certo, quando você criar um templo vai aparecer Assim , então é só pegar esse ID ( se for o primeiro provavelmente será 1). Agora vá no seu banco de dados, edita o player que ta dando esse erro e coloque em Town_ID o ID do seu templo ( no caso 1 ). Para novas contas não terem o mesmo problema, vá no player Account Manager e altere o Town_ID para o ID do seu templo ( no caso 1 ). Por último, no config.lua logo no começo em coloque o ID do templo ( no caso 1 ). Feito isso, você poderá ser feliz =) Abraço1 ponto
-
O que estão achando do nosso novo portal?
Acho que o portal vai ajudar muito o TK a crescer, Ja estou vendo isso, pois agr temos mais membros ativos, Tudo é so uma questao de tempo, Abraços1 ponto
-
O que estão achando do nosso novo portal?
Achei otimo, apenas isso pelo Portal! E graças a ele me incetivo a ser mais um membro do servidor, hehe.1 ponto
-
O que estão achando do nosso novo portal?
O que estão achando do nosso novo portal?
TonyHalk reagiu a Raul Neiva por uma resposta no tópico
1 pontoFicou muito bom. Concerteza irá trazer novos usuários Grande avanço do TK !1 ponto -
O que estão achando do nosso novo portal?
Ficou ótimo e vamos melhorá-lo ainda mais, continuemos assim. Abraços, Mophus1 ponto
-
O que estão achando do nosso novo portal?
O que estão achando do nosso novo portal?
TonyHalk reagiu a Private Sub Teste por uma resposta no tópico
1 pontoEstá ó-t-e-m-o, mudou totalmente o fórum... Vai trazer muito mais usuários aqui, bela iniciativa!1 ponto -
Como fazer o seu PotionRefiller
Como fazer o seu PotionRefiller
Anny Carolinne reagiu a toty1234 por uma resposta no tópico
1 pontoAqui está um tutorial de como fazer o seu refiller para o Redbot. Fiz este turial la no forum oficial do RedBot, e resolvi passa-lo para ca, para ajudar a galara do TibiaKing.com Bom, Vamos ao que Intereça, né Para fazer o Reffiler voc vai fazer o seguinte, após acabar o waypoint, Clique no HuntIf, e coloque, MP/HP de acordo com a pot que voc for usar, e do lado coloque o Valor: No exemplo quero que o bot saia da cave com 20 ou menos Mana Potions. Entao voc faz o waypoint até a loja de potion, e selecione em Say, Default, hi. Como no exemplo: E agora coloque em Say de novo, mas agora, NPC, trade. Como no exemplo: E coloca o ID da potion no local do Buy, e então do lado a quantidade que voc quer qe fique no final, as potions, o TOTAL. No exemplo quero que ele comple até completar 50 Mana Potions(ID: 268) E Então faça o Wpt de volta para a cave, e só savlvar o seu waypoint, e colocar para rodar... Obs: Não esqueça de deixar a sua Backpack onde estão as potions, aberta.(ela não pode ficar minimizada como as outras, se não me engano...) Espero ter ajudado, Se gostaram me deem um REP+1 ponto
Líderes está configurado para São Paulo/GMT-03:00