Ir para conteúdo

Holly Angel

Artesão
  • Total de itens

    110
  • Registro em

  • Última visita

1 Seguidor

Sobre Holly Angel

Informações

  • Char no Tibia
    Alca Morth
  • Forma que conheci o xTibia
    Sites de Busca
  • Sou
    XTibiano

Últimos Visitantes

4524 visualizações

Holly Angel's Achievements

  1. Tibia Gold Times Olá a todos, estou com um projeto de servidor Old 7.4 de tibia. Estou a procura de uma pessoa que entenda bastante de php para estrturar em meu site um sistema de compras de premium account! Deixe seu contato! Obigado desde já
  2. Olá Xtibianos, estou criando um servidor old de tibia e preciso de ajuda com um detalhe. Gostaria de adicionar a necessidade de se ter uma blank rune para poder conjurar a spell e então criar a runa desejada. Aqui segue meu codigo da arquivo "spells.xml" <?xml version="1.0"?><spells> <!-- Rune Spells --> <rune name="adura vita" id="2273" maglv="4" needtarget="1" aggressive="0" charges="2" script="healing/ultimate_healing_rune.lua" /> <rune name="adevo grav pox" id="2285" maglv="0" blocktype="solid" charges="6" aggressive="1" script="attack/poison_field.lua" /> <rune name="adura gran" id="2265" maglv="1" needtarget="1" aggressive="0" charges="2" script="healing/intense_healing_rune.lua" /> <rune name="adana pox" id="2266" maglv="0" needtarget="1" aggressive="0" charges="2" script="healing/antidote_rune.lua" /> <rune name="adori" id="2287" maglv="0" needtarget="1" charges="20" script="attack/light_magic_missile.lua" /> <rune name="adevo grav flam" id="2301" maglv="1" blocktype="solid" charges="6" script="attack/fire_field.lua" /> <rune name="adeta sio" id="2290" maglv="5" needtarget="1" charges="2" function="convince" /> <rune name="adito grav" id="2261" maglv="3" range="4" blocktype="solid" aggressive="0" charges="6" script="support/destroy_field_rune.lua" /> <rune name="adevo grav vis" id="2277" maglv="3" blocktype="solid" charges="6" script="attack/energy_field.lua" /> <rune name="adito tera" id="2310" maglv="4" range="1" charges="6" script="support/desintegrate_rune.lua" /> <rune name="adori gran" id="2311" maglv="1" needtarget="1" charges="10" script="attack/heavy_magic_missile.lua"/> <rune name="adevo mas pox" id="2286" maglv="4" blocktype="solid" charges="2" script="attack/poison_bomb.lua" /> <rune name="adevo mas flam" id="2305" maglv="5" blocktype="solid" charges="2" script="attack/firebomb.lua" /> <rune name="adevo res flam" id="2308" maglv="7" needtarget="1" charges="2" script="attack/soulfire.lua" /> <rune name="adevo ina" id="2291" maglv="4" aggressive="0" charges="1" function="chameleon" /> <rune name="adori flam" id="2302" maglv="2" charges="3" script="attack/fireball.lua" /> <rune name="adana mort" id="2316" maglv="4" blocktype="solid" charges="2" script="summon/animate_dead_rune.lua" /> <rune name="adevo mas grav pox" id="2289" maglv="5" blocktype="solid" charges="4" script="attack/poison_wall.lua" /> <rune name="adori gran flam" id="2304" maglv="4" charges="2" script="attack/great_fireball.lua" /> <rune name="adevo mas hur" id="2313" maglv="6" charges="3" script="attack/explosion.lua" /> <rune name="adevo grav tera" id="2293" maglv="9" blocktype="all" charges="4" script="support/magic_wall_rune.lua" /> <rune name="adevo mas grav flam" id="2303" maglv="6" blocktype="solid" charges="4" script="attack/fire_wall.lua" /> <rune name="adevo mas vis" id="2262" maglv="10" blocktype="solid" charges="2" script="attack/energybomb.lua" /> <rune name="adevo mas grav vis" id="2279" maglv="9" blocktype="solid" charges="4" script="attack/energy_wall.lua" /> <rune name="adori vita vis" id="2268" maglv="15" needtarget="1" charges="2" script="attack/sudden_death.lua" /> <rune name="adevo res pox" id="2292" maglv="4" needtarget="1" charges="3" script="attack/envenom.lua" /> <rune name="adana ani" id="2278" maglv="18" mana="900" needtarget="1" charges="1" script="support/paralyze_rune.lua"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </rune> <!-- Instant Spells --> <instant name="Ultimate Healing" words="exura vita" maglv="8" mana="80" selftarget="1" needlearn="0" aggressive="0" script="healing/ultimate_healing.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </instant> <instant name="Light" words="utevo lux" maglv="0" mana="20" selftarget="1" needlearn="0" aggressive="0" script="support/light.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> <vocation name="Knight"/> <vocation name="Elite Knight"/> </instant> <instant name="Find Person" words="exiva" maglv="0" mana="20" params="1" needlearn="0" function="searchPlayer"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> <vocation name="Knight"/> <vocation name="Elite Knight"/> </instant> <instant name="Magic Rope" words="exani tera" maglv="1" mana="20" aggressive="0" prem="0" needlearn="0" script="support/magic_rope.lua" /> <instant name="Light Healing" words="exura" maglv="1" mana="25" selftarget="1" aggressive="0" needlearn="0" script="healing/light_healing.lua" /> <instant name="Antidote" words="exana pox" maglv="2" mana="30" selftarget="1" aggressive="0" needlearn="0" script="healing/antidote.lua" /> <instant name="Intense Healing" words="exura gran" maglv="2" mana="40" selftarget="1" aggressive="0" needlearn="0" script="healing/intense_healing.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </instant> <instant name="Heal Friend" words="exura sio" maglv="7" mana="70" blockwalls="0" prem="0" needtarget="1" params="1" aggressive="0" needlearn="0" script="healing/heal_friend.lua"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <instant name="Levitate" words="exani hur" maglv="3" mana="50" prem="0" params="1" needlearn="0" function="levitate" /> <instant name="Energy Strike" words="exori vis" maglv="3" mana="20" prem="0" direction="1" customexhaust="1000" needlearn="0" script="attack/energy_strike.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <instant name="Summon Creature" words="utevo res" maglv="16" params="1" needlearn="0" function="summonMonster"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <instant name="Great Light" words="utevo gran lux" maglv="3" mana="60" selftarget="1" aggressive="0" needlearn="0" script="support/great_light.lua" /> <instant name="Magic Shield" words="utamo vita" maglv="4" mana="50" selftarget="1" aggressive="0" needlearn="0" script="support/magic_shield.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </instant> <instant name="Haste" words="utani hur" maglv="4" mana="60" selftarget="1" prem="0" aggressive="0" needlearn="0" script="support/haste.lua" /> <instant name="Flame Strike" words="exori flam" maglv="3" mana="20" direction="1" prem="0" customexhaust="1000" needlearn="0" script="attack/flame_strike.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <instant name="Force Strike" words="exori mort" maglv="2" mana="20" direction="1" prem="0" customexhaust="1000" needlearn="0" script="attack/force_strike.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <instant name="Fire Wave" words="exevo flam hur" maglv="7" mana="80" direction="1" needlearn="0" script="attack/fire_wave.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </instant> <instant name="Strong Haste" words="utani gran hur" maglv="8" mana="100" selftarget="1" prem="0" aggressive="0" needlearn="0" script="support/strong_haste.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <instant name="Challenge" words="exeta res" maglv="4" mana="30" selftarget="1" prem="0" needlearn="0" script="support/challenge.lua"> <vocation name="Elite Knight"/> </instant> <instant name="Energy Beam" words="exevo vis lux" maglv="10" mana="100" direction="1" needlearn="0" script="attack/energy_beam.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </instant> <instant name="Creature Illusion" words="utevo res ina" maglv="10" mana="100" params="1" needlearn="0" function="illusion"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <instant name="Cancel Invisibility" words="exana ina" maglv="12" mana="200" selftarget="1" prem="0" needlearn="0" script="support/cancel_invisibility.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </instant> <instant name="Ultimate Light" words="utevo vis lux" maglv="12" mana="140" aggressive="0" prem="0" needlearn="0" selftarget="1" script="support/ultimate_light.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <instant name="Great Energy Beam" words="exevo gran vis lux" maglv="14" mana="200" direction="1" needlearn="0" script="attack/great_energy_beam.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </instant> <instant name="Berserk" words="exori" maglv="5" lvpercent="200" selftarget="1" prem="0" needlearn="0" script="attack/berserk.lua"> <vocation name="Knight"/> <vocation name="Elite Knight"/> </instant> <instant name="Invisibility" words="utana vid" maglv="8" mana="110" selftarget="1" aggressive="0" needlearn="0" script="support/invisible.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </instant> <instant name="Mass Healing" words="exura gran mas res" maglv="19" mana="150" selftarget="1" prem="0" aggressive="0" needlearn="0" script="healing/mass_healing.lua"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <instant name="Undead Legion" words="exana mas mort" maglv="15" mana="500" selftarget="1" prem="0" needlearn="0" script="summon/undead_legion.lua"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <instant name="Ultimate Explosion" words="exevo gran mas vis" maglv="40" mana="800" prem="0" selftarget="1" needlearn="0" script="attack/ultimate_explosion.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </instant> <instant name="Poison Storm" words="exevo gran mas pox" maglv="28" mana="600" selftarget="1" prem="0" needlearn="0" script="attack/poison_storm.lua"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <instant name="Energy Wave" words="exevo mort hur" maglv="20" mana="250" direction="1" needlearn="0" script="attack/energy_wave.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </instant> <instant name="Wild Growth" words="exevo grav vita" maglv="13" mana="220" direction="1" prem="0" blocktype="all" needlearn="0" script="support/wild_growth.lua"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <!-- Conjure Spells --> <conjure name="Poison Field" words="adevo grav pox" maglv="2" mana="50" aggressive="0" conjureId="2285" conjureCount="6" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Food" words="exevo pan" maglv="0" mana="30" selftarget="1" aggressive="0" needlearn="0" function="conjureFood"> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </conjure> <conjure name="Intense Healing Rune" words="adura gran" maglv="4" mana="60" conjureId="2265" conjureCount="1" needlearn="0" function="conjureRune"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Antidote Rune" words="adana pox" maglv="5" mana="50" conjureId="2266" conjureCount="2" needlearn="0" function="conjureRune"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Light Magic Missile" words="adori" maglv="1" mana="40" conjureId="2287" conjureCount="10" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Fire Field" words="adevo grav flam" maglv="3" mana="60" conjureId="2301" conjureCount="6" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Convince Creature" words="adeta sio" maglv="10" mana="100" conjureId="2290" conjureCount="2" needlearn="0" function="conjureRune"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Conjure Poisoned Arrow" words="exevo con pox" maglv="5" mana="70" conjureId="2545" conjureCount="20" needlearn="0" function="conjureItem"> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </conjure> <conjure name="Destroy Field" words="adito grav" maglv="6" mana="60" conjureId="2261" conjureCount="6" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </conjure> <conjure name="Conjure Bolt" words="exevo con mort" maglv="6" mana="70" prem="0" conjureId="2543" conjureCount="20" needlearn="0" function="conjureItem"> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </conjure> <conjure name="Energy Field" words="adevo grav vis" maglv="5" mana="80" conjureId="2277" conjureCount="6" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Desintegrate" words="adito tera" maglv="8" mana="100" conjureId="2310" prem="0" conjureCount="6" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </conjure> <conjure name="Ultimate Healing Rune" words="adura vita" maglv="11" mana="100" conjureId="2273" conjureCount="2" needlearn="0" function="conjureRune"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Heavy Magic Missile" words="adori gran" maglv="3" mana="70" conjureId="2311" conjureCount="10" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </conjure> <conjure name="Conjure Explosive Arrow" words="exevo con flam" maglv="10" mana="120" conjureId="2546" conjureCount="10" needlearn="0" function="conjureItem"> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </conjure> <conjure name="Poison Bomb" words="adevo mas pox" maglv="8" mana="130" prem="0" conjureId="2286" conjureCount="4" needlearn="0" function="conjureRune"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Fire Bomb" words="adevo mas flam" maglv="9" mana="150" conjureId="2305" conjureCount="4" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Soulfire" words="adevo res flam" maglv="13" mana="150" conjureId="2308" conjureCount="4" prem="0" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Chameleon" words="adevo ina" maglv="11" mana="150" conjureId="2291" conjureCount="2" needlearn="0" function="conjureRune"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Fireball" words="adori flam" maglv="5" mana="60" conjureId="2302" prem="0" conjureCount="6" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </conjure> <conjure name="Animate Dead" words="adana mort" maglv="7" mana="300" conjureId="2316" prem="0" conjureCount="1" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Poison Wall" words="adevo mas grav pox" maglv="11" mana="160" conjureId="2289" needlearn="0" conjureCount="8" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Great Fireball" words="adori gran flam" maglv="9" mana="120" conjureId="2304" needlearn="0" conjureCount="4" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Explosion" words="adevo mas hur" maglv="12" mana="180" conjureId="2313" needlearn="0" conjureCount="6" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Magic Wall" words="adevo grav tera" maglv="14" mana="250" conjureId="2293" prem="0" needlearn="0" conjureCount="8" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </conjure> <conjure name="Fire Wall" words="adevo mas grav flam" maglv="13" mana="200" conjureId="2303" needlearn="0" conjureCount="8" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Energy Bomb" words="adevo mas vis" maglv="18" mana="220" conjureId="2262" prem="0" needlearn="0" conjureCount="4" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </conjure> <conjure name="Enchant Staff" words="exeta vis" maglv="22" mana="80" reagentId="2401" conjureId="2433" needlearn="0" function="conjureItem"> <vocation name="Master Sorcerer"/> </conjure> <conjure name="Energy Wall" words="adevo mas grav vis" maglv="18" mana="250" conjureId="2279" conjureCount="4" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </conjure> <conjure name="Sudden Death" words="adori vita vis" maglv="25" mana="220" params="1" conjureId="2268" conjureCount="2" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </conjure> <conjure name="Paralyze" words="adana ani" maglv="35" mana="900" conjureId="2278" prem="0" conjureCount="3" needlearn="0" function="conjureRune"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Envenom" words="adevo res pox" maglv="7" mana="100" conjureId="2292" conjureCount="3" needlearn="0" function="conjureRune"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </conjure> <conjure name="Conjure Power Bolt" words="exevo con vis" maglv="14" mana="200" conjureId="2547" conjureCount="5" prem="0" needlearn="0" function="conjureItem"> <vocation name="Royal Paladin"/> </conjure> <conjure name="Conjure Arrow" words="exevo con" maglv="2" mana="40" conjureId="2544" conjureCount="15" needlearn="0" function="conjureItem"> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </conjure> <!-- House Spells --> <instant name="House Guest List" words="aleta sio" enabled="1" function="editHouseGuest"/> <instant name="House Subowner List" words="aleta som" enabled="1" function="editHouseSubOwner"/> <instant name="House Door List" words="aleta grav" enabled="1" function="editHouseDoor"/> <instant name="House Kick" words="alana sio" params="1" enabled="1" function="houseKick"/></spells> Agradeço desde já a quem estiver disposto a me ajudar!
  3. Gostaria de pedir ajuda de vocês da comunidade para um pequeno problema que não consigo resolver. Gostaria de adicionar no meu servidor uma exp bônus para quem é premium account, tentei adicionar pelo creaturescripts, porem não obtive exito. Acredito que por se tratar de uma versão antiga de servidor (7.72) Inferna 1.0, o método para acrescentar a rate seja outro. Acredito que seja possível fazer isso através do functions,xml localizado na pasta data, pois é la que é configurado os stages do servidor. functions.xml STAGES = { {level = 150, rate = 2}, {level = 120, rate = 3}, {level = 100, rate = 5}, {level = 90, rate = 8}, {level = 80, rate = 10}, {level = 60, rate = 15}, {level = 40, rate = 20}, {level = 30, rate = 30}, {level = 20, rate = 40}, {level = 8, rate = 50}, {level = 1, rate = 20} } DEFAULT_RATE = 2 function checkStages(cid) local level = getPlayerLevel(cid) for i = 1, # STAGES do if (level >= STAGES[i].level) then doPlayerSetRate(cid, 8, STAGES[i].rate) return end end doPlayerSetRate(cid, 8, DEFAULT_RATE) end function isPromoted(cid) if (isPlayer(cid) == TRUE) then local voc = getPlayerVocation(cid) if (voc >= 5 and voc <= 8) then return TRUE end end return FALSE end function doPlayerAddBless(cid, blessid) if (getPlayerBless(cid, blessid) == FALSE) then local storageid = STORAGE_BLESSES + blessid setPlayerStorageValue(cid, storageid, 1) doPlayerUpdateLevelLossPercent(cid) end end function getPlayerBless(cid, blessid) local storageid = STORAGE_BLESSES + blessid if (getPlayerStorageValue(cid, storageid) == TRUE) then return TRUE else return FALSE end end function doPlayerRemoveBless(cid, blessid) if (getPlayerBless(cid, blessid) == 1) then local storageid = STORAGE_BLESSES + blessid setPlayerStorageValue(cid, storageid, 0) doPlayerUpdateLevelLossPercent(cid) end end function RemoveAllBlessings(cid) if (getPlayerStorageValue(cid, STORAGE_REMOVE_BLESSES) == 1) then local BLESSINGS = {1, 2, 3, 4, 5} for v = 1, 5 do if (getPlayerBless(cid, BLESSINGS[v]) > 0) then doPlayerRemoveBless(cid, BLESSINGS[v]) setPlayerStorageValue(cid, STORAGE_REMOVE_BLESSES, 0) setPlayerStorageValue(cid,43668,0) end end end return 1 end function doSetLossPercentBoth(cid, percent) local ABILITIES = {0, 1, 2} for A = 1, 3 do doPlayerSetLossPercent(cid, ABILITIES[A], percent) end return 1 end function doPlayerUpdateLevelLossPercent(cid) local i = 0 local blesses = 0 while i < 6 do if getPlayerBless(cid, i) == TRUE then blesses = blesses + 1 end i = i + 1 end if (blesses >= 5) then if (isPromoted(cid) == TRUE) then doSetLossPercentBoth(cid, 2) else doSetLossPercentBoth(cid, 5) end elseif (blesses >= 4) then if (isPromoted(cid) == TRUE) then doSetLossPercentBoth(cid, 3) else doSetLossPercentBoth(cid, 6) end elseif (blesses >= 3) then if (isPromoted(cid) == TRUE) then doSetLossPercentBoth(cid, 4) else doSetLossPercentBoth(cid, 7) end elseif (blesses >= 2) then if (isPromoted(cid) == TRUE) then doSetLossPercentBoth(cid, 5) else doSetLossPercentBoth(cid, 8) end elseif (blesses >= 1) then if (isPromoted(cid) == TRUE) then doSetLossPercentBoth(cid, 6) else doSetLossPercentBoth(cid, 9) end else if (isPromoted(cid) == TRUE) then doSetLossPercentBoth(cid, 7) else doSetLossPercentBoth(cid, 10) end end end function kickAllPlayers() local players = getPlayersOnlineList() for i = 1, table.maxn(players) do doRemoveCreature(players[i]) end return 1 end function isSorcerer(cid) if (isPlayer(cid) == TRUE) then local voc = getPlayerVocation(cid) if (voc == 1 or voc == 5) then return TRUE end end return FALSE end function isDruid(cid) if (isPlayer(cid) == TRUE) then local voc = getPlayerVocation(cid) if (voc == 2 or voc == 6) then return TRUE end end return FALSE end function isPaladin(cid) if (isPlayer(cid) == TRUE) then local voc = getPlayerVocation(cid) if (voc == 3 or voc == 7) then return TRUE end end return FALSE end function isKnight(cid) if (isPlayer(cid) == TRUE) then local voc = getPlayerVocation(cid) if (voc == 4 or voc == 8) then return TRUE end end return FALSE end function isFemale(cid) if (isPlayer(cid) == TRUE) then if (getPlayerSex(cid) == 0) then return TRUE end end return FALSE end function getDirectionTo(pos1, pos2) local dir = NORTH if(pos1.x > pos2.x) then dir = WEST if(pos1.y > pos2.y) then dir = NORTHWEST elseif(pos1.y < pos2.y) then dir = SOUTHWEST end elseif(pos1.x < pos2.x) then dir = EAST if(pos1.y > pos2.y) then dir = NORTHEAST elseif(pos1.y < pos2.y) then dir = SOUTHEAST end else if(pos1.y > pos2.y) then dir = NORTH elseif(pos1.y < pos2.y) then dir = SOUTH end end return dir end function getDistanceBetween(pos1, pos2) local xDif = math.abs(pos1.x - pos2.x) local yDif = math.abs(pos1.y - pos2.y) local posDif = math.max(xDif, yDif) if (pos1.z ~= pos2.z) then posDif = (posDif + 9 + 6) end return posDif end function getPlayerLookPos(cid) return getPosByDir(getThingPos(cid), getPlayerLookDir(cid)) end function getPosByDir(basePos, dir) local pos = basePos if(dir == NORTH) then pos.y = pos.y-1 elseif(dir == SOUTH) then pos.y = pos.y + 1 elseif(dir == WEST) then pos.x = pos.x-1 elseif(dir == EAST) then pos.x = pos.x+1 elseif(dir == NORTHWEST) then pos.y = pos.y-1 pos.x = pos.x-1 elseif(dir == NORTHEAST) then pos.y = pos.y-1 pos.x = pos.x+1 elseif(dir == SOUTHWEST) then pos.y = pos.y+1 pos.x = pos.x-1 elseif(dir == SOUTHEAST) then pos.y = pos.y+1 pos.x = pos.x+1 end return pos end function doRelocateDelete(pos,posto) return doRelocate(pos,posto) end function doRelocateRemove(pos,posto) -- Relocates moveable items and deletes non-moveable unless it is a door. local oldstackpos = pos.stackpos doRelocate(pos,posto) if pos.stackpos == nil then pos.stackpos = 1 end while 1 do if getThingfromPos(pos).uid > 0 and getThingfromPos(pos).itemid ~= 1209 and getThingfromPos(pos).itemid ~= 1210 and getThingfromPos(pos).itemid ~= 1211 then doRemoveItem(getThingfromPos(pos).uid) else if pos.stackpos > 1 then pos.stackpos = pos.stackpos-1 else pos.stackpos = oldstackpos break end end end end -- Functions made by Jiddo function doPlayerGiveItem(cid, itemid, count, charges) local hasCharges = (isItemRune(itemid) == TRUE or isItemFluidContainer(itemid) == TRUE) if(hasCharges and charges == nil) then charges = 1 end while count > 0 do local tempcount = 1 if(hasCharges) then tempcount = charges end if(isItemStackable(itemid) == TRUE) then tempcount = math.min (100, count) end local ret = doPlayerAddItem(cid, itemid, tempcount) if(ret == LUA_ERROR) then ret = doCreateItem(itemid, tempcount, getPlayerPosition(cid)) end if(ret ~= LUA_ERROR) then if(hasCharges) then count = count-1 else count = count-tempcount end else return LUA_ERROR end end return LUA_NO_ERROR end function doPlayerTakeItem(cid, itemid, count) if(getPlayerItemCount(cid,itemid) >= count) then while count > 0 do local tempcount = 0 if(isItemStackable(itemid) == TRUE) then tempcount = math.min (100, count) else tempcount = 1 end local ret = doPlayerRemoveItem(cid, itemid, tempcount) if(ret ~= LUA_ERROR) then count = count-tempcount else return LUA_ERROR end end if(count == 0) then return LUA_NO_ERROR end end return LUA_ERROR end function doPlayerAddMoney(cid, amount) local crystals = math.floor(amount/10000) amount = amount - crystals*10000 local platinum = math.floor(amount/100) amount = amount - platinum*100 local gold = amount local ret = 0 if(crystals > 0) then ret = doPlayerGiveItem(cid, ITEM_CRYSTAL_COIN, crystals) if(ret ~= LUA_NO_ERROR) then return LUA_ERROR end end if(platinum > 0) then ret = doPlayerGiveItem(cid, ITEM_PLATINUM_COIN, platinum) if(ret ~= LUA_NO_ERROR) then return LUA_ERROR end end if(gold > 0) then ret = doPlayerGiveItem(cid, ITEM_GOLD_COIN, gold) if(ret ~= LUA_NO_ERROR) then return LUA_ERROR end end return LUA_NO_ERROR end function doPlayerBuyItem(cid, itemid, count, cost, charges) if(doPlayerRemoveMoney(cid, cost) == TRUE) then return doPlayerGiveItem(cid, itemid, count, charges) end return LUA_ERROR end function doPlayerSellItem(cid, itemid, count, cost) if(doPlayerTakeItem(cid, itemid, count) == LUA_NO_ERROR) then if(doPlayerAddMoney(cid, cost) ~= LUA_NO_ERROR) then error('Could not add money to ' .. getPlayerName(cid) .. '(' .. cost .. 'gp)') end return LUA_NO_ERROR end return LUA_ERROR end function getPlayerMoney(cid) return ((getPlayerItemCount(cid, ITEM_CRYSTAL_COIN) * 10000) + (getPlayerItemCount(cid, ITEM_PLATINUM_COIN) * 100) + getPlayerItemCount(cid, ITEM_GOLD_COIN)) end function doPlayerWithdrawAllMoney(cid) return doPlayerWithdrawMoney(cid, getPlayerBalance(cid)) end function doPlayerDepositAllMoney(cid) return doPlayerDepositMoney(cid, getPlayerMoney(cid)) end function doPlayerTransferAllMoneyTo(cid, target) return doPlayerTransferMoneyTo(cid, target, getPlayerBalance(cid)) end function playerExists(name) return (getPlayerGUIDByName(name) ~= 0) end function getConfigInfo(info) if (type(info) ~= 'string') then return nil end dofile('config.lua') return _G[info] end function getTibiaTime() local minutes = getWorldTime() local hours = 0 local ampm = "am" local between = ":" while (minutes > 59) do hours = hours + 1 minutes = minutes - 60 end while (hours > 12) do ampm = "pm" hours = hours - 12 end if (minutes < 10) then between = ":0" end return {hours = hours, minutes = minutes, ampm = ampm, between = between} end function getTime() return getTibiaTime().hours..""..getTibiaTime().between..""..getTibiaTime().minutes.." "..getTibiaTime().ampm end exhaustion = { check = function (cid, storage) local exhaust = getPlayerStorageValue(cid, storage) if (os.time() >= exhaust) then return FALSE else return TRUE end end, get = function (cid, storage) local exhaust = getPlayerStorageValue(cid, storage) local left = exhaust - os.time() if (left >= 0) then return left else return FALSE end end, set = function (cid, storage, time) setPlayerStorageValue(cid, storage, os.time()+time) end, make = function (cid, storage, time) local exhaust = exhaustion.get(cid, storage) if (exhaust > 0) then return FALSE else exhaustion.set(cid, storage, time) return TRUE end end } table.find = function (table, value) for i,v in pairs(table) do if (v == value) then return i end end return nil end table.getPos = table.find table.isStrIn = function (txt, str) local result = false for i, v in pairs(str) do result = (string.find(txt, v) and not string.find(txt, '(%w+)' .. v) and not string.find(txt, v .. '(%w+)')) if (result) then break end end return result end table.countElements = function (table, item) local count = 0 for i, n in pairs(table) do if (item == n) then count = count + 1 end end return count end table.getCombinations = function (table, num) local a, number, select, newlist = {}, #table, num, {} for i = 1, select do a[#a + 1] = i end local newthing = {} while (1) do local newrow = {} for i = 1, select do newrow[#newrow + 1] = table[a[i]] end newlist[#newlist + 1] = newrow i = select while (a[i] == (number - select + i)) do i = i - 1 end if (i < 1) then break end a[i] = a[i] + 1 for j = i, select do a[j] = a[i] + j - i end end return newlist end string.split = function (str) local t = {} local function helper(word) table.insert(t, word) return "" end if (not str:gsub("%w+", helper):find"%S") then return t end end string.separate = function(separator, string) local a, b = {}, 0 if (#string == 1) then return string end while (true) do local nextSeparator = string.find(string, separator, b + 1, true) if (nextSeparator ~= nil) then table.insert(a, string.sub(string,b,nextSeparator-1)) b = nextSeparator + 1 else table.insert(a, string.sub(string, b)) break end end return a end function createClass(parent) local newClass = {} function newClass:new(instance) local instance = instance or {} setmetatable(instance, {__index = newClass}) return instance end if(parent ~= nil) then setmetatable(newClass, {__index = parent}) end function newClass:getSelf() return newClass end function newClass:getParent() return baseClass end function newClass:isa(class) local tmp = newClass while(tmp ~= nil) do if(tmp == class) then return true end tmp = tmp:getParent() end return false end function newClass:setAttributes(attributes) for k, v in pairs(attributes) do newClass[k] = v end end return newClass end Result = createClass(nil) Result:setAttributes({ id = -1, query = "" }) function Result:getID() return self.id end function Result:setID(_id) self.id = _id end function Result:getQuery() return self.query end function Result:setQuery(_query) self.query = _query end function Result:create(_query) self:setQuery(_query) local _id = db.storeQuery(self:getQuery()) if(_id) then self:setID(_id) end return self:getID() end function Result:getRows(free) local free = free or false if(self:getID() == -1) then error("[Result:getRows] Result not set!") end local c = 0 repeat c = c + 1 until not self:next() local _query = self:getQuery() self:free() if(not free) then self:create(_query) end return c end function Result:getDataInt(s) if(self:getID() == -1) then error("[Result:getDataInt] Result not set!") end return result.getDataInt(self:getID(), s) end function Result:getDataLong(s) if(self:getID() == -1) then error("[Result:getDataLong] Result not set!") end return result.getDataLong(self:getID(), s) end function Result:getDataString(s) if(self:getID() == -1) then error("[Result:getDataString] Result not set!") end return result.getDataString(self:getID(), s) end function Result:getDataStream(s) if(self:getID() == -1) then error("[Result:getDataStream] Result not set!") end return result.getDataStream(self:getID(), s) end function Result:next() if(self:getID() == -1) then error("[Result:next] Result not set!") end return result.next(self:getID()) end function Result:free() if(self:getID() == -1) then error("[Result:free] Result not set!") end self:setQuery("") local ret = result.free(self:getID()) self:setID(-1) return ret end Result.numRows = Result.getRows function db.getResult(query) if(type(query) ~= 'string') then return nil end local ret = Result:new() ret:create(query) return ret end Quem puder me ajudar, minha eterna gratidão!
  4. Alguem sabe me dizer se consigo adaptar este sistema em um otserv 7.72 ? Tenho um mas n tem pasta mods
  5. Tenho uma opinião um pouco diferente da de vocês, concordo que a evolução dos jogos faz com que muitos deixem de jogar ou desenvolver mas me lembro muito bem também que na época que comecei, por volta de 2005 a 2006, os servidores não ultrapassavam 500 players, e hoje podemos ver por volta de uns 30 servidores ai que vivem lotados. Talvez o grande público de otservers apenas tenha se concentrado mais em alguns determinados servidores que já estão na ativa a algum tempo, o que passa segurança ao player além de sempre estar cheio assim , sendo mais atraente aos seus jogadores.
  6. Obrigado @MatheusMkalo assim que chegar em minha casa irei testar
  7. PROGRAMADOR DE NÍVEL AVANÇADO E WEB MASTER Procuro um programador de nível avançado e um web master que manje php, necessito de trabalhos e alto nível e irei remunerar o mesmo pelo serviço! Peço que deixe aqui: Explicarei melhor sobre o projeto assim que obtivermos contato, por hora manterei em sigilo, apenas preciso de alguém que de fato saiba programar e compilar. Obrigado !
  8. Boa tarde pessoal! Estou com um erro em minha database, os personagens do meu server não salvam e no console, logo que entro em algum char, acusa este erro: Alguém poderia me ajudar? obrigado
  9. Estou a muito tempo tentando localizar na internet toda um Distro de OTServer 7.4 Mapa Global? Alguem pode me ajudar por favor!! Estou a muito tempo procurando por isso e tenho um projeto, preciso dessa ajuda :c @ Já consegui algo, podem encerrar o tópico por favor!
  10. Alguem por favor me ajuda ! Quando vou abrir o localhost para ver o site acontece isso: Com posso resolver isso? Obrigado desde já
  11. Olá xtibianos! Tenho procurado em muitos lugares mas não consegui achar um servidor 7.4 com mapa global para download! Será que alguém ai possui e poderia compartilhar ou então me indicar aonde posso conseguir? Agradeço desde já !
  12. Vou dar uma checada, tem algusm sistemas bacanas parece..
  13. Ai sim ! Irei testar aqui estou ancioso
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...