Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''system''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Êa galera ! Pow, vim aqui na moral mostrar um video para vocês de eu jogando (November Rain), com a minha guild.. O server touchglobal parou de existir, então não tentem entrar... Eu particularmente achei o video bem legal manos... Espero que gostem: Esse é o segundo video, achei melhor que o primeiro... mas se quiserem ver o primeiro tá lá do ladinho! Valeu galera, espero mesmo que gostem! Ahh, pow, se gostarem, se não gostarem, comentem, falem, é sempre bom, é gratificante para quem tem o trabalho de fazer um vídeo ouvir boas e más críticas! Valeu, hallelujah!
  2. Boa Tarde amigos do XTIBIA, to com um grande problema no sistema de natação que eu peguei que seria: Quando o player saisse da água, ele voltasse com uma outifit que eu escolhesse, isso seria para cada vocation que tenho no meu server. Eu fiz isso, mais so que player ao nadar ele n fica com a outifit de natação e ele não volta a terra, da um block no char.. SCRIPT:: local outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0} outfits = { [1] = {lookType = 168}, -- o numero 9 é o ID da vocação e 69 é o ID do looktype. [2] = {lookType = 161}, [3] = {lookType = 173}, [4] = {lookType = 176}, [5] = {lookType = 180}, [6] = {lookType = 182}, [7] = {lookType = 184}, [8] = {lookType = 187}, [9] = {lookType = 10}, [10] = {lookType = 189}, [11] = {lookType = 2}, [12] = {lookType = 77}, [13] = {lookType = 0}, [14] = {lookType = 0}, [15] = {lookType = 19}, [16] = {lookType = 19}, [29] = {lookType = 24}, [30] = {lookType = 10}, [31] = {lookType = 44}, [32] = {lookType = 53}, [33] = {lookType = 57}, [34] = {lookType = 61}, [35] = {lookType = 63}, [36] = {lookType = 69}, [37] = {lookType = 73}, [38] = {lookType = 20}, [39] = {lookType = 40}, [40] = {lookType = 80}, [41] = {lookType = 60}, [42] = {lookType = 30}, [43] = {lookType = 30} } local BORDERS = { [7943] = {x = 0, y = -2, back = SOUTH}, [7944] = {x = -2, y = 0, back = EAST}, [7945] = {x = 0, y = 2, back = NORTH}, [7946] = {x = 2, y = 0, back = WEST}, [7947] = {x = 2, y = 1, back = WEST}, [7948] = {x = -2, y = 1, back = NORTH}, [7949] = {x = 2, y = -1, back = WEST}, [7950] = {x = -2, y = -1, back = EAST}, [7951] = {x = 2, y = 2, back = WEST}, [7952] = {x = -2, y = 2, back = NORTH}, [7953] = {x = 2, y = -2, back = WEST}, [7954] = {x = -2, y = -2, back = SOUTH} } BORDERS[4828] = BORDERS[7943] BORDERS[4829] = BORDERS[7946] BORDERS[4830] = BORDERS[7945] BORDERS[4831] = BORDERS[7944] function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if(not isPlayer(cid)) then return true end local border = BORDERS[item.itemid] if(not border) then return false end local pos, newPos = getCreaturePosition(cid), {} newPos = pos newPos.x = pos.x + border.x newPos.y = pos.y + border.y if(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.lookType) then doMoveCreature(cid, border.back) doRemoveCondition(cid, CONDITION_OUTFIT) else if(doTileQueryAdd(cid, pos, 4) ~= RETURNVALUE_NOERROR) then return false end local tmp = getCreaturePosition(cid) doTeleportThing(cid, newPos) if(not isPlayerGhost(cid)) then doSendMagicEffect(tmp, CONST_ME_POFF) doSendMagicEffect(newPos, CONST_ME_WATERSPLASH) end doRemoveConditions(cid, true) local voc_id = getPlayerVocation(cid) if getPlayerVocation(cid) > 0 then doSetCreatureOutfit(cid, outfits[voc_id], -1) end return true end end ALGUEM PODERIA ME AJUDAR? VALENDO +REP
  3. Bem caros amigos do xtibia, venho aqui para fazer esse pedido, pois ele será muito importante no meu Ot Server de Naruto 8.54 que estou fazendo com a minha equipe... Para você entenderem o que estou querendo, ai vai uma Screenshot... Bem como podem perceber na foto, estou precisando de um script que a cada level, você ganha 1 ponto, para distribui-lo em qualquer atributo (força,agilidade,defesa,health,mana,etc), para distribuir os pontos é só clicar em points que fica ao lado da bota/ou sandália... Desde já agradeço a todos
  4. É o meu primeiro script aqui (na verdade já atendi alguns pedidos), mas postando nessa seção é meu primeiro. São sistemas que dependem do seu sistema de vip e que dará uma segunda promotion ao usar o comando !promote. (Para todos os Sistemas) Vá até a pasta talkactions>scripts e crie um arquivo chamado promotion.lua (ou qualquer nome de sua preferência) e cole isto dentro: Para VIP System by Account [Kydrai] -- Link Para VIP System por storage Para VIP System por Premium Para VIP System by Mock (Para todos os Tipos) Agora em em creaturescripts>scripts no arquivo login.lua adicione o script abaixo, antes do return true para a vocação voltar ao normal assim que a vip acabar: Para VIP System by Account -- [Kydrai] Para VIP System por Storage Lembre-se de alterar o storage aqui se alterou lá no script Para VIP por Premium Para VIP by MOCK (Para todos os Tipos) Na parte acima, aqui são os ids das novas vocações: {9, 10, 11, 12} que voltarão à vocação anterior, no nosso caso, [5];[6];[7];[8] (Para todos os Tipos) Agora em talkactions.xml coloque a tag: <talkaction words="!promote" event="script" value="promotion.lua"/> Lembre-se que se mudou o nome do arquivo lá emcima, mude na tag também. Atenção com essa parte... no vocations.xml configurem corretamente a partir de qual vocação será conseguida a vocação promote. Vejam o exemplo abaixo: fromvoc="X" -- Significa "da vocação" é de qual vocação essa Supreme Sorcerer virá, se você quiser que venha do Master Sorcerer que o id é 5, você coloca 5, ficando: fromvoc="5" Então é isso aí galera, ainda estou começando em scripting mas espero ter ajudado alguém. Abraços!
  5. Aí galera, eu utilizo esse sistema do vodkart. É o guildfrags system, ele consiste basicamente em uma disputa entre as guilds a alcançar certa quantidade de frags. A guild vencedora ganhará acesso a um local e pontos para trocar por itens. Mas minha dúvida é como faço para demorar mais para o sistema limpar os frags? Depois de 1 ou 2 dias os frags que estavam sendo contabilizados são limpos e volta tudo do zero, sem dar tempo para as guilds completarem a quantidade de frags desejada. Aí vai o link do sistema: http://www.xtibia.com/forum/topic/184311-gfs-guild-frag-system/ Obs: O sistema funciona perfeitamente, só gostaria de saber como fazer os frags resetarem em um período maior de tempo. Vlw aí, desde já. Quem souber, REP +
  6. Nome do Script: Sistema de Pet com Evolução Tipo do Script: Lib Versão Utilizada:9.44 Servidor Utilizado:Crystal Server 2.3 Nível de Experiência:Intermediário Informações Extras: Desejo modificar esse script. Adicionar sistema de evolução. Ex:"Orc - LvL 10 - Orc Spearman - LVL 30 - Orc Warlord "Uma Semana De Rep+ Pra Quem Resolver" http://pastebin.com/1CxBj6CR --Circles AREA_CIRCLE2X2 = { {0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 3, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0} } AREA_CIRCLE3X3 = { {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 3, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0} } -- Crosses AREA_CROSS1X1 = { {0, 1, 0}, {1, 3, 1}, {0, 1, 0} } AREA_CROSS5X5 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0} } AREA_CROSS6X6 = { {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} } --Squares AREA_SQUARE1X1 = { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } -- Walls AREA_WALLFIELD = { {1, 1, 3, 1, 1} } AREADIAGONAL_WALLFIELD = { {0, 0, 0, 0, 1}, {0, 0, 0, 1, 1}, {0, 1, 3, 1, 0}, {1, 1, 0, 0, 0}, {1, 0, 0, 0, 0}, } emoteAttack = true petEmoteAttack = true refillStatsAtLevel = true TYPE_NEAR = 1 TYPE_DISTANCE = 2 petExhaust = 3 --in seconds petSayExhaust = 3 --in seconds petGainTicks = { health = {func = doCreatureAddHealth, time = 3000, count = 1}, mana = {func = doCreatureAddMana, time = 3000, count = 2} } petGainHealth = 30 petGainMana = 30 petExpRate = 1.3 carryItems = 10 petItemsBase = 1250 petItems = {} blockedItems = {6132, 2195} for i = 1, carryItems do table.insert(petItems, petItemsBase + i) end petBase = 6120 petStorages = { pet = petBase + 1000, level = petBase + 2000, exp = petBase + 3000, items = petBase + 4000, isPet = petBase + 5000, isDead = petBase + 6000, exhaust = petBase + 7000, sayExhaust = petBase + 8000, moveExhaust = petBase + 9000, health = petBase + 10000, mana = petBase + 11000, buyed = petBase + 12000 } tables = { pet = {}, level = {}, exp = {}, items = {}, isDead = {}, exhaust = {}, health = {}, mana = {}, buyed = {} } reviveCost = 1000 pets = { [1] = { monster = "orc spearman", vocations = {1, 2, 3, 4}, level = 30, attacks = { [1] = {name = "", level = 30, petLevel = 30, mana = 50, type = TYPE_DISTANCE, range = 10, combat = COMBAT_PHYSICALDAMAGE, effect = CONST_ME_NONE, distEffect = CONST_ANI_SPEAR, damageMin = 0.7, damageMax = 1.0} } }, [2] = { monster = "fire devil", vocations = {1, 2}, level = 60, attacks = { [1] = {name = "Fire Strike", level = 60, petLevel = 60, mana = 100, type = TYPE_DISTANCE, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_FIREDAMAGE, distEffect = CONST_ANI_FIRE, damageMin = 1.5, damageMax = 2.0} } }, [3] = { monster = "minotaur guard", vocations = {3, 4}, level = 60, cost = 50, attacks = { [1] = {name = "Punch", level = 60, petLevel = 60, mana = 55, type = TYPE_NEAR, combat = COMBAT_PHYSICALDAMAGE, effect = CONST_ME_BLOOD, distEffect = CONST_ANI_NONE, damageMin = 1.5, damageMax = 2.0} } }, [4] = { monster = "water elemental", vocations = {2}, level = 95, cost = 15000, attacks = { [1] = {name = "Ice Bomb", level = 100, petLevel = 100, mana = 250, type = TYPE_DISTANCE, range = 3, combat = COMBAT_ICEDAMAGE, effect = CONST_ME_ICEAREA, distEffect = CONST_ANI_ICE, damageMin = 1.5, damageMax = 2.0, area = AREA_CROSS1X1}, [2] = {name = "Poison Strike", level = 95, petLevel = 95, mana = 80, type = TYPE_DISTANCE, range = 8, combat = COMBAT_POISONDAMAGE, effect = CONST_ME_GREENRINGS, distEffect = CONST_ANI_POISON, damageMin = 1.2, damageMax = 1.8} } }, [5] = { monster = "fire elemental", vocations = {1}, level = 95, attacks = { [1] = {name = "Fire Bomb", level = 100, petLevel = 100, mana = 250, type = TYPE_DISTANCE, range = 3, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_FIRE, distEffect = CONST_ANI_FIRE, damageMin = 1.5, damageMax = 2.0, area = AREA_CROSS1X1}, [2] = {name = "Fire Strike", level = 95, petLevel = 95, mana = 80, type = TYPE_DISTANCE, range = 3, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_FIREDAMAGE, distEffect = CONST_ANI_FIRE, damageMin = 1.2, damageMax = 1.8} } }, [6] = { monster = "orc warlord", vocations = {4}, level = 95, attacks = { [1] = {name = "Throw Knife", level = 95, petLevel = 95, mana = 80, type = TYPE_DISTANCE, combat = COMBAT_PHYSICALDAMAGE, effect = CONST_ME_BLOOD, distEffect = CONST_ANI_THROWINGKNIFE, damageMin = 1.5, damageMax = 2.0} } }, [7] = { monster = "golem", vocations = {3}, level = 95, attacks = { [1] = {name = "Throw Stone", level = 95, petLevel = 95, mana = 80, type = TYPE_DISTANCE, combat = COMBAT_PHYSICALDAMAGE, effect = CONST_ME_BLOOD, distEffect = CONST_ANI_LARGEROCK, damageMin = 1.5, damageMax = 2.0} } }, [8] = { monster = "wyrm", vocations = {1, 2, 3, 4}, level = 135 }, [9] = { monster = "dragon lord", vocations = {1, 2, 3, 4}, level = 200, attacks = { [1] = {name = "Fire Bomb", level = 200, petLevel = 200, mana = 300, type = TYPE_DISTANCE, range = 3, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_FIREAREA, distEffect = CONST_ANI_FIRE, damageMin = 1.5, damageMax = 2.0, area = AREA_CROSS1X1}, [2] = {name = "Fire Storm", level = 205, petLevel = 220, mana = 700, type = TYPE_NEAR, range = 8, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_FIREAREA, distEffect = CONST_ANI_FIRE, damageMin = 1.8, damageMax = 2.5, area = AREA_CROSS5X5}, [3] = {name = "Fire Explosion", level = 203, petLevel = 210, mana = 450, type = TYPE_DISTANCE, range = 6, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_EXPLOSIONHIT, distEffect = CONST_ANI_FIRE, damageMin = 1.5, damageMax = 2.1, area = AREA_CIRCLE2X2}, [4] = {name = "Scratch", level = 201, petLevel = 205, mana = 150, type = TYPE_NEAR, range = 1, combat = COMBAT_PHYSICALDAMAGE, effect = CONST_ME_HITAREA, distEffect = CONST_ANI_FIRE, damageMin = 1.3, damageMax = 1.8}, [5] = {name = "Fire Strike", level = 203, petLevel = 210, mana = 100, type = TYPE_DISTANCE, range = 3, combat = COMBAT_FIREDAMAGE, effect = CONST_ME_EXPLOSIONAREA, distEffect = CONST_ANI_FIRE, damageMin = 1.8, damageMax = 1.9} } } } for i = 1, #pets do table.insert(tables.pet, petStorages.pet + i) table.insert(tables.level, petStorages.level + i) table.insert(tables.exp, petStorages.exp + i) table.insert(tables.items, petStorages.items + i) table.insert(tables.isDead, petStorages.isDead + i) table.insert(tables.exhaust, petStorages.exhaust + i) table.insert(tables.health, petStorages.health + i) table.insert(tables.mana, petStorages.mana + i) table.insert(tables.buyed, petStorages.buyed + i) end function gainStat(pid, stat) if pid and pid > 0 and isMonster(pid) then stat.func(pid, stat.count) end addEvent(gainStat, stat.time, pid, stat) end function getLevelByExp(exp) return math.floor((math.sqrt(3) * math.sqrt(243*(exp+1)^2-48600*(exp+1)+3680000)+27 * (exp+1)-2700)^(1/3)/30^(2/3)-(5*10^(2/3))/(3^(1/3)*(math.sqrt(3)*math.sqrt(243*(exp+1)^2-48600*(exp+1)+3680000)+27*(exp+1)-2700)^(1/3))+2) end function getPetInfo(pet) if isNumber(pet) then return pets[pet] or false else for _, v in pairs(pets) do if pet:lower() == v.monster then return v end end end return false end function getPetByLevel(cid) local level = getPlayerLevel(cid) local pet for i = 1, #pets do v = pets[i] if level >= v.level and isInArray(v.vocations, getPlayerVocation(cid)) then pet = v end end return (pet ~= nil and pet or false) end function getAttackFormula(pid, attack) return { min = ((getPetLevel(pid) * 2) * (1 + attack.damageMin) + getPetLevel(pid)) / 2.5, max = ((getPetLevel(pid) * 3) * (1 + attack.damageMax) + getPetLevel(pid)) / 2.5 } end function doAttack(pid, target, param) local pet = getPetInfo(getCreatureName(pid)) if pet then if pet.attacks and pet.attacks[param] then local attack = pet.attacks[param] if target > 0 and pid ~= getCreatureTarget(getCreatureMaster(pid)) then if attack.type and attack.type == TYPE_DISTANCE and getDistanceBetween(getCreaturePosition(pid), getCreaturePosition(target)) > (attack.range or 3) or attack.type == TYPE_NEAR and getDistanceBetween(getCreaturePosition(pid), getCreaturePosition(target)) > (attack.range or 1) then return doPlayerSendCancel(getCreatureMaster(pid), "Target is too far.") and doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end if not isSightClear(getCreaturePosition(pid), getCreaturePosition(target), true) then return doPlayerSendCancel(getCreatureMaster(pid), "There is not enough room.") and doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end else return doPlayerSendCancel(getCreatureMaster(pid), "Please select a target first.") and doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end if getPlayerLevel(getCreatureMaster(pid)) < attack.level then return doPlayerSendCancel(getCreatureMaster(pid), "You need level " .. attack.level .. " or higher to use this attack.") and doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end if getPetLevel(pid) < attack.petLevel then return doPlayerSendCancel(getCreatureMaster(pid), "Your pet needs level " .. attack.petLevel .. " or higher to use this attack.") and doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end if attack.mana and getCreatureMana(pid) < attack.mana then return doPlayerSendCancel(getCreatureMaster(pid), "Your pet does not have enough mana.") and doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end if attack.area then doCastAreaAttack(pid, target, attack.area, attack) else doTargetCombatHealth(pid, target, attack.combat, -getAttackFormula(pid, attack).min, -getAttackFormula(pid, attack).max, attack.effect) end doCreatureAddMana(pid, -attack.mana) if attack.name ~= "" then if emoteAttack then doCreatureSay(getCreatureMaster(pid), getCreatureName(pid) .. ", use " .. attack.name .. "!", TALKTYPE_SAY) end if petEmoteAttack then doCreatureSay(pid, attack.name, TALKTYPE_MONSTER) end end return doSendDistanceShoot(getCreaturePosition(pid), (attack.type == TYPE_DISTANCE and getCreaturePosition(target) or getCreaturePosition(pid)), attack.distEffect) else return doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) end else return doSendMagicEffect(getCreaturePosition(pid), CONST_ME_POFF) and doPlayerSendCancel(getCreatureMaster(pid), "There is a tecnical problem, please contact a gamemaster.") end end function callPet(cid, petId) for i = 1, #tables do for y = 1, #tables[i] do if getCreatureStorage(cid, tables[i][y]) < 0 then doCreatureSetStorage(cid, tables[i][y], 0) end end end local pet = getPetInfoById(petId) if not pet then return doPlayerSendCancel(cid, "Something is wrong.") end if getPlayerLevel(cid) < pet.level then return doPlayerSendCancel(cid, "You need level " .. pet.level .. " or higher to call this pet.") end if pet.cost and pet.cost > 0 then if getCreatureStorage(cid, tables.buyed[petId]) < 1 then return doPlayerSendCancel(cid, "You need to buy this pet first.") and doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end end local ret = doCreateMonster(pet.monster, getCreaturePosition(cid)) if getCreatureStorage(cid, tables.level[petId]) < 1 then doCreatureSetStorage(cid, tables.level[petId], pet.level) end if getCreatureStorage(cid, tables.exp[petId]) < 1 then doCreatureSetStorage(cid, tables.exp[petId], getExperienceForLevel(pet.level)) end if getCreatureStorage(cid, tables.level[petId]) < pet.level then doCreatureSetStorage(cid, tables.level[petId], pet.level) elseif getPlayerLevel(cid) * 3 < getCreatureStorage(cid, tables.level[petId]) then doCreatureSetStorage(cid, tables.level[petId], pet.level) doCreatureSetStorage(cid, tables.exp[petId], getExperienceForLevel(pet.level)) end if getLevelByExp(getCreatureStorage(cid, tables.exp[petId])) < getCreatureStorage(cid, tables.level[petId]) then doCreatureSetStorage(cid, tables.exp[petId], getExperienceForLevel(getCreatureStorage(cid, tables.level[petId]))) end if getCreatureStorage(cid, tables.health[petId]) < 1 then doCreatureSetStorage(cid, tables.health[petId], getCreatureStorage(cid, tables.level[petId]) * petGainHealth) end if getCreatureStorage(cid, tables.mana[petId]) < 1 then doCreatureSetStorage(cid, tables.mana[petId], getCreatureStorage(cid, tables.level[petId]) * petGainMana) end doCreatureSetStorage(ret, tables.level[petId], getCreatureStorage(cid, tables.level[petId])) doCreatureSetStorage(ret, tables.exp[petId], getCreatureStorage(cid, tables.exp[petId])) doConvinceCreature(cid, ret) doCreatureSetStorage(ret, petStorages.isPet, 1) doSendMagicEffect(getCreaturePosition(ret), CONST_ME_TELEPORT) setCreatureMaxHealth(ret, getPetLevel(ret) * petGainHealth) doCreatureAddHealth(ret, -getCreatureHealth(ret) + getCreatureStorage(cid, tables.health[petId])) setCreatureMaxMana(ret, getPetLevel(ret) * petGainMana) doCreatureAddMana(ret, -getCreatureMana(ret) + getCreatureStorage(cid, tables.mana[petId])) for _, v in pairs(petGainTicks) do gainStat(ret, v) end return doCreatureSay(cid, "Go pet!", TALKTYPE_SAY) end function doCastAreaAttack(pid, target, area, attack) local center = {} local areaxx = {} center.y = math.floor(#area/2)+1 for y = 1, #area do for x = 1, #area[y] do local number = area[y][x] if number > 0 then center.x = math.floor(table.getn(area[y])/2)+1 if attack.type == TYPE_DISTANCE then table.insert(areaxx, {x = getCreaturePosition(target).x + x - center.x, y = getCreaturePosition(target).y + y - center.y, z = getCreaturePosition(target).z}) else table.insert(areaxx, {x = getCreaturePosition(pid).x + x - center.x, y = getCreaturePosition(pid).y + y - center.y, z = getCreaturePosition(pid).z}) end end end end for i = 1, #areaxx do doAreaCombatHealth(pid, attack.combat, areaxx[i], 0, -getAttackFormula(pid, attack).min, -getAttackFormula(pid, attack).max, attack.effect) end end function isPet(pid) local id = getPetIdByName(getCreatureName(pid)) return getCreatureStorage(pid, petStorages.isPet) > 0 and true or false end function doPetAddExperience(pid, exp) local id = getPetIdByName(getCreatureName(pid)) exp = math.ceil(exp) doCreatureSetStorage(getCreatureMaster(pid), tables.exp[id], getPetExperience(pid) + exp) doSendAnimatedText(getCreaturePosition(pid), exp, getConfigValue("gainExperienceColor")) return true end function getPetExperience(pid) local id = getPetIdByName(getCreatureName(pid)) return getCreatureStorage(getCreatureMaster(pid), tables.exp[id]) end function getPetLevel(pid) local id = getPetIdByName(getCreatureName(pid)) return getCreatureStorage(getCreatureMaster(pid), tables.level[id]) end function doPetSetLevel(pid, level) local id = getPetIdByName(getCreatureName(pid)) doCreatureSetStorage(getCreatureMaster(pid), tables.level[id], level) setCreatureMaxHealth(pid, getPetLevel(pid) * petGainHealth) setCreatureMaxMana(pid, getPetLevel(pid) * petGainMana) return true end function getPlayerPet(cid) local pet if #getCreatureSummons(cid) < 1 then pet = false end for _, it in ipairs(getCreatureSummons(cid)) do if isPet(it) then pet = it break end end return pet end function getPetIdByName(name) local id = 0 for k, it in pairs(pets) do if it.monster:lower() == name:lower() then id = k break end end return (id > 0 and id or false) end function getTopItem(p) p.stackpos = 0 local v = getThingFromPos(p) repeat p.stackpos = p.stackpos + 1 v = getThingFromPos(p) until v.itemid == 0 p.stackpos = p.stackpos - 1 return getThingFromPos(p) end function getPetInfoById(pet) for k, v in pairs(pets) do if k == pet then return v end end return false end if not getCreatureStorage then getCreatureStorage = getPlayerStorageValue doCreatureSetStorage = doPlayerSetStorageValue end Socorro!
  7. Sofft

    Task System

    Galera, preciso de outra ajuda aqui, estou usando o task system do otprojects, porem há alguns bosses que não estão configurados, como o boss do mammoth, gostaria qua alguem me ajudasse a configurar. Ex: [14011] = {'mammoth', 'Happy hunting, friend! Come back to me when you are done hunting.', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u mammoths. Come back to me when you are done.', 'Jolly good job you did there, but now I have a special task for you. The citizens of Svargrond live in fear because of a frightfully bad-tempered mammoth they call \'Blood Tusk\'. Go there and put an end to him. Happy hunting!', 'Bloodtusk', 4000, 1}, eu coloco o UniqueID 14011 em um tp, mas ele não funciona, não acontece nada. Se alguém puder me ajudar, ou tiver um task system 100% me ajude por favor.
  8. Hoje venho apresentar para vocês o ~~ Pokémon Challenge Online ~~, servidor de Pokémon na base Tibia. O PCO se encontra online 24/7 e sem LAG, e agora vou colocar algumas informações sobre ele a seguir: 1. Site: http://www.pochallenge.tk 1.1. Nele você poderá criar account, fazer download do cliente próprio, ver os leveis mais altos, ver novidades, entre outras coisas. 2. Informações sobre rates: 2.1. Experiência do treinador – Própria 2.2. Experiência do Pokémon – Própria 2.3. Loot Rate – 10x 3. Sistemas: 3.1. M1-M12 (Kanto, Shiny Kanto, Johto) 3.2. Pokedex (100%) 3.3. Sistema de Evolução por level e por Stones 3.4. Portrait (100%) 3.5. Fishing (100%) 3.6. Order (100%) 3.7. EGG System (100%) 3.8. DayCare System (NPC que treina seu Pokémon)(100%) 3.9. Catch System (Completo com todas as Pokeballs) 3.10. Sistema de TV/CAM (100%) 3.11. Gender System (Macho ganha + 20% ATK/ Fêmea + 20% DEF) 3.12. Pokémon level system 3.13. Boost System 3.14. NPC’s (GYM’s, duel por todo mapa, npc’s de quest e de venda) 3.15. Nick System 3.16. Quests 3.17. Pokémons Kanto, Shiny Kanto e Johto 3.18. Ilhas Johto 3.19. Barra de Cooldown 3.20. Barra de Pokémons 3.21. Client Personalizado Nossa equipe trabalha incessantemente para que sempre possamos colocar novos sistemas e updates no servidor. Esperamos que todos gostem, e nos vemos la!!! Atenciosamente, [ADM]Odin
  9. Galera não sei se aqui é o lugar certo mais se não for me desculpe ! Eu vir um tutorial: Guild War System Com Escudos LINK: CLICK AQUI Tutorial feito pelo: Walef Xavier ------------------------------------------------- Tutorial otimo mais tipo ele não ensinou como configurar o tfs 4, tipo ligar o tfs 4 ao meu serve exemplo: é como se fosse outro serve pá mais tipo eu executo e não acontece quase nada fica que nem o Real Server mais ai não sei como ligar um a outro ] galera explicar melhor como usar o tfs 4 + Resp pra quem responder !!
  10. Olá, alguém poderia me arrumar um script de war system simples(creio que já exista), com funções básicas, pois... os que tem aqui no xtibia (ou os que consegui achar) só funcionam com site ou com mysql (foi oq entendi, me corrijam se tiver errado) e meu ot é sqlite. Não precisa ter os escudinhos (caso tenha, melhor ainda), só precisa ter funções básicas como: /war invite guild,frags ,recompensa <- ou algo parecido /war accept/reject Enfim, os comandos básicos como também o básico de não contar frags nas mortes de players das guilds envolvidas e acabar com a war depois de alcançar uma certa quantidade de frags pré-estabelecida, com a recompensa à guild vencedora. Acredito que muita gente está procurando por isso. Informação: Ot versao 8.60
  11. matheusmluz

    [Talkaction]

    Olá pessoal! Venho aqui pedir um script de !fly. eu vi ele em varios ots, ja procurei na net mas n achei o certo e outros nao funcionavam... eh assim, eu to em Thais por exemplo, dai eu quero ir pra Edron, entao eu falo !fly edron E apareço no templo de Edron. ou to em Venore e quero ir para Yalahar, !fly yalahar. OBS: O player tem que estar na pz para poder usar o comando, e qdo ele escreve a cidade errado, tipo !fly edorn (seria edron) aparece uma janela contendo os nomes das cidades que ele pode "voar". REP+. EDIT: ALGUEM ME MOVE PRA AREA CERTA?
  12. Boa tarde pessoal, Gostaria de saber se existe um Married System para TFS 0.3.6 ? e também se precisa adicionar alguma tabela em servidores SQL? Eu achei vários já, um até que dizem funcionar no 0.3.6. Só que ele tem um problema: Até onde o primeiro player fala 'Hi / marry / yes / nome da noiva(o)' está tudo OK! Agora quando o outro que foi convidado para casar vai falar 'Hi / marry / yes / não aparece aquela pergunta proceed ou cancel.' Aparece como se o player nem fosse convidado para se casar. E no Distro aparece esse erro: [30/01/2012 12:05:27] Error during getDataInt(marrystatus). [30/01/2012 12:05:33] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such column: marrystatus (UPDATE "players" SET "marrystatus" = 5 WHERE "id" = 4;) Disconfio que precise adicionar alguma tabela, mas nos tutoriais só dizem a pra Mysql. Entao, se alguem puder ajudar, eu agradeço e terá seu REP+ adicionado na hora! Po ninguém mais responde as dúvidas nesse fórum? ;/
  13. Statusonline

    Reset Por Npc.

    Gostaria de um script de NPC que resetasse o level do player uma vez só. Tipo um NPC Reborn que vc só pode rebornar uma vez. Só que esse só vai resetar o level pra 8, sem mudar life,skills e tal. Agradeço ! ! ! (+) REP pra quem responder certinho.
  14. Eae galera , alguem pode dar uma ajudinha aew ? Tipo do script Action Protocolo (versão do Tibia): 8.54 Servidor utilizado: : The Forgotten Server // Narutibia Nível de experiência: : Básico Adicionais/Informações: Preciso de um Script que quando eu clico na agua (coloco o ID na script ) e quando clicar com o botão direito nessa agua o carinha 'teleporta' para ela .
×
×
  • Criar Novo...