Ir para conteúdo

InsanityA

Campones
  • Total de itens

    74
  • Registro em

  • Última visita

  • Dias Ganhos

    1

Histórico de Reputação

  1. Upvote
    InsanityA deu reputação a Taiger em PokeXtibia [PDA OpenSource][Desenvolvimento]   
    PokeXtibia
    [PDA OpenSource]
     
    *Projeto PDA OpenSource By Taiger/Dudu.
     
     Olá a todos, estou iniciando este projeto PDA OpenSource[PDA 1.9 sem level] devido a facilidade ou o costume de se mexer na base PDA, estou disponibilizando as sources do server e cliente de um projeto meu privado.
     Este projeto esta no começo, adaptei algumas coisas mas ainda falta muita, como estou utilizando a base PDA inicial, esta bem limpa, qualquer um pode editar a seu gosto.
     Irei trazer updates sempre que puder, e quem quiser ajudar sera bem vindo.
     
    Discord do Projeto:
    https://discord.gg/sHGNdev
     
    As informações do servidor por enquanto são as mesmas do PDA by Slicer, apenas adaptei o fly, goback, order e fishing. Como eu disse acima, o projeto esta no inicio, irei trazer updates com frequência. Assim que for atualizando o server irei atualizando o tópico com as devidas informações.
     
    Conteúdo do Projeto:
    *Servidor.
    *Sources Servidor.
    *OTCliente.
    *Sources OTCliente.
    *Map Editor.
    *Item Editor.
    *ObjectBuilder[Editor de sprites]
    *Dev-Cpp 64Bits[Compilador Server]
     
    As sprites usadas no cliente são as do meu server, mas na pasta data/things tem as sprites originais do PDA. Assim que puder trarei tutoriais de compilação do server e cliente. Toda ajuda sera bem vinda.
     
    Por enquanto deixarei apenas três imagens, já que é a base PDA e não tem nada de novo,em breve trarei outras.
     
     



     
     
    Downloads:
    >>>Servidor<<<
    >>>Scan<<<
     
    >>>Servidor Source<<<
    >>>Scan<<<
     
    >>>Cliente<<<
    >>>Scan<<<
     
    >>>Cliente Source<<<
    >>>Scan<<<
     
    >>>Remere's Map Editor<<<
    >>>Scan<<<
     
    >>>Item Editor<<<
    >>>Scan<<<
     
    >>>ObjectBuilder<<<
    >>>Scan<<<
     
    >>>Dev-Cpp 64Bits<<<
    >>>Scan<<<
     
    >>>Pasta do Projeto no MediaFire<<<
     
    Pasta do projeto no MediaFire compartilhada. Todos os arquivos do projeto serão disponibilizadas la.
     
     
    *Os alertas no scan se referem a falsos positivos, dlls não reconhecidas, baixem se quiser.
     
    Patch de Correções:


     
    Creditos:
     
    Nintendo.
    CipSoft.
    Criadores do PDA.
    Eu Taiger/Dudu
    Qualquer um que tenha contribuído com alguma coisa no projeto.(Não lembro de todos)
    Se você fez algo entre em contato para eu colocar os devidos créditos.
     
     
     
  2. Upvote
    InsanityA deu reputação a xLeohige em The Ruby Server - Base Pokémon   
    Ao olhar as diversas bases que podem ser encontradas aqui no fórum e em outros locais da internet, pude ver que todas elas carecem de qualidade. Todas estas bases são feitas utilizando gambiarras para diversos sistemas funcionarem, e com isso vários problemas surgem, como de sistemas que não funcionam direito, e o mais importante, com um desempenho extremamente baixo, gerando apenas servidores instáveis. Com isso eu decidi que iria começar a desenvolver uma base para servidores relacionados a Pokémon, com dois objetivos. Um dos objetivos é ganhar mais conhecimento em cima da linguagem de programação C++, o outro objetivo é disponibilizar uma base completamente estável, funcional e de fácil configuração e desenvolvimento para servidores de Pokémon, para que mais ótimos trabalhos possam surgir. Este projeto também irá incluir um cliente próprio e estável, junto com um website.
     
    Também planejo criar uma espécie de Wiki para o servidor, cliente e website, com o objetivo de auxiliar quem for desenvolver em cima deste servidor, e também aqueles que pouco entendem do assunto relacionando a criação de escripts, Pokémon, spells e etc.
     
    Alguns poucos sistemas foram implementados no servidor por ora. Sistemas como o de catch e de goback serão implementados mais para frente, quando outros sistemas forem completamente implementados, como o sistema de configuração de Pokeballs, criação de Pokémons e sistema de shinys. Estou visando a qualidade do servidor como um todo, por isso algumas coisas irão demorar para aparecer.

    O sistema de Pokeballs e de criação de Pokémon já está bem encaminhado, e um sistema de gêneros também já está pronto com fácil configuração, onde o spawn destes Pokémon com sexo será por % igual aos jogos da franquia. Um sistema de surgimento de Ditto aleatório já está praticamente implementado, onde um Pokémon aleatório pode ser um Ditto disfarçado.
     
    [+] Informações do Servidor
    Baseado em: TFS 1.3
    Protocolo: 10.98
     
    [+] Informações do Client
    Baseado em: otclient 0.6.6

    [+] Informações do Website
    Baseado em: nenhum
    Desenvolvido em: PHP (por ser o mais comum na comunidade)
     
    Como contribuir?
    Eu gostaria muito que a comunidade ajudasse no desenvolvimento deste projeto, pois o mesmo será disponibilizado para todos, e para contribuir não necessariamente é preciso entender de programação. Você pode também ajudar testando e reportando os bugs encontrados no repositório do projeto no GitHub, assim como com sugestões e ideias de mudança/implementação no servidor através do próprio repositório ou através do Discord, ou ajudar na criação de guias para o website do projeto.
     
    Links
     
    [+] RubyServer - GitHub
    https://github.com/rubyserver/rubyserver
     
    [+] RubyClient - GitHub
    https://github.com/rubyserver/rubyclient
     
    [+] RubyServer - Website
    https://rubyserver.github.io/rubyserver/
     
    [+] RubyServer - Discord
    https://discord.gg/XTrZGpy
     
    Algumas Imagens
     
     
     
     
  3. Upvote
    InsanityA deu reputação a zipter98 em House   
    Instale esse creatureevent nas suas sources. Depois, crie um arquivo em data/creatureevents/scripts com extensão .lua e coloque o seguinte conteúdo:
    function onMoveItem(cid, item, fromPosition, toPosition) if getTileInfo(toPosition).house then local house_id, cid_house = getHouseFromPos(toPosition), getHouseByPlayerGUID(getPlayerGUID(cid)) local guest_list = getHouseAccessList(house_id, 0x100):explode("\n") if house_id == cid_house or (#guest_list > 0 and isInArray(guest_list, getCreatureName(cid))) then return true end return false end return true end Tag (não se esqueça de registrar o evento em login.lua): <event type="move" name="throwItemAtHouse" event="script" value="nome_do_arquivo.lua"/>  
  4. Upvote
    InsanityA deu reputação a Tungs em [TUTORIAL] COMPILAR O TFS PELO CODEBLOCKS   
    Opa eae galera, blz? deixarei logo a baixo algumas informações, de como compilar o tfs 0.3.6 pelo codeblocks. Veja o vídeo para entender melhor!
     
    1º path para substituir o leaf
     
     
    2º Download do projeto do CODEBLOCKS:
     
    TheForgottenServer.zip
     
    3º Download do codeblocks já configurado
     
     
    4º Caso sua source for dxp é necessário alterar o arquivo definitiuns.h
     
     
     
  5. Upvote
    InsanityA deu reputação a Deadpool em [DXP] PokeAlpha OpenSource   
    Meu modulo. Eu que fiz, aushduashd tá no cliente do pdub 
     
    Creditos pra mim né? :c
  6. Upvote
    InsanityA deu reputação a wlucas8190 em [DxP] Exclusivo Poketibia OpenSource   
    Com muito prazer. O problema esta no player.cpp.
     
    procure por
       
    if(it != depots.end()) return it->second.first; e abaixo coloque:
     
    //create a new depot? if(autoCreateDepot) { Item* locker = Item::CreateItem(ITEM_LOCKER); if(Container* container = locker->getContainer()) { if(Depot* depot = container->getDepot()) { container->__internalAddThing(Item::CreateItem(ITEM_DEPOT)); addDepot(depot, depotId); return depot; } } g_game.freeThing(locker); std::cout << "Failure: Creating a new depot with id: " << depotId << ", for player: " << getName() << std::endl; } Apenas isso.
  7. Upvote
    InsanityA deu reputação a Luga03 em Maratona de Projetos - Votação!   
    O que torna o projeto que você escolher digno de receber o 1º lugar? 
     
    Bom, não é por que é meu projeto que estou dizendo isso não, mas para min a chave para um projeto ser bem sucedido é ser diferente dos demais. Mas por que eu acho isso? Por que se eu quisesse jogar um jogo igual a outro, era apenas baixar o primeiro que encontrar pela frente que seria basicamente QUASE a mesma coisa... Não que os outros projetos sejam ruims, pelo contrário, são ótimos... Mas eu prefiro poketibia totalmente diferente de algo que existe ou já existiu... Bom fica aí a minha dica para desenvolvedores  
     
     
    Espero que o melhor projeto ganhe, mesmo todos sendo bons!
  8. Upvote
    InsanityA deu reputação a Deadpool em [Download] Pokémon Light (Sem level)   
    quase sozinho né <3 KKK
    otimo trabalho, vou baixar aqui e mexer nele, quem sabe eu poste uma versão bem legalzinha
  9. Upvote
    InsanityA deu reputação a Luga03 em [Download] Pokémon Light (Sem level)   
    Deu nada, até por que como eu criei saporra sozinho neh, sei onde fica quase tudo... Então foi fácil saber o que tirar parar remover o level system akpakspaks
  10. Upvote
    InsanityA deu reputação a Luga03 em [Download] Pokémon Light (Sem level)   
    Pessoal, postei um tutorial de como adicionar pokémon na base do PokéLight. Ele serve para ambas versões.
  11. Upvote
    InsanityA deu reputação a Luga03 em [PokéLight] Como adicionar um novo pokémon   
    Opa galerinha, tranquilo?
    Eu vi que tem um pessoal pedindo um tutorial de como criar um pokémon na base do PokéLight. Então resolvi fazê-lo!
    Lembrando, eu irei adicionar uma Chikorita, mas o processo é o mesmo para qual quer outro pokémon!
     
    Quais items devo criar?
     
    Como o XML deve ser feito?
     
     
    Como devo configurar o pokémon?
    Pessoal, espero que gostem do tutorial! 
    Qual quer coisa faltando ou erro só avisar que eu corrijo  

  12. Upvote
    InsanityA recebeu reputação de Luga03 em [Download] Pokémon Light (Sem level)   
    Na boa mesmo esse server é uma das bases mais bonitas que vi. Bom server sz
     
  13. Upvote
    InsanityA deu reputação a Luga03 em [Download] Pokémon Light (Sem level)   
    Contribuição do PokéLight
     
    Pessoal, essa é uma old version do servidor PokéLight. Comparada a versão atual ela está bem ruim, mas comparada a 90% dos outros OTs ela está perfeita haha.
    Está não é uma base que você baixa e deixa online, como ela está meio old, não tem certas configurações como o XML não estão 100% corretos (spells, loot, etc), está faltando spells, as tabelas de pokémon não estão prontas e muitas outras coisas....
     
    Lembrando, está versão NÃO tem level system no pokémon!
     
    Sistemas
     
    Mapa
     
    O mapa não foi liberado ainda, mas possivelmente iremos liberar ele mais para frente.
     
    Sprites
     
    Nenhuma das sprites exclusivas do PLight será liberada pela equipe.
     
    Imagens
     
     
    Downloads:
     
    Server e Source: https://mega.nz/#!b98zgZYR!Yxq4gBNP9hGrocSEBuhRA-gNT_q6Vgh1mU-pu811Wcs
    Client: https://mega.nz/#!P8tzBZST!2KsMzr5jdRVMdcXako2p85uu6-skTfsU_WguECwUR8k
     
    Estou sem tempo para fazer scan, caso alguém possa fazer para min, agradeço  
     
    Links Extras: 

  14. Upvote
    InsanityA deu reputação a Skulls em Personalizando Ataques Básicos   
    Boa noite pessoal, tudo bem?
     
    Introdução
     
    Venho até vocês hoje postar um sistema que desenvolvi para customização de ataques básicos.
    Basicamente ele permite que você defina as características visuais do ataque básico de um player qualquer: efeito, tipo de dano e range.
     
    As modificações de itens ainda se sobrepõe ao mesmo, seguindo as regras:
    1. A range do item só sobrepõe a range base do jogador se, e somente SE, esta for última for menor do que a primeira.
    2. O efeito e o tipo de dano do item se sobrepõem ao base sempre que estes existirem.
     
     
    Códigos:
     
    1. Definição da função lua responsável por chamar a alteração
     
    O primeiro passo é definir a função lua que será responsável pela alteração do ataque basico:
    player:setFistConditions(range, combatType, distanceEffect) Abra o arquivo luascript.h e cole isso dentro dos métodos protegidos de LuaScriptInterface:
    static int luaPlayerSetFistConditions(lua_State* L); Em seguida, abra luascript.cpp para configurarmos a implementação do método. Junto aos demais registros do tipo player cole este:
    registerMethod("Player", "setFistConditions", LuaScriptInterface::luaPlayerSetFistConditions); Junto às demais funções do metadata "Player" coloque:
    int LuaScriptInterface::luaPlayerSetFistConditions(lua_State* L) { // player:setFistConditions(range, combatType, distanceEffect) Player* player = getUserdata<Player>(L, 1); if (player) { player->setFistConditions(getNumber<uint8_t>(L, 2), getNumber<CombatType_t>(L, 3), getNumber<ShootType_t>(L, 4)); } else { lua_pushnil(L); } return 1; } Pronto, a sua função lua está configurada.
     
    2. Configurar os atributos que definem o novo ataque base do player
     
    Nessa etapa vamos alterar a classe "Player" para receber os atributos referentes ao range, tipo de combate e efefeito do ataque base, bem como funções para definí-los e recebê-los (getters and setters).
     
    Em player.h, dentro de variáveis protegidas (protected:), cole:
    ShootType_t fistDistanceEffect; uint8_t fistRange; CombatType_t fistCombatType; Na parte publica (public:) defina os getters and setters:
    void setFistConditions(uint8_t range, CombatType_t combatType, ShootType_t distanceEffect) { fistRange = range; fistCombatType = combatType; fistDistanceEffect = distanceEffect; } uint8_t getFistRange() { return fistRange; } CombatType_t getFistCombatType() { return fistCombatType; } ShootType_t getFistDistanceEffect() { return fistDistanceEffect; } Agora, em player.cpp, dentro do construtor (Player::Player(ProtocolGame_ptr p) : Creature(), inventory(), client(p), varSkills(), varStats(), inventoryAbilities()) coloque:
    fistDistanceEffect = ShootType_t::CONST_ANI_NONE; fistRange = 1; fistCombatType = CombatType_t::COMBAT_PHYSICALDAMAGE; Pronto, mais uma etapa concluída. A sua classe player está pronta para receber as variáveis referentes à customização do ataque básico.
     
    3. Configuração da Classe Weapon e suas subClasses
     
    Chegou a hora de configurar a classe Weapon e suas subClasses, responsáveis pela execução do dano base. Primeiramente, abra o arquivo Weapons.h e, dentro do public da classe Weapons coloque:
    virtual void Weapon::setFistDistanceParams(Player* player, CombatParams& params) const Em Weapons.cpp, vá até o método Weapons::useFist(Player* player, Creature* target) e substitua:
    if (!Position::areInRange<1, 1>(player->getPosition(), target->getPosition())) { return false; } Por:
    Position playerPos = player->getPosition(); Position targetPos = target->getPosition(); if (playerPos.z != targetPos.z) { return false; } if (std::max<uint32_t>(Position::getDistanceX(playerPos, targetPos), Position::getDistanceY(playerPos, targetPos)) > player->getFistRange()) { return false; } Após params.blockedByShield = true; cole:
    params.distanceEffect = player->getFistDistanceEffect(); params.combatType = player->getFistCombatType(); Pronto o script já é funcional. Isto é, seu ataque base tem efeito, dano e range customizáveis. Porém, qualquer item que for equipado irá sobrepor seu ataque base. Se você quer assim, pare por aqui.
    Caso você queira que a sobreposição do item sobre a sua customização tenha regras faça o próximo passo.
     
    4. Criando regras
     
    Bom, já estamos quase concluindo o tutorial. Agora vamos definir as regras de sobreposição dos itens sobre o ataque base.
    Volte a Weapons.cpp e defina o método que dita as regras de efeito e tipo do ataque:
    void Weapon::setFistDistanceParams(Player* player, CombatParams& params) const { params.distanceEffect = params.distanceEffect != ShootType_t::CONST_ANI_NONE ? params.distanceEffect : player->getFistDistanceEffect(); params.combatType = params.combatType != CombatType_t::COMBAT_NONE ? params.combatType : player->getFistCombatType(); } Explicando: Aqui você determina quando o parâmetro final de dano vai ter as caracteríticas da sua arma e quando vai ter de ataque básico. No nosso caso, vai sobrescrever sempre que a arma tiver um efeito e um tipo de dano próprio, isto é, for diferente de CONST_ANI_NONE e COMBAT_NONE. Fique a vontade para modificar este método ao seu gosto. Exemplo: sobrescrever o tipo de dano somente se ele for do tipo físico; sobrescrever o efeito somente se ele ainda não existe; etc, use a criatividade.
     
    Bom, para essas configurações de regras valerem, temos agora que substituir o método Weapon::internalUseWeapon por:
    void Weapon::internalUseWeapon(Player* player, Item* item, Creature* target, int32_t damageModifier) const { if (scripted) { LuaVariant var; var.type = VARIANT_NUMBER; var.number = target->getID(); executeUseWeapon(player, var); } else { CombatDamage damage; WeaponType_t weaponType = item->getWeaponType(); if (weaponType == WEAPON_AMMO || weaponType == WEAPON_DISTANCE) { damage.origin = ORIGIN_RANGED; } else { damage.origin = ORIGIN_MELEE; } CombatParams paramsCheck = params.copyParams(); setFistDistanceParams(player, paramsCheck); damage.primary.type = paramsCheck.combatType; damage.primary.value = (getWeaponDamage(player, target, item) * damageModifier) / 100; damage.secondary.type = getElementType(); damage.secondary.value = getElementDamage(player, target, item); Combat::doCombatHealth(player, target, damage, paramsCheck); } onUsedWeapon(player, item, target->getTile()); } Além disso, devemos ir em combat.h e, dentro da struct CombatParams, criar o seguinte 'método':
    CombatParams CombatParams::copyParams() const { CombatParams newParams; newParams.dispelType = dispelType; newParams.combatType = combatType; newParams.blockedByArmor = blockedByArmor; newParams.blockedByShield = blockedByShield; newParams.targetCasterOrTopMost = targetCasterOrTopMost; newParams.aggressive = aggressive; newParams.itemId = itemId; newParams.impactEffect = impactEffect; newParams.distanceEffect = distanceEffect; newParams.useCharges = useCharges; newParams.origin = origin; return newParams; } A última modificação é a definição da regra de range. De volta ao Weapons.cpp e no método Weapon::playerWeaponCheck logo após:
    if (playerPos.z != targetPos.z) { return 0; } Cole:
    shootRange = player->getFistRange() <= shootRange ? shootRange : player->getFistRange(); No caso, a regra é para substituir a range base pela range do item SE esta for menor que a primeira. Outro exemplo seria só substituir a range base pela do item SE a range base for maior que 1 (para que knights não possam usar ranged itens, por exemplo).
     
    Enfim pessoal, isso é tudo. Espero que gostem.
     
    Abraços e boa noite.

    Editado: Criado um tópico em scripting ilustrando a utilização do sistema: Exemplificando Customização de Ataque
  15. Upvote
    InsanityA deu reputação a Luga03 em Programas utilizados no PokéLight   
    Olá ekz tibianos, tranquilo? Eu vim mostrar uma lista de programas utilizados pelos desenvolvedores do PokéLight!
     
     


     
     
     


    Lua Auto Indent
     
     


    Descrição: Com este programa você pode identar seus códigos com apenas 1 clique!
     
     


    Download: LuaAutoIndent.rar
     
     


    Scan
     
     


     
     
     


    Remere's Map Editor
     
     


    Descrição: Editar mapa do servidor com client estendido e com transparência.
     
     


    Download: Remere's Map Editor.rar
     
     


    Scan
     
     


     
     
     


    Stian's Repack Dev-Cpp
     
     


    Descrição: IDE para compilar servidores como o PokéLight e outros.
     
     


    Download: Stian's Repack Dev-Cpp.rar
     
     


    Scan
     
     


     
     
     


    Deve instalar junto no Dev o OpenSSL:
     
     


    openssl-0.9.8-1cm.rar
     
     


     
     
     


    Pessoal, com mais tempo eu posto outros que nós utilizando... Valeu ae e espero que façam bom uso!
     
     


    Observação, Os créditos são exclusivamente dos seus desenvolvedores, colaboradores e outras pessoas.
     
     


    Segunda observação, Os vírus encontrados são inofensivos, então baixe por conta própria.
     
     


     
     
     


     
     

    openssl-0.9.8-1cm.rar
    LuaAutoIndent.rar
    Remere's Map Editor.rar
  16. Upvote
    InsanityA deu reputação a Luga03 em [Download] Pokémon Light (Com level)   
    Contribuição do PokéLight
     
    Pessoal, essa é uma old version do servidor PokéLight. Comparada a versão atual ela está bem ruim, mas comparada a 90% dos outros OTs ela está perfeita haha.
    Está não é uma base que você baixa e deixa online, como ela está meio old, não tem certas configurações como o XML não estão 100% corretos (spells, loot, etc), está faltando spells, as tabelas de pokémon não estão prontas e muitas outras coisas....
     
    Lembrando, está versão TEM level system no pokémon!
     
    Sistemas
     
    Mapa
     
    O mapa não foi liberado ainda, mas possivelmente iremos liberar ele mais para frente.
     
    Sprites
     
    Nenhuma das sprites exclusivas do PLight será liberada pela equipe.
     
    Imagens
     
     
    Downloads:
     
    Server e Source: https://mega.nz/#!e9FWkbLR!y3khwXsA3BFzCDFIyVK-lVQEQTdOgLXarieXYEFupDM
    Client: https://mega.nz/#!P8tzBZST!2KsMzr5jdRVMdcXako2p85uu6-skTfsU_WguECwUR8k
     
    Estou sem tempo para fazer scan, caso alguém possa fazer para min, agradeço  
     
    Links Extras: 

  17. Upvote
    InsanityA deu reputação a Deadpool em [Daily Catch]   
    removidp
  18. Upvote
    InsanityA deu reputação a lSainty em [DxP] Exclusivo Poketibia OpenSource+Cliente+Site+DB   
    Git atualizado com alguns fixes daqui: http://pastebin.com/2E71PxsZ
    Para quem não quiser ler tudo lá, essas foram as alterações:
    Corrigido bug dos tokens Corrigido bug no duel system Corrigido bug no surf system Corrigido bug de morrer e não perder EXP Retirada talkaction "teste" que dava um pokemon mega para o player Já fazem 26 dias que criei o Git e ninguém fez nenhum pull ainda nem reportou erros, peço que deem pelo menos uma olhada, é bem mais fácil corrigir os bugs do servidor por lá, segue o link: https://github.com/CaosJunior/DxP
     
    Att, SirDubstep
  19. Upvote
    InsanityA deu reputação a Administrador em Poke Cyan - Open Source   
    Argumentos insuficientes, acusação sem provas ("aposto"), quer continuar? Me diga antes que eu o alerte por flood, qual está sendo a sua contribuição para com Open Tibia? Porque manter essa discussão fútil?
  20. Upvote
    InsanityA deu reputação a LionM em PokeCamp - Client   
    Disponibilizarei o client do PokeCamp.
     
    Prints:
     
     
    Créditos a Lulampo
     




  21. Upvote
    InsanityA deu reputação a Deadpool em [DLL] Extende seu OLD CLIENT   
    Boa noite galera. Não sei bem se está é a área correta, mas bora lá. Apresento-lhes a famosa dll, que burla o limite de sprites de seu old cliente (cliente antigo, cliente da cipsoft), bem, me passaram e deu vontade de postar para vocês, testei no cliente 8.54 e funcionou de boas.
    Em outras palavras, ela extende o seu cliente, assim como o otcliente.
    Pra quem ainda não entendeu, ela aumenta o limite de sprites suportado pelo seu cliente.
    Download DLL: extended.rar
     
    Tutorial de uns gringo ensinado a Rookar e usar no .exe.

    Créditos: Pokémon Master
    extended.rar
  22. Upvote
    InsanityA deu reputação a Deadpool em ModernAcc - DarkXpoke   
    Fala galera, este website que eu por fim editei quando pretendia deixar meu servidor online, como não vou mais usa-lo, pois estou usando Gesior com um novo projeto, irei liberar para vocês.
    O site contem:
    Escolha de pokémon inicial no site;
    Cidades; 
    Está 100% adptado para o DarkXpoke, então, só baixem, e coloquem seu IP e fim, está pronto para uso!
    Aaaah, eu não fiz o design. Mas está bem simples, do jeito que eu gosto.
    Vejam algumas imagens:
    Conta Logada no Site:
    Conta não Logada:
    Informações dos Personagens:
    Guildas ft Status do Server:
    Criação de Contas:
    Bem, unica coisa que eu não adicionei, foi o SHOP! Mas isso é facil!
    Qualquer duvida/erro, só postar. Se eu não estiver ausente, ajudarei!!
    DOWNLOAD DO SITE: htdocs5.rar
    USEM ESSA DB: sekaidbrpg.rar
    Cliente do meu servidor que talvez, eu irei postar. Com a interface SUPER LIMPA, sem warnings, com a pokedex já instalada, sem erro algum:
     
     
    Creditos:
    Criador do Layout/Site;
    Adptação pokémon(Eu)

    htdocs5.rar






  23. Upvote
    InsanityA deu reputação a FlamesAdmin em [DxP] Exclusivo Poketibia OpenSource+Cliente+Site+DB   
    Correçao do Order no Ditto/Shiny fazendo que se destransforme:
    action/scripts/basic/order:
    Procure:
    ----------------- Ditto ----------------- Substitua todo o código do Ditto por este:
     
     
  24. Upvote
    InsanityA deu reputação a samlecter em [Encerrado]Poké Light   
    NOVO VÍDEO:
    https://vid.me/lSTf
     
  25. Upvote
    InsanityA deu reputação a Luga03 em Task System 2016   
    Olá! Eu estava ajudando um cara com um task system , ele disse que pegou na net, mas as alterações que ele queria eu tive que refazer algumas partes do sistemas! Testei e funcionou perfeitamente! Funciona com Poketibia e Tibia! Vamos deixar de enrolação e adicionar o sistema!
    Lembrando também que funciona com tfs 0.3.6 e tfs 0.4! Não testei com tfs 1.x mas acho que não funciona.
     
    Vá em creaturescripts.xml e adicione isso:
     
    <event type="kill" name="KillTask" event="script" value="task.lua"/> No login.lua adiciona isso com os demais:
     
    registerCreatureEvent(cid, "KillTask") Agora crie um arquivo chamado task.lua e adicione isso:
     
    local tasksss = { [1] = {name = "Blastoise", sto = 10212, count = 3, time_sto = 5457, time = 1*24*60*60, sto_count = 14129, money = 100, rewardid = 7621, rewardcount = 100, rewardexp = 10000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."}, [2] = {name = "Charizard", sto = 10213, count = 5, time_sto = 5458, time = 1*24*60*60, sto_count = 14130, money = 100, rewardid = 7621, rewardcount = 100, rewardexp = 10000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."},}function onKill(cid, target) for _, t in ipairs(tasksss) do local total_count = t.count local m_sto = t.sto local count_sto = t.sto_count if getPlayerStorageValue(cid, m_sto) ~= -1 then if getCreatureName(target) == t.name then if (total_count - getPlayerStorageValue(cid, count_sto)) == 1 then setPlayerStorageValue(cid, count_sto, getPlayerStorageValue(cid, count_sto) + 1) doPlayerSendTextMessage(cid, 20, "You are killed ".. getPlayerStorageValue(cid, count_sto) .." " .. t.name .. " and finished the task!") return true elseif (total_count - getPlayerStorageValue(cid, count_sto)) >= 1 then setPlayerStorageValue(cid, count_sto, getPlayerStorageValue(cid, count_sto) + 1) doPlayerSendTextMessage(cid, 20, "You are killed ".. getPlayerStorageValue(cid, count_sto) .." of ".. total_count .." " .. t.name .. " kills to finish the task.") return true end end end end return trueend Agora vá em npc/scripts e crie um arquivo chamado task.lua e adicione isso:
     
    local tasksss = { [1] = {name = "Blastoise", sto = 10212, count = 3, time_sto = 5457, time = 1*24*60*60, sto_count = 14129, money = 100, rewardid = 7621, rewardcount = 100, rewardexp = 10000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."}, [2] = {name = "Charizard", sto = 10213, count = 5, time_sto = 5458, time = 1*24*60*60, sto_count = 14130, money = 100, rewardid = 7621, rewardcount = 100, rewardexp = 10000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."},}local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid value = -1 for i = 1, #tasksss do if msgcontains(msg, tasksss[i].name) and not value ~= -1 then value = i end end if value == -1 then selfSay('I don\'t have a this task!', cid) talkState[talkUser] = 0 return true end local configss = tasksss[value] local name = configss.name local m_sto = configss.sto local time_sto = configss.time_sto local count_sto = configss.sto_count local total_count = configss.count local rest = total_count - getPlayerStorageValue(cid, count_sto) if getPlayerStorageValue(cid, time_sto) < os.time() then -- verifica se o player ainda está no prazo if getPlayerStorageValue(cid, m_sto) <= 0 then -- verifica se o player não pegou está task selfSay('Ready! Now you need kill a '.. total_count .. ' '.. name .. '!', cid) setPlayerStorageValue(cid, m_sto, 1) setPlayerStorageValue(cid, total_count, 0) talkState[talkUser] = 0 else if rest <= 0 then -- Verifica se o player matou todos os monstros nescessários doPlayerAddItem(cid, configss.rewardid, configss.rewardcount) setPlayerStorageValue(cid, count_sto, 0) setPlayerStorageValue(cid, m_sto, -1) setPlayerStorageValue(cid, time_sto, os.time() + configss.time) doPlayerAddExperience(cid, configss.rewardexp) doSendAnimatedText(getCreaturePosition(cid), configss.rewardexp, 215) selfSay(configss.text, cid) talkState[talkUser] = 0 else selfSay('You need to kill '..rest..' '..name..' to gain a reward.', cid) talkState[talkUser] = 0 end end else selfSay('You already did this task, player. Wait '..math.ceil((getPlayerStorageValue(cid, time_sto) - os.time())/(60*60))..' hours to do it again.', cid) talkState[talkUser] = 0 endendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new()) Pronto, agora volte para a pasta npc e crie um novo arquivo .xml chamado de Task e adicione isso lá:
     
    <?xml version="1.0" encoding="UTF-8"?><npc name="Npc Nome" script="task.lua" walkinterval="350000" floorchange="0" speed="0"> <health now="150" max="150"/> <look type="369" head="91" body="102" legs="83" feet="0"/> <parameters> <parameter key="message_greet" value="You want gain a task of {Blastoise}?"/> </parameters></npc> Pronto, agora o sistema de task está funcionando, e para adicionar um novo monstro pra fazer a task? Basta editar a tabela, mas não esqueça que tem que atualizar a tabela nos 2 scripts .lua !!
     
    local tasksss = { [1] = {name = "Blastoise", sto = 10212, count = 3, time_sto = 5457, time = 1*24*60*60, sto_count = 14129, money = 100, rewardid = 7621, rewardcount = 100, rewardexp = 10000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."}, [2] = {name = "Charizard", sto = 10213, count = 5, time_sto = 5458, time = 1*24*60*60, sto_count = 14130, money = 100, rewardid = 7621, rewardcount = 100, rewardexp = 10000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."},} Para configurar siga as seguintes instruções:
     
     
    Modificações da versão 2.0:
     
    Corrigido bug de apenas o primeiro monstro configurado funcionava, agora todos configurados funcionam!
    Quando player fala qual quer coisa que não seja o nome do monstro, diz que não tem aquela task!
    Modificado modo de contagem de kill, agora monstra quantos você matou e o total que precisa matar, quando mata o ultimo monstro, aparece a mensagem que terminou a task!
     
    Créditos:
     
    Criador @miguel223
    Drazyn1291 -- Editei e reformulei muita coisa! Adicionei coisas como a contagem que falta ao matar os monstros, editei pra fazer a task apenas se o player falar com o NPC e outras coisas!
  • Quem Está Navegando   0 membros estão online

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