Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 03/14/16 em todas áreas
-
Fala galera, tudo bem? Bom, estou trazendo aqui um sisteminha de double exp e double loot system que fiz sob encomenda só que acabaram fazendo por conta própria e desistindo de comprar o que me encomendaram, então estou divulgando aqui para vocês o sistema completo já que não tem mais nenhum termo de privacidade e é um sisteminha legal de se usar para diversas coisas (quests, itens especiais, etc). O nome é bem auto-explicativo, o sistema aumenta a rate de exp e loot daquele cidadão por um período X de tempo. Scripts: http://pastebin.com/Wc9ZL8Km É bastante auto-explicativo o código acima, pois já coloquei no pastebin com os devidos comentários e com os passos a serem seguidos. Leiam tudo pois são 3 arquivos e 1 modificação no login.lua. A forma como está feita ali é um item (a ser definido por você na tag) que você clica e habilita o bonus ao player. A rate de exp e loot são customizáveis tal qual o tempo de duração do bônus. Espero que gostem. Abraços,5 pontos
-
Pokemon PDA XTIBIA
Nooob II e um outro reagiu a Lordbaxx por um tópico no fórum
A realidade é que já encheu o saco esse papo. Se não quer postar as sources, pra que cria o tópico dizendo que é open? Isso além de ser vergonhoso é infantil. Toda essa comoção da comunidade em prol de ajudar você com ISSO ai, e você tem coragem de dizer que estão errados em pedir uma coisa que você mesmo disse que teria (as sources)??. Aproveita quando for formatar o PC e formata sua mente junto!! Fica com Deus. Atenciosamente, Douglas!2 pontos -
Nova seção: Escola de Scripting LUA
AngellGreen reagiu a Caronte por um tópico no fórum
Olá EkzTibianos, tenho o prazer de informar que estarei criando conteúdos para uma nova seção! Aulas de Scripting, e conto muito com a sua presença. Se VOCÊ quer aprender LUA de um jeito fácil e descomplicado, junte-se a nós, e venha ver as aulas que vão lhe ensinar a fazer scripts do nível de quest à sistemas bem desenvolvidos. Com a minha ajuda, e talvez a ajuda de membros e equipe, vamos nos prontificar à criar um espaço de suporte na própria seção de aprendizado, para que suas dúvidas em relação à scripting sejam tiradas rápidamente. As aulas irão explicar conteúdos em etapas, cada aula antecessora será uma base para a sucessora, já tenho rascunho de conteúdos da Aula-[0], que irá trabalhar com a velha e chata lógica de programação (extremamente necessária - porém de um jeito diferente) e alguns termos que serão utilizados posteriormente. Também contaremos com Deveres de casa, para que possam por em prática o que aprenderam na aula atual, esses deveres irão render pontos para quem cumprir com sagacidade, que servirão para outra novidade que ainda virá. Estou esperando o feedback de vocês ansiosamente neste tópico, eu vou gostar muito caso tenha uma repercussão boa e que possa ajudar o máximo de pessoas possíveis...1 ponto -
Salve Tibianos de todo o Brasil e partes do mundo! Por meio deste tópico venho lhes apresentar o projeto UntraxBR! Começando por algo que todos nós jogadores gostamos. Eventos. Correto? Nosso servidor contará com diversos eventos, dentre eles: Bomberman; Caça ao monstro; Battlefield; O Último Sobrevivente; Dice Kill. São todos eventos automáticos que acontecem durante os dias da semana, com exceção do Caça ao Monstro que pode ocorrer a qualquer dia/hora. Resumo dos eventos: Bomberman Neste evento, seu principal objetivo é explodir seus adversários e evitar ser eliminado do jogo. Através de um comando, você coloca uma bomba no local em que seu personagem está e aguarda até que ela exploda, mas esteja atento, se ela explodir em você, você perderá o evento! Somente um jogador será o vencedor e levará a premiação. Caça ao monstro Em algum momento do jogo este evento será iniciado. Ao ser iniciado é feito um sorteio de alguma criatura do jogo para que seja caçada. O prazo de duração é aleatório porém dentro de 15min - 1hr. Qualquer tempo dentro deste intervalo é válido. O evento é parado automaticamente no fim do tempo, e o jogador que tiver matado mais do monstro escolhido será o vencedor. O monstro escolhido é o mesmo para todos os jogadores online. Battlefield Um evento bastante conhecido que consiste em: ao iniciar o evento, são pré-selecionadas duas equipes(preta e vermelha) as equipes são dividias aleatoriamente e por igual. Se em um time tiver 20 pretos, no vermelho também terá 20. O evento consiste em matar, quem matar o último jogador do time adversário, o time inteiro sairá vencedor. Ao contrário do Último Sobrevivente, este evento é em equipe e toda a ajuda e estratégia é fundamental. O último Sobrevivente Este evento o principal objetivo é sobreviver. Evite morrer. Todos tentarão te matar, e você tentará matar todos. Somente 1 será o vencedor, não mais que isso. Planeje sua estratégia, chame seus amigos e o melhor vencerá. Neste evento, não existe aliados, todos são inimigos de todos, o principal objetivo é matar! Dicekill Um evento para que gosta de testar a sorte! Neste evento o que manda é sua sorte, quanto menor o número, maior a força do monstro. Quanto maior o número, menor será a força dele! Torça para tirar o número 6 porque se tirar o 1, será morte na certa! Mapa: Nosso mapa contará com diversas hun'ts; Novas cidades; Novas ilhas. Quests: Poi - remake próprio; Inqui - remake próprio; Anihi - remake próprio; Paradox(modificada); Helmet of the ancients(modificada); Diversas quests espalhadas pelo mapa; Quests próprias com suas dificuldades e mistérios. Monstros: Monstros do tibia global e monstros novos. Imagens Missões com RPG. Nova quest Nova quest 2. Novas caves/monstros. Nova ilha Templo com NPC para ajuda. Novos monstros. Explore as montanhas. Novas hunts. Divisão evento Battlefield. Diferencial Teremos em nosso servidor 1 nova vocação, com seus prós e contras, totalmente balanceada. Nosso servidor será um servidor custom voltado ao global. Mas como assim ? Simples: Um mapa totalmente custom, com danos, vocações e outros parecidos com o global. Teremos itens próprios(não teremos frescuras de set's vip). Roupas serão adquiridas através da coleta dos itens, e cada uma dará seu bônus. Ex.: mage full dará +1 ml. Cada montaria terá sua vantagem e desvantagem, seja onde estiver. Equipe Uma boa parte do servidor já está pronta, porém para que tudo seja concluído com êxito necessitamos de uma equipe! Se você se interessou por tudo que foi dito acima não perca tempo, envie este formulário para o nosso e-mail e aguarde uma resposta de nossa equipe! Nosso e-mail: contato @ untraxbr.com.br (sem espaços, o Xt está bugando.) Há vagas em nossa equipe para: Mapper, scripter, rpg makker, tutor, webdesigner e moderador(site e fórum). Nome completo: Idade: Data de nascimento: Localização: Meus trabalhos: Skype/whatsapp: Vaga pretendida: Por que devo ser o escolhido para participar desta equipe: Aproveite e passe na nossa página do Facebook e dê uma curtidazinha para nos ajudar!1 ponto
-
Só salvar e cortar,bom uso! Créditos: Pixel realm Kaleudd Link = http://imgur.com/eEF1VnR1 ponto
-
1 ponto
-
Sistema Torneio 4x ao dia PRA SITE + NPC
CaioSilva99 reagiu a L3K0T por um tópico no fórum
fico feliz que tenha conseguido amigo... se você volta um pouco o tópico acima você verá as 2 funções sendo explicada sobre onTime e onTimer1 ponto -
Nome: onMove Tipo: Creaturescript/C++ Autor: Doggynub Este é um código C++ extra para os servidores, um creaturescript, que facilita muito a programação de variados scripts. É possível criar um script que bloqueia que itens sejam jogados em teleports, por exemplo. Em creatureevent.h, procure por: CREATURE_EVENT_PREPAREDEATH, Logo abaixo, adicione: CREATURE_EVENT_ONMOVE Procure por: uint32_t executePrepareDeath(Creature* creature, DeathList deathList); E logo abaixo, adicione: uint32_t executeOnMove(Player* player, Item* item, const Position& fromPosition, const Position& toPosition, Item* fromItem, Item* toItem, Item* fromGround, Item* toGround, std::map<std::string,int> status); Em creatureevent.cpp, procure por: else if(tmpStr == "preparedeath") m_type = CREATURE_EVENT_PREPAREDEATH; Logo abaixo, adicione: else if(tmpStr == "move") m_type = CREATURE_EVENT_ONMOVE; Procure por: case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath"; Abaixo, adicione: case CREATURE_EVENT_ONMOVE: return "onMoveItem"; Procure por: case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList"; Abaixo, adicione: case CREATURE_EVENT_ONMOVE: return "cid, item, formPosition, toPosition, fromItem, toItem, fromGround, toGround, status"; No fim do arquivo, adicione: 0.4 0.3.6 No arquivo game.cpp, procure: bool Game::playerMoveItem(uint32_t playerId, const Position& fromPos, uint16_t spriteId, int16_t fromStackpos, const Position& toPos, uint8_t count) Troque TODA ELA pelo conteúdo abaixo: 0.3.6 0.4 O código C++ acima como dito anteriormente, abre um leque grande de possibilidades de novos scripts para seu servidor. As versões mais atuais do Open Tibia, como o The Forgotten Server, já possuem algo parecido compilado, um creaturescript chamado onThrow, embora este não tenha tantos extras como o passado no tópico.1 ponto
-
Onmove(Cid, Fromposition, Toposition)
Drakopoulos reagiu a Foxkbt por um tópico no fórum
ola galera! estou começando com c++ e estou add umas coisinhas que acho em forums no meu serv afim de implementalo e aprender um pouquinho mais =D encontrei um script muito legal em outro forum que e o onMove para creatureScripts mas ele tem um probleminha que faz o onThink parar de funcionar... =( se alguem puder fixar isso ajudaria muito! "estou tentando fixar aki tb, se conceguir eu edito o post" ^^ creditos pelos scripts: 100% darkhaos creatureevent.h: abaixo de: CREATURE_EVENT_DIRECTION, cole: CREATURE_EVENT_MOVE, abaixo de: uint32_t executeDirection(Creature* creature, Direction old, Direction current); cole: uint32_t executeMove(Creature* creature, const Position& fromPosition, const Position& toPosition); creatureevent.cpp: abaixo de: else if(tmpStr == "direction") m_type = CREATURE_EVENT_DIRECTION; cole: else if(tmpStr == "move") m_type = CREATURE_EVENT_MOVE; abaixo de: case CREATURE_EVENT_DIRECTION: return "onDirection"; cole: case CREATURE_EVENT_MOVE: return "onMove"; abaixo de: case CREATURE_EVENT_OUTFIT: return "cid, old, current"; cole: case CREATURE_EVENT_MOVE: return "cid, fromPosition, toPosition"; agora abaixo desta função: uint32_t CreatureEvent::executeDirection(Creature* creature, Direction old, Direction current) cole esta: uint32_t CreatureEvent::executeMove(Creature* creature, const Position& fromPosition, const Position& toPosition) { //onMove(cid, old, current) 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->streamPosition(scriptstream, "fromPosition", fromPosition, 0); env->streamPosition(scriptstream, "toPosition", toPosition, 0); 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[30]; sprintf(desc, "%s", creature->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::pushPosition(L, fromPosition); LuaScriptInterface::pushPosition(L, toPosition); bool result = m_interface->callFunction(3); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executeMove] Call stack overflow." << std::endl; return 0; } } game.cpp: abaixo de: else if(currentPos.z != 7 && (!(tmpTile = map->getTile(destPos)) || (!tmpTile->ground && !tmpTile->hasProperty(BLOCKSOLID))) && (tmpTile = map->getTile(Position( destPos.x, destPos.y, destPos.z + 1))) && tmpTile->hasHeight(3)) //try go down { flags = flags | FLAG_IGNOREBLOCKITEM | FLAG_IGNOREBLOCKCREATURE; destPos.z++; } } cole bool deny = false; CreatureEventList moveEvents = creature->getCreatureEvents(CREATURE_EVENT_MOVE); for(CreatureEventList::iterator it = moveEvents.begin(); it != moveEvents.end(); ++it) if(!(*it)->executeMove(creature, currentPos, destPos)) deny = true; if(deny) return RET_NOTPOSSIBLE; agora e so compilar XD use como exemplo! function onMove(cid, fromPosition, toPosition) if(toPosition.x == 100 and toPosition.y == 100 and toPosition.z == 7) then doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN) end return true end <event type="move" name="Move" event="script" value="move.lua"/> bugs! voce n pode usar desta forma: if(toPosition == {x = 100, y = 100, z = 7}) then --execute script não sei pq, nem o criador do scirpt sabe... XD ele tb disse que n e para usar return false se n da esse erro: J:\Users\xxx\Documents\Documents\OT\0.3.6pl1\game.cpp In member function `ReturnValue Game::internalMoveCreature(Creature*, Direction, uint32_t)': 1174 J:\Users\xxx\Documents\Documents\OT\0.3.6pl1\game.cpp cannot convert `bool' to `ReturnValue' in return J:\Users\xxx\Documents\Documents\OT\My Compiling\Makefile.win [build Error] [../0.3.6pl1/game.o] Error 1 espero ter ajudado... se me ajudar com os bugs... irei editar o post colocando a correção adicionar seus creditos e lhe dar rep++ ^^ 17 views e nenhum coment '1 ponto
Líderes está configurado para São Paulo/GMT-03:00