8.5x - 8.7x Atreyu OT 8.6 - TFS 0.4 (rev. 5934) (Mapa Custom)
-
Quem Está Navegando 0 membros estão online
-
Conteúdo Similar
-
Por Imperius
O propósito é criar uma nova função em creaturescripts que será acionada toda vez que um novo report (CTRL + R) for aberto.
Eu implementei para enviar uma notificação no grupo do Telegram, contendo os dados do report.
Isso garantirá que os GMs tenham acesso aos reports dos jogadores mesmo quando não estiverem logados, e também evitará que algum report seja perdido caso o jogador saia do servidor.
A parte do Telegram é apenas um exemplo. Você pode ajustar o script para executar outras ações desejadas.
creatureevent.cpp:
Dentro deste arquivo, localize a função:
uint32_t CreatureEvent::executeChannelLeave(Player* player, uint16_t channelId, UsersMap usersMap)
abaixo dela, adicione:
uint32_t CreatureEvent::executeOpenRuleViolation(Player* player, std::string message) { if (!m_interface->reserveEnv()) { std::clog << "[Error - CreatureEvent::executeOpenRuleViolation] Call stack overflow." << std::endl; return 0; } ScriptEnviroment* env = m_interface->getEnv(); env->setScriptId(m_scriptId, m_interface); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(player)); lua_pushstring(L, message.c_str()); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; }
Após, procure por:
std::string CreatureEvent::getScriptEventName() const
abaixo de:
case CREATURE_EVENT_CHANNEL_LEAVE: return "onLeaveChannel";
adicione:
case CREATURE_EVENT_OPEN_RULE_VIOLATION: return "onOpenRuleViolation";
Agora, procure por:
std::string CreatureEvent::getScriptEventParams() const
abaixo de:
case CREATURE_EVENT_CHANNEL_LEAVE: return "cid, channel, users";
adicione:
case CREATURE_EVENT_OPEN_RULE_VIOLATION: return "cid, message";
Procure por:
bool CreatureEvent::configureEvent(xmlNodePtr p)
abaixo de:
else if(tmpStr == "leavechannel") m_type = CREATURE_EVENT_CHANNEL_LEAVE;
adicione:
else if(tmpStr == "openruleviolation") m_type = CREATURE_EVENT_OPEN_RULE_VIOLATION;
creatureevent.h:
Dentro deste arquivo, localize:
enum CreatureEventType_t
adicione "CREATURE_EVENT_OPEN_RULE_VIOLATION" como o último item de enum CreatureEventType_t
Exemplo:
enum CreatureEventType_t { // ... CREATURE_EVENT_OPEN_RULE_VIOLATION };
Agora, procure por:
uint32_t executeChannelLeave(Player* player, uint16_t channelId, UsersMap usersMap);
abaixo dela, adicione:
uint32_t executeOpenRuleViolation(Player* player, std::string message);
game.cpp:
Dentro deste arquivo, localize:
bool Game::playerReportRuleViolation(Player* player, const std::string& text)
e substitua por:
bool Game::playerReportRuleViolation(Player* player, const std::string& text) { //Do not allow reports on multiclones worlds since reports are name-based if(g_config.getNumber(ConfigManager::ALLOW_CLONES)) { player->sendTextMessage(MSG_INFO_DESCR, "Rule violation reports are disabled."); return false; } cancelRuleViolation(player); boost::shared_ptr<RuleViolation> rvr(new RuleViolation(player, text, time(NULL))); ruleViolations[player->getID()] = rvr; ChatChannel* channel = g_chat.getChannelById(CHANNEL_RVR); if(!channel) return false; for(UsersMap::const_iterator it = channel->getUsers().begin(); it != channel->getUsers().end(); ++it) it->second->sendToChannel(player, SPEAK_RVR_CHANNEL, text, CHANNEL_RVR, rvr->time); CreatureEventList joinEvents = player->getCreatureEvents(CREATURE_EVENT_OPEN_RULE_VIOLATION); for(CreatureEventList::iterator it = joinEvents.begin(); it != joinEvents.end(); ++it) (*it)->executeOpenRuleViolation(player, text); return true; }
Agora é só compilar a source.
depois em "data > creaturescripts > creaturescripts.xml", adicione:
<event type="login" name="loginNotifyRuleViolation" script="notifyRuleViolation.lua"/> <event type="openruleviolation" name="openNotifyRuleViolation" script="notifyRuleViolation.lua"/>
em "data > creaturescripts > scripts", crie um arquivo notifyRuleViolation.lua e adicione:
function onOpenRuleViolation(cid, message) local config = { token = "", -- Token do seu BOT no Telegram chatId = "" -- ID do chat do Telegram que será enviado a notificação. } local message = "Player: "..getCreatureName(cid).."\n\nReport:\n"..message.."" message = string.gsub(message, "\n", "%%0A") local url = "https://api.telegram.org/bot"..config.token.."/sendMessage" local data = "chat_id="..config.chatId.."&text="..message.."" local curl = io.popen('curl -d "'..data..'" "'..url..'"'):read("*a") return true end function onLogin(cid) registerCreatureEvent(cid, "openNotifyRuleViolation") return true end
Demonstração:
1. Jogador abre um novo report (CTRL + R)
2. notifyRuleViolation.lua, definido em creaturescripts.xml, é acionado para enviar uma notificação ao grupo do Telegram.
-
Por Mateus Robeerto
Vi que muitas pessoas estão reclamando e que não funciona, bugs, erros no console, etc. Então, resolvi baixar a base do Thunder feita por MovieBr, atualizei do TFS 1.3 para o TFS 1.5 e corrigi cerca de 80% dos problemas. No entanto, ainda não consigo encontrar alguns bugs. Quem encontrar os bugs pode me relatar pelo Discord: 82mateusroberto. Dependendo do meu dia, pode levar alguns dias para eu responder e corrigir ou não. Acredito que vocês conseguem corrigir os erros, apenas precisam aprender a consertá-los. Não é difícil. Aproveitem para usar como base do seu mapa ou mesmo do projeto Thunder futuramente! Seguem as imagens que mostram a implementação de montaria e modal widow.
Obs: Alguns mapas/cavernas podem estar vazios por falta de adição. Eu não tinha boas ideias para adicionar, mas vocês podem adicionar ao seu gosto. Tenham uma boa utilização e sucesso com o projeto no futuro!
https://www.mediafire.com/file/0jtn2slt2j67666/baiakthunder-master.rar/file
https://www.mediafire.com/file/bougg0q6dlpu2fq/tfs+1.5+source.rar/file
https://www.mediafire.com/file/yq1s63xo6np9v53/860.rar/file
Este servidor só usa o OtClient. Abra o arquivo otclient/modules/game_feature/feature.lua e procure por esta linha.
if (versão >= 860) then adicione abaixo e salve.. pronto
g_game.enableFeature(GamePlayerMounts)
Aqui estão os GIFs
https://imgur.com/UGdQoSS
https://imgur.com/OwJ4hpp
https://imgur.com/7sN1MaJ
Para quem deseja usar uma gamestore personalizada, há uma disponível para TFS 1.5 e 8.6. Já a compartilhei há alguns dias. Dê uma olhada aqui.
-
Por GM Antica
Olá galera tudo bem?
Achei esse mapa aqui no fórum, porém ele nao estava funcional. Foi retirado alguns bugs visuais, e certificado que não ocorra PVP dentro dos Treiners:
Modificações:
● Capacidade total = 76 players
● Treiners divididos com "Wall" para o bom funcionamento e evitar que ocorra mortes dentro dos Treiners...
● Paisagens refeitas, um andar "Lobby" foi adicionado para interação e comércio
● Teleport adicionado no final de cada corredor para uma possível extensão
CRÉDITOS: Alissow + GM Antica
Segue alguns Prints:
Scan Vírus Total: https://www.virustotal.com/gui/file/456c5959bd38bd7bd61f8c46af1117e0425963da0f8e5afce0bf411bdd366171?nocache=1
Download:
Training Room 8.60 - by Alissow & GM Antica.rar
-
Por FeeTads
Opa rapaziadaa beleza?
Hoje estou disponibilizando uma source OTX 2, baseada na otx 2.x do mattyx - aqui, essa source que estou disponibilizando é um pouco diferente, com algumas features a mais do que a OTX padrão, como muitos sabem, a OTX serve apenas para abrir o seu OT, essa estou disponibilizando com algumas features, onde disponibilizei até scripts do TK, ou usando scripts do TK, tais como o autoloot na source do Naze, o projeto é pra Otserv 8.60.
Está sendo desenvolvido no github (projeto github) onde posto atualizações diárias do datapack e source. Vocês podem postar dúvidas, erros/bugs, dicas e qualquer outra coisa aqui no tópico ou no próprio github. Lembre-se de dar FOLLOW no projeto no github e SEGUIR o projeto aqui no fórum para acompanhar as atualizações.
Edit
systems Added:
Max Absorb All: (protect SSA + Might Ring, você coloca o máximo de protect all que pode ser atingido, caso o player passe disso é ignorado, o maximo de protect vai ser o que está no config.lua)
Commit max absorb all edit: fixed all system
Delete Players With Monster Name: Deleta o player com nome de monstro, ou com nome proibido (alteravel pelo config.lua), caso vc deixe "deletePlayersWithMonsterName = false", irá apenas renomear o player aleatóriamente sem deleta-lo, ele não conseguirá logar com nome de monstro ou nome proibido.
ps: Esse script pega o monster.xml todo, então mesmo que você adicione novos monstros, não precisar mexer em nada, ele ja vai pegar o novo monstro, mesmo sem precisar derrubar o Ot etc..
deletePlayersWithMonsterName = true forbiddenNames = "gm;adm;cm;support;god;tutor;god ; god; adm;adm ; gm;gm ; cm;cm ;" --// other names here
edit: 30/10
modifyDamageInK = true (essa função ativada irá modificar a saida do dano pra K, por exemplo 219000 > 219.0K / 2.000.000 > 2.00 KK).
modifyExperienceInK = true (esas função também mudará a saida normal pra K, isso é bom em high EXP pra arrumar aquela exp "-2147483647", de muita EXP, irá mudar pra "+2.14 Bi Exp").
17/01 Last Changes:
displayBroadcastLog = true - Desabilita os logs de broadcast do server na distro, aqueles logs de eventos etc... deixa a distro mais limpa. (by kizuno18)
enableCriticalAndDodgeSource = true - (Sistema de Dodge E Critical de StatsChange pra source, deixa mais clean, mais leve, e o sistema pega em monstros, sem a necessidade de registrar o evento, previne bugs.)
pushInProtectZone = false - Sistema para desabilitar o push de player em PZ, impossibilitando que players empurrem outros players dentro do PZ.
SpyCast: Sistema de SPY, pra GM+ ver a tela dos jogadores, como se eles estivessem de cast aberto, GM spy não mostra aviso nenhum que vc está monitorando o player, (sistema de telescope, se o player clicar no item com actionId configurado, mostra os players com cast on), Para GM+ mostra todos os players logados, independente se estão de cast on, para players mostra somente players com cast on.
SendProgressbar: Sistema para feature do OTC, necessário saber usar e compilar o otcv8 com a modificação
SetCreatureSpeed: Sistema usado pra setar a quantidade exata de speed de alguma criatura/player, usado no sistema de roleta (ainda não disponivel do datapack).
(Projeto github)
Informações:
º 8.60
º Baseado na OTX 2.x mattyx
º Lib global (sistema pesadex)
º Informações / changelog
Dúvidas, erros, dicas e contribuições:
Caso tenha dúvidas, ou queira resolver algum bug/erro, dar dicas para o projeto, ou também ajudar em sua construção, crie um issue / pull requests pelo github ou use esse tópico.
Créditos:
FeTads (FeeTads#0246) mattyx (source base e datapack) Reason182 (fixes e mais) Luxx (meu sócio de servidor, ajudou com teste) Daniel (spriter e dev junior) ADM Mario (cara brabo dos mapas e testes, achador de bug profissional) Luan Luciano (cara brabo que no inicio me ajudou d++)
Download:
O download pode ser feito diretamente no github, ou clonando o projeto via git.
How Compile:
Windows Tutorial - Linux(Ubuntu) Tutorial
Sistemas adicionado até o momento, todos 100% e sem bug.
-
Por Underewar
https://www.eternalglobal.online/
Server Features
Protocol 8.60 and 12.30 Features (working 100%) Bestiary -> Janela Em Contrução para Client 8.60 ja funcional no servidor. Charm -> Janela Em Contrução para Client 8.60 ja funcional no servidor. Store -> Janela Em construção para CLIENT 8.60 Quickloot -> Janela Em Contrução para Client 8.60 ja funcional no servidor. Cast system Wrap system Custom spawns loading syste WarSystem RaidSystem Offline Trainers Sala de Trainers Stamina Refil Itens Donate Boosted Boss Boosted Creature 5 Eventos Automaticos.
12x Updates
NEW ITEMS
Umbral Items ,Cobra Items,Falcon Items,Warzone Items,Gnome Item
NEW AREAS
Issavi
Roshamuul
Oramond
Cobras
Falcons
Warzone 1,2,3
Warzones 4,5,6
-
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.