Ir para conteúdo

rohfagundes

Membro
  • Registro em

  • Última visita

Tudo que rohfagundes postou

  1. rohfagundes respondeu ao post em um tópico de rohfagundes em Suporte & Pedidos
    se n me engano em um outro forum ensina como fazer isso edit: novos slots gloves, bracelets e belts
  2. rohfagundes respondeu ao post em um tópico de rohfagundes em Suporte & Pedidos
    Teste Novo Slot
  3. rohfagundes respondeu ao post em um tópico de rohfagundes em Suporte & Pedidos
    sistema de raridade(monstros e items) com look diferente pra cada um
  4. rohfagundes respondeu ao post em um tópico de rohfagundes em Suporte & Pedidos
    tem como sim ja tentei fazer mas ficou ruim =/ edit: edit: creio eu q a ultima ediçao na vida/mana/exp
  5. rohfagundes respondeu ao post em um tópico de rohfagundes em Suporte & Pedidos
    opa mano nem sabia kkkk sobre aquele layout eu perdi =/ edit: fiz outra ediçao na barra de vida acho q assim fica melhor
  6. rohfagundes respondeu ao post em um tópico de rohfagundes em Suporte & Pedidos
    barra de vida/mana/exp e mudei umas coisas no look
  7. voce pode mudar a velocidade de atk no arquivo vocations.xml na pasta data/xml attackspeed="2000" 1 ataque a cada 2 segundos ou vc pode add attack speed em cada item <attribute key="attackSpeed" value="2000"/> 1 ataque a cada 2 segundos
  8. rohfagundes respondeu ao post em um tópico de rohfagundes em Suporte & Pedidos
    to querendo voltar vamos ver =)
  9. rohfagundes respondeu ao post em um tópico de rohfagundes em Suporte & Pedidos
    sobre o quadradinho é facil arrumar ja ja faço e mostro o resultado edit: n achei q ficou bom assim =X
  10. rohfagundes postou uma resposta no tópico em Suporte OTServer Derivados
    ola estou tentando fazer um sistema de look em itens diferentes porem estou com duvida com opcodes no server ja coloquei pra enviar o opcode so q no client eu n consigo arrumar numero do opcode é 111 quero fazer da seguinte forma se opcode 111 for igual a 1 if msgtype.screenTarget thenlocal label = messagesPanel:recursiveGetChildById(msgtype.screenTarget) label:setText(text) label:setColor(UMA COR) label:setVisible(true) removeEvent(label.hideEvent) label.hideEvent = scheduleEvent(function() label:setVisible(false) end, calculateVisibleTime(text)) end e for igual a 2 if msgtype.screenTarget then local label = messagesPanel:recursiveGetChildById(msgtype.screenTarget) label:setText(text) label:setColor(outra cor) label:setVisible(true) removeEvent(label.hideEvent) label.hideEvent = scheduleEvent(function() label:setVisible(false) end, calculateVisibleTime(text)) end sera q alguem pode me ajudar nisso? obg
  11. rohfagundes respondeu ao post em um tópico de rohfagundes em Suporte & Pedidos
    realmente faria mais sentindo porem iria ficar estranho 3 slots seguidos assim n ficaria bom
  12. rohfagundes respondeu ao post em um tópico de rohfagundes em Suporte & Pedidos
    opa valeu pelas dicas sobre o inventory eu ja mudei agora sobre a informaçoes das skills eu ainda estou vendo um jeito diferente
  13. mostre qual erro q esta dando
  14. rohfagundes postou uma resposta no tópico em Suporte Tibia OTServer
    estou com dificuldade para entender como funciona uma tabela com for alguem poderia me ajudar assim estou querendo colocar para se attr['deadly'] = { attr = 'extraAttack', base = 'attack', name = 'Extra Attack', types = {SWORD, CLUB, AXE}, percent = {10, 20}, tipo = {1} } o tipo for igual a attr['quick'] = { attr = 'attackSpeed', name = 'Attack Speed', percent = {4, 8}, types = {WAND,DISTANCE,SWORD,CLUB,AXE}, tipo = {1} } esse tipo entao n add ele a parte do script q usa isso creio eu q seja essa for m, n in pairs(attr) do if( not table.find(used, m) and ( ( table.find(n.types, SWORD) and f.attack ~= 0 and f.weaponType == WEAPON_SWORD ) or ( table.find(n.types, CLUB) and f.attack ~= 0 and f.weaponType == WEAPON_CLUB ) or ( table.find(n.types, AXE) and f.attack ~= 0 and f.weaponType == WEAPON_AXE ) or ( table.find(n.types, DISTANCE) and f.weaponType == WEAPON_DIST and f.ammoType ~= 0 ) or ( table.find(n.types, ARMOR) and f.armor ~= 0 and f.wieldPosition ~= CONST_SLOT_NECKLACE ) or ( table.find(n.types, SHIELD) and f.defense ~= 0 and f.weaponType == WEAPON_SHIELD ) or ( table.find(n.types, WAND) and f.weaponType == WEAPON_WAND ) or ( table.find(n.types, RING) and f.wieldPosition == CONST_SLOT_RING ) or ( table.find(n.types, NECKLACE) and f.wieldPosition == CONST_SLOT_NECKLACE ) ))then table.insert(cur, m) end end
  15. rohfagundes postou uma resposta no tópico em Suporte & Pedidos
    Olá pessoal, venho aqui para mostrar como esta ficando o meu OTC. Espero sugestões
  16. ja mudei mesmo assim n pega todas
  17. n mudou nd
  18. entao gente eu peguei o sistema de mudar do nome dos monstros so q mudei pra deixar assim else if (isMonster()) { if (m_name.find("Champion")) m_informationColor = Color(0x6A, 0x5A, 0xCD); else if (m_name.find("Elite")) m_informationColor = Color(0xFF, 0xD7, 0x00); else if (m_name.find("Unique")) m_informationColor = Color(0xFF, 0x45, 0x00); else m_informationColor = Color(0xBE, 0xBE, 0xBE); } so q n esta funcionando certo ex: o monstro com nome "Champion" esta pegando a cor do monstro "Elite" o Elite,Unique o outro estao pegando a cor do Champion alguem pode me ajudar nisso?
  19. eu fiz um script assim local combatFire = createCombatObject() setCombatParam(combatFire, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combatFire, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatFormula(combatFire, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local conditionFire = createConditionObject(CONDITION_FIRE) setConditionParam(conditionFire, CONDITION_PARAM_DELAYED, 1) addDamageCondition(conditionFire, 10, 2000, -1) setCombatCondition(combatFire, conditionFire) function onUseWeapon(cid, var) if getFireAtk(cid) > 0 then doCombat(cid, combatFire, var) end end q funciona com um sistema de raridade q pode vir em qualquer arma so queria saber de algum jeito pra todas as armas usar esse script caso tiver esse fireAtk
  20. rohfagundes postou uma resposta no tópico em Suporte Tibia OTServer
    ola estou querendo saber se tem como no .xml colocar + de um item no msm script ex: esta assim <melee id="2380" event="script" value="teste.lua"/> queria assim: <melee id="2380;2385" event="script" value="teste.lua"/> alguem sabe algum jeito disso funcionar ou n tem como?
  21. ola entoa gente eu estou querendo um script de weapon q serve para todas as armas do jogo q tiver extraatk ou outro atributo vai funcionar assim toda arma q tiver extraatk vai mudar o tipo de dano dela ex: uma sword tem 1 de extraatk entao o dano dela vai ser de fogo se tiver alguem q faça essa base pra mim e deixar q o resto eu configure obg desde ja
  22. rohfagundes postou uma resposta no tópico em Suporte Tibia OTServer
    Ola estou querendo um script q checa se a arma tem tal atk se tiver ela vai dar um efeito diferente no alvo e tb mudar o tipo de dano
  23. rohfagundes postou uma resposta no tópico em Suporte Tibia OTServer
    achei esse sistema em outro site e queria saber como add atributos como elementfire,absorv essas coisas <?xml version="1.0" encoding="UTF-8"?> <mod name="Random Item Stats" enabled="yes"> <config name="itemstats_conf"><![CDATA[ -- // extra_loot_key = 123 --: optional storage for higher loot rate vocation_base_attackspeed = getVocationInfo(1).attackSpeed --: used for attackSpeed stat -- // tiers, attr = {}, {} tiers['rare'] = { color = 66, -- color of 'RARE' text extra = {0, 0}, attrNames = false, -- show attribute names instead of rare chance = { [1] = 5000, [2] = 5000 chance for 2nd stat } } tiers['epic'] = { color = 35, extra = {1, 2}, -- additional percent bonus chance = { [1] = 2000, [2] = 25000 } } tiers['legendary'] = { color = 149, extra = {2, 4}, chance = { [1] = 500, [2] = 100000 -- 2 bonuses always } } MELEE = 0 DISTANCE = 1 ARMOR = 2 SHIELD = 3 WAND = 4 DURATION_RING = 5 CHARGES = 6 --! attributes attr['quick'] = { attr = 'attackSpeed', name = 'Attack Speed', percent = {4, 8}, types = {MELEE, DISTANCE, WAND} } attr['fortified'] = { attr = 'extraDefense', base = 'defense', name = 'Defense', percent = {1, 5}, types = {MELEE, SHIELD} } attr['deadly'] = { attr = 'extraAttack', base = 'attack', name = 'Attack', types = {MELEE}, percent = {1, 5} } attr['strong'] = { attr = 'armor', name = 'Armor', percent = {1, 6}, types = {ARMOR} } attr['hawkeye\'s'] = { attr = 'hitChance', name = 'Hit Chance', percent = {5, 20}, types = {DISTANCE} } --[[ // not available without source edit attr['farsight'] = { attr = 'shootRange', name = 'Shoot Range', percent = {10, 20}, types = {DISTANCE, WAND} } ]] attr['charged'] = { attr = 'charges', name = 'Charges', percent = {30, 45}, types = {CHARGES} } attr['divine'] = { attr = 'duration', name = 'Duration', percent = {35, 50}, types = {DURATION_RING} } --/ attributes rate = getConfigInfo('rateLoot') if( getConfigInfo('monsterLootMessage') ~= 0 )then print('[Notice] Set monsterLootMessage = 0 to prevent duplicate loot messages') end ]]></config> <event type="kill" name="itemstats" event="script"><![CDATA[ domodlib('itemstats_conf') function round(n, s) return tonumber(('%.' .. (s or 0) .. 'f'):format(n)) end function getContentDescription(uid, sep) local ret, i, containers = '', 0, {} while( i < getContainerSize(uid) )do local v, s = getContainerItem(uid, i), '' local k = getItemInfo(v.itemid) k.name = getItemAttribute(v.uid, 'name') or k.name if( k.name ~= '' )then if( v.type > 1 and k.stackable and k.showCount )then s = v.type .. ' ' .. k.plural else local article = getItemAttribute(v.uid, 'article') or k.article s = (article == '' and '' or article .. ' ') .. k.name end ret = ret .. (i == 0 and not sep and '' or ', ') .. s if( isContainer(v.uid) and getContainerSize(v.uid) ~= 0 )then table.insert(containers, v.uid) end else ret = ret .. (i == 0 and not sep and '' or ', ') .. 'an item of type ' .. v.itemid .. ', please report it to gamemaster' end i = i + 1 end for i = 1, #containers do ret = ret .. getContentDescription(containers[i], true) end return ret end local function send(cid, corpse, monster) if( isPlayer(cid) )then local ret = corpse and isContainer(corpse) and getContentDescription(corpse) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Loot of ' .. monster .. ': ' .. (ret ~= '' and ret or 'nothing')) local party = getPlayerParty(cid) if( party )then for _, pid in ipairs(getPartyMembers(party)) do doPlayerSendChannelMessage(pid, '', 'Loot of ' .. monster .. ': ' .. (ret ~= '' and ret or 'nothing'), TALKTYPE_CHANNEL_W, CHANNEL_PARTY) end end end end local function createLoot(i, ext) local item = type(i.id) == 'table' and i.id[math.random(#i.id)] or i.id local random = math.ceil(math.random(100000) / ext) local tmpItem, f if( random < i.chance )then if i.subType == -1 then f = getItemInfo(item) end tmpItem = doCreateItemEx(item, i.subType ~= -1 and i.subType or f.stackable and random % i.count + 1 or f.charges ~= 0 and f.charges or 1 ) end if( not tmpItem )then return end if( i.actionId ~= -1 )then doItemSetAttribute(tmpItem, 'aid', i.actionId) end if( i.uniqueId ~= -1 )then doItemSetAttribute(tmpItem, 'uid', i.uniqueId) end if( i.text ~= '' )then doItemSetAttribute(tmpItem, 'text', i.text) end local ret, done for k, v in pairs(tiers) do local cur, used = {}, {} for i = 1, #v.chance do if( math.random(100000) <= v.chance[i] )then if( f )then f = getItemInfo(item) end if( not f.stackable )then for m, n in pairs(attr) do if( not table.find(used, m) and ( ( table.find(n.types, MELEE) and table.find({WEAPON_SWORD, WEAPON_CLUB, WEAPON_AXE}, f.weaponType) ) or ( table.find(n.types, DISTANCE) and f.weaponType == WEAPON_DIST and f.ammoType ~= 0 ) or ( table.find(n.types, ARMOR) and f.armor ~= 0 and f.wieldPosition ~= CONST_SLOT_NECKLACE ) or ( table.find(n.types, SHIELD) and f.defense ~= 0 and f.weaponType == WEAPON_SHIELD ) or ( table.find(n.types, WAND) and f.weaponType == WEAPON_WAND ) or ( table.find(n.types, DURATION_RING) and f.wieldPosition == CONST_SLOT_RING and f.transformEquipTo ~= 0 ) or ( table.find(n.types, CHARGES) and table.find({CONST_SLOT_RING, CONST_SLOT_NECKLACE}, f.wieldPosition) and f.charges ~= 0 ) ) )then table.insert(cur, m) end end if( #cur ~= 0 )then local n = cur[math.random(#cur)] table.insert(used, n) n = attr[n] local percent, new, tmp = math.random(n.percent[1] + (v.extra[1] or 0), n.percent[2] + (v.extra[2] or 0)) -- hacks if( n.attr == 'duration' )then tmp = getItemInfo(f.transformEquipTo) if tmp.transformDeEquipTo ~= item then break end new = round( tmp.decayTime * (1 + percent / 100) * 1000 ) elseif( n.attr == 'attackSpeed' )then new = round( vocation_base_attackspeed / (1 + percent / 100) ) elseif( n.attr == 'hitChance' ) then new = round( f.hitChance == -1 and percent or f.hitChance * (1 + percent / 100) ) else new = round( n.base and f[n['attr']] + f[n['base']] * (percent / 100) or f[n['attr']] * (1 + percent / 100) ) if( new == f[n[n.base and 'base' or 'attr']] )then -- no improvement break end end doItemSetAttribute(tmpItem, n.attr:lower(), new) local name = getItemAttribute(tmpItem, 'name') if( v.attrNames or not name )then local name = (v.attrNames and used[#used] or k) .. ' ' .. (name or f.name) doItemSetAttribute(tmpItem, 'name', name) if( f.article ~= '' )then local article = getArticle(name) if( article ~= f.article )then doItemSetAttribute(tmpItem, 'article', article) end end end local desc = getItemAttribute(tmpItem, 'description') or f.description doItemSetAttribute(tmpItem, 'description', '[' .. n.name .. ': +' .. percent .. '%]' .. (desc == '' and '' or '\n' .. desc)) ret = k end cur = {} if( #v.chance == i )then done = true end end else done = i ~= 1 break end end if( done )then break end end return tmpItem, ret end local function createChildLoot(parent, i, ext, pos) if( not i or #i == 0 )then return true end local size, cap = 0, getContainerCap(parent) for k = 1, #i do if( size == cap )then break end local tmp, ret = createLoot(i[k], ext) if( tmp )then if( isContainer(tmp) )then if( createChildLoot(tmp, i[k].child, ext, pos) )then doAddContainerItemEx(parent, tmp) size = size + 1 else doRemoveItem(tmp) end else if( ret )then doSendMagicEffect(pos, CONST_ME_MAGIC_GREEN) doSendAnimatedText(pos, ret:upper(), tiers[ret].color) end doAddContainerItemEx(parent, tmp) size = size + 1 end end end return size > 0 end local function dropLoot(pos, v, ext, master, cid, target) local corpse if( not master or master == target )then -- 0.3/4 corpse = getTileItemById(pos, v.lookCorpse).uid if( isContainer(corpse) )then for i = 1, getContainerSize(corpse) do doRemoveItem(getContainerItem(corpse, 0).uid) end local size, cap = 0, getContainerCap(corpse) for i = 1, #v.loot do if( size == cap )then break end local tmp, ret = createLoot(v.loot[i], ext) if( tmp )then if( isContainer(tmp) )then if( createChildLoot(tmp, v.loot[i].child, ext, pos) )then doAddContainerItemEx(corpse, tmp) size = size + 1 else doRemoveItem(tmp) end else if( ret )then doSendMagicEffect(pos, CONST_ME_MAGIC_GREEN) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Item raro encontrado!") --doSendAnimatedText(pos, ret:upper(), tiers[ret].color) end doAddContainerItemEx(corpse, tmp) size = size + 1 end end end end end send(cid, corpse, v.description) end function onKill(cid, target, damage, flags) if( (damage == true or bit.band(flags, 1) == 1) and isMonster(target) )then -- 0.3/4 local creature = getCreatureName(target) if(creature ~= nil and creature ~= '') then local v = getMonsterInfo(creature) if( v and v.lookCorpse ~= 0 )then local s = getCreatureStorage(cid, extra_loot_key) addEvent(dropLoot, 0, getThingPos(target), v, s == -1 and rate or s, getCreatureMaster(target), cid, target) end end end return true end ]]></event> <event type="login" name="itemstats_login" event="buffer"><![CDATA[ registerCreatureEvent(cid, 'itemstats') ]]></event> </mod>
  24. rohfagundes respondeu ao post em um tópico de MaXwEllDeN em Suporte & Pedidos
    isso e tb maior o speed
  25. rohfagundes respondeu ao post em um tópico de MaXwEllDeN em Suporte & Pedidos
    vc poderia fazer um sistema de esquiva? e q pra cada 5 esquiva aumentar 1% de fishing e q quanto mais skill fiching + chance de esquivar e mais velo pra andar tem como?

Informação Importante

Confirmação de Termo