Líderes
-
Mathias Kenfi
MembroPontos233Total de itens -
Mateus Robeerto
HéroiPontos335Total de itens -
-
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 04/09/20 em %
-
[Loot Channel] -- Tutorial como adicionar Loot Channel
[Loot Channel] -- Tutorial como adicionar Loot Channel
Tokias e 7 outros reagiu a Mathias Kenfi por uma resposta no tópico
8 pontos8 pontos -
CLIENT OLD 8.6 para estendido e protegido cab
CLIENT OLD 8.6 para estendido e protegido cab
Kramer e um outro reagiu a Mateus Robeerto por uma resposta no tópico
2 pontoseste é um tutorial de como usar um cliente com spr/dat estendido e protegido pelo CAB. fiz um video mostrando como usar um client com spr/dat estendido sem o error, basta seguir passo a passo o que eu fiz, em resumo voce precisara copiar seu dat estendido pra outro local para poder editar ele, salvando ele como não estendido e dps renomeando para poder usar junto com o original e compilando tudo com o programa cab... A DLL ajuda o cliente a ler as 2 dat (compilada pelo programa cab) , sem ela o cliente não abre, caso o teu cliente tenha o bug do ctrl+n ou alguns outros bugs que eu vi em alguns casos, a DLL tem a função de arrumar a maioria deles. LINK DOWNLOAD https://www.mediafire.com/file/kxqkywxeijk8hn2/programa_para_oldclient.rar/file ou creator cab https://drive.google.com/file/d/19b-EqpS-RmOQ_1o7ubb2a7j6RKcijjUa/view?usp=sharing scan https://www.virustotal.com/gui/file/4398e414d680ac26addbedc1f20bd59a82b546a1633abbb02b13d2f7150e950e/detection DLL https://drive.google.com/file/d/1T8XgwgHJAO9sgw5WR809GjMfej2NvP3n/view?usp=sharing SCAN https://www.virustotal.com/gui/file/539f0f7187c668457a14d87603e075ab5d1b6f6ac6a17aabf2b591fc3c177741/detection stup-pe hoohar o client https://drive.google.com/file/d/1cwR1wj3M8IsvxmIt5pQhZ4-DlFSMQVal/view?usp=sharing scan https://www.virustotal.com/gui/file/d06889d61474ee9480947956e52916fb997a3717e9f59d3ed830b5c780e81340/detection2 pontos -
OTClient V8
OTClient V8
Dragonight reagiu a Reds por uma resposta no tópico
1 pontoBoa tarde pessoal, vim aqui trazer o OTClient V8 + OTClient Bot v8. Acredito que a maioria do fórum já conheça o OTClient (utilizado em servidores como o pokexgames). Ano passado o Kondra começou um projeto e melhorou o OTClient, então hoje temos um client otimizado e com funções novas. Melhor otimização e renderização (60 fps em um computador de 11 anos) Melhor suporte para DirectX9 e DirectX11 Renderização adaptativa Renderizações de luzes refeitas Encontrador de caminhos e caminhada automática reescritas Reescrito sistema de caminhada Suporte HTTP lua api com JSON (O que permite troca de informações entre os clientes) Atualizador automático Novo sistema de arquivos Encriptação e compressor de arquivos Sistema automático de diagnóstico Interface atualizada Novo handler para erros e crashes Protocolo HTTP para login Notícias e lojas ingame Atualizado gerenciador de hotkeys Battle list atualizada e otimizada Novos painéis e efeitos visuais no mapa Removido diversos recursos não utilizados Kondra (criador dessa nova versão do client) destaca a velocidade em comparação ao client da cipsoft. Além disso foi criado um bot a parte para esse client. Dentro do otclient temos o candyBot, porém esse é muito mais avançado. Entre as funções disponíveis no OTClient V8 BOT temos: Auto stack Dash Transformador de gp Anti push Cavehunting (waypoints, autoattack, autoloot) auto hur auto utamo auto heal auto eat Vejam que para configurar o monstro a ser atacado, são disponibilizadas diversas funções, como spell, runa, distância.. Outros prints: Claro, além disso podem ser criados novas funções, já que o cliente está com todas as funções para isso. A documentação oficial das novas funções no bot está no github: https://github.com/OTCv8/otclientv8_bot Vídeo mostrando comuncação HTTP com JSON entre clientes para magicwall: Vídeo mostrando o cavehunting: Scan: https://www.virustotal.com/gui/file/2625727cb794aafea480ff2ee3107cd349b2266ba085190e57e8b82d0c3882d8/detection Download do client + bot: https://github.com/OTCv8/otclientv8/archive/master.zip Créditos: Kondra1 ponto -
[Loot Channel] -- Tutorial como adicionar Loot Channel
[Loot Channel] -- Tutorial como adicionar Loot Channel
Unknown Beats reagiu a Mathias Kenfi por uma resposta no tópico
1 pontoTópico atualizado!1 ponto -
[Loot Channel] -- Tutorial como adicionar Loot Channel
[Loot Channel] -- Tutorial como adicionar Loot Channel
Mathias Kenfi reagiu a LeoTK por uma resposta no tópico
1 ponto#removido1 ponto -
CLIENT OLD 8.6 para estendido e protegido cab
CLIENT OLD 8.6 para estendido e protegido cab
Absolute Luffy reagiu a Mateus Robeerto por uma resposta no tópico
1 pontovou uploar pelo mediafire...... pronto ja adicionei link no topico!1 ponto -
Skill Fishing to Energy Defence Skill TFS 0.3.6
Skill Fishing to Energy Defence Skill TFS 0.3.6
braianlomas reagiu a ayato96 por uma resposta no tópico
1 pontobool Game::combatChangeHealth(CombatType_t combatType, Creature* attacker, Creature* target, int32_t healthChange, MagicEffect_t hitEffect/* = MAGIC_EFFECT_UNKNOWN*/, TextColor_t hitColor/* = TEXTCOLOR_UNKNOWN*/, bool force/* = false*/) { const Position& targetPos = target->getPosition(); if(healthChange > 0) { if(!force && target->getHealth() <= 0) return false; bool deny = false; CreatureEventList statsChangeEvents = target->getCreatureEvents(CREATURE_EVENT_STATSCHANGE); for(CreatureEventList::iterator it = statsChangeEvents.begin(); it != statsChangeEvents.end(); ++it) { if(!(*it)->executeStatsChange(target, attacker, STATSCHANGE_HEALTHGAIN, combatType, healthChange)) deny = true; } if(deny) return false; target->gainHealth(attacker, healthChange); if(g_config.getBool(ConfigManager::SHOW_HEALING_DAMAGE) && !target->isGhost() && (g_config.getBool(ConfigManager::SHOW_HEALING_DAMAGE_MONSTER) || !target->getMonster())) { char buffer[20]; sprintf(buffer, "+%d", healthChange); const SpectatorVec& list = getSpectators(targetPos); if(combatType != COMBAT_HEALING) addMagicEffect(list, targetPos, MAGIC_EFFECT_WRAPS_BLUE); addAnimatedText(list, targetPos, g_config.getNumber(ConfigManager::HEALTH_HEALING_COLOR), buffer); } } else { const SpectatorVec& list = getSpectators(targetPos); if(!target->isAttackable() || Combat::canDoCombat(attacker, target) != RET_NOERROR) { addMagicEffect(list, targetPos, MAGIC_EFFECT_POFF); return true; } int32_t damage = -healthChange; if(damage != 0) { if(!combatType == COMBAT_PHYSICALDAMAGE && target && target->getPlayer()) { double damageChange = 0; int32_t skillFish = target->getPlayer()->getSkill(SKILL_FISH, SKILL_LEVEL); if(skillFish >= 10) damageChange = std::ceil(skillFish * 0.1 * damage / 100); if((int32_t)damageChange != 0) { damage -= (int32_t)damageChange; char buffer[150]; sprintf(buffer, "%d hitpoint%s has been absorbed by your resistance.", (int32_t)damageChange, ((int32_t)damageChange == 1 ? "" : "s")); target->getPlayer()->addSkillAdvance(SKILL_FISH, 1, true); target->getPlayer()->sendTextMessage(MSG_EVENT_DEFAULT, buffer); } } if(target->hasCondition(CONDITION_MANASHIELD) && combatType != COMBAT_UNDEFINEDDAMAGE) { int32_t manaDamage = std::min(target->getMana(), damage); damage = std::max((int32_t)0, damage - manaDamage); if(manaDamage != 0) { bool deny = false; CreatureEventList statsChangeEvents = target->getCreatureEvents(CREATURE_EVENT_STATSCHANGE); for(CreatureEventList::iterator it = statsChangeEvents.begin(); it != statsChangeEvents.end(); ++it) { if(!(*it)->executeStatsChange(target, attacker, STATSCHANGE_MANALOSS, combatType, manaDamage)) deny = true; } if(deny) return false; target->drainMana(attacker, combatType, manaDamage); char buffer[20]; sprintf(buffer, "%d", manaDamage); addMagicEffect(list, targetPos, MAGIC_EFFECT_LOSE_ENERGY); addAnimatedText(list, targetPos, TEXTCOLOR_BLUE, buffer); } } damage = std::min(target->getHealth(), damage); if(damage > 0) { bool deny = false; CreatureEventList statsChangeEvents = target->getCreatureEvents(CREATURE_EVENT_STATSCHANGE); for(CreatureEventList::iterator it = statsChangeEvents.begin(); it != statsChangeEvents.end(); ++it) { if(!(*it)->executeStatsChange(target, attacker, STATSCHANGE_HEALTHLOSS, combatType, damage)) deny = true; } if(deny) return false; target->drainHealth(attacker, combatType, damage); addCreatureHealth(list, target); TextColor_t textColor = TEXTCOLOR_NONE; MagicEffect_t magicEffect = MAGIC_EFFECT_NONE; switch(combatType) { case COMBAT_PHYSICALDAMAGE: { Item* splash = NULL; switch(target->getRace()) { case RACE_VENOM: textColor = TEXTCOLOR_LIGHTGREEN; magicEffect = MAGIC_EFFECT_POISON; splash = Item::CreateItem(ITEM_SMALLSPLASH, FLUID_GREEN); break; case RACE_BLOOD: textColor = TEXTCOLOR_RED; magicEffect = MAGIC_EFFECT_DRAW_BLOOD; splash = Item::CreateItem(ITEM_SMALLSPLASH, FLUID_BLOOD); break; case RACE_UNDEAD: textColor = TEXTCOLOR_GREY; magicEffect = MAGIC_EFFECT_HIT_AREA; break; case RACE_FIRE: textColor = TEXTCOLOR_ORANGE; magicEffect = MAGIC_EFFECT_DRAW_BLOOD; break; case RACE_ENERGY: textColor = TEXTCOLOR_PURPLE; magicEffect = MAGIC_EFFECT_PURPLEENERGY; break; default: break; } if(splash) { internalAddItem(NULL, target->getTile(), splash, INDEX_WHEREEVER, FLAG_NOLIMIT); startDecay(splash); } break; } case COMBAT_ENERGYDAMAGE: { textColor = TEXTCOLOR_PURPLE; magicEffect = MAGIC_EFFECT_ENERGY_DAMAGE; break; } case COMBAT_EARTHDAMAGE: { textColor = TEXTCOLOR_LIGHTGREEN; magicEffect = MAGIC_EFFECT_POISON_RINGS; break; } case COMBAT_DROWNDAMAGE: { textColor = TEXTCOLOR_LIGHTBLUE; magicEffect = MAGIC_EFFECT_LOSE_ENERGY; break; } case COMBAT_FIREDAMAGE: { textColor = TEXTCOLOR_ORANGE; magicEffect = MAGIC_EFFECT_HITBY_FIRE; break; } case COMBAT_ICEDAMAGE: { textColor = TEXTCOLOR_TEAL; magicEffect = MAGIC_EFFECT_ICEATTACK; break; } case COMBAT_HOLYDAMAGE: { textColor = TEXTCOLOR_YELLOW; magicEffect = MAGIC_EFFECT_HOLYDAMAGE; break; } case COMBAT_DEATHDAMAGE: { textColor = TEXTCOLOR_DARKRED; magicEffect = MAGIC_EFFECT_SMALLCLOUDS; break; } case COMBAT_LIFEDRAIN: { textColor = TEXTCOLOR_RED; magicEffect = MAGIC_EFFECT_WRAPS_RED; break; } default: break; } if(hitEffect != MAGIC_EFFECT_UNKNOWN) magicEffect = hitEffect; if(hitColor != TEXTCOLOR_UNKNOWN) textColor = hitColor; if(textColor < TEXTCOLOR_NONE && magicEffect < MAGIC_EFFECT_NONE) { char buffer[20]; sprintf(buffer, "%d", damage); addMagicEffect(list, targetPos, magicEffect); addAnimatedText(list, targetPos, textColor, buffer); } } } } return true; } Try now how it is ! means that for all types of damage except1 ponto -
[PEDIDO]Spell Drena Vida de Playerr
[PEDIDO]Spell Drena Vida de Playerr
XboxStreet reagiu a poko360 por uma resposta no tópico
1 pontoadicione a tag no script1 ponto -
Heroes Ruins | Cave Hunt | 8.60
1 pontoHeroes Ruins Version: 8.60 Download: Type: .Rar Size: 28KB Position(s): [X: 1029 Y: 1016 Z: 8] File password: tibiaking Scan: Images:1 ponto
-
Hydra's Deep Cave | 8.60
1 pontoHydra's Deep Cave Version: 8.60 Download: Type: .Rar Size: 45KB Position(s): [X: 1045 Y: 1008 Z: 8] File password: tibiaking Scan: Images:1 ponto
-
Criminal System
1 pontoBom pessoal, mais um script para vocês. - Qual o motivo desse nome? Não sei, estou meio sem ideias. - Oque tem nesse sistema? Bom, ele da o direito dos players do seu OTServer, serem ladrôes ou policiais, Tambem tem uma cadeia, para aonde os criminosos vão para. - Nossa, para oque ele serve? Para seu servidor ficar com mais diversão, Creio que ele seja meio inutil. Vamos começar. ! Crie um arquivo .lua chamado Policial em \data\actions\scripts function onUse(cid, item, fromPosition, itemEx, toPosition) local config = { minreward = 500, -- Minimo que o policial ira ganhar. maxreward = 2000, -- Maximo que o policial ira ganhar storage = 5569, -- Uma storage qualquer color = math.random(1, 255), prisonPos = {x=1014, y=1034, z=7}, -- Para aonde sera teleportado o ladrão. storagePreso = 5570, -- Uma storage qualquer time = 60, -- Tempo que o ladrão vai ficar preso } local player = getSpectators(getCreaturePosition(cid), 7, 5) local money = math.random(config.minreward, config.maxreward) if player and #player > 0 then for t, pid in pairs(player) do if isPlayer(pid) and pid ~= cid then if getPlayerStorageValue(pid, config.storage) == 1 then setPlayerStorageValue(pid, storagePreso, os.time()+config.time) doTeleportThing(pid, config.prisonPos) doPlayerAddMoney(cid, money) doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Você acaba de ser preso, por cometer delitos.") doSendAnimatedText(getCreaturePosition(cid), "+"..money.."", config.color) else doPlayerSendCancel(cid, "Esse player nao cometeu delitos.") end end end end return TRUE end Crie um arquivo .lua chamado Ladrao em \data\actions\scripts function onUse(cid, item, itemEx) local config = { minMoneyRemove = 30, -- Minimo que o ladrão ira ganhar maxMoneyRemove = 1400, -- Maximo que o ladrão ira ganhar storage = 5569, -- Uma storage qualquer color = math.random(1, 255), } local player = getSpectators(getCreaturePosition(cid), 7, 5) local money = math.random(config.minMoneyRemove, config.maxMoneyRemove) if player and #player > 0 then for t, pid in pairs(player) do if isPlayer(pid) and pid ~= cid then if doPlayerRemoveMoney(pid, money) then setPlayerStorageValue(cid, config.storage, 1) doPlayerAddMoney(cid, money) doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Você acaba de ser roubado e perdeu "..money.." gps.") doSendAnimatedText(getCreaturePosition(cid), "+"..money.."", config.color) else doPlayerSendCancel(cid, "O player nao possui "..money.." gps.") end end end end return TRUE end Crie um arquivo .lua chamado Cadeia em \data\actions\scripts function onUse(cid,item) local config = { storagePreso = 5570, -- Uma storage qualquer toPos = {x=1016, y=1022, z=7}, -- Para aonde o player irá quando o tempo acabar } timePreso = getPlayerStorageValue(cid, config.storage) - os.time() if getPlayerStorageValue(cid, config.storagePreso) == -1 then doPlayerSendCancel(cid, "Você nao está preso.") else if timePreso <= 0 then setPlayerStorageValue(cid, config.storagePreso, -1) doTeleportThing(cid, config.toPos) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Espero que você pense bem agora, antes de cometer algum delito") else doPlayerSendCancel(cid, "Você ainda tem que esperar "..timePreso.." segundos, para ser solto.") end return TRUE end end Agora adicione os seguinte codigos em \data\actions\actions.xml <action actionid="1256" event="script" value="Cadeia.lua"/> <action itemid="2556" event="script" value="Policial.lua"/> <action itemid="10153" event="script" value="Ladrao.lua"/> Adicione a ACTION ID na porta da cadeia, Depois edite os nomes dos items. Para editar basta ir em \data\items\items.xml use a imaginação. Até mais.1 ponto