-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
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 Zagaf
ShowOff Poketibia
Bom a alguns dias atrás eu comecei a reformular um mapa de poketibia que eu baixei (pokexmaster) , ate o momento eu refiz a cidade de saffron.
-
Por Nysman
Olá, pessoal do TK.
Estou com um problema bem chato que estou a dias atrás para resolver mas não consigo, nesses últimos dias adc um sistema de gender no meu otp.
Funciona tudo corretamente, porém na distro acusa esse erro:
[17/12/2023 22:31:40] [Error - Action Interface]
[17/12/2023 22:31:40] In a timer event called from:
[17/12/2023 22:31:40] data/actions/scripts/catch.lua:onUse
[17/12/2023 22:31:40] Description:
[17/12/2023 22:31:40] data/actions/scripts/catch.lua:599: attempt to index local 'status' (a nil value)
[17/12/2023 22:31:40] stack traceback:
[17/12/2023 22:31:40] data/actions/scripts/catch.lua:599: in function <data/actions/scripts/catch.lua:582>
Meu catch:
-
Por Baryon
Boa noite amigos, estou aqui para apresentar meu projeto.
Estou aqui no intuito de tentar desenvolver um ats baseado em naruto full perspectiva e com uso reduzido de bot, teremos um bot próprio que ira lhe auxiliar na cura e com espaço para 1 magia com finalidade de treino, assim focando que os players possam tentar se divertir jogando na mao tanto a parte pve como pvp do game (oque eu acho mais legal).
O Servidor ja se encontra com alguns sistema sendo eles:
・Passe de batalha
・Painel de missoes
・Village war
・Sistema de vilas
・Bingo book
・Autoloot
・Ninja procurado
・Painel de Dungeons
・ World Boss
Nossas vocaçoes sao divididas em classes sendo elas:
・Shooters: Deidara, Gaara, Kankuro, Tenten, Sasori, Konan.
・Especialistas: Shikamaru, Nagato, Hashirama, Oonoki, Orochimaru.
・Assassinos: Asuma, Madara, Minato, Sasuke, Obito, Kisame.
・Suportes: Sakura, Shizune, Ino, Tsunade.
・Lutadores: Naruto, Kiba, Chouji, Lee, Neji, Hinata.
(obs: ja temos por volta de mais 10 personagens "prontos" alem desses com foco em atualizações futuras)
Atualmente apenas eu e mais uma pessoas estamos desenvolvendo o servidor e ambos trabalham o tempo ou seja nao temos tanto tempo disponivel entao estou em buscas de novas pessoas com certa experiencia para integrar a equipe tenho em mente 4 vagas disponiveis que sao: 1 Mapper, 1 Dev, 1 Designer, 1 Moderador (ficara em contato com a staff e interagindo em nosso discord, ficando por dentro das novidades e no inicio do game ira iniciar como tutor para auxiliar os players).
Caso alguem tenha interessa em embarcar nessa aventura favor entrar em contato cmg pelo discord 😉 em breve estarei postando mais atualizaçoes do ot aqui!
Nosso discord: https://discord.gg/pPTkbAnNSV
Meu contato no discord: baryon1492
-
Por Underewar
Após anos sem contribuir com um servidor fico feliz em lançar essa versão com muitas correções!
Está versão é a versão OPEN_BETA.
Que pode ser testada aqui. (Online até dia 25/05/2023)
Foram corrigos muitos bugs e existem diversas melhorias em muitos dos sistemas existentes.
Vocês podem encontrar as Libs que devem estar com uns 30% desses novos sistemas que foram adicionados e podem testar ou usar os códigos.
O servidor esta online a 120+ dias, foi construído com XP 1 e bateu 66 Players Online.
O ideal é usar este servidor em low rate.
Atualizações
Verifique a pagina do facebook para saber todas as atualizações!
Se você curtiu acompanhe a pagina para acompanha o lançamento do jogo oficial!
Importante
A cada onda do nosso sistema de incursões, você terá a chance de encontrar um Pokémon Shiny raro e, após a terceira onda, um chefe shiny ainda mais raro aparecerá, oferecendo recompensas valiosas para os treinadores ousados o suficiente para enfrentá-lo.
Utilize seus tokens de incursão para reiniciar o sistema e tentar novamente.
Para saber sobre todas as novidades Por favor considere olhar nossa pagina,
https://www.facebook.com/pokexadventure/photos
Imagens
Downloads
Para configurar basta substituir a pasta data que você pode encontrar fazendo download da source, cole a pasta data baixa do Pokexadventure e divirta-se!
Sources
pokexadventure_open_beta_datapack.rar
DLLS + Executaveis (Windows)
OTC
(mediafire.com)
Website
https://github.com/otsoft/myaac
Ferramentas :
auto_restarter_windows.bat
RME 3.5 ou superior.
Object builder 10.98 Support ou superior.
Item editor 10.98 Support ou superior.
Tutoriais para Compilações
Créditos : @Underewar @pota
-
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.