Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 12/14/15 em todas áreas
-
Nightmare Stalker OtClient Show-Off
Aberos e 2 outros reagiu a NightmareStalker por um tópico no fórum
Reposicionamento do nome das criaturas Observações do sistema: Esse sistema conta com um arquivo de configuração aonde é possível editar a posição do Nome / HP da criatura para aonde desejar, assim deixando visualmente mais bonitos os personagens. Recolorimento do nome das criaturas Observações do sistema: Esse sistema conta com um arquivo de configuração aonde é possível editar a acor do Nome / HP da criatura como desejar, assim deixando visualmente mais bonitos os personagens. Observações Finais: Qualquer interesse no sistema me contatar via mensagens no fórum.3 pontos -
Utilizado em conjunto com: http://www.xtibia.com/forum/topic/238305-sistema-de-resetes/ COMBAT.CPP procure: int size0 = lua_gettop(L); adicionar abaixo: int mares = g_config.getNumber(ConfigManager::MAGIC_RES_DAM); procure: damage.primary.value = normal_random( LuaScriptInterface::getNumber<int32_t>(L, -2), LuaScriptInterface::getNumber<int32_t>(L, -1) ); lua_pop(L, 2); } substitua: damage.primary.value = normal_random( LuaScriptInterface::getNumber<int32_t>(L, -2) * ((player->getResets() * mares/100) + 1), LuaScriptInterface::getNumber<int32_t>(L, -1) * ((player->getResets() * mares/100) + 1) ); lua_pop(L, 2); } WEAPONS.H procure: static int32_t getMaxMeleeDamage(int32_t attackSkill, int32_t attackValue); adicone abaixo: static int32_t getMaxWeaponDamage(uint32_t level, uint32_t resets, int32_t attackSkill, int32_t attackValue, float attackFactor); WEAPONS.CPP procure: int32_t Weapons::getMaxWeaponDamage(uint32_t level, int32_t attackSkill, int32_t attackValue, float attackFactor) { int meres = g_config.getNumber(ConfigManager::MELEE_RES_DAM); return static_cast<int32_t>(std::ceil((2 * (attackValue * (attackSkill + 5.8) / 25 + (level - 1) / 10.)) / attackFactor)); } substitua: int32_t Weapons::getMaxWeaponDamage(uint32_t level, uint32_t resets, int32_t attackSkill, int32_t attackValue, float attackFactor) { int meres = g_config.getNumber(ConfigManager::MELEE_RES_DAM); return static_cast<int32_t>(std::ceil(((resets * meres/100) + 1) * (2 * (attackValue * (attackSkill + 5.8) / 25 + (level - 1) / 10.)) / attackFactor)); } procure: int32_t maxDamage = Weapons::getMaxWeaponDamage(player->getLevel(), attackSkill, attackValue, attackFactor); substitua: int32_t maxDamage = Weapons::getMaxWeaponDamage(player->getLevel(), player->getResets(), attackSkill, attackValue, attackFactor); procure: int32_t maxValue = Weapons::getMaxWeaponDamage(player->getLevel(), attackSkill, attackValue, attackFactor); substitua: int32_t maxValue = Weapons::getMaxWeaponDamage(player->getLevel(), player->getResets(), attackSkill, attackValue, attackFactor); procure: int32_t maxValue = static_cast<int32_t>(Weapons::getMaxWeaponDamage(player->getLevel(), attackSkill, attackValue, attackFactor) * player->getVocation()->meleeDamageMultiplier); substitua: int32_t maxValue = static_cast<int32_t>(Weapons::getMaxWeaponDamage(player->getLevel(), player->getResets(), attackSkill, attackValue, attackFactor) * player->getVocation()->meleeDamageMultiplier); procure: int32_t maxValue = Weapons::getMaxWeaponDamage(player->getLevel(), attackSkill, attackValue, attackFactor); substitua: int32_t maxValue = Weapons::getMaxWeaponDamage(player->getLevel(), player->getResets(), attackSkill, attackValue, attackFactor); procure: int32_t maxValue = static_cast<int32_t>(Weapons::getMaxWeaponDamage(player->getLevel(), attackSkill, attackValue, attackFactor) * player->getVocation()->distDamageMultiplier); substitua: int32_t maxValue = static_cast<int32_t>(Weapons::getMaxWeaponDamage(player->getLevel(), player->getResets(), attackSkill, attackValue, attackFactor) * player->getVocation()->distDamageMultiplier); COMFIGMANAGER.CPP procure: integer[RATE_SPAWN] = getGlobalNumber(L, "rateSpawn", 1); adicione abaixo: integer[MELEE_RES_DAM] = getGlobalNumber(L, "MeleeDamResMult", 10); integer[MAGIC_RES_DAM] = getGlobalNumber(L, "MagicDamResMult", 10); CONFIGMANAGER.H procure: RATE_SPAWN, adicione baixo: MELEE_RES_DAM, MAGIC_RES_DAM, LUASCRIPT.CPP procure: registerEnumIn("configKeys", ConfigManager::RATE_SPAWN) adicione abaixo: registerEnumIn("configKeys", ConfigManager::MELEE_RES_DAM) registerEnumIn("configKeys", ConfigManager::MAGIC_RES_DAM) Depois adicione no config.lua do seu servidor: -- Reset -- NOTE: % of damage for reset MeleeDamResMult = 100 MagicDamResMult = 100 Dessa forma cada resete o dano do player vai aumentar 100% em hit e 100% em magia.2 pontos
-
Extensions RME #1 (Grounds)
M i s s e um outro reagiu a SamueLGuedes por um tópico no fórum
Introdução "Extensions, traduzindo para o português, Extensões; faz referência ao uso do auto-magic, que por via dos scripts existentes na pasta DATA/VERSÃO pode ser entendido de várias maneiras: Esses scripts, além de definir a existência do AA, funcionam como uma citação de itens registrados em uma paleta específica e/ou conjunto de itens pré montados, com o objetivo de: • Organizar, para que itens sejam facilmente encontrados; • Tornar prático o manuseio de itens que requerem montagem e/ou facilitar a aplicação desses itens." @@Daniel Extensions funciona de certo modo, para organizar todos os IDs de items no RME, como Walls / Grounds / Items em Geral, facilitando o seu manuseio, e evitando perca de tempo em procurar tal ID. No RME já estão disponiveis várias extensions onde estão separados por Pallete / TileSet, EX: Terrain Pallete, que contém TileSets como: Cave, Nature, Roofs, Snow, Stairs, Town. ou também Doodad Pallete, que mistura TileSets para estruturas em geral. e assim por diante. Hoje irei ensinar a como adicionar grounds em seu RME, de maneira facil e simples. Criação da Ground Primeiro, escolha o ground desejado, pegarei como exemplo o ID: 4526 (Grass) . na pasta do RME, vá em Data/Versão (a pasta da versão desejada), e procure por Grounds.xml. iremos pegar um ground já criado, como por exemplo: Legenda: Brush Name: Nome do ground que irá adicionar, no caso colocaremos Grass. type: tipo do item, que no caso é ground server_lookid: o ID do Item que ficara a amostra no RME z-order: No tibia, z é o algaritmo utilizado para representar altura, ou andar. No map editor, funciona como sobreposição: O Ground que possuir o z-order maior, será o ground que terá suas bordas sobre os grounds com z-order menor. Item ID: aqui você irá adicionar o item que desejado, no caso 4526, caso queira que ele adicione mais grounds, basta adicionar mais uma linha ficando: <item id="4526" chance="2500"/> <item id="4527" chance="2500"/> Chance: a chance que tem de a randomização dos grounds colocar o ID no mapa (utilizado para grounds com mais de uma sprite) Border Align "Outer": ID da borda da ground 4526 (iremos ver no proximo passo) Border Align "Inner": caso coloque o ground onde não tenha nada em volta, ficara com o ID da borda padrão 1 "mountain edge border". por fim, no script ficará assim: note que tem mais IDs, no caso é todas as IDs de sprites de grass. Criando uma Borda para o Ground Já criado a sua ground, iremos agora criar uma borda para ela. abra o arquivo: borders.xml. pegaremos como exemplo a borda do ID 4526: Legenda: border id: ID da borda, é importante seguir a ordem dos IDs, para isso veja qual foi a ultima borda adicionada. concluido a borda, volte ao arquivo ground.xml e adicione o ID da Borda na parte: <border align="outer" id="2"/> pronto, seu ground e sua borda foram criados. Adicionando ao RME Criado o seu ground, iremos colocar no RME. na mesma pasta, abra o arquivo: Tilesets.xml. procure pelo Pallet desejado, no caso irei adicionar ao Terrain Pallet / Nature: <tileset name="Nature"> <terrain> note que já terá varios Items adicionados, adicione mais uma linha, ficando: <tileset name="Nature"> <terrain> <brush name="grass"/> OBS: salve e feche. abra seu RME, agora sua ground já está pronta para ser usada. Créditos @SamueLGuedes (por montar o tutorial) @Daniel (por ajudar nas informações) Declarações finais espero que tenham gostado do tutorial, ao decorrer do tempo irei criando mais tutoriais como esse. dúvidas e sugestões podem comentar aqui mesmo, estarei aberto à criticas também.2 pontos -
Npc para o sistema de reset: http://www.xtibia.com/forum/topic/238305-sistema-de-resetes/ data/npc/ reseter.XML : <?xml version="1.0" encoding="UTF-8"?> <npc name="Reseter" script="reseter.lua"> <health now="1000" max="1000"/> <look type="133" head="95" body="86" legs="86" feet="38" addons="3"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|.I've been waiting for you to come.. Say 'reset' or 'quantity'" /> <parameter key="message_farewell" value="Cya folk." /> <parameter key="message_walkaway" value="How Rude!" /> </parameters> </npc> data/npc/scripts reseter.lua : local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end local player = Player(cid) config = { minlevel = 150, --- Level inical para resetar price = 10000, --- Preço inicial para resetar newlevel = 20, --- Level após reset priceByReset = 0, --- Preço acrescentado por reset percent = 10, ---- Porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total) maxresets = 50, ---- Maximo de resets levelbyreset = 0 --- Quanto de level vai precisar a mais no próximo reset } function addReset(cid) player = Player(cid) resets = player:getResets() hp = player:getMaxHealth() resethp = hp*(config.percent/100) player:setMaxHealth(resethp) mana = player:getMaxMana() resetmana = mana*(config.percent/100) player:setMaxMana(resetmana) playerid = player:getGuid() player:remove() db.query("UPDATE `players` SET `resets`="..resets.. + 1",`experience`= 0 WHERE `players`.`id`= ".. playerid .."") db.query("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."") return true end local newPrice = config.price + (getResets(cid) * config.priceByReset) local newminlevel = config.minlevel + (getResets(cid) * config.levelbyreset) if msgcontains(msg, 'reset') then if getResets(cid) < config.maxresets then npcHandler:say('You want to reset your character? It will cost '..newPrice..' gp\'s!', cid) npcHandler.topic[cid] = 1 else npcHandler:say('You already reached the maximum reset level!', cid) end elseif msgcontains(msg, 'yes') and npcHandler.topic[cid] == 1 then if player:getLevel() > newminlevel then if player:removeMoney(newPrice) then addEvent(function() if isPlayer(cid) then addReset(cid) end end, 3000) local number = getResets(cid)+1 local msg ="---[Reset: "..number.."]-- You have reseted! You'll be disconnected in 3 seconds." player:popupFYI(msg) npcHandler.topic[cid] = 0 npcHandler:releaseFocus(cid) else npcHandler:say('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid) npcHandler.topic[cid] = 0 end else npcHandler:say('The minimum level for reseting is '..newminlevel..'!', cid) npcHandler.topic[cid] = 0 end elseif(msgcontains(msg, 'no')) and isInArray({1}, talkState[talkUser]) == TRUE then npcHandler.topic[cid] = 0 npcHandler:releaseFocus(cid) npcHandler:say('Ok.', cid) elseif msgcontains(msg, 'quantity') then npcHandler:say('You have a total of '..getResets(cid)..' reset(s).', cid) npcHandler.topic[cid] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Para configurar mexa nessa parte do npc : config = { minlevel = 150, --- Level inical para resetar price = 10000, --- Preço inicial para resetar newlevel = 20, --- Level após reset priceByReset = 0, --- Preço acrescentado por reset percent = 10, ---- Porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total) maxresets = 50, ---- Maximo de resets levelbyreset = 0 --- Quanto de level vai precisar a mais no próximo reset } Créditos: Flavio S1 ponto
-
Gesior acc. Maker tfs 1.x (NOVO shop, cpanel, stream, flash)
VictorWEBMaster reagiu a Masterlokinhon por um tópico no fórum
Ola Xtibianos, vim trazer um projeto do novo Gesior alguma fotos abaixo Account Manage Novo Shop configurável pelo cpanel Cpanel pagina de news mais praticidade para editação sem bagunça Cpanel paginas fácil de adicionar novo grupo e novos campos por XML bem simples Meu sistema de stream https://youtu.be/DtzIdveeA_U Algumas fotos do projeto do flash -- Esse não é certeza que vou disponibilizar só se funcionando bonitinho Colocarei mais fotos quando tiver mais novidades no projeto vou disponibilizar sim, quando receber 60 likes (pouco né pelo trabalho) nesse post aqui embaixo http://www.xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#entry1661269 Irei disponibilizar porque ? Eu programo para que não ficamos só nas coisas antigas inovar é bom, não tenho OT nem trabalho para nenhum OT, e vamos acabar com venda de scripts. Porque estou pedindo os likes ? para que meu trabalho seja valorizado com likes porque da trabalho fazer isso e distribuir de graça. OBS: não quero que só o meu trabalho seja valorizado também de outras pessoas que faz scripts e ate outras pessoas que pegam conteúdo de outros fórum e traz para o xtibia. Estou sempre mostrando fotos para o DkAngel para ele avaliar o projeto. Obrigado pela atenção. aguardando os likes.1 ponto -
Bora? Jogar CS GO?! {+Steam}
Alexclusive reagiu a Stigal por um tópico no fórum
Fala amigos, quem ai estivar afim de jogar um CS GO"nelson" marato ou algum outro joguinho na Steam. É só adicionar: http://steamcommunity.com/id/Stigal/ Ando meio paradão, trabalhando em alguns projetos... Então estou ficando mais pelo Lolzinho.... Mas quem estiver afim, só adicionar, Flw.1 ponto -
projeto tibia 6.0
Administrador reagiu a soltore por uma questão
Galera estou com um projeto em maos para finalizar um servidor de tibia 6.0 aquele da epoca do Daemon e do Ferumbras PLAYER hehe' esta ficando show de bola mais preciso da ajuda de todos se possivel pois as sprites antigas é dificil de conseguir... Gostaria de pedir para que postem aqui todas as srpites que acharem antigas para que eu possa estar utilizando-as como arvores, itens, monsters.. etc... e se possivel qm tiver informações de como era a jogabilidade da epoca como sistema dos frags, preços de itens, lista de monstros itens cidades map etc... podem postar aqui tbm q estarei utilizando .... com a ajuda de vcs ate o fim desta semana postarei um show off de tudo ja adicionado ao cliente obrigado ;D INTENÇAO relembrar da epoca que tudo começou ^^1 ponto -
Adicionar Premium Exp
Administrador reagiu a Kemix por uma questão
function checkStages(cid) local premiumexp = 2 --- edite qual multiplicador você quer na exp normal local level = getPlayerLevel(cid) if isPromoted(cid) == false then premiumexp = 1 end for i = 1, # STAGES do if (level >= STAGES.level) then doPlayerSetRate(cid, 8, STAGES.rate * premiumexp) return end end doPlayerSetRate(cid, 8, DEFAULT_RATE) end1 ponto -
Minhas fotografias [iPhone]
Gabriel Couto reagiu a Alexclusive por um tópico no fórum
Faz tanto tempo que não tiro fotos, nem por telefone mais!! A vida não para...as contas não acabam..e tudo continua! Qualquer hora posto outras.1 ponto -
1 ponto
-
[Resolvido] Erro Na Distro
naruto vida loka reagiu a FlamesAdmin por uma questão
É no globalevents que fica a tag do shop system...1 ponto -
1 ponto
-
Do u wanna travel to another dimension?1 ponto
-
Sim , pois se não o site não instala , Mais também você pode testar o site com elas pra ver se já está funcionando.1 ponto
-
Trazendo pro fórum.. http://3.1m.yt/G0ERmyas6.png http://1.1m.yt/kokSVVKRD.png http://4.1m.yt/66vr1x3kf.png http://3.1m.yt/O9VIU8Rq8.png1 ponto
-
Source Launcher Pokemon Rubrum
steelpzeza reagiu a Refe por um tópico no fórum
Hoje estou liberando a Source do Launcher Pokémon Rubrum (Ainda falta uns ajustes, coisas básicas, como por função nos botões) Imagem: Download Scan1 ponto -
Instalando facilmente Apache + MySQL + phpmyadmin + bibliotecas [OT Server Ready]
Fernandesops reagiu a Nightz por um tópico no fórum
O OT Server Ready (OSR) é um software básico que desenvolvi juntamente com o apoio da 4YouStart (que inclusive está oferecendo 50% de desconto em qualquer servidor, cupom: XTIBIA) feito para auxiliar aqueles que tem mais dificuldade com a parte de infraestrutura. Veja funcionando: Avisos: O software está em BETA. Em caso de qualquer problema envie uma resposta nesse post. Quero lembrar que qualquer cópia dessa postagem sem a devida autorização não é permitida. O OSR instala e configura os seguintes softwares/bibliotecas (visão geral): - Apache2 - php5 - MySQL 5.5 - phpmyadmin - Todas bibliotecas para compilar/rodar um OT Server O sistema suporta oficialmente os seguintes sistemas operacionais: Debian 7.x Ubuntu 12.x Ubuntu 14.x Para instalar o OT Server Ready, utilize as seguintes instruções: Lembrete: recomendo que utilize-o apenas em um servidor novo, recém formatado. Para instalar no Debian: apt-get update apt-get install -y gcc wget http://scripts.4youstart.com/ot-server-ready-debian chmod 777 ot-server-ready-debian ./ot-server-ready-debian SENHA Para instalar no Ubuntu: apt-get update apt-get install -y gcc wget http://scripts.4youstart.com/ot-server-ready-ubuntu chmod 777 ot-server-ready-ubuntu ./ot-server-ready-ubuntu SENHA Substitua a palavra "SENHA" na última linha da instalação pela senha que deseja utilizar no phpmyadmin e MySQL. Recomenda-se que utilize a mesma senha do que a senha do servidor, mas pode utilizar qualquer uma. Versão atual do Software: v0.1 Lista de bibliotecas instaladas: apache2 php5 libapache2-mod-php5 php5-mcrypt mysql-client-5.5 mysql-server-5.5 mysql-common libboost-all-dev libgmp3-dev liblua5.1-0 liblua5.1-0-dev liblua50 liblua50-dev liblualib50 liblualib50-dev lua50 lua5.1 libsqlite0-dev libsqlite3-dev sqlite3 libmysql++-dev libmysqlclient-dev libxml2-dev libxml++2.6-dev cpp gcc g++ make automake autoconf pkg-config subversion liblua5.1-sql-mysql-dev liblua5.1-sql-sqlite3-dev zlib1g-dev zlib1g libcrypto++-dev libcrypto++ libcurl4-openssl-dev phpmyadmin Sugestões de novas implementações são bem vindas! Façam bom proveito1 ponto -
WODBO DBWarrior
rasputia reagiu a Animal Pak por um tópico no fórum
WODBO DBWarrior Informações: - Novo Mapa; - Novas Vocações; - Novas Magias; - Novo Monstros; - Novos Comandos e Sistemas; - Transform / Revert / Fusion / Reborn 100%; - Novos Itens; - Novos Monstros; - Missões 100%; - Novas Quests; - Servidor 100% estável; - E Mais! Screen's: Download Servidor & Scan: Download: http://www.4shared.com/rar/J13gbA2O/DBzWarrior_by_ediberto23.html Scan: https://www.virustot...73dcd/analysis/ Download Client & Scan: Download: http://www.mediafire...2vz690va53q26zh Scan: https://www.virustot...678a0/analysis/ Créditos: Mr.ClouD SmoOkeR1 ponto -
Tibia Real Temperature
TsplayerT reagiu a patrickjean por um tópico no fórum
Falaé Galera do XTibia, venho hoje postar um script muito legal que um amigo meu fez! Então, vamos a ele!! #Informações: Nome: Tibia Real Temperature 1.0 Autor: Pc98 ( I ) Versão Testada: Tibia 8.42~8.7 ( distro tfs, mas deve funcionar em outras, com pequenas alterações, ou nenhuma) @Comentarios: Um sistema de temperatura para o Tibia ( em graus Celsios ). Resumindo, cada area tem sua temperatura, e piora ou melhor , se a cave for muito profunda, ou a outfit for muito quente, ou mesmo se subir muito uma montanha. Ex: a beggar; se andar com ela no deserto, começa a perder vida, ate morrer, ou tirar ela. #Instalação: @CreatureScripts: @Movements:1 ponto