Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 04/27/13 em %
-
Simple Pet System
ChockerrGamer e 3 outros reagiu a Roksas por um tópico no fórum
Simple Pet System Saudações galerinha, bão? Tive uma ideia bem simples e vim trazer para vocês, é um PET para ele te ajudar nas batalhas. Instalação Vá em data/actions/scripts, copie algum arquivo da pasta e cole, renomeie para simple_pet e adicione isso dentro: Muito bem, agora sigamos para actions.xml e adicione essa tag: <action itemid="11256;11207;11144;9019" event="script" value="simple_pet.lua"/> Configuração Nesta parte do código: local dolls = { [11256] = {pet = "Crystal Spider"}, [11207] = {pet = "Ashmunrah"}, [11144] = {pet = "Demon"}, [9019] = {pet = "Vampire"}, } Oque está entre [ e ] nós colocamos os Item ID dos items que vão chamar o PET. Já entre { e } aonde está entre aspas, colocamos o nome do PET. E na tag do actions.xml adicionamos estes MESMOS Item Ids, separando-os por ; ficando: <action itemid="ID;ID;ID;ID" event="script" value="simple_pet.lua"/> Para o PET teleportar para você quando subir escadas, ou ficar muito longe, vá em config.lua e procure por: teleportPlayerSummons Se estiver false coloque true, se estiver "no", coloque "yes" Demonstração Finalizações Obrigado pela atenção galera, espero que tenham gostado, e qualquer dúvida estou aqui para respondê-los4 pontos -
[C++] Opcode versão 8.54+
Eskylo e 2 outros reagiu a BananaFight por um tópico no fórum
Adaptação pra source 8.54+ LEMBRE-SE, ISSO É NA SOURCE DO SERVIDOR Vamos ao código. protocolgame.h Embaixo de void AddShopItem(NetworkMessage_ptr msg, const ShopInfo item); Adicione void parseExtendedOpcode(NetworkMessage& msg);void sendExtendedOpcode(uint8_t opcode, const std::string& buffer); protocolgame.cpp Embaixo de uint32_t key[4] = {msg.GetU32(), msg.GetU32(), msg.GetU32(), msg.GetU32()};enableXTEAEncryption();setXTEAKey(key); Adicione // notifies to otclient that this server can receive extended game protocol opcodesif(operatingSystem >= CLIENTOS_OTCLIENT_LINUX)sendExtendedOpcode(0x00, std::string()); Embaixo de void ProtocolGame::AddShopItem(NetworkMessage_ptr msg, const ShopInfo item){const ItemType& it = Item::items[item.itemId];msg->AddU16(it.clientId);if(it.isSplash() || it.isFluidContainer())msg->AddByte(fluidMap[item.subType % 8]);else if(it.stackable || it.charges)msg->AddByte(item.subType);elsemsg->AddByte(0x01);msg->AddString(item.itemName);msg->AddU32(uint32_t(it.weight * 100));msg->AddU32(item.buyPrice);msg->AddU32(item.sellPrice);} Adicione void ProtocolGame::parseExtendedOpcode(NetworkMessage& msg){uint8_t opcode = msg.GetByte();std::string buffer = msg.GetString();// process additional opcodes via lua script eventaddGameTask(&Game::parsePlayerExtendedOpcode, player->getID(), opcode, buffer);}void ProtocolGame::sendExtendedOpcode(uint8_t opcode, const std::string& buffer){// extended opcodes can only be send to players using otclient, cipsoft's tibia can't understand themNetworkMessage_ptr msg = getOutputBuffer();if(msg){TRACK_MESSAGE(msg);msg->AddByte(0x32);msg->AddByte(opcode);msg->AddString(buffer);}} Embaixo de case 0x1E: // keep alive / ping responseparseReceivePing(msg);break; Adicione case 0x32: // otclient extended opcodeparseExtendedOpcode(msg);break; enums.h Embaixo de enum GuildLevel_t{GUILDLEVEL_NONE = 0,GUILDLEVEL_MEMBER,GUILDLEVEL_VICE,GUILDLEVEL_LEADER}; Substitua o OperatingSystem por este enum OperatingSystem_t{CLIENTOS_LINUX = 0x01,CLIENTOS_WINDOWS = 0x02,CLIENTOS_OTCLIENT_LINUX = 0x0A,CLIENTOS_OTCLIENT_WINDOWS = 0x0B,CLIENTOS_OTCLIENT_MAC = 0x0C,};/ player.h Embaixo de void sendCreatureShield(const Creature* creature) Adicione void sendExtendedOpcode(uint8_t opcode, const std::string& buffer){if(client) client->sendExtendedOpcode(opcode, buffer);} luascript.cpp Embaixo de void LuaScriptInterface::registerFunctions(){ Adicione //doSendPlayerExtendedOpcode(cid, opcode, buffer)lua_register(m_luaState, "doSendPlayerExtendedOpcode", LuaScriptInterface::luaDoSendPlayerExtendedOpcode); Embaixo de SHIFT_OPERATOR(int32_t, LeftShift, <<)SHIFT_OPERATOR(int32_t, RightShift, >>)SHIFT_OPERATOR(uint32_t, ULeftShift, <<)SHIFT_OPERATOR(uint32_t, URightShift, >>)#undef SHIFT_OPERATOR Adicione int32_t LuaScriptInterface::luaDoSendPlayerExtendedOpcode(lua_State* L){//doSendPlayerExtendedOpcode(cid, opcode, buffer)std::string buffer = popString(L);int opcode = popNumber(L);ScriptEnviroment* env = getEnv();if(Player* player = env->getPlayerByUID(popNumber(L))) {player->sendExtendedOpcode(opcode, buffer);lua_pushboolean(L, true);}lua_pushboolean(L, false);return 1;} luascript.h Embaixo de virtual void registerFunctions(); Adicione static int32_t luaDoSendPlayerExtendedOpcode(lua_State* L); creatureevent.h . Substitua CREATURE_EVENT_PREPAREDEATH Por isso CREATURE_EVENT_PREPAREDEATH,CREATURE_EVENT_EXTENDED_OPCODE // otclient additional network opcodes Embaixo de uint32_t executePrepareDeath(Creature* creature, DeathList deathList); Adicione uint32_t executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer); creatureevent.cpp Embaixo de else if(tmpStr == "death")m_type = CREATURE_EVENT_DEATH; Adicione else if(tmpStr == "extendedopcode")m_type = CREATURE_EVENT_EXTENDED_OPCODE; Embaixo de case CREATURE_EVENT_DEATH:return "onDeath"; Adicione case CREATURE_EVENT_EXTENDED_OPCODE:return "onExtendedOpcode"; Embaixo de case CREATURE_EVENT_DEATH:return "cid, corpse, deathList"; Adicione case CREATURE_EVENT_EXTENDED_OPCODE:return "cid, opcode, buffer"; Embaixo de std::cout << "[Error - CreatureEvent::executeFollow] Call stack overflow." << std::endl;return 0;}} Adicione uint32_t CreatureEvent::executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer){//onExtendedOpcode(cid, opcode, buffer)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;scriptstream << "local opcode = " << (int)opcode << std::endl;scriptstream << "local buffer = " << buffer.c_str() << 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->setEvent(desc);#endifenv->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));lua_pushnumber(L, opcode);lua_pushlstring(L, buffer.c_str(), buffer.length());bool result = m_interface->callFunction(3);m_interface->releaseEnv();return result;}}else{std::cout << "[Error - CreatureEvent::executeRemoved] Call stack overflow." << std::endl;return 0;}} game.h Embaixo de int32_t getLightHour() {return lightHour;}void startDecay(Item* item); Adicione void parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer); game.cpp Embaixo de player->sendTextMessage(MSG_INFO_DESCR, buffer);} Adicione void Game::parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer){Player* player = getPlayerByID(playerId);if(!player || player->isRemoved())return;CreatureEventList extendedOpcodeEvents = player->getCreatureEvents(CREATURE_EVENT_EXTENDED_OPCODE);for(CreatureEventList::iterator it = extendedOpcodeEvents.begin(); it != extendedOpcodeEvents.end(); ++it)(*it)->executeExtendedOpcode(player, opcode, buffer);} /creaturescripts/creaturescrips.xml <event type="extendedopcode" name="ExtendedOpcode" event="script" value="extendedopcode.lua"/> /creaturescripts/extendedopcode.lua OPCODE_LANGUAGE = 1function onExtendedOpcode(cid, opcode, buffer)if opcode == OPCODE_LANGUAGE then-- otclient languageif buffer == 'en' or buffer == 'pt' then-- example, setting player language, because otclient is multi-language...--doCreatureSetStorage(cid, CREATURE_STORAGE_LANGUAGE, buffer)endelse-- other opcodes can be ignored, and the server will just work fine...endend Créditos : MaXwEllDeN 100% por adaptar o código3 pontos -
obrigado pelos elogios ! Só pra não ficar parado estou postando um mapa que eu fiz com o DuMal e o Gears2 pontos
-
[Tutorial] Efeito de texto
Lordbaxx reagiu a Alexclusive por um tópico no fórum
Fala moçada do X-Tibia. Estou aqui hoje, para ensinar vocês a criarem um efeito luminoso. Bom, vamos lá. 01. Pressione Ctrl+N para criar um novo documento e defina um tamanho de 462x236 pixels, depois de criado pressione a letra G do teclado para selecionar a Paint Bucket Tool e clique na cor do lado esquerdo e selecione a cor desejada. (No meu caso usei a cor Preta) 02. Agora duplique a layer, vá em Filter> Render> Clouds, pressione Ok, depois mude o modo de blend da layer para Luminosity. 03. Pressione a letra T do teclado para selecionar a Horizontal Type Tool. Neste tutorial usei a fonte CremonaOpenmas nada impede que ser usada outra fonte. 04. Escreva uma palavra ou frase qualquer. 05. Agora clique com o botão direito do mouse sobre a layer do texto e escolha a opção Blending Options, ao abrir a caixa de Blending Options vá em Outer Glow e defina os valores abaixo. 06. Sua palavra deverá ficar como a da imagem abaixo. 07. Agora pressione Ctrl+J para duplicar a layer, clique com o botão direito do mouse sobre a layer que acabou de ser criada e escolha a opção Blending Options, defina os valores abaixo. (Blend Mode: Divide) 08. Ainda com a caixa de Blending Options aberta vá em Gradiente Overlay e defina os valores a seguir. (Blend Mode: Hard Light e Gradient meio transparente) 09. Agora vá em Outer Glow e defina os seguintes valores, depois pressione Ok. 10. Agora pressione Ctrl+E para mesclar as duas layers, duplique novamente a layer, vá em Edit> Transform> Flip Vertical, pressione a letra V do teclado para selecionar a Move Tool e arraste a palavra para baixo, até a posição da foto abaixo. 11. Clique com o botão direito do mouse sobre a layer de baixo e escolha a opção Blending Options e defina como na foto abaixo. (Fill Opacity: 25%) 12. Sua imagem irá ficar como na foto abaixo. 13. Agora pressione Ctrl+E para mesclar as duas layers mais uma vez e vá em Filter> Blur> Gaussian Blur e defina os valores a seguir. 14. Sua imagem irá ficar como a imagem abaixo. 15. Agora pressione a letra E do teclado para selecionar a Eraser Tool e defina os seguintes valores para a ferramenta. 16. Apague suavemente a parte de baixo das letras deixando como na foto abaixo. 17. Agora vá em Filter>Sharpen>Sharpen, até pegar uma certa nitidez. Ficando assim: 18. Agora clique sobre a layer Background e pressione Ctrl+J para duplicar, vá em Filter> Render> Lens Flare e use os valores a seguir. 19. Agora vá em Edit> Fade Lens Flare e defina os valores abaixo. 20. Agora defina o valor de 69% para o Fill na sua paleta de layers. O final de seu texto deverá estar assim: Participe deixando seu comentário, dúvida, sugestão, ideias, exemplos ou simplesmente dizendo um "Olá!" Espero que gostem e aproveitem. Ficarei feliz se ver resultados por ai. Pode postar direto aqui si quiser. Abraço e até a próxima!1 ponto -
@Editado Não sei a área certa para criar esse tutorial, mas se estiver não estiver na área ccorreta, por favor, movam ! Continuando... Vou ensinar a criar um sistema de treinamento offline igual ao global. Requisitos: Apenas um ot com items.xml e items.otb que possuem as estátuas de treino ^-^ Seguindo. PastaDoOt/data//lib/ crie um arquivo chamado "103-offline-training.lua" Coloque isso dentro: em Data/actions/actions.xml adicione as seguintes tags: Os números 18488 - 18492 são os id's dos objetos a serem os "Treiners offline" ou seja, se vc trocar por exemplo o 18492 por um outro id tipo "1026" ( id de um muro) todos os muros que possui esse id, ao clicarem nele, o player irá deslogar, então prestem atenção e coloquem um id existente e que nao seja "usável" como exemplo, uma estátua. em data/actions/script crie um arquivo chamado "offtrain_statue.lua" Coloque isso dentro: ../data/creaturescripts/creaturescripts.xml ../data/creaturescripts/scripts/offtrain_login.lua ../data/creaturescripts/scripts/offtrain_logout.lua ./data/globalevents/globalevents.xml ../data/globalevents/scripts/offtrain_addMinutes.lua pronto, seu sistema de treino offline está criado Créditos: Gesior.pl -> membro da otland, e criador do sistema LookMe -> por trazer o conteúdo1 ponto
-
[Tuto] Colocando imagem dentro do texto.
mkbrabsolute reagiu a Alexclusive por um tópico no fórum
Descrição: Como colocar uma foto dentro de um texto através do Photoshop. Aqui deixo mais um tutorial p/ vocês: Até o próximo!1 ponto -
Global Gesior By PiabetaMan01 2.0
subyth reagiu a Piabeta Kun por um tópico no fórum
Global Gesior By PiabetaMan01 2.0 Bem Galera demorou mais saiu a ultima verção do meu Gesior! Novidades -Site 90% automatizado, ou seja, não precisa ficar mudando nome do seu servidor e caracteristicas no serverinfo por exemplo! - Pagina de criaturas mostrando os loots! - Pagina de montarias completa! - Achievements 1.0 (Em breve a versão mais completa do sistema)! - Pagina de houses automatica (Carrega todas houses do seu servidor e gera busca pelas cidades)! - Outifis em tempo real na pagina de characters! - Pagina de Vantagens Premium ou vip automatizada! - Top players 5 Adicionado! - Feature Article Adicionado! - Video Gallery (Não completo)! - Map view do Tibia ML (Mostra o mapa do tibia global em java)! - Painel Admin com atualizadores de criaturas, magias e outros sistemas (Alguns ainda não terminados)! - Pagina de Market Offers (mostra em tempo real todas as ofertas do market)! - Sistema de like facebook page! - e Layout de Manutenção 100% travado e igual do tibia global! Compatibilidade Servidores tfs 0.3.6, 0.3.7 e 0.4 (8x e 9x) Modificações - Correção no last login (estava dizendo que os chares que nunca logaram haviam logado em x data). - Correção no premium last days (account Management.php ( antes dava uma data errada e nao dizia qndo acabava a premium)). - Characters.php mais fiel ao global! (com achievement system by PiabetaMan01). - Retirado botões não funcionais do Shopadmin.php (sistema de Pacc somente). - Tibiarules.php mais bonita! 100% by PiabetaMan01 - Ranking Igual Tibia.com Sem (sem cores diferenciando quem está online e nao mostrando vocação do char) Download do Acc Maker + Database completa! http://www.4shared.c...I8224/site.html Créditos Gesior.pl VictorWebMaster Aleh Archez WalefXavier 1tyi PiabetaMan01 Em Breve ScreenShoots! OBS: não me responsabilizo por modificações no site, pois estará colocando em risco a proteção do mesmo e será por sua conta, e depois não venha vir aqui dizer que o site é falho!1 ponto -
[Tutorial] Adicionando Transforms Naruto
Developer Berg reagiu a Roksas por um tópico no fórum
Bom galera, ultimamente bastante membros perguntando como adicionar transformações de Naruto e tals. Decidi criar um Tutorial pra que seja mais fácil e bem explicado a todos! Irei ensinar completamente, desde adicionando Sprites no client, até adicionando nos Scripts do servidor. Bora ) • Colocando sprites no client! • Adicionando as sprites em seu Otserv • Criando as transformações Prontinho galera, agora basta entrar em seu Otserv e testar. Boa sorte, espero que tenham gostado e entendido, dúvidas só perguntar. Disponha ^^ OBS: IMAGENS UPADAS POR DynkzDosOts DynkzDosOts1 ponto -
Esse sistema serve para que você possa usar duas weapons ao mesmo tempo uma em cada slot correspondente as mãos do personagem. Com ele você pode utilizar duas sword's, dois axe's, dois club's ou etc... Esse sistema simplismente soma o attack do item que estiver no slot esquerdo com o attack do item que estiver no slot esquerdo. Aew vai os code para inserir nas sources! Vá em player.ccp e procure por: ret = RET_CANONLYUSEONEWEAPON; Você ira encontrar dois "ret = RET_CANONLYUSEONEWEAPON;", substitua por: ret = RET_NOERROR; Após, localize weapons.h e procure por: const Weapon* getWeapon(const Item* item) const; Embaixo você coloca: static int32_t getAttackLeft; static int32_t getAttackRigth; static int32_t getLeftExtraAttack; static int32_t getRigthExtraAttack; Depois, localize weapons.ccp e procure por: int32_t WeaponMelee::getWeaponDamage(const Player* player, const Creature* target, const Item* item, bool maxDamage /*= false*/) const { int32_t attackSkill = player->getWeaponSkill(item); int32_t attackValue = std::max((int32_t)0, (int32_t(item->getAttack() + item->getExtraAttack()) - elementDamage)); float attackFactor = player->getAttackFactor(); Substitua por: int32_t WeaponMelee::getWeaponDamage(const Player* player, const Creature* target, const Item* item, bool maxDamage /*= false*/) const { int32_t getAttackLeft; int32_t getAttackRigth; int32_t getLeftExtraAttack; int32_t getRigthExtraAttack; getAttackLeft = 0; getAttackRigth = 0; getLeftExtraAttack = 0; getRigthExtraAttack = 0; if (getAttackLeft == 0) { if (player->getInventoryItem(SLOT_LEFT) != NULL) { getAttackLeft = player->getInventoryItem(SLOT_LEFT)->getAttack(); getLeftExtraAttack = player->getInventoryItem(SLOT_LEFT)->getExtraAttack(); } else if (player->getInventoryItem(SLOT_LEFT) == NULL) { getAttackLeft = 0; getLeftExtraAttack = 0; } } if (getAttackRigth == 0) { if (player->getInventoryItem(SLOT_RIGHT) != NULL) { getAttackRigth = player->getInventoryItem(SLOT_RIGHT)->getAttack(); getRigthExtraAttack = player->getInventoryItem(SLOT_RIGHT)->getExtraAttack(); } else if (player->getInventoryItem(SLOT_RIGHT) == NULL) { getAttackRigth = 0; getRigthExtraAttack = 0; } } int32_t attackValue = std::max((int32_t)0, (int32_t)((getAttackLeft + getLeftExtraAttack + getAttackRigth + getRigthExtraAttack) - elementDamage)); int32_t attackSkill = player->getWeaponSkill(item); float attackFactor = player->getAttackFactor(); Compile e pronto!1 ponto
-
Sistema de Atribuição de Pontos - By Draky Lucas
Night Wolf reagiu a drakylucas por um tópico no fórum
Créditos: 100% Draky Lucas O que é? Cada level que você upa, você ganha uma quantidade de pontos configuráveis, que pode ser trocados por skills, vida e mana, porem sendo controlado o que pode ser trocado por vocação (assim. um knight, por exemplo, nao compraria ML) PS: configurem vcs mesmos tudo na LIB Funcionamento: Só colocar e ver oO Video: comandos: /atributos /atributos add, club /atributos add, axe /atributos add, sword /atributos add, fist /atributos add, shielding /atributos add, distance /atributos add, mana /atributos add, vitality /atributos reset /atributos build instalação: em data/lib crie um arquivo chamado atributos.lua e nele adicione isso: agora em data/talkactions/scripts crie uma pasta chamada drakylucas e nela crie um arquivo chamado atributos.lua , colocando isso nele: agora em data/creaturescripts/scripts crie uma pasta chamada drakylucas e nela crie um arquivo chamado atributos.lua (sim, todos arquivos tem o mesmo nome.. cuidado nas pastas) e coloque isso: agora em data/creaturescripts/scripts, abre o login.lua e coloque isso ANTES do último return true: agora em data/talkactions/talkactions.xml coloque isso: <talkaction words="/atributos" event="script" value="drakylucas/atributos.lua"/> agora em data/creaturescripts/creaturescripts.xml coloque isso: <event type="advance" name="avancarGanharPontos" event="script" value="drakylucas/atributos.lua"/> reinicie o servidor e divirta-se. PS: não sei se funciona com sqlite.. eu uso MYSQL como banco de dados. Testado com TFS 0.4 Rev 3887 8.60 Por favor, nao deixem de comentar, desanima criar coisas e a cada 100 visitas, apenas um comentario. EDIT: Arrumado bug do magiclevel!1 ponto -
Fala vou postar algumas fotos da escolinha de mapper; Bem Vamos La; Kaiotp Kaiotp Kaiotp Kaiotp Kaiotp ViTeRaS Jvdazica Jvdazica Professor DuMal Kaiotp kaiotp ViTeRaS Em Breve Postaremos mais Imagens Da Escolinha;...Obs; Comentem Creditos; kaiotp ViTeRaS Jvdazica DuMal1 ponto
-
[Download] Narutibia - WebSite Entrance
ivissonx6 reagiu a LuckinhaSan por um tópico no fórum
Download - Senha para extração - xtibia.com Tutorial - Primeiramente, baixe o Naruto WebSite Entrance e extraia para seu Desktop. Em seguida, vá na pasta do seu Xamp, depois em htdocs. Crie uma pasta com o nome do site, e mova todos os arquivos do seu WebSite para esta pasta. Depois de ter movido, coloque os arquivos do Naruto WebSite Entranca na pasta htdocs do Xamp. Abra a pasta config do Naruto WebSite Entrance, e depois abra config.php. $entra['site'] = 'link do site'; Em link do site, apenas coloque site. O resto configure como quiser.1 ponto -
[Poketibia] Kit Iniciais De Unova .idc
ravilli reagiu a narutochuuu por um tópico no fórum
Saudações! Vim postar aqui o download do kit inicial dos pokemon de unova que eu mesmo fiz, o que contém nesse kit? •Sprites dos Iniciais de Unova: Oshawott, Snivy, Tepig, Dewott, Servine, Pignite, Samurott, Serperior e Emboar •Corpse dos Iniciais de Unova: Oshawott, Snivy, Tepig, Dewott, Servine, Pignite, Samurott, Serperior e Emboar •Portrait dos Iniciais de Unova: Oshawott, Snivy, Tepig, Servine, Pignite, Samurott, Serperior e Emboar E tudo em .Idc caso não saiba importar estes sprites, abra seu dat editor, vá em Import / Import Items e selecione os arquivos e salve, pronto, agora é só criar os iniciais para seu server! •Download: http://www.4shared.com/rar/4YDXxKHx/Unova.html? Gostou +REP1 ponto -
----- PROJETO CANCELADO ----- Para construção de um tibia melhor.1 ponto
-
[Encerrado][Fairy Dream Online] - Recrutamento
Denuvo reagiu a LawlietPainn por um tópico no fórum
Fairy Dream Online MMORPG O projeto é baseado no anime Fairy Tail No anime os personagens são magos que podem definir se querem se aliar a alguma Guilda, e com isso utilizando seu tipo de magia eles podem fazer missões enviadas pelos cidadãos de toda Fiore (O país central no anime) Ideias para o projeto: 1º: O usuário começará em umas das cidades principais do reino de Fiore e escolhendo o tipo de mago que deseja ser. 2º: Logo após devem procurar por outros magos especializados em sua mesma magia e fazer missões para desbloquear magias específicas que só se obtêm com recompensas de missões. 3º: Completando essas missões o usuário já terá obtido EXP e Magias de acordo com sua classe. Chegando ao level 5,poderá escolher que Guilda quer entrar ou uma Guilda Negra. 4º: Conforme o jogador vai evoluindo seus status,ele ganhará reconhecimento em sua Guilda e então podendo competir contra outras Guildas. 5º: Quando completar todas as quests de sua Guilda, o usuário se tornará um Mago S-Class,tendo quests secretas e privilegiadas. 6º:Terá Pets e magias exclusivas VIPS Magias: Magia Elemental : Os magos elementares terão direito de escolher os seguintes tipos de elementos. • Ar • Gelo • Fogo • Água • Terra • Trovão Espíritos Celestiais : Os magos espirituais poderão invocar os espíritos de acordo chaves. -Chaves de Ouro : .Aquarius .Aries .Câncer .Gêmeos .Leão .Sagitário .Escorpião .Touro .Virgem -Chaves de Prata : .Crux .Horologium .Lyra .Nicolas . Pyxis Magos de Reequipar : Os magos que tiverem esse tipo magia terão o direito de invocar armaduras e armas mágicas de outra dimensão. Terão outras magias, a força de todas magias dependerá de seus status Vocações / Profissões : Mago - Terá o direito de entrar para a guilda que desejar, poderá realizar missões para ganhar dinheiro, fama, etc. Magos Negros - São magos de Guildas Negras, podendo capturar ou assassinar magos ''legais'' Spriter : BloodAngell , principe sharingan , [VAGA] . Programador : [VAGA] . Scripter : OrochiElf , [VAGA] . Mapper : LawlietPainn , Jardoc , [VAGA] . Designer : principe sharingan Bom , o mapa infelizmente está concluído em apenas 20% (Precisamos de Mappers e Spriters Urgente ! ), o Server vai começar com Magnólia e algumas vilas , e assim com o passar do tempo vamos fazendo o resto das Cidades . Todas as Guildas , vão ter o quadro de missões. Seremos sempre fiéis ao Anime ! Para se inscrever a seleção basta preencher o formulário abaixo. A seleção será feita pelos membros da equipe, não pense que será fácil, avaliamos perfeitamente, pois queremos os melhores. Boa Sorte a Todos ! Att.: Fairy Dream Online Staff1 ponto -
Eai galera tudo Bem? Hoje eu vou tentar ensinar a você como fazer uma área de swamp. Swamp é uma coisa fácil de se fazer. Primeiro de tudo abra o seu RME e crie um novo mapa (ctrl+n). Vamos lá, primeiro vamos trabalhar com as bordas de swamp (4713~4724, é bem importante prestar atenção nos ids de swamp pois tem o dark swamp (4725~4736), esse dark swamp é mais escuro que o swamp normal então peço que prestem atenção para não usar as bordas do swamp escuro com o swamp claro). Desligue o seu Auto Border (aperte a) e começe a fazer a base do swamp colocando as bordas no mapa, faça um formato legal para fazer isso coloque algumas bordas em cima das outras, deixe alguns buracos no meio também, Feito a base com as bordas a sua deverá ficar mais ou menos assim: Agora coloque os grounds de swamp (4691~4701, nessa parte é importante usando os tiles que eu disse pois tem o swamp dark também) e coloque também o que o player vai andar (eu vou colocar grass (4536, 4526, 4539,4541, recomendo usar só esses pois eles são meio amarelados e isso da a impressão que o garss está meio morto por causa do swamp) porém tem muitos tiles que se pode usar como 3264, 3265, 3263, entre muitos outros). Após colocar os tiles vai ficar assim: Agora vamos aos detalhes, coloque cogumelos (4175 e 4174) quando for colocar eles coloque em "montinhos" coloque também "matinhos" (6218 e 6219 recomendo só esses dois) ainda não está muito legal como podem ver: Então vamos colocar mais detalhes, agora coloque uma ou duas pedras, use as pedras grandes e com musgos tem muitas mais eu vou usar a (1305, 1306 e 3640~3643), coloque algumas pedrinhas andaveis (3653~3656 e 3621~3623) mais não exagere, coloque uns dois itens desses ids (4876~7882) no editor eles não ficam muito legais mais in game eles ficam, coloque plantes de água (2772, 2773, 2779, 2783, você pode criar "novas" plantas puxando uma em cima da outra como essas três: Você pode puxar eles pra cima das pedras isso fica legal também. Está assim: Então pessoal é isso foi um tutorial bem simples, swamp da pra colocar muito mais detalhas dependendo de qual monstro você vai colocar nessa área então é meio difícil eu explicar pra todos. Download do mapa do tutorial: http://www.4shared.c...tutoswamp.html? Espero que gostem ###########public/style_emoticons/default/smile.png1 ponto
-
Meu Primeiro show Off...Bem Vamos La..Espero Bastentes Comentarios; Imagens; Espero Que Gostem..Em Breve Mais Imagens... Cometem.. Creditos; Kaiotp1 ponto
-
1 ponto
-
Download: http://www.mediafire...2rc7eub2w9b2e2o1 ponto
-
Criando Vip Simples
crusheralpha reagiu a sens por um tópico no fórum
É simples você da use em um determinado item e ganha acesso a uma area (vip no caso), realmente e bem simples para queles servidores que tem varias vip, Exemplo: Você faz a quest e pega o item 2233 (apenas para exemplo) e da use ganhando storage 12345 ai você pode entrar. 1ª parte: 2ª parte @Editado: creditos: 85% Xtibia- Quase todo conteudo esta disponivel em diversos topicos do xtibia, não tenho nome de todos os criadores entao esto deixando isso para nao dizerem que estou ripando. 10% Sens - pesquisa correção e junção de scripts 3% Delalana - Correção da 1ª parte. 2% servidor OT Eribaiak v2.0 - algumas funções e alterações. Observações: crie este tutorial, para ajudar como podem ver e um junção de scripts simples (sou pessimo em portugues)1 ponto -
[Mapping] Mostre suas Idéias
Faelzdanil reagiu a realquimista por um tópico no fórum
Poste, caso consigam colocar uma "máquina" pode se dizer que possue rede elétrica.1 ponto -
tempo para usar magia diferente
KennyConrad reagiu a Roksas por uma questão
Ficaria assim: Mas, para que isso? É só por na tag do spells.xml, aonde tem "exhaustion" Alterar o valor para 100001 ponto -
[pedido] função que converte mes com o dia de uma string
drakylucas reagiu a caotic por uma questão
Deixa eu ver se entendi você quer uma função que mude de lugar na string dia/mês para mês/dia Se for e fácil function dateString(string) local function setDateStringTwoValues(string) y = string for i = 1, #y do local t = string.sub(y, i, i) if t == "/" and string.sub(y, i-2, i-2) == "" or t == "/" and string.sub(y, i-2, i-2) == "/" then y = ""..string.sub(y, 1, i-2).."0"..string.sub(y, i-1, #y).."" end end return y end local string = setDateStringTwoValues(string) local y = string.sub(string, 1, 3)..string.sub(string, 7, 10) local t = string.sub(string, 4, 6)..y return t end print(dateString("6/1/2013")) Funções acima analisa se a string verificando se o mês ou o dia tem apenas um único numeral. E se tiver apenas um único numeral ex: 2 ela transforma em dois ex :02(Isto evita bug) Depois ela só troca o lugar o mês pelo vice versa. E pronto1 ponto -
Nao ta errado nao !! Ele ta pedindo um servidor ué '-' OBS : XTibia - A sua comunidade de Tibia e OTserv → OTServ → Downloads de OTserv → Pedido de Downloads1 ponto
-
[Encerrado] Pokémon
frota123 reagiu a Niickmaster por um tópico no fórum
Basta você acessar o topíco Servidores Derivados , que lá tem varios downloads de OTServs ATS Pokétibia.1 ponto -
[Encerrado] Galera preciso que voces me ajudem .
Esquilo001 reagiu a Faelzdanil por um tópico no fórum
Amigo primeiramente você esta na área errada, a área certa é : Pedidos e dúvidas - Servidores Derivados Mas em fim posso lhe ajudar em questão de Outfits ! Vá em Data/XML/outfits.xml Você vai encontrar várias outfits: Exemplo¹: <outfit id="1"> <list gender="0" lookType="511" name="Trainer"/> - Female <list gender="1" lookType="510" name="Trainer"/> - Male </outfit> Nesse caso aqui essa é a Outfit Free, quando você começa e fica na lista de Outfits. OBS: Tire o - Female/-Male Exemplo²: <outfit id="2" premium="yes"> <list gender="0" lookType="615" name="Elite Trainer"/> <list gender="1" lookType="614" name="Elite Trainer"/> </outfit> Essa aqui como pode ver na primeira linha tem premium="yes" , bom significa que é para quem tem premium account. Quando é adicionados dias de p.a. na conta do player automaticamente ganhará essa outfit. Exemplo³: <outfit id="3" premium="yes" quest="181602"> <list gender="0" lookType="512" name="Rapper"/> <list gender="1" lookType="545" name="Rapper"/> </outfit> Essa outfit ela ganha através de quests ou venda por NPCs, e tem que estar p.a. também pra pode-la usar ! O numero 181602 é a storage da Outfit, que se deve colocar em scripts de quests e npcs ! Resumo: Na primeira linha os que contém: <outfit id="X"> - São free todos tem acesso a ela <outfit id="X" premium="yes"> - Receberá a outfit ao ser p.a. <outfit id="X" premium="yes" quest="XXXXXX"> - Apenas p.a. podem usar e recebe através de quests ou venda ! <outfit id="X" quest="XXXX"> - Pode utilizar dessa forma também que será apenas por quest ou venda, mas os frees também terão acesso1 ponto -
Rank de frags
Hamsterbob reagiu a Vodkart por uma questão
seu server não possui essa função... vai em data > lib > 050-function.lua e adc: function getPlayerFrags(cid) local time = os.time() local times = {today = (time - 86400), week = (time - (7 * 86400))} local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") if(result:getID() ~= -1) then repeat local content = {date = result:getDataInt("date")} if(content.date > times.today) then table.insert(contents.day, content) elseif(content.date > times.week) then table.insert(contents.week, content) else table.insert(contents.month, content) end until not result:next() result:free() end local size = {day = table.maxn(contents.day),week = table.maxn(contents.week),month = table.maxn(contents.month)} return size.day + size.week + size.month end1 ponto -
[Avatares] PsyMcKenzie
PsyMcKenzie reagiu a Alexclusive por um tópico no fórum
Fiz 2 avatares aqui pra ti chegado. Espero que goste Abraço!1 ponto -
[Encerrado] Ajuda PokeClient..
KaboFlow29 reagiu a Niickmaster por um tópico no fórum
•Ah , eu fiz um client rapidinho aqui contendo apenas o IP. pois pelo oque eu entendi era isso que você queria.. é so você baixar aqui: Client Mex (2.3MB) MEGA Client Mex (2.3MB) 4SHARED Ele pedira os seguintes itens: Tibia.spr Tibia.dat Tibia.pic1 ponto -
Tipo dos lado do player que solto a magia? eMmaBWZd[/pastebin]1 ponto
-
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 18) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -8.10, -280, -8.40, -280) function onCastSpell(cid, var) local pos = getThingPos(cid) local posy = {x = pos.x, y = pos.y - 1, z = pos.z} local posy2 = {x = pos.x, y = pos.y + 1, z = pos.z} local posx = {x = pos.x - 1, y = pos.y, z = pos.z} doSendDistanceShoot(posy, getThingPos(getCreatureTarget(cid)), 18) doSendDistanceShoot(posy2, getThingPos(getCreatureTarget(cid)), 18) doSendDistanceShoot(posx, getThingPos(getCreatureTarget(cid)), 18) return doCombat(cid, combat, var) end1 ponto
-
/\ Rank que você nunca ira chegar1 ponto
-
Tutorial Swamp
FenixBorges reagiu a dbruno por um tópico no fórum
Combinações de plantas formato das bordas excelentes. Bom tutorial. Acho que em swamp pode-se adicionar também "vitórias régias" (é esse o nome né?): (Google imagens, busca: "swamp") Fora isso, os outros detalhes variam de acordo com o tema.1 ponto -
[PEDIDO] Quero Layouts Para Meu serve Naruto Tibia
VanWilder reagiu a AlexandreGiacobo por uma questão
Aqui está amigo: Link1 ponto -
[Sign #1] Naruto Sign
AlexandreGiacobo reagiu a LuckinhaSan por um tópico no fórum
Ta bem legal pra primeira sign cara. Mais tente colocar mais efeitos como gradient, iluminações, fractals e outros.1 ponto -
[PEDIDO] Quero Layouts Para Meu serve Naruto Tibia
VanWilder reagiu a LuckinhaSan por uma questão
Veja meus trabalhos1 ponto -
Sim, use o blood splash ou water splash no chão e clique em properties e vai ter ali do lado, water ai quando você clicar vai aparecer uma lista com os nomes tipo beer, limonade, urine, slime, a cada clique em um diferente é uma nova cor1 ponto
-
Usa o de água.. Dê 2 cliques no splash de água já no chão, abrirá propriedades, la vc opta por qual tipo você quer usar.. sem ser a opção de abrir pelo rme oficial e nao atalho quero saber ???1 ponto
-
[C++] Opcode versão 8.54+
akira021 reagiu a BananaFight por um tópico no fórum
Serve para comunicar servidor com client, Com isso é possível criar muitos sistemas, como de andar e soltar som etc.1 ponto -
Interessante, e daria uso ao Atributo Carisma certo? Pensei em Players tendo habilidade de persuadir os NPCs fazendo estes confiarem neles. Musica, por exemplo. Cada vez que fizesse um ato positivo para o NPC, mais fácil seria receber um desconto ou recompensas. Seria algo que se acumulasse... Adicionar estados, sejam negativos ou positivos, ajudam muito a detalhar e dar rpg ao jogo. Não só doenças entre os efeitos, mas Ferimentos, Hemorragias, Dor, Infecções, Ossos fraturados, Adrenalina, Pânico, Cegueira, Maldições, etc... Estes efeitos novos poderiam ser uma mistura de efeitos já conhecido como também introduzindo coisas novas... Na fraturação de osso eu pensei assim: Níveis de Fratura: -Trincado -Quebrado -Destroçado ou Esmagado Regiões Fraturáveis: -Cabeça -Tronco -Mão esquerda -Mão direita -Pernas -Pés Cada nível de fraturação em certa região aplicaria um efeito negativo no jogador. Na cabeça, se a fratura fosse muito grande seria fatal... Nas Pernas/Pés, o jogador perderia muita mobilidade. Agora nos braços, eu pensei em algo como a Arma/Escudo que ele tiver manuseando começasse a falhar. Exemplo: Tem uma espada na mão esquerda, e ela está trincada. O Jogador tem 30% de chance de falhar os golpes, e estes seriam menos potentes. Se fosse quebrado, 80%, e causaria metade do dano. Se a mão estivesse com os ossos destroçados, seria impossível utilizar qualquer coisa com aquele braço. Trincadas poderiam ser regeneradas com magias de cura, e ossos quebrados com as magicas de alto nível. Quando ficasse destroçado, o player teria de se curar em algum lugar especial, o que seria mais complicado.1 ponto
-
Bom acho que é isso: vai em data/actions/scripts e cria 1 arquivo chamado vip9.lua e coloca isso: Vermelho: Storage que vai adicionar ao usar item. Azul: Mensagem que ele fala ao usar item. Depois vai em data/actions em actions xml adiciona: Vermelho: id do item que ira dar a vip Agora vai em data/movements/script e cria 1 arquivo chamaod vip_9.lua e coloca: Azul: posição que vai mandar se ele tiver a storage vermelho: Posição se ele nao tiver a storage Verde: Storage que precisa ter. depois vai em data/movements em movements.xml adiciona: Vermelho: actionid que voce coloca no tile. Então você vai no mapa editor e colocar esse actionid nos tiles que ficam na entrada da vip. @Editado: Corrigido 1ª parte. creditos: 85% Xtibia- Quase todo conteudo esta disponivel em diversos topicos do xtibia, não tenho nome de todos os criadores entao esto deixando isso para nao dizerem que estou ripando. 10% Sens - pesquisa correção e junção de scripts 3% Delalana - Correção da 1ª parte. 2% servidor OT Eribaiak v2.0 - algumas funções e alterações.1 ponto
-
[Encerrado]PROJETO GAME OF THRONES
Roksas reagiu a AlexSilvinha por um tópico no fórum
Gostei do projeto, tenho de pensar se participo como Mapper. Faltou ai o "Wargs".1 ponto -
Novos Pokemons
Drk Shadow reagiu a Faelzdanil por um tópico no fórum
Valeu @Mykez ! Em breve estarei disponibilizando também mapas, Hunts, cidades o que o povo estiver precisando mais !1 ponto -
Uma ideia melhorada das calhas (meio antiga)1 ponto
-
Como que você posta imagens de mapas que tem até pra download aqui no forum, bota os créditos por favor.1 ponto
-
Vai parecer desalinhado por causa do anglo de inclinaçao do tibia, só tirar aquela cerca de madeira desse lado> que vai ficar parecendo certo1 ponto
-
Meu para de posta coisas assim, além de não ter nada a ver fica muito ridiculo pro tópico, parece que quer ganhar post a qualquer custo. Se quer comentar comenta sobre o mapa, seu problemas particulares ou não devem ser respondidos por PM.1 ponto
-
Particularmente achei muito feio, o minimap deve ter ficado estranho, e mais estranho ainda é uma arvore "nascer" nesse lugar. Minha opinião, mas acho que nem deve considera-la.1 ponto
-
[Encerrado] [Pokemon] Dúvidas? - Pda
murluka reagiu a AsMinaPira por um tópico no fórum
@FlamesAdmin vai em data/lib/configuration.lua procura por nurseHealsPokemonOut = true no lugar de true coloca false. @Brunno Mude essa parte do Goback.lua: local x = pokes[pokemon] local boosts = getItemAttribute(item.uid, "boost") or 0 if getPlayerLevel(cid) + pokemonMaxLevelAbovePlayer < getItemAttribute(item.uid, "level") + boosts then doPlayerSendCancel(cid, "Your pokemon's level is much higher than yours, you can't use him.") return true end por essa: local x = pokes[pokemon] if getPlayerLevel(cid) + pokemonMaxLevelAbovePlayer < getItemAttribute(item.uid, "level") then doPlayerSendCancel(cid, "Your pokemon's level is much higher than yours, you can't use him.") return true end A outra alterção era pra remover o level requerido pra usar um pokemon Cansado demais @Taiger Sobre o fishing, vai em data/action/script/tools/fishing.lua e procura por: local chance = 10 + getPlayerSkillLevel(cid, 6) / 2.5 10 seria aonde você teria que alterar pra diminuir a chance de pesca.1 ponto
