pra que server isso?
- Fórum
- OTServ
- Recursos
- Linguagens de Programação
- Combo Detector Auto Bot (Beta)
DE
Combo Detector Auto Bot (Beta)
Por DevilMoon, 13 de ago. de 2010 em Linguagens de Programação
script
otserv
3
2.1k
info
Grupo: Campones
Registrado: 05/05/09
Posts: 1
Reputação: 0
Char no Tibia: Power Kronus

14 de agosto de 2010 às 10:04
info
Grupo: Conde
Registrado: 30/01/10
Posts: 706
Reputação: +125
Gênero: Masculino
Char no Tibia: Bakwin

14 de agosto de 2010 às 11:19
Ops , Escrevi Errado ali no Sob , é para achar aquelas Sources
pra que server isso?
é para quem tem OtServ , com rates baichas como Styller muintos colocam MageBomb que Alguns Admistradores , Falao como Contra as Regras entao quando alguem soltar combo de sd aparecera no Chat do God e Ele Sabera !!
Editado Agosto 14 por DevilMoon


info
Grupo: Conde
Registrado: 30/01/10
Posts: 706
Reputação: +125
Gênero: Masculino
Char no Tibia: Bakwin
Script deve trabalhar com TFS 0.3.4/0.3.5 (testado em 0.3.4pl2).
É transmitido msg como:
e show de animação no jogo.
configuração padrão:
comboTime = 100 - sds cheque passado em 0,1 seg
comboMembers = 2 - show de animação (se animação = 1) quando dois ou mais jogadores do combo
comboFriends = 3 - salvar uid de jogadores como "amigos", quando mais de 3 jogadores do combo broadcast nicks / dos jogadores quando 3 ou mais 'amigos' do combo mais de uma vez
comboFriendsClearTime = 5 * 60 * 1000 - remove 'amigo' do jogador 'lista de amigos, quando não fiz combo de 5 minutos
comboFriendsClearInterval = 1 * 60 * 1000 - remove 'velhos' amigos 'a cada minuto
comboShowAnimation = 1 - show de animação no alvo / atacantes e texto "Combo X" (x - número de jogadores combo)
Começando ao Script:
Ache (spells.cpp) [add no lugar válido! verificar 'se o resultado () "]:
if(result) { Spell::postCastSpell(player);Agore Adicione:
if(item->getID() == 2268 && creatureId) { // check combos in last XX miliseconds uint32_t time = OTSYS_TIME(); AttackersMap tmpAttackersMap; AttackersMap tmpAttackersMap2; uint32_t comboTime = g_config.getNumber(ConfigManager::COMBO_CT); uint32_t comboMembers = g_config.getNumber(ConfigManager::COMBO_CM); uint32_t comboFriends = g_config.getNumber(ConfigManager::COMBO_CF); uint32_t comboFriendsClearTime = g_config.getNumber(ConfigManager::COMBO_FCT); uint32_t comboFriendsClearInterval = g_config.getNumber(ConfigManager::COMBO_FCI); uint32_t comboShowAnim = g_config.getNumber(ConfigManager::COMBO_SA); // remove old friends from list if(comboTime && comboFriends && time - comboFriendsListLastClear >= comboFriendsClearInterval) { for(ComboFriendsList::iterator cflit = comboFriendsList.begin(); cflit != comboFriendsList.end(); ++cflit) for(AttackersMap::iterator rfit = cflit->second.begin(); rfit != cflit->second.end(); ++rfit) if(rfit->second < time - comboFriendsClearTime) cflit->second.erase(rfit->first); } if(comboTime && comboMembers && time - comboLastCheck >= comboTime) { for(AttackersMap::iterator acit = comboAttackersCount.begin(); acit != comboAttackersCount.end(); ++acit) { if(acit->second >= comboMembers) { // make combo members list for(AttackersMap::iterator alit = comboAttackersList.begin(); alit != comboAttackersList.end(); ++alit) { if(alit->second == acit->first) { comboList[alit->first] = alit->first; } } // show combo animations if(comboShowAnim) { Creature* creature = g_game.getCreatureByID(acit->first); if(creature != NULL) { char buffer[20]; sprintf(buffer, "COMBO %d", acit->second); g_game.addMagicEffect(creature->getPosition(), NM_ME_STUN); g_game.addAnimatedText(creature->getPosition(), TEXTCOLOR_GREEN, buffer); } for(AttackersMap::iterator sait = comboList.begin(); sait != comboList.end(); ++sait) { Creature* creature = g_game.getCreatureByID(sait->first); if(creature != NULL) { g_game.addMagicEffect(creature->getPosition(), NM_ME_CAKE); } } } comboFriendsNumber = 0; // make friends list for(AttackersMap::iterator cit = comboList.begin(); cit != comboList.end(); ++cit) { if(comboFriendsList.find(cit->first) != comboFriendsList.end()) { tmpAttackersMap2 = comboFriendsList[cit->first]; for(AttackersMap::iterator tait = tmpAttackersMap2.begin(); tait != tmpAttackersMap2.end(); ++tait) tmpAttackersMap[tait->first] = tait->first; } } for(AttackersMap::iterator ccit = tmpAttackersMap.begin(); ccit != tmpAttackersMap.end(); ++ccit) if(comboList.find(ccit->first) != comboList.end()) ++comboFriendsNumber; // broadcast combo members if(comboFriendsNumber >= comboFriends) { std::stringstream comboNamesList; for(AttackersMap::iterator ccit2 = tmpAttackersMap.begin(); ccit2 != tmpAttackersMap.end(); ++ccit2) if(comboList.find(ccit2->first) != comboList.end()) { Creature* creature = g_game.getCreatureByID(ccit2->first); if(creature != NULL) comboNamesList << ", " << creature->getName(); } comboNamesList << " - did combo!"; g_game.broadcastMessage(comboNamesList.str(), MSG_STATUS_WARNING); // add new 'friends' for(AttackersMap::iterator cit = comboList.begin(); cit != comboList.end(); ++cit) { tmpAttackersMap.clear(); if(comboFriendsList.find(cit->first) != comboFriendsList.end()) tmpAttackersMap = comboFriendsList[cit->first]; for(AttackersMap::iterator tcit = comboList.begin(); tcit != comboList.end(); ++tcit) { tmpAttackersMap[tcit->first] = time; } comboFriendsList[cit->first] = tmpAttackersMap; } } comboList.clear(); } } comboAttackersList.clear(); comboAttackersCount.clear(); comboLastCheck = time; } // add player to attackers list comboAttackersList[player->getID()] = creatureId; comboAttackersCount[creatureId] += 1; }Ache (spells.h):
Adicione Isso:
typedef std::map<uint32_t, uint32_t> AttackersMap; AttackersMap comboAttackersList; AttackersMap comboAttackersCount; AttackersMap comboList; typedef std::map<uint32_t, AttackersMap> ComboFriendsList; ComboFriendsList comboFriendsList; uint32_t comboLastCheck; uint32_t comboFriendsNumber; uint32_t comboFriendsListLastClear;Ache (configmanager.cpp):
m_confNumber[MAXIMUM_DOOR_LEVEL] = getGlobalNumber("maximumDoorLevel", 500);Adicione isso:
m_confNumber[COMBO_CT] = getGlobalNumber("comboTime", 0); m_confNumber[COMBO_CM] = getGlobalNumber("comboMembers", 0); m_confNumber[COMBO_CF] = getGlobalNumber("comboFriends", 0); m_confNumber[COMBO_FCT] = getGlobalNumber("comboFriendsClearTime", 0); m_confNumber[COMBO_FCI] = getGlobalNumber("comboFriendsClearInterval", 0); m_confNumber[COMBO_SA] = getGlobalNumber("comboShowAnimation", 0);Ache (configmanager.h):
Adicione Isso:
COMBO_CT, COMBO_CM, COMBO_CF, COMBO_FCT, COMBO_FCI, COMBO_SA,Agora Adicione isso no Config.lua
Creditos:
Google Tradutor -- Traduzir o Texto, Algumas Palavras"""
Gesior.pl -- Criador do Script"""
Espero Que Gostem do Script , Estou Utilizando no Meu OtServ é Otimo !!!
Abraçoss!!!
Link Original
Editado Agosto 14 por DevilMoon