Ir para conteúdo

MatheusEnjoy

Visconde
  • Total de itens

    301
  • Registro em

  • Última visita

  • Dias Ganhos

    3

Tudo que MatheusEnjoy postou

  1. Então amigo, baixando outra versão do Gessior resolveu? Qual a versão que utiliza atualmente?
  2. @Akr Faiz seguinte manda contato pelo Pm~. para eu te ajudar melhor. Poxa amigo vamos ajudar via tópico e não PM. Já pensou quantas pessoas podem ter a mesma duvida e não iriam encontrar a solução se responder via PM. @ tópico Então o problema foi resolvido? Posso mover para Duvidas sanadas?
  3. Ao meu ver não seria tão interessante criar um site em plataforma ASP, devido ao uso de ISS ser mais complicado que o do Apache. Se formos para inovar deveríamos usar C# (sharp), mais ainda creio que com o bom e velho PHP podemos criar algo muito inovador. -Edit: Apesar de concordar que o D##### esteja em plena expansão creio que na balança o PHP ganha por utilizar o Apache.
  4. Tamo junto galera. Espero que posso evoluir muito projeto. Conto com a ajuda da comunidade. Att
  5. Não estamos aqui para discutir se em Lua ou C++ fica melhor ou pior, sou estou expondo o modo que se faz em C++.
  6. Muito bom código. Funciona em qual TFS?
  7. E um pouco complexo explicar o que a função faz. Igual esta e um "Ctrl+c / Ctrl +v"
  8. Até que enfim encontrei um servidor de war dahora. Vamos lá, menos de 1 dia para o lançamento.
  9. Galera apesar dele ali esta falando que vem com o mapa mais novo, já existe uma atualização do mapa. Caso queiram acessem http://www.xtibia.com/forum/topic/190486-eternal-kindoms/
  10. Mais um tópico do OtLand para o XTibia. o topico original pode ser encontrado clicando aqui. Informações Técnicas tamanho: 1280 pixels (sem o problema das tabelas saindo do layout) cores: Azul Escuro menu: dinâmico em JavaScript (2 erros encontrados) Informações sobre o Menu: Feito de modo dinâmico em JavaScript. E igual o do Tibia.com Ele tem um problema com Opera e Safari, e não sabemos reparar. PSD: Contem todos os PSDs. Download: Speedyshare Scan: Virustotal Créditos: Vean - OtLand
  11. Gostei dos mapas, parecem bastante jogaveis e não focados em show off.
  12. Amigo, se quer abrir um OT tente formar uma equipe seria. Dedique alguns dias no desenvolvimento e divida um VPS com a equipe. See ya,
  13. Parabéns continue assim. Esta melhorando consideravelmente.
  14. Estou gostando de ver os posts aqui. Parabéns Laug.
  15. Minha ideia de convidar o membro e melhor, nós da comunidade iriamos julgar se o membro tem ou não os requisitos para poder vender seus serviços no market place. Creio que seja interessante pois iremos convidar apenas membros que se destacarem divulgando seus serviços gratuitamente. @Gustavo Se quiser referencia sobre o assunto de market place sugiro que leia: http://themeforest.n...ecome_an_author http://themeforest.n...y/payment_rates http://themeforest.n...filiate_program See ya
  16. Gostei da sua ideia, um marketplace no qual somente pessoas convidadas poderiam vender seus serviços.
  17. Sim, mais isso e um addon aparte, não e integrado as Source do Server.
  18. Não necessariamente, isso quem define e o programador Lua, ele tem que criar a função para isso.
  19. Sim, irei continuar a trazer conteúdo de qualidade para o Eks, minha meta diária são 3 novos post.
  20. Simplesmente LOOOOOOOL. O sistema funciona perfeitamente quer o player digite "servegame" ou servegame. lol 2 aqui em casa nao deu certo, so se eu falace com aspas que dava certo... Talvez seja o distro que esta usando. @Tópico Criei com base nesse script uma versão mais nova que bloqueia mais coisas. http://www.xtibia.com/forum/topic/190077-anti-palavrao-e-anti-spam/
  21. Nome: Andar Com WASD No Teclado Versão: 1.0 Código: Anstice Forum Origem: OTLand.net Versão: Funcionando no Tibia Global e em OTs. Descrição: Cansado de poder andar somente pela setinha, então essa source foi feita para você. Agora e possível andar utilizando WASD e para ativar/desativar clique em #. Bom vamos ao código: //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Anstice's WASD Program //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Will change WASD to up left down right movements and # for active/disable // Made primarily for tibia, but i suppose it can be used for other games as well //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Version 1.0 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Code Cleaned & Edited By Three Magic on Otland // Portuguese version by MatheusEnjoy on XTibia //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include <windows.h> #include <iostream> using namespace std; bool disabled = false; int main() { cout << "Andar com WASD ativado."; while(1){ if(GetAsyncKeyState(VK_MENU) && GetAsyncKeyState('#')) { disabled = !disabled; system("CLS"); disabled ? cout << "Andar com WASD desativado." : cout << "Andar com WASD ativado."; Sleep(500); } if (!disabled) { while(GetAsyncKeyState('W')) { keybd_event(VK_UP,0,0,0); Sleep(1); keybd_event(VK_UP,0,KEYEVENTF_KEYUP,0); Sleep(1); keybd_event(VK_BACK,0,0,0); Sleep(1); keybd_event(VK_BACK,0,KEYEVENTF_KEYUP,0); } while(GetAsyncKeyState('A')) { keybd_event(VK_LEFT,0,0,0); Sleep(1); keybd_event(VK_LEFT,0,KEYEVENTF_KEYUP,0); Sleep(1); keybd_event(VK_BACK,0,0,0); Sleep(1); keybd_event(VK_BACK,0,KEYEVENTF_KEYUP,0); } while(GetAsyncKeyState('S')) { keybd_event(VK_DOWN,0,0,0); Sleep(1); keybd_event(VK_DOWN,0,KEYEVENTF_KEYUP,0); Sleep(1); keybd_event(VK_BACK,0,0,0); Sleep(1); keybd_event(VK_BACK,0,KEYEVENTF_KEYUP,0); } while(GetAsyncKeyState('D')) { keybd_event(VK_RIGHT,0,0,0); Sleep(1); keybd_event(VK_RIGHT,0,KEYEVENTF_KEYUP,0); Sleep(1); keybd_event(VK_BACK,0,0,0); Sleep(1); keybd_event(VK_BACK,0,KEYEVENTF_KEYUP,0); } } } exit(1); } Download: WASD.exe + source.txt Scan: VirusTotal MD5: 23e88a601d10c0edb4d4af648eb36106
  22. Nome: Anti-Palavrão E Anti-Spam Versão: 1.0 Código: MatheusEnjoy Forum Origem: XTibia Versão: Todos TFS Descrição: Baseado no script do MatheusMkalo, resolvi adicionar uma nova biblioteca para poder bloquear ainda mais serviços, e ainda por cima criei a biblioteca de palavrões mais comuns. Bom vamos ao tutorial: game.cpp: Procure por: if(muted) { char buffer[75]; sprintf(buffer, "You are still muted for %d seconds.", muteTime); player->sendTextMessage(MSG_STATUS_SMALL, buffer); return false; } Abaixo você adiciona: Caso queira utilizar o Anti-Spam if (int(text.find("noip")) > 0 || int(text.find("no-ip")) > 0 || int(text.find("servergame.com")) > 0 || int(text.find("zapto.net")) > 0 || int(text.find("sytes.net")) > 0 || int(text.find("hopto.org")) > 0 || int(text.find("bounceme.net")) > 0 || int(text.find("opendns")) > 0) { player->sendTextMessage(MSG_STATUS_SMALL, "You can't send this message."); return false; } Caso queira utilizar o Anti-Palavrão if (int(text.find("tnc")) > 0 || int(text.find("fdp")) > 0 || int(text.find("krl")) > 0 || int(text.find("merda")) > 0 || int(text.find("puta")) > 0 || int(text.find("puto")) > 0 || int(text.find("fuder")) > 0 || int(text.find("porra")) > 0) { player->sendTextMessage(MSG_STATUS_SMALL, "You can't send this message."); return false; } Se for adicionar os dois, acrescente um abaixo do outro.
  23. Nome: Clipboardcopy(Text) Versão: 1.0 Código: Doggynub Forum Origem: OTLand.net Versão: Não testado ainda. Descrição: Esta função copia para a área de transferência (clipboard) as coordenadas do player, como se estive feito um Ctrl+C.. Bom vamos ao tutorial: luascript.h: Procure por: static int32_t luaStdSHA512(lua_State* L); E adicione isso abaixo: static int32_t luaClipboardCopy(lua_State* L); luascript.cpp: Procure por: //setCreatureMaxMana(cid, mana) Cole isso abaixo: //clipboardCopy(text) lua_register(m_luaState, "clipboardCopy", LuaInterface::luaClipboardCopy); Então encontre: int32_t LuaInterface::luaSetCreatureMaxMana(lua_State* L) E adicione isso abaixo: int32_t LuaInterface::luaClipboardCopy(lua_State* L) { //clipboardCopy(text) std::string text = popString(L); if(text != "") { const char* output = text.c_str(); const size_t len = strlen(output) + 1; HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, len); memcpy(GlobalLock(hMem), output, len); GlobalUnlock(hMem); OpenClipboard(0); EmptyClipboard(); if(SetClipboardData(CF_TEXT, hMem) != NULL) lua_pushboolean(L,true); else lua_pushboolean(L,false); CloseClipboard(); } return 1; } Exemplo de utilização: function onLook(cid, thing, position, lookDistance) if getPlayerGroupId(cid) >= 4 then local str = string.gsub("{x = |x|, y = |y|, z = |z|, stackpos = |stackpos|}","|(.-)|",function(a) return position[a] end) if not clipboardCopy(str) then print("error in copying to clipboard, no data copied.") end end return true end
  24. Nome: Dosavehouse(Houseid) Versão: 1.0 Código: Powers Forum Origem: OTLand.net Versão: Testado no TFS 0.3.4 e já Implementado no TFS 0.4. Descrição: O comando pode ser usado, por exemplo, se um jogador organizar os itens na casa, e se o server crecha é o que você salvou. Bom vamos ao tutorial: Apenas useHouseDataStorage = "no" / Falso Funciona apenas em servidor MySQL. luascript.h: static int32_t luaDoSaveHouse(lua_State* L); luascript.cpp: //doSaveHouse({list}) lua_register(m_luaState, "doSaveHouse", LuaScriptInterface::luaDoSaveHouse); int32_t LuaScriptInterface::luaDoSaveHouse(lua_State* L) { //doSaveHouse(houseID) if(g_config.getBool(ConfigManager::HOUSE_STORAGE)) { std::stringstream s; s << "config: useHouseDataStorage must be = no/false"; reportErrorFunc(s.str()); lua_pushboolean(L, false); } House* house = Houses::getInstance().getHouse(popNumber(L)); if(!house) { reportErrorFunc(getErrorDesc(LUA_ERROR_HOUSE_NOT_FOUND)); lua_pushboolean(L, false); return 1; } Database* db = Database::getInstance(); DBTransaction trans(db); if(!trans.begin()) { lua_pushboolean(L, false); return 1; } if(!IOMapSerialize::getInstance()->saveHouse(db, house)) { std::stringstream s; s << "Unable to save house information, ID: " << house->getHouseId(); reportErrorFunc(s.str()); } if(!IOMapSerialize::getInstance()->saveHouseItems(db, house)) { std::stringstream s; s << "Unable to save house items, ID: " << house->getHouseId(); reportErrorFunc(s.str()); } lua_pushboolean(L, trans.commit()); return 1; } iomapserialize.cpp: Substitua de: bool IOMapSerialize::saveHouse(Database* db, House* house) Por: bool IOMapSerialize::saveHouseItems(Database* db, House* house) { if(g_config.getBool(ConfigManager::HOUSE_STORAGE)) return false; DBTransaction trans(db); if(!trans.begin()) return false; DBQuery query; query << "DELETE FROM `tile_items` WHERE `tile_id` IN (SELECT `id` FROM `tiles` WHERE `house_id` = " << house->getHouseId() << " AND `world_id` = " << g_config.getNumber(ConfigManager::WORLD_ID) << ") AND `world_id` = " << g_config.getNumber(ConfigManager::WORLD_ID); if(!db->executeQuery(query.str())) return false; query.str(""); query << "DELETE FROM `tiles` WHERE `house_id` = " << house->getHouseId() << " AND `world_id` = " << g_config.getNumber(ConfigManager::WORLD_ID); if(!db->executeQuery(query.str())) return false; query.str(""); query << "SELECT `id` FROM `tiles` WHERE `world_id` = " << g_config.getNumber(ConfigManager::WORLD_ID) << " ORDER BY `id` DESC LIMIT 1;"; DBResult* result; if(!(result = db->storeQuery(query.str()))) uint32_t tileId = 0; uint32_t tileId = result->getDataInt("id")+1; result->free(); return saveHouseRelational(db, house, tileId); } bool IOMapSerialize::saveHouseRelational(Database* db, House* house, uint32_t& tileId) { for(HouseTileList::iterator tit = house->getHouseTileBegin(); tit != house->getHouseTileEnd(); ++tit) saveItems(db, tileId, house->getHouseId(), (*tit)); return true; } iomapserialize.h : Abaixo de: bool saveMapRelational(Map* map); Adicione: bool saveHouseRelational(Database* db, House* house, uint32_t& tileId);Exemplo de uso: (Em talkaction) Código Lua: function onSay(cid, words, param, channel) if exhaustion.check(cid, 25958) then doPlayerSendCancel(cid, 'You are Exhausted (save house)') return true end local playerHouseId = getHouseByPlayerGUID(getPlayerGUID(cid)) if playerHouseId ~= nil then if doSaveHouse(playerHouseId) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'House '.. getHouseName(playerHouseId) ..' saved succesfull!') exhaustion.set(cid, 25958, 300) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'House '.. getHouseName(playerHouseId) ..' saved failed!') end else doPlayerSendCancel(cid, 'You do not rent any flat.') end return true end
  25. Nome: Dochallengeplayer(Cid, Target) Versão: 1.0 Código: Icy Forum Origem: OTLand.net Versão: Não Testado Descrição: Exeta Res Outros Jogadores Bom vamos ao tutorial: Em player.cpp: bool Player::challengePlayer(Player* player) { sendCancel("You have been taunted!"); setAttackedCreature(player); sendCreatureSquare(player, 112); sendMagicEffect(getPosition(), 13); sendMagicEffect(player->getPosition(), 14); return true; } player.h: (público) virtual bool challengePlayer(Player* player); luascript.cpp: //doChallengePlayer(cid, target) lua_register(m_luaState, "doChallengePlayer", LuaInterface::luaDoChallengePlayer); luascript.h: (protegido) static int32_t luaDoChallengePlayer(lua_State* L);
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...