Ir para conteúdo
  • advertisement_alt
  • advertisement_alt
  • advertisement_alt

Emersonssss

Membro
  • Registro em

  • Última visita

Tudo que Emersonssss postou

  1. Não pois as funções estão diferente, foram reformuladas, porem posso passar pra 1.2 mais da um trampin
  2. Eu consegui usa esse tfs para 8.60 porem sem cast System não vira se alguem conseguir com cast será otimo mudar o tfs e atualizar a linguagem :D PS : Usei Ubuntu pra compilar e instalando as libs compilo de primeira e sem nenhum erro :D
  3. Simples quando vc loga vai aparece a msg.... se não aparece é porq bugo
  4. Eae Galerinha estou com uma problema... preciso de uma função para usar em spells. Resumindo preciso que a função verifique o turn do CID e compare com a posição do TARGET e se o CID estiver olhando para a posição do TARGET returne TRUE ou FALSE CID > Target return true < CID Target return false
  5. Emersonssss respondeu ao post em um tópico de luanluciano93 em Eventos de Scripting
    3º Bem estruturada e logística.
  6. Boa Noite estou estudando um pouco a programação do OTC e gostaria de saber como cria um form com um listbox e como adicionar itens nesse listbox @ Snowsz Ajuda ae plx !!
  7. é a mesma coisa que o push de perto Amigo pela minha experiencia acredito que só daria pra blokiar isso usando o "packetsPerSecond" mas somente algumas source tem essa opção
  8. Praq server esse salt mesmo ?
  9. Emersonssss respondeu ao post em um tópico de rohfagundes em Códigos C++
    Compilação em linux essa parte da bug : monster->name = monster->getName() + " [" + itoa(level, buffer, 10) + "]"; itoa(level, buffer, 10)
  10. Emersonssss respondeu ao post em um tópico de Emersonssss em Códigos C++
    Qualquer uma
  11. http://www.tibiaking.com/forum/topic/52779-c-attack-speed/
  12. Emersonssss postou uma resposta no tópico em Códigos C++
    Salve Galera, olhando em minhas libs achei um script muito bom !! Em alguns servidores derivados o Skill Fist Fighting influencia no Attack Speed do Player, Então .... Segue a Formula na source que faz essa magica : Em Player.cpp Procure : uint32_t Player::getAttackSpeed() const Mude Atualize para esse função : uint32_t Player::getAttackSpeed() const { int32_t SpeedAttack; SpeedAttack = vocation->getAttackSpeed() - (getSkill(SKILL_FIST, SKILL_LEVEL) * 10); if (SpeedAttack < 500) { return 500; } else { return (uint32_t) SpeedAttack; } } Explicando : Ele irá verifica o Attack Speed padrão no Vocations.xml e irá verifica o Skill Fist do Player e retornará a velocidade, caso a velocidade retorne menor que 500 ele sempre limitará a 500ms para que não haja erros. Simples e Facil ! Creditos ? Emerson Henrique
  13. Alguem sabe alguma maneira ?
  14. Galera instalei essa funcao e nao estou conseguindo usala Quero que quando o player usa uma talkaction o player use uma sudden death rune
  15. Salve Galera, primeiramente eu tentei postar o script na área certa porem o Button de "Criar Novo Tópico" está desativado, então vou postar aqui mesmo e depois um moderador move. Se colocarem aquele aviso tosco de "Presta atenção da proxima vez" não posto mais nada relacionado a Source. Vamos ao que interessa, olhando pela interneti achei um codigo muito interessante. "onLoginCharacter" porém no topico o código estava incompleto e eu tive que termina-lo. Não sei se posso Postar mais como eu modifiquei tenho diretos e como o proprio nome diz Open Source, não é justo eu guarda esse maravilhoso script só pra mim. Estou estudando C++ e adoro fazer modificações direto da Source e sem mais .... Vamos a protocolgame.cpp e localize isto: player->setID(); if(!IOLoginData::getInstance()->loadPlayer(player, name, true)) { disconnectClient(0x14, "Your character could not be loaded."); return false; } Embaixo coloque: std::string text = g_creatureEvents->loginCharacter(player); std::string str ("NO_ERROR"); std::size_t found = text.find(str); if (found==std::string::npos) { disconnectClient(0x14, text.c_str()); return false; } Depois vá creatureevents.cpp e procure: void CreatureEvent::copyEvent(CreatureEvent* creatureEvent) Abaixo dessa Function Adicione : std::string CreatureEvents::loginCharacter(Player* player) { bool result = true; lua_State* L = m_interface.getState(); std::string text; std::cout << text << std::endl; for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it) { if((*it)->getEventType() == CREATURE_EVENT_LOGINCHARACTER && !(*it)->executeLoginCharacter(player)) result = false; } text = m_interface.getGlobalString(L, "ERROR_TEXT"); if (result) { text = "NO_ERROR"; } return text; } Depois procure: uint32_t CreatureEvent::executeKill Abaixo dessa Function Adicione : uint32_t CreatureEvent::executeLoginCharacter(Player* player) { //onLoginCharacter(cid) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(player) << std::endl; scriptstream << "ERROR_TEXT = " << "LOGIN BLOCKED" << std::endl; scriptstream << m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ char desc[35]; sprintf(desc, "%s", player->getName().c_str()); env->setEventDesc(desc); #endif 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, "LOGIN BLOCKED"); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executeTextEdit] Call stack overflow." << std::endl; return 0; } } Procure: else if(type == "kill") _type = CREATURE_EVENT_KILL; Adicione Abaixo: else if(type == "logincharacter") _type = CREATURE_EVENT_LOGINCHARACTER; Procure: case CREATURE_EVENT_KILL: return "onKill"; Adicione Abaixo: case CREATURE_EVENT_LOGINCHARACTER: return "onLoginCharacter"; Procure: case CREATURE_EVENT_KILL: return "cid, target, damage, flags, war"; Adicione Abaixo: case CREATURE_EVENT_LOGINCHARACTER: return "cid"; Vá em creatureevents.h e procure: CREATURE_EVENT_LOGIN, Adicione Abaixo: CREATURE_EVENT_LOGINCHARACTER, Procure: bool playerLogin(Player* player); Embaixo coloque: std::string loginCharacter(Player* player); Procure: uint32_t executeCombat( Embaixo coloque: uint32_t executeLoginCharacter(Player* player); Prontinho o Sistema ta Instalado. Um Exemplo de como usar é um Anti-MC ERROR_TEXT = "MULTI MC DETECTED" function onLoginCharacter(cid, ERROR_TEXT) local tid = getPlayersOnline(cid) for i=1, #tid do if getPlayerIp(cid) == getPlayerIp(tid[i]) then return false end end return true end XML : <event type="logincharacter" name="LoginCharacter" event="script" value="LoginCharacter.lua"/> Login.lua registerCreatureEvent(cid, "LoginCharacter") Prontinho bom profeito e Boa Noite <3 Creditos ? Caotic / Emerson Henrique
  16. Muito Simples, todo Sistema Pagseguro Automatico guarda um post do pagseguro de pontos entregue... Tira print da Database mostrando os dados informado do Post e cola na disputa: (Print) Pontos Entregue Automaticamente via POST, usuário malicioso tentando bular o sistema. FIM é Fatal !!!!
  17. Eae Galera faz tempo que não posto nada...Tentei postar na área certa mais o button ta desabilitado, então segue aqui mesmo, mover para area de programaçao depois... Simples esse code em c++ bloqueia movimentos muito rapidos (BOT), assim evita qualquer tipo de bug. Sem mais... em Game.cpp Procure por : if(!canThrowObjectTo(mapFromPos, mapToPos) && !player->hasCustomFlag(PlayerCustomFlag_CanThrowAnywhere)) { player->sendCancelMessage(RET_CANNOTTHROW); return false; } Abaixo Adicione : f (player->hasCondition(CONDITION_EXHAUST, EXHAUST_MOVE_ITEMS)){ player->sendTextMessage(MSG_STATUS_SMALL, "You cannot move this object.\nAnti-Push prevention."); return false; } player->addExhaust(500, EXHAUST_MOVE_ITEMS); Tempo do exaust = player->addExhaust(500, EXHAUST_MOVE_ITEMS); Simples rapido e facil Créditos: Desconhecido / Edição & Aperfeiçoamento: Emerson Henrique
  18. Skype : Cristofer Martins ( Ele sabe proteger o client )
  19. O Mesmo não tenho varios sistemas que o seu não tem e nunca terá...Como o Lure infinito, o seu server não tem e o meu tem
  20. Ae Galera tenho um Servidor igual esse porem com mais modificações. http://retro-war.ddns.net/ Lure Infinito Rope Monsters Sem Owner Loot Client Proprio com Sprits Old Somente 6 Outfits Main. 24h Online Venha jogar um Retro
  21. function TeleportBot(cid) if getPlayerStorageValue(cid, 934563) ~= -1 then doPlayerPopupFYI(cid, "Seu personagem foi teleportado para Templo, por uso de Bot 100% AFK") doTeleportThing(cid, getPlayerMasterPos(cid)) setPlayerStorageValue(cid, 934563, -1) end return true end function CheckBot(cid) local numer = math.random(2, 999) if isPlayer(cid) then doPlayerPopupFYI(cid, "Seu personagem esta sendo verificado por Bot AFK!\n\nVocê tem 1 minutos para responder.\n\nPor favor digite\n\n!check info, "..numer.."") setPlayerStorageValue(cid, 934563, numer) addEvent(TeleportBot, 60000, cid) end return true end function onSay(cid, words, param, channel) local param = param:lower() local t = string.explode(param, ",") local Numero = tonumber(t[2]) if (t[1] == "add") then if getPlayerGroupId(cid) < 2 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem permissão para fazer Verificações!") else doBroadcastMessage(""..getCreatureName(cid).." envio uma verificação de BOT para o player "..getCreatureName(getPlayerByName(t[2]))..".") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foi enviado uma verificação para o player : "..getCreatureName(getPlayerByName(t[2])).."") CheckBot(getPlayerByName(t[2])) return true end elseif (t[1] == "info") then if Numero == nil then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa digitar o valor.") end if getPlayerStorageValue(cid, 934563) == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem verificações pendentes.") end if getPlayerStorageValue(cid, 934563) ~= -1 and getPlayerStorageValue(cid, 934563) == Numero then setPlayerStorageValue(cid, 934563, -1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Obrigado por fazer a verificação, Bom jogo!!") end end return true end Sistema Bem simples: Oque acontece você ADM está la ocupado arrumando algum bug e vem um player e fala "ADM o cara ta de bot" ai vai vc la fica falando "tae?tae?tae?".....Seus problemas acabaram. O sistema manda um POPUP (Qual o elfbot não é capaz de reconhecer) e manda 1 sequencia de numero e da 1 minuto para o player falar os numeros, caso não? será teleportado para o templo padrão. <talkaction log="yes" words="!check" event="script" value="CheckBot.lua"/> Comando : !check add, NICK --Adc o player para Checar se esta de bot ! !check info, NUMERO --Comando que o player precisa informar para não ser teleportado. O sistema é simples e não faz verificação de pzLocked ele solicita apenas o valor. Sempre de esse comando a player que realmente confia fazer a verificação, para que não tenha Power Abuses. Somente Tutor + pode executa-lo. Desculpe ficar fora do TK, não tenho muito tempo para programar(pois sou iniciante).
  • advertisement_alt
  • advertisement_alt
  • advertisement_alt

Informação Importante

Confirmação de Termo