
574747
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
574747 recebeu reputação de Galako em Items iniciaisihurygyn, as vezes o script first items fica na pasta inicial do seu ot em mods, da uma olhadinha la.
-
574747 deu reputação a xWhiteWolf em Magia que EmpurraBom galera, a um tempo atrás um amigo pediu uma magia que empurrasse e minha primeira iniciativa foi dar uma procura por aí. A maioria dos scripts que eu achei não funcionava, o resto funcionava cheio dos mais variados bugs então eu decidi pegar um desses scripts como base e fazer a magia que empurra.
Testado e funcionando em TFS 0.3.6 (Crying Damson).
Não lembro de onde eu peguei e nem quem fez porque o autor não colocou créditos no script mas quero deixar bem claro de que
80% dos créditos vão pra esse pessoa, visto que eu apenas me baseei na metodologia dele pra fazer o script funcionar sem bugs
Sem mais delongas, vamos ao script:
OBS: Ele está 200% funcional, não empurra pra dentro de pz e nem buga de nenhuma forma.
Agora no spells.xml adicione:
<instant name="Get off here" words="exani grav" lvl="160" mana="500" prem="1" direction="1" exhaustion="2000" needlearn="0" event="script" value="empurrar.lua"> <vocation id="6"/> <vocation id="7"/> <vocation id="5"/> </instant> Faça bom proveito!!
EDIT: Algumas imagens pra vocês
PS: Dano adicionado pelo membro @Emersonssss ;]
-
574747 deu reputação a xWhiteWolf em Tanker MethodFala galera do TibiaKing, vim trazer pra vocês uma magia bem simpleszinha mas que vai ajudar muita gente com aquelas dúvidas de funções que mudam outfit.
Testado e funcionando em TFS 0.3.6 (8.54)
Explicação: É uma spell que ao usar muda seu outfit para o de um warmaster (acho q é isso o nome), aumentando seu escudo e sua vida pelo preço de toda a sua mana. É uma spell excelente para servers com bastante RPG pois dá praticamente uma segunda vida ao player e permite que Knights virem exímios blockers nas quests da vida. Coloquei no meu server e graças a essa spell a galera conseguiu fazer a POI depois de quase 6 meses de server. Vale ressaltar que o player não ganha vida, apenas dobra a quantidade máxima e ele tem que healar a quantidade a mais que ele ganhou.
spells\scripts\tanker.lua
setConditionParam(condition, CONDITION_PARAM_TICKS, 60000) e doSetCreatureOutfit(cid, mtanker, 60000) e doSetCreatureOutfit(cid, ftanker, 60000) da mesma forma que você pode alterar a quantidade de shield e de vida que você ganha ao utilizá-la mas eu tenho razões pra acreditar que a forma atual dela é a ideal.
Aqui no meu server ela tá definida para apenas Knights mas vocês podem editar isso a gosto.
spells.xml
<instant name="tanker" words="uteta gran vita" lvl="220" mana="300" prem="1" aggressive="0" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="tanker.lua"> <vocation id="8"/> </instant> EDIT: Algumas imagens de como a magia funciona:
-
574747 deu reputação a xWhiteWolf em Glacier Set dando conditions em áreaEai galera, esse script eu fiz para um membro aqui do TibiaKing no suporte e achei que ficou bem legal então decidi postar.
Explicação: Ao tomar um dano maior que 300, se o player tiver usando a glacier robe, uma área em volta dele vai ser congelada e todos dentro dessa área ficarão com slow. Caso o player estiver com o full glacier set, além do paralyze, as pessoas dentro da área receberão dano de freezing
crie um arquivo em creaturescripts\scripts chamado glacierrobe.lua e adicione isso daqui dentro dele
agora vá em creaturescripts\scripts e procure um arquivo chamado login.lua.
dentro dele coloque isso (de preferencia embaixo dos outros registerCreatureEvent):
registerCreatureEvent(cid, "glacierrobe") Lembre-se que se vc quiser repetir isso pra outros set's você tem que repetir todo o processo, tanto no creaturescripts.xml quanto no login.lua
no meu server além do set glacier eu uso os outros 3 set's elementais, ficando assim:
EDIT:: Algumas imagens pra vocês verem como o script funciona:
-
574747 deu reputação a xWhiteWolf em Precisa estar perto de aguaFala galera do TibiaKing, pra quem não me conhece eu sou o White Wolf, antigo Night Wolf.. eu venho trazer pra vocês um script que eu to desenvolvendo nas minhas horas vagas e que vai trazer bastante RPG pro server de vocês.
Servidor testado: The Forgotten Server 0.3.6 (Crying Damson)
Versão do Cliente: 8.45
Explicação: Pra quem já jogou AvaOT/Korelin, deve ter notado que algumas magias da tribo da água necessitam estar perto de água para poderem ser usadas, e foi me baseando nisso que eu criei esse script.
É uma magia que ataca os inimigos se estiver com a target e se não estiver com target ela adiciona vida à você, mas precisa estar perto da água para ser usada!!
Sem mais delongas, vamos ao script:
crie um arquivo chamado waterneeded.lua e coloque em spells\scripts\
--[[ Credits: 30% to Molinero because I used his telekinesis script as base 60% to me (Night Wolf) for doing the rest of the script 10% to the owner of AvaOT for giving me the idea of such thing ~~~FEEL FREE TO EDIT AS YOU WISH, THIS IS JUST A SIMPLE SCRIPT BUT DON'T REMOVE THE CREDITS.~~~ ]] local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, TRUE) function onCastSpell(cid, var) local water = {490, 491, 492, 493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625} local spot = getPlayerPosition(cid) local nxp = spot.x - 3 local pxp = spot.x + 3 local nyp = spot.y - 3 local pyp = spot.y + 3 local k = 1 local target = getCreatureTarget(cid) for absice = nxp, pxp do for coordinate = nyp, pyp do local pos = {x = absice, y = coordinate, z = spot.z, stackpos = 0} local thing = getThingfromPos(pos) if thing.itemid > 0 then if isInArray(water, thing.itemid) == TRUE then k = k+1 if target == 0 then local CreatureHealth = getCreatureMaxHealth(cid) local lifedraw = math.floor(CreatureHealth /(20*k)) doCreatureAddHealth(cid, lifedraw, 1) doSendAnimatedText(spot, "+"..lifedraw, 18) doSendMagicEffect(pos, 1) doSendMagicEffect(spot, 12) else local tgtpos = getCreaturePosition(target) local life = math.random (200,1000) doCreatureAddHealth(target, -life, COMBAT_LIFEDRAIN) doSendAnimatedText(tgtpos, "-"..life, 89) doSendDistanceShoot(pos, tgtpos, 36) doSendMagicEffect(tgtpos, 53) doSendMagicEffect(pos, 1) return doCombat(cid, combat, var) end end end end end if k ~= nil and k < 2 then doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) doPlayerSendCancel(cid, "You need to be around water to cast this spell..") end return doCombat(cid, combat, var) end OBS1: Perceba que tá bem rudimentar esse script, até porque essa é a primeira versão dele, pretendo melhorar o script com o tempo
OBS2: Se você quiser que o script ataque mais de uma vez pra cada water que tiver no mapa substitua na linha 42:
return doCombat(cid, combat, var) por
doCombat(cid, combat, var) E NÃO ESQUEÇA DE DIMINUIR DO DANO local life = math.random (200,1000) e no spells.xml adicione: <instant name="Water Need" words="utura grav vita" lvl="150" mana="300" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="3000" needlearn="0" event="script" value="waterneeded.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> Se você curtiu, não remova os créditos.. Sinta-se livre pra melhorar a magia do jeito que você quiser (uma primeira alteração que eu sugiro é mudar o dano e colocar como sendo um math.random do level do player x magicLevel dele, pra magia ter um dano que aumenta com o tempo, e não algo totalmente aleatório).
Gostaria de salientar também que essa é a primeira versão de tal script, tem muita coisa pra melhorar e dá pra diminuir esse script consideravelmente, ficaria super feliz se vocês me ajudassem a melhorar isso e remover coisas desnecessárias
EDIT: Trouxe algumas imagens pessoal:
-
574747 deu reputação a xWhiteWolf em Darkness Pact QuestHoje vou ensinar vocês a fazer uma quest com bastante RPG (e com um pouquinho de esforço talvez o melhor sistema já visto num OTSERV!!)
É uma quest que você tem um determinado tempo pra matar um monstro e entrar num teleporte ou a passagem será bloqueada
"tá, mas oque difere essa quest de qualquer script de arena que tenha aí pelo fórum?"
na verdade nada, mas no meu server eu coloquei um tempo bem ridículo (8 segundos) e é tecnicamente impossível chegar do outro lado.
"então você fez uma quest que não dá pra fazer, é isso mesmo?"
não meu caro amigo, é uma quest que foi feita pra ser pensada. Um dos players entra na quest e termina ela, daí outro player ativa a alavanca e ele passa.. fazendo com que o pessoal só consiga passar com a ajuda de um amigo. Se você conseguir trabalhar em equipe em prol de um prêmio a sua recompensa é a oportunidade de fazer um pacto com as trevas.
"masoque??"
isso mesmo que você entendeu, você ganha a chance de abrir mão da sua vida (literalmente) pra receber uma spell nova.
~~ Hoje eu vou ensinar a reproduzirem esse sistema caralhudo no server de vocês:
Tudo começa no map editor quando você vai fazer uma área + ou - igual a essa e colocar os seguintes actions/unique ids
Agora vamos aos scripts:
actions\scripts\newquest.lua
Feito isso você vai precisar preparar uma sala aonde o player será teleportado caso ele consiga passar e coloque uma alavanca nessa sala.
Na alavanca você deve colocar o actionid 6102 e uma plaquinha explicando sobre o pacto
daí você adiciona isso no actions.xml
<action actionid="6102" script="alavanca de magia.lua"/> e crie o script 'alavanca de magia.lua' que deverá conter o seguinte:
Feito tudo isso agora só falta criar a magia Target Spell que no caso é essa daqui:
e colocar no spells.xml:
<instant name="Target Spell" words="exevo res" lvl="120" maglv="10" mana="500" exhaustion="3000" prem="0" needlearn="1" script="especiais/seguidor.lua"> <vocation id="6"/> <vocation id="7"/> <vocation id="5"/> <vocation id="8"/> </instant> FIM.
Agora você só precisa editar as actions pra rodarem de acordo com as posições do seu server então vamos às explicações:
SCRIPT1:
local tempo = 8000 ---- tempo até a porta fechar
local wall1 = {x=612, y=345, z=7, stackpos=1} -- local da primeira pedra
local pos1 = getThingfromPos(wall1)
local wall2 = {x=653, y=345, z=7, stackpos=1} --- local da segunda pedra
local pos2 = getThingfromPos(wall2)
local monster1 = {x=615, y=345, z=7, stackpos=1} --- local que cria o monstro, no caso eu uso o Juggernaut mas vc pode editar dentro do script
local posmonster1 = getThingfromPos(monster1)
local monster3 = {x=654, y=345, z=7, stackpos=1} --- Ultima posição antes do teleporte, serve pra remover o monstro
local idparede = 9788 --- id do obstáculo q será criado
local alavanca = {x=610, y=344, z=7, stackpos=1} -- POSIÇÃO DA ALAVANCA
local alavancapos = getThingfromPos(alavanca) SCRIPT2:
local topos = {x=609, y=345, z=7, stackpos=1} -- posição que vai ser teleportado caso clique na alavanca de 'FAIL QUEST'
Espero que vocês tenham curtido
Aqui tem mais duas imagens pra vocês
Alavanca:
Magia:
EXPLICANDO A MAGIA: Os morcegos seguem a direção que você tá olhando, se vc tiver um target eles seguem o target.
-
574747 deu reputação a Jobs em (Resolvido)Como colocar um intervalo de tempo nesse script [globalevent]bota na pasta data/lib/functions.lua
e tenta o sleep denovo.
@edit
Se mesmo assim nao funcionar tenta isso
-
574747 recebeu reputação de xandeloko em Que muro é esse?8.6 id do item e 10436
-
574747 recebeu reputação de poko360 em (Resolvido)[Pedido] (Action) item quando clicar cria 1 monstro e item quebrarJa foi resolvido
-
574747 deu reputação a Snowsz em (Resolvido)como reverter um distance effect?function onThink(interval, lastExecution) for _, name in ipairs(getOnlinePlayers()) do local cid = getPlayerByName(name) if getPlayerStorageValue(cid, 9899) >= 1 then doSendAnimatedText(getPlayerPosition(cid), "[VIP]", 29) local spot = getThingPosition(cid) doSendDistanceShoot({x = spot.x + 1, y = spot.x + 1, z = spot.z}, spot, 37) doSendDistanceShoot({x = spot.x - 1, y = spot.y - 1, z = spot.z}, spot, 37) doSendDistanceShoot({x = spot.x + 1, y = spot.y - 1, z = spot.z}, spot, 37) doSendDistanceShoot({x = spot.x - 1, y = spot.y + 1, z = spot.z}, spot, 37) end end return true end
-
574747 deu reputação a zipter98 em (Resolvido)Doble xp a x guild.Desculpe, não entendi qual é seu outro problema. É relacionado ao sistema que fiz?
-
574747 deu reputação a zipter98 em (Resolvido)Doble xp a x guild.Não testei, mas w/e.
Em algum arquivo da lib, coloque essas funções:
function setGuildExperience(guildId, exp) for _, pid in pairs(getPlayersOnline()) do if getPlayerGuildId(pid) == guildId then doPlayerSetExperienceRate(pid, exp) end end end function getGuildExpRate(guildId) for _, pid in pairs(getPlayersOnline()) do local playerRate = getPlayerRates(pid)[8] if getPlayerGuildId(pid) == guildId and playerRate > 1 then return playerRate end end return 1.0 end data/actions/scripts: local config = { exp_rate = 2.0, --Rate de experiência (2x). time = 60, --Tempo, em minutos, para a double experience da guild acabar (em minutos). g_storage = 4790, guild_events = {} } function onUse(cid) local owner_guild, player_guild = getGlobalStorageValue(config.g_storage), getPlayerGuildId(cid) if player_guild < 1 then return doPlayerSendCancel(cid, "You do not have a guild.") elseif player_guild == owner_guild then return doPlayerSendCancel(cid, "Your guild is already owner of this lever.") end broadcastMessage("The guild "..getPlayerGuildName(cid).." is now owner of the lever and has "..config.exp_rate.."x experience rate for "..config.time.." minutes!") setGuildExperience(player_guild, config.exp_rate) setGlobalStorageValue(config.g_storage, player_guild) if owner_guild ~= -1 then setGuildExperience(owner_guild, 1.0) stopEvent(config.guild_events[owner_guild]) end config.guild_events[player_guild] = addEvent(function() setGuildExperience(player_guild, 1.0) setGlobalStorageValue(config.g_storage, -1) end, config.time * 60 * 1000) return true end data/creaturescripts/scripts: function onLogin(cid) if getPlayerGuildId(cid) < 1 then return true end local guild_exp = getGuildExpRate(getPlayerGuildId(cid)) if guild_exp > 1 then doPlayerSetExperienceRate(cid, guild_exp) end return true end Logicamente, não precisa registrar nada em login.lua. -
574747 deu reputação a Vodkart em [EVENTO] Castle 24H "Diferente"Se ele moveu é porque seu tópico foi aprovado e movido para área correta... meu deus.
-
574747 deu reputação a Vodkart em (Resolvido)AJUDA EM SCRIPT GUILDSexecuta no seu banco de dados:
ALTER TABLE `guilds` ADD `frags` INT(11) NOT NULL DEFAULT 0; ALTER TABLE `guilds` ADD `acesstime` INT(15) NOT NULL DEFAULT 0; -
574747 deu reputação a xWhiteWolf em (Resolvido)setConditionParamtodos os existentes podem ser encontrados em data/lib/constant.lua no seu sv.
ou vc pode simplesmente checar esse tópico aqui http://www.tibiaking.com/forum/topic/49095-lib-000-const/
Não necessariamente todos os parametros que existem lá podem ser colocados na condição que você criou, vai depender mas é só usar o bom senso e fazer testes. Procurar no google pela condição tb me ajudou muito pra ver exemplos práticos de cada utilização. Espero que você consiga aprender todos!
-
574747 recebeu reputação de 77mateus77 em Heal com cores diferentesalanmtd1. nao sei se voce ja sabe onde estao os numeros da cores, elas podem se encontradas na sua lib, no arquivo 000-constant
-
574747 recebeu reputação de 77mateus77 em Heal com cores diferentesbhelliip, onde esta TEXTCOLOR_GREEN); TEXTCOLOR_DARKPURPLE); coloca COLOR_GREEN); COLOR_DARKPURPLE);
-
574747 recebeu reputação de poko360 em (Resolvido)Ajuda Item para ir ao temploApenas em PZ
local t = { delay = 5, -- Tempo em segundos para usar novamente. storage = 45555 -- Storage para utilizar. } config = { prot="yes", -- os jogadores precisam estar na zona de PZ para ir ao templo?? ("yes" or "no"). } function onUse(cid, item, fromPosition, itemEx, toPosition) if(config.prot == "yes") and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "você precisa ficar em PZ para usar o item..") return TRUE end if getPlayerStorageValue(cid, t.storage) < os.time() then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, t.storage, t.delay + os.time()) doRemoveItem(item.uid) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) doSendMagicEffect(fromPosition, CONST_ME_TELEPORT) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce precisa aguardar ".. getPlayerStorageValue(cid, t.storage) - os.time() .." segundo(s) para usar novamente.") end return true end -
574747 deu reputação a Wakon em Apos equipa x item.Em "Data/movements/scripts", copie e cole um arquivo.lua e renomeie para equipstor.lua, apague tudo e cole:
local storage = {50010, 1, 0} -- Storage, valor após equipar, valor após retirar. function onEquip(cid) return setPlayerStorageValue(cid, storage[1], storage[2]) end function onDeEquip(cid) return setPlayerStorageValue(cid, storage[1], storage[3]) end Em "Data/movements", abra o arquivo movements.xml e adicione as tags:
<movevent type="Equip" itemid="item_id" slot="slot_type" event="script" value="equipstor.lua"/> <movevent type="DeEquip" itemid="item_id" slot="slot_type" event="script" value="equipstor.lua"/> Em itemid você coloca o id do item que deve ser equipado para ganhar storage e no slot você coloca em qual parte deve ser equipado.
Slots:
-
574747 deu reputação a psychonaut em (Resolvido)So x vocaçao pode usa x itemTenta isso
local IDHEAD = 2343 local IDARMOR = 2503 local IDLEGS = 2504 local IDFEET = 2646 local IDSHIELD = 8905 local THETEXT = "Chain" local look = 309 -- Coloque o ID do outfit local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, 5000000) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 500) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, 5000000) setConditionParam(condition, CONDITION_PARAM_MANATICKS, 500) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, 150) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, 150) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVELPERCENT,575) setConditionParam(condition, CONDITION_PARAM_ABSORBPERCENTALL, 575) function onDeEquip(cid, item, slot) doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have just lost the bonus for wearing a full set of equipment. please equipped the item you remove to get the bonus again.") doRemoveCondition(cid, CONDITION_ATTRIBUTES) end function onEquip(cid, item, slot) local vocation = getPlayerVocation(cid) if vocation = 3 then if getPlayerSlotItem(cid, CONST_SLOT_HEAD).itemid == IDHEAD and getPlayerSlotItem(cid, CONST_SLOT_ARMOR).itemid == IDARMOR and getPlayerSlotItem(cid, CONST_SLOT_LEGS).itemid == IDLEGS and getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid == IDFEET and getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid == IDSHIELD then doSendAnimatedText(getCreaturePosition(cid), THETEXT, 210) doSetCreatureOutfit(cid, {lookType = look}, -1) doAddCondition(cid, condition) local spot = getThingPosition(cid) doSendDistanceShoot(spot, {x = spot.x + 3, y = spot.y + 3, z = spot.z}, CONST_ANI_HOLY) doSendDistanceShoot(spot, {x = spot.x - 3, y = spot.y - 3, z = spot.z}, CONST_ANI_HOLY) doSendDistanceShoot(spot, {x = spot.x + 3, y = spot.y - 3, z = spot.z}, CONST_ANI_HOLY) doSendDistanceShoot(spot, {x = spot.x - 3, y = spot.y + 3, z = spot.z}, CONST_ANI_HOLY) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este item e apenas para paladins.") end return true end -
574747 deu reputação a psychonaut em (Resolvido)So x vocaçao pode usa x itemAltera a linha
if vocation = 3 then
Pra
if vocation == 3 then
Erro meu, é que to mexendo com VB, ai confundi. -
574747 deu reputação a xWhiteWolf em (Resolvido)[pedido] item ao ser equipado ganhar storage, e quando ser desequipado remover storagelocal storage = 18371 -- storage function onEquip(cid, item, slot) if getPlayerStorageValue(cid, storage) <= 0 then setPlayerStorageValue(cid, storage, 1) end return true end function onDeEquip(cid, item, slot) if getPlayerStorageValue(cid, storage) > 0 then setPlayerStorageValue(cid, storage, 0) end return true end <movevent type="DeEquip" itemid="8889" slot="armor" event="script" value="set.lua"/> <movevent type="Equip" itemid="8889" slot="armor" event="script" value="set.lua"/> só muda o id do item e o slot que vc quer que ative isso.
-
574747 recebeu reputação de croshark em [Pedido]Arma com dano em áreaabra o a pastar do seu ot va em weapons.xml e ponha isto \/
no xxxx coloca o id da arma e no xxxx coloque o nome que voce ira cria na pasta xml e na pasta xxxx coloque:
[spoiler*]<melee id="xxxx" level="1" unproperly="1" event="script" value="xxxx.lua">
<vocation name="Knight"/> <vocation id="8" showInDescription="0"/> </melee>[spoiler*] [spoiler*]local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_WHIRLWINDSWORD) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 5, 0, 5, 0) local area = createCombatArea( { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } ) setCombatArea(combat, area) function onUseWeapon(cid, var) return doCombat(cid, combat, var) end[spoiler*] Explicando algumas coisa acima Onde esta escrito em verde sera o tipo do dano Onde esta escrito em rosa sera o efeito do atk Onde esta escrito em verde escuro sera o efeito do atk tipo uma wand de longe. Onde esta escrito em azul sera o dano da arma em base de skill Onde esta escrito em ouro e o tamanho do atk tipo o burst arrow Para sabe mais sobre oque foi danos ou efeitos va na pastar do seu ot em Libs e abra o 000-constant Espero te ajudado. -
574747 deu reputação a Caronte em (Resolvido)[Pedido] Colocar pra quem tiver em Area PZ usar esse itemlocal t = { delay = 5, -- Tempo em segundos para usar novamente. storage = 45555 -- Storage para utilizar. } function onUse(cid, item, fromPosition, itemEx, toPosition) if not getTileInfo(getThingPos(cid)).protection then return doPlayerSendCancel(cid, "This item works only in PZ") and doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and false end if getPlayerStorageValue(cid, t.storage) < os.time() then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, t.storage, t.delay + os.time()) doRemoveItem(item.uid) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) doSendMagicEffect(fromPosition, CONST_ME_TELEPORT) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa aguardar ".. getPlayerStorageValue(cid, t.storage) - os.time() .." segundo(s) para usar novamente.") end return true end
-
574747 recebeu reputação de poko360 em (Resolvido)[Pedido] Arma atacando com numero exatolocal combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 0) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 0) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 49) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 30) function onGetFormulaValues(cid, level, distance) min = -(distance*55) + -(level*0.15) max = -(distance*55) + -(level*0.15) return min, max end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onUseWeapon(cid, var) local ret = doCombat(cid, combat, var) if(ret == LUA_ERROR) then return LUA_ERROR end return true end