
ruanlol
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
ruanlol recebeu reputação de Samuel Cstr em Pedido (OTCLIENT PARA SERVIDOR NARUTO)Baixe esse otclient é base:http://www.mediafire.com/download/gsxjeyrpi4lxsye/otclient-master.zip
Depois so é editar conforme seu servidor, spr, dat,...
-
ruanlol deu reputação a skulls em [Spell] Exori Grab VisFico feliz em ajudar, abraços!
-
ruanlol recebeu reputação de NathanAmaro em [Pedido/Dúvida] Spell Bar OT CLIENT- Boa tarde galerinha do TK, bom estive pesquisando sobre o famoso mod de spell bar para meu ot cliient, não é spell CD do pokemon é spelld bar, para magias de cada vocação.
- Exemplo: 1 barra de spells "cooldows" para cada classe, ao clica no icon do spell a spells ativa"
- Pesquisei muito no forum mas só achei topicos sem respostas, ou com links quebrados.. ajudem? obrigado! OT CLIENT 8.6 TIBIA ATS.
-
ruanlol deu reputação a zipter98 em (Pedido) 2 Spells Especiais RPGlocal config = { distance = 6, --Distância do "bumerangue". distEffect = 3, --Distance effect. minDamage = 500, --Dano mínimo. maxDamage = 1000, --Dano máximo. interval = 400 --Tempo para o bumerangue voltar, em milésimos de segundo. } function getPosisBetween(fromPos, toPos) local posis = {} for i = 1, getDistanceBetween(fromPos, toPos) do local choices = {fromPos.x, fromPos.x + 1, fromPos.x - 1} if fromPos.x ~= toPos.x then table.sort(choices, function(a, b) if fromPos.x - toPos.x < 0 then return a > b else return a < b end end) fromPos.x = choices[1] end if fromPos.y ~= toPos.y then choices = {fromPos.y, fromPos.y + 1, fromPos.y - 1} table.sort(choices, function(a, b) if fromPos.y - toPos.y < 0 then return a > b else return a < b end end) fromPos.y = choices[1] end table.insert(posis, {x = fromPos.x, y = fromPos.y, z = fromPos.z}) end return posis end function onCastSpell(cid) local playerPos = getThingPos(cid) local toPos = { [0] = {x = playerPos.x, y = playerPos.y - config.distance, z = playerPos.z}, [1] = {x = playerPos.x + config.distance, y = playerPos.y, z = playerPos.z}, [2] = {x = playerPos.x, y = playerPos.y + config.distance, z = playerPos.z}, [3] = {x = playerPos.x - config.distance, y = playerPos.y, z = playerPos.z} } local spellToPos = toPos[getCreatureLookDirection(cid)] local posis = getPosisBetween(getThingPos(cid), spellToPos) doSendDistanceShoot(getThingPos(cid), spellToPos, config.distEffect) for i = 1, #posis do if not getTileInfo(posis[i]).protection then local pid = getTopCreature(posis[i]).uid if isMonster(pid) or isPlayer(pid) then doTargetCombatHealth(cid, pid, COMBAT_HOLYDAMAGE, -config.minDamage, -config.maxDamage, -1) end end end addEvent(function() if not isPlayer(cid) then return true end doSendDistanceShoot(spellToPos, getThingPos(cid), config.distEffect) posis = getPosisBetween(spellToPos, getThingPos(cid)) for i = 1, #posis do if not getTileInfo(posis[i]).protection then local pid = getTopCreature(posis[i]).uid if isMonster(pid) or isPlayer(pid) then doTargetCombatHealth(cid, pid, COMBAT_HOLYDAMAGE, -config.minDamage, -config.maxDamage, -1) end end end end, config.interval) return true end
-
ruanlol deu reputação a xWhiteWolf em (Pedido) 2 Spells Especiais RPGcara, essa primeira não acho q seja possível fazer não.. eu posso tentar mas com o efeito da flecha acho q vai ficar muito quebrado a animação na parte de voltar.
Quanto a segunda, isso daqui pode te ajudar pra base da spell:
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ASSASSIN) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_NONE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local function delayedTeleport(cid, position) if(not isCreature(cid)) then return true end doTeleportThing(cid, position) return true end function onCastSpell(cid, var) addEvent(delayedTeleport, 500, cid, getCreaturePosition(cid)) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doTeleportThing(cid, getThingPos(variantToNumber(var)), true) return doCombat(cid, combat, var) end e no spells.xml <instant name="Boomerang Step" words="insinuendi" lvl="50" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" groups="1,2000" icon="88" needlearn="0" event="script" value="boomerangstep.lua"> <vocation id="3"/> <vocation id="7"/> </instant> -
ruanlol deu reputação a Malk182 em Atreyu OT 8.6 - TFS 0.4 (rev. 5934) (Mapa Custom)Fechei o Atreyu em 2013, por não conseguir conciliar o tempo do trabalho com o gerenciamento do servidor, assim resolvi fecha-lo. Estou disponibilizando todo o servidor. Gostava bastante deste mapa (31 MB).
Servidor bastante estável com mais de 500 horas de uptime, todas as vocações estão bastante equilibradas para PVP e PVM.
Existem 218 casas dividas em 7 cidades.
Download Link (Site/Servidor/Db/Documentos de controle):
Mega:
https://mega.co.nz/#F!jcVxARSI!UFycsdjTmVtcboibn5ibmg
Banco de dados atualizado:
atreyu-db-31-12-2014.rar
(Atualizei alguns campos que não estavam com valor default e assim não deixavam criar conta/personagem no site)
Contas de exemplo:
malk/123456 (GOD)
teste/123123 (Paladin)
MxSample (Não lembro a senha, a conta tem um personagem de cada vocação, quando um personagem é criado no site ele é copiado a partir do personagem desta conta)
Cidades:
Formiria Daoten Finidia Gasmaril Labaredum Mornea Ucon (VIP) Funcionalidades:
Addons funcionando 100%. Guilds Wars com Skull 100%. Montanha Russa. Sistema VIP completo. Sistema de Banco via comando. Sistema de Bless via comando. Sistema de Refinamento de Itens. Sistema de Itens únicos. Tasks. Quests:
Annihilator - LVL 100+ Assassin Outfit - Qualquer Behemoth - LVL 80+ Beholder - Qualquer Demon Oak - LVL 120+ Demon Helmet - LVL 150+ Demon Hunter Outfit - Qualquer Dragon Lord - LVL 90+ Draken Quest - LVL 180+ Elf Tree - Qualquer Giant Spider - LVL 35+ Hero - LVL 50+ Hydra - LVL 60+ Infernalist Tower - LVL 75+ Norseman Outfit - Qualquer Pits Of Inferno (POI) - LVL 80+ (Todas as alavancas na mesma ordem do global ) Sand Dragon Lord - Qualquer Warlock - Qualquer Guild Wars (Com Escudos):
Sistema igual ao do global onde uma guild pode invitar outra para entrar em guerra assim pode ser definido valores para a guild vencedora receber e todos as morte da guerra são justificadas ou seja não ganhaskull ou ban matando na war.
Sistemas:
Banco: Sistema para controle de banco através de comando, sem precisar assim de ir na cidade para sacar ou depositar dinheiro em sua conta. Itens Únicos: Cada vez que um monstro dropa algum loot existe a chance desse item ter algum atributo melhor do que o item padrão, por exemplo, pode cair uma giant sword com + 2 de ataque ou um demon shield com +3 de defesa. Refinamento: Você pode utilizar pedras especiais para melhorar a qualidade de seus itens. Renascimento: Existe um item no jogo que pode renascer um jogador morto recentemente trazendo ele para o local do seu corpo. Treinamento com Soul: As áreas de treinamento utilizam a soul do personagem, a cada 3 minutos um ponto de soul é gasto. Eventos:
Zombie Event - Todos os dias as 18h e 23h. Coliseum (PVP entre times) - Terça, Quinta e Sábado as 16 horas. Dota (Próprio) Castle War WOE Controle Frags:
Quantidade para pegar Skull:
- RED SKULL
Diario = 5
Semanal = 10
Mensal = 30
- BLACK SKULL
Diario = 5
Semanal = 10
Mensal = 30
Tempo para sair a Skull
Red Skull = 7 Dias
Black SKull = 10 Dias
Outras Informações:
Level para comprar casa: 100 Level para criar guild: 50 Protection Level: 50 Para mais fotos do mapa olhem este link de divulgação do servidor:
http://www.tibiaking.com/forum/topic/25582-86-atreyu-ots-abertura-11052013-ás-1400-guild-war-com-skull-mapa-custom/
-
ruanlol deu reputação a KekezitoLHP em Fist Fighting/AttackspeedNome: Fist Fighting/Attackspeed
Tipo: C++
Autor: Oneshot
Já vi alguns pedidos no fórum sobre a skill Fist Fighting, onde quanto mais você treinasse ela, mais rápido você atacaria no jogo, e parece que isto é um feature do Tibia. Como é uma modificação muito fácil nas sources, resolvi passar aí para a galera.
Por padrão, o intervalo entre ataques do Tibia é 2000ms, ou seja, um ataque físico a cada dois segundos. Eu fiz uma pequena modificação nas sources onde o Fist Fighting seria inversamente proporcional ao tal intervalo, ou seja, quanto maior o valor da skill, menor seria o intervalo.
Fiz de um modo que um jogador com Fist Fighting de nível 200, então, teria uma redução de 75% no intervalo de ataque, ou seja, um ataque a cada meio segundo ou dois ataques por segundo
Leve em consideração que ele pega como base o attackspeed da vocação ou da arma usada, ou seja, se seu servidor já tem o tal chamado "fast attack", de nada adianta adicionar esse código C++.
Abra seu player.cpp, procure por isso:
Player::getAttackSpeed() Substitua toda a função, dependendo da versão de seu servidor:
0.3.6
uint32_t Player::getAttackSpeed() { Item* weapon = getWeapon(); if(weapon && weapon->getAttackSpeed() != 0) return std::ceil(weapon->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375))); return std::ceil(vocation->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375))); } 0.4
uint32_t Player::getAttackSpeed() const { return std::ceil(((weapon && weapon->getAttackSpeed() != 0) ? weapon->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)) : (vocation->getAttackSpeed() / std::max((size_t)1, getWeapons().size()) * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375))))); } Isso adiciona uma utilidade para a skill Fist Fighting que em muitos dos servidores é algo deixado de lado e inútil.
-
ruanlol deu reputação a otteN em (Resolvido)[Spell] Dash ... Ajuda!Espero que ele dê REP+ pra mim, pq acho que respondi certo a dúvida dele :v
-
ruanlol deu reputação a xWhiteWolf em (Resolvido)[Spell] Dash ... Ajuda!Toma cuidado ao usar com o GOD/GM pois pode dar debug nos players em volta.
Pra todo mundo vai mostrar invisivel, pra vc fica como se tivesse de utana vid
edit: descobri que não dá pra ficar invisivel com a condition de GM, leia mais aqui
-- Edited Dash by Night Wolf local damage = 20 -- dano que toma qnd bate em algum obstáculo local distance = 15 -- distancia que anda (em sqm) local speed = 100 -- milisegundos entre cada passo (qnt menor = mais rapido) local invisible = createConditionObject(CONDITION_GAMEMASTER, (speed * distance) + 50, false, GAMEMASTER_INVISIBLE) -- nao mexa local outfit = createConditionObject(CONDITION_INVISIBLE, (speed * distance) + 50, false) -- nao mexa local function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function onWalk(cid) local poslook = getCreatureLookPosition(cid) poslook.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE if isWalkable(poslook, false, false, false) then if not isCreature(getThingfromPos(poslook).uid) then doMoveCreature(cid, getPlayerLookDirection(cid)) doSendMagicEffect(getPlayerPosition(cid), 14) return true else doCreatureAddHealth(cid, -damage) doSendMagicEffect(getPlayerPosition(cid), 31) doSendAnimatedText(getPlayerPosition(cid), "-"..damage , 180) return true end else doCreatureAddHealth(cid, -damage) doSendMagicEffect(getPlayerPosition(cid), 31) doSendAnimatedText(getPlayerPosition(cid), "-"..damage , 180) end end function onCastSpell(cid, var) doAddCondition(cid, invisible) doAddCondition(cid, outfit) for i = 0, distance do addEvent(onWalk, speed * i,cid) end return true end