Ir para conteúdo

joe rod

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    joe rod deu reputação a grafit em [C++] onDropLoot(cid, item)   
    Event droploot acontece quando um monstro ou player dropa 1 item.
     
     
    Em creatureevent.cpp procure:
    bool CreatureEvents::playerLogin(Player* player) { //fire global event if is registered bool result = true; for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it) { if(it->second->getEventType() == CREATURE_EVENT_LOGIN && !it->second->executeLogin(player) && result) result = false; } return result; Adicione abaixo:
    bool CreatureEvents::dropLoot(Creature* creature, Item* item) { bool result = true; for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it) { if(it->second->getEventType() == CREATURE_EVENT_DROPLOOT && !it->second->executeDropLoot(creature, item)) result = false; } return result; } Ainda em creatureevents.cpp procure:
    else if(tmpStr == "preparedeath") m_type = CREATURE_EVENT_PREPAREDEATH; Adicione abaixo:
    else if(tmpStr == "droploot") m_type = CREATURE_EVENT_DROPLOOT; Procure:
    case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath"; Adicione abaixo:
    case CREATURE_EVENT_DROPLOOT: return "onDropLoot"; Procure:
    case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList"; Adicione abaixo:
    case CREATURE_EVENT_DROPLOOT: return "cid, item"; Procure:
    uint32_t CreatureEvent::executeLogout(Player* player, bool forceLogout) { //onLogout(cid, forceLogout) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(player->getPosition()); std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(player) << std::endl; scriptstream << "local forceLogout = " << (forceLogout ? "true" : "false") << 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); env->setRealPos(player->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(player)); lua_pushboolean(L, forceLogout); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executeLogout] Call stack overflow." << std::endl; return 0; } } Adicione abaixo:
    uint32_t CreatureEvent::executeDropLoot(Creature* creature, Item* item) { //onDropLoot(cid, item) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(creature->getPosition()); std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(creature) << std::endl; env->streamThing(scriptstream, "item", item, env->addThing(item)); 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); env->setRealPos(creature->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(creature)); LuaScriptInterface::pushThing(L, item, env->addThing(item)); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executeDropLoot] Call stack overflow." << std::endl; return 0; } } Em creatureevent.h procure:
    CREATURE_EVENT_PREPAREDEATH, Adicione abaixo:
    CREATURE_EVENT_DROPLOOT Procure:
    uint32_t executeTarget(Creature* creature, Creature* target); Adicione abaixo:
    uint32_t executeDropLoot(Creature* creature, Item* item); Agora em player.h procure a função:
    void Player::dropLoot(Container* corpse) Troque por:
    void Player::dropLoot(Container* corpse) { if(!corpse || lootDrop != LOOT_DROP_FULL) return; uint32_t start = g_config.getNumber(ConfigManager::BLESS_REDUCTION_BASE), loss = lossPercent[LOSS_CONTAINERS], bless = getBlessings(); while(bless > 0 && loss > 0) { loss -= start; start -= g_config.getNumber(ConfigManager::BLESS_REDUCTION_DECREAMENT); bless--; } uint32_t itemLoss = (uint32_t)std::floor((5. + loss) * lossPercent[LOSS_ITEMS] / 1000.); for(int32_t i = SLOT_FIRST; i < SLOT_LAST; ++i) { Item* item = inventory[i]; if(!item) continue; Creature* creature = NULL; bool deny = false;item creature = g_game.getCreatureByID(getID()); CreatureEventList droploot = getCreatureEvents(CREATURE_EVENT_DROPLOOT); for(CreatureEventList::iterator it = droploot.begin(); it != droploot.end(); ++it) { if(!(*it)->executeDropLoot(this, item)) deny = true; } if(!deny) { uint32_t rand = random_range(1, 100); if(skull > SKULL_WHITE || (item->getContainer() && rand < loss) || (!item->getContainer() && rand < itemLoss)) { g_game.internalMoveItem(NULL, this, corpse, INDEX_WHEREEVER, item, item->getItemCount(), 0); sendRemoveInventoryItem((slots_t)i, inventory[(slots_t)i]); } } } } Em monster.cpp procure:
    void MonsterType::dropLoot(Container* corpse) { if(corpse && lootDrop == LOOT_DROP_FULL) mType->dropLoot(corpse); } Troque por:
    void MonsterType::dropLoot(Container* corpse) { Item* tmpItem = NULL; for(LootItems::const_iterator it = lootItems.begin(); it != lootItems.end() && !corpse->full(); ++it) { uint32_t owner = corpse->getCorpseOwner(); Creature* creature = g_game.getCreatureByID(owner); if((tmpItem = createLoot(*it)) && g_creatureEvents->dropLoot(creature, tmpItem)) { if(Container* container = tmpItem->getContainer()) { if(createChildLoot(container, (*it))) corpse->__internalAddThing(tmpItem); else delete container; } else corpse->__internalAddThing(tmpItem); } } corpse->__startDecaying(); uint32_t ownerId = corpse->getCorpseOwner(); if(!ownerId) return; Player* owner = g_game.getPlayerByID(ownerId); if(!owner) return; LootMessage_t message = lootMessage; if(message == LOOTMSG_IGNORE) message = (LootMessage_t)g_config.getNumber(ConfigManager::LOOT_MESSAGE); if(message < LOOTMSG_PLAYER) return; std::stringstream ss; ss << "Loot of " << nameDescription << ": " << corpse->getContentDescription() << "."; if(owner->getParty() && message > LOOTMSG_PLAYER) owner->getParty()->broadcastMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str()); else if(message == LOOTMSG_PLAYER || message == LOOTMSG_BOTH) owner->sendTextMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str()); } Exemplo de uso da função:
    function onDropLoot(cid, item) local block = {2221, 1221, 2922} for i=1, #block do if item.itemid == block[i] then return false end end return true end Créditos: Caotic
  2. Gostei
    Global 11/12x [v32]
     

     
     
    - New Falcons
    - New Asuras
    - Warzone 4,5,6
    - Exercise Training
    - Raids 100%
    - Monstros 100%
    - Trainer Offline 100%
    - Trainer Online 100%
    - Taming system funcionando 100%;
    - Database completa
    - War System 100%
    - Global MAP Full
    - Store 100%
    - Imbuement
    - Prey System
    - Entre outros sistemas.
     
    Projeto no: GITHUB

    Scan Vírus Total
     
    IMAGES
     
    Créditos:
     
     











  3. Gostei
    joe rod deu reputação a WhiteBubble em Dbo Rox V2 8.60 [Open Source][99% SEM BUGS]   
    Dragon Ball
    Rox
    Servidor 100% estável com mais de 200 horas online.
    38 Vocações sendo 9 delas vip que são:
    Shenron,Vegetto,Zaiko,Kagome,Tapion,Kame
    Chilled,C8 e King Vegetta.
    Spells de fast attack (Usa uma vez sai 10 hits).
    Eventos automaticos como: Castle,Battlefield,Run event.
    Reborn level maximo 600.
    Vamos aos bugs que eu encontrei:
    * Zombie event quando o zombie pega algum player todos do evento e mandando pra fora e evento encerra.
    * Erro quando usa spell e a pessoa morre antes da spell acabar no caso das de combo.
    * Erro nos eventos Battlefield e Run event quando vai adicionar a recompensa da erro por faltar uma tabela na database que não me recordo o nome agora.
     
    Update v2
     Adicionado 7 novas vocações vips sendo elas:
    Bills,Whiss,Golden Freeza,Vegetto Blue,Zamasu,Gogeta Blue e Goku Black Evo.
    Adicionado 3 vocações free sendo elas: Zeno, Vados e Vegetto Black.
    Vocações que antes era vip no update v1 agora são free.
    Fazer reborn não precisa mais fazer quest das esferas do dragão.
     Adicionado cassino que se ganha small diamonds que se troca por:
    Divine Stone(Usado para upgrade), Black Stone (Item para virar Vegetto Black) e Leviathan Amulet.
    Adicionado npc que vende Anti Loss Ring Protege 10% contra todos danos e funciona como a band of loss porem infinita. Ele fica no Yama.
    Adicionado sistema de pontuação por hora online, cada 1 hora online = 1 ponto que se pode trocar por itens no npc Points Trader no Yama.
    Adicionado sistema Anti-MC, podendo logar somente 2 contas por ip.
    Adicionado 3 bosses espalhados pelo mapa (Earth).
    Adicionado sistema de forja podendo criar o melhor set, armas free e o item para virar Zeno.
     Adicionado sistema de upgrade fazendo seu item ficar mais forte.
     Adicionado transformação ultra god para todas as vocações, sendo pega no templo de reset ao lado do esquerdo do templo. Necessário ter level 800 e possuir 100 God Essences que dropam do Ultra God Bills em God Island.Para entrar no templo de reset é necessário possuir 1 reset, para dar reset necessita ter level 800 e digitar o comando "!reset", você voltara para o level 100 com o hp/mp de um player level 100 mas ganhara acesso a área de reset que tem o npc de ultra god e a área de forja.
    Nova moeda acima de Gold sendo ela Blue God equivalente a 100 Gold Bars.
     Area de evento pvp e dice/bag adicionada no Yama.
     Area vip adicionada.
     Adicionado 2 sets novos free, 2 armas free, 2 shields free, senzu free (God Senzu), Senzu vip (Mystic Senzu), Vados staff free, Whiss staff vip.
     Vocações que antes era vip na v1 se pega na capsule ao lado direito do templo.
     Algumas modificações no mapa, hunts, quest.
    Por enquanto é só isso que estou lembrando,conforme eu lembro edito o tópico.
     
    Gostou ? Clique em Gostei logo abaixo.
     
    Para consertar o erro da loteria só executar essa query na sua database:
    CREATE TABLE `lottery` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `item` varchar(255) NOT NULL, `world_id` tinyint(2) unsigned NOT NULL default '0', `item_name` varchar(255) NOT NULL, `date` varchar(256) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;  
     
     
     Downloads
     
    Server (Distro para windows e linux já compilada)      Scan
    Cliente    Scan
    Sources     Scan
    Site (Modern Acc)    Scan
    Database     Scan
     
     
     
     
    Creditos server: Kramer, WhiteBubble
    Creditos site: @Hastafaru e a WhiteBubble por adaptar ao server
    Creditos source: Fir3element e WhiteBubble por aumentar limite de efeitos e por skill fist skill para aumentar attack speed.
     
  4. Gostei
    joe rod deu reputação a Duduph em [DxP] Exclusivo Poketibia OpenSource+Cliente+Site+DB   
    Exclusivo! PokeTibia DxP OpenSource praticamente completo com sistemas e funções nunca liberados.
     
    ATENÇÃO: Não dou suporte, apenas estou disponibilizando o server para quem quiser continua-lo ou pegar os sistemas. Se alguns grandes aqui do TK quiserem ajudar nos bugs fiquem a vontade, pois este server é praticamente completo, com funções e sistemas nas sources, acho que nunca liberados para o publico.
     Aconselho a trocarem o mapa ou criarem outro por que não testei o mesmo, e não sei se há bugs ou armadilhas.
     
     
     
    • Menu:
    ├ Informações;
    ├ Bugs;
    ├ Prints;
    ├ Download;
    └ Créditos.
     
    • Informações Basicas •
    • Duel System.
    • Nick System.
    • TV System.
    • Autoloot System.
    • Block Respaw System.
    • Mega Evolução Ssystem.
    • Auto Stacking System.
    • Player passa por dentro de outros Players(Não sei o nome deste sistema kk).
    • Ditto Memory System.
    • Player pode usar potions, revive, soltar poke andando sem parar.
    • Limite de efeitos aumentados nas sources até 380(Podendo aumentar muito mais)
    • Transparência.
    • Cliente criptografado(Acompanha OBD único para o cliente).
    • Sistemas básicos como fly, ride, surf, order etc.
    • Held System(Não tem todos, falta fazer alguns, ja tem o x-luck).
    • Fishing trocando o outfit automaticamente.
    • Icone System.
    • Varias Pokeballs novas.
    • Task System.
    • Guild System.
    E muito+, não testei o servidor todo. podem ter sistemas no server que eu esqueci de colocar aqui na lista.
     
     
     
    • Bugs •
    Irei postar os que eu sei, podem haver mais.
    • Gym System não esta funcionando.
     
    Postarei a lista completa de bugs conhecidos e o que ja foi corrigido logo mais.
     
     
    • Prints •
     
    • Mega Evolução

     
    • Ditto Memory.

     
    • TV System.

     
    • Auto Loot System.

     
    • Block Respaw System.

     
    • Irei colocar mais prints em breve(Estou com pouco tempo agora).
     
    • Downloads•
     
     
     
    Alguns antivirus detectam virus, possiveis dlls não reconhecidas, baixem por sua conta em risco, não estou obrigando ninguem a baixar, estou trabalhando no server e nao tive problemas.
    Caso tenham problemas na descompactação dos arquivos utilizem o 7zip, compactador que utilizei.
     
    • Créditos •
    •CipSoft
    •Nintendo
    •TFS Team
    •Dark X Poke
    •PXG
    •Tom Lukz (Smix)
    •Allan Harlen (Kttallan/lordsorte)
    •Eduardo Meskita (FuuinFake)
    •Noninhouh
    •Tony Araujo
    •Taiger/Dudu
    •Drakopoulos
    •Justiceiro751
    •Techrlz
    •RicardoRox
    E a todos que tiveram alguma participação em sistemas, server, site, cliente etc.
     
     
    Mais atualizações em breve!!!
     

Informação Importante

Confirmação de Termo