
Tudo que xWhiteWolf postou
-
(Resolvido)[PEDIDO SPELL] Strong Haste
você tá querendo as respostas mas não tem como eu te ajudar se vc não responder as minhas perguntas. Os pokemons dão paralyze nele? Como é essa paralyze? É por função doChangeSpeed?
-
(Resolvido)[PEDIDO SPELL] Strong Haste
mas oque isso tem a ver com o script que eu postei? os pokemons dão paralyze nele?
-
ERRO NO SERVIDOR
tem infinitos motivos que podem levar um servidor a cair sem dar erros. As vezes se ele fecha sozinho sem nem dar save pode inclusive ser o seu próprio computador fechando o server pra prevenir danos (ele faz isso qnd um programa começa a consumir memóriam ram demais)
-
Voodoo
sim, eu já tinha feito ela a um mês e meio atrás mas tava com um problema pra resolver e hoje eu fui testar uma solução que o Max tinha me proposto. Não deu certo mas daí eu consegui adaptar a dica dele pra outra coisa e acabou funcionando. Então agradeçam ao Max por ser um gênio auheuhauhuhe
-
(Resolvido)[PEDIDO SPELL] Strong Haste
tem que digitar correr "mensagem uéee quanto ao segundo erro eu não entendi a lógica de ficar lento
- (Resolvido)Spell que transfere dano recebido
-
Voodoo
Aeeeeeee carai, hoje vim trazer pra vocês meu mais novo sistema *-*. É uma fodenda spell que você seleciona alguém pra ser seu voodoo e a partir disso durante um tempo X ela vai receber todos os hit's que você deveria receber... INCRÍVEL, NÃO? Agora se nesse meio tempo ela deslogar ou entrar em pz você vai tomar o dano normal, mas se ainda tiver nesse tempo X e ela sair ela vai receber o dano instantaneamente (É BOM DEMAIS PRA SER VERDADE). Agora você deve estar imaginando, e se eu usar a magia pra transferir o dano pra um amigo e ele fizer a mesma coisa em mim, pra onde vai o dano? PRA LUGAR NENHUM!!!! Até porque eu já me previni contra esse bug fazendo com que não seja possível fazer alguém de voodoo se ele já tiver alguém de voodoo. Testado em versão 8.54 TFS Crying Damnson mas deve funcionar em todas as versões que tenham a função onStatsChange no creaturescripts. Bom, o script tá 100% funcional e livre de bugs (se vc achar algum eu te dou 3 REP). Agora vamos à mágica: Crie um arquivo em mods com extensão .xml e adiciona isso daqui nele <?xml version="1.0" encoding="UTF-8"?> <mod name="Voodoo System" version="1.0" author="Night Wolf" contact="none" enabled="yes"> ------------------------------------------------------------------------------------ <config name="feitisso"><![CDATA[ configuration = { storage = 24567, tempo = 20, cooldown = 45, effect1 = 13, effect2 = 65 } storagecool = 24568 ]]></config> ---------------------------------------------------------------------------------- <event type="login" name="registerVoodoo" event="script"><![CDATA[ function onLogin(cid) domodlib('feitisso') if getPlayerStorageValue(cid, configuration.storage) > 0 then doPlayerSendTextMessage(cid, 22, "Your victim is not receiving your hits anymore.") doPlayerSetStorageValue(cid, configuration.storage, 0) end registerCreatureEvent(cid,"voodoo") return true end ]]></event> ------------------------------------------------------------------------------------ <instant name="Feitiço" words="voodoo" lvl="50" mana="10" prem="1" range="3" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> <![CDATA[ function onCastSpell(cid, var) domodlib('feitisso') if not (isPlayer(variantToNumber(var))) then doPlayerSendCancel(cid, "You can only use this spell in players.") return false end if getPlayerStorageValue(variantToNumber(var), configuration.storage) > 0 then doPlayerSendCancel(cid, "You can't make a voodoo of someone who already has a voodoo.") return false end if (os.time() - getPlayerStorageValue(cid, storagecool)) >= configuration.cooldown then if getPlayerStorageValue(cid, configuration.storage) <= 0 then timeleft = (os.time() + configuration.cooldown) doPlayerSetStorageValue(cid, storagecool, timeleft) local target = getPlayerGUID(variantToNumber(var)) doPlayerSetStorageValue(cid, configuration.storage, target) doSendMagicEffect(getPlayerPosition(cid), configuration.effect1) doSendMagicEffect(getThingPos(variantToNumber(var)), configuration.effect1) addEvent(function() if isCreature(cid) then doSendMagicEffect(getPlayerPosition(cid), configuration.effect2) doPlayerSendTextMessage(cid, 22, "Your victim is not receiving your hits anymore.") doPlayerSetStorageValue(cid, configuration.storage, 0) end end, 100+1000*configuration.tempo) elseif getPlayerStorageValue (cid, configuration.storage) > 0 then doPlayerSendCancel(cid, "You've already set a target.") end else doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(configuration.cooldown - (os.time() - getPlayerStorageValue(cid, storagecool))).." seconds.") end return true end ]]></instant> ------------------------------------------------------------------------------------ <event type="statschange" name="voodoo" event="script"><![CDATA[ function onStatsChange(cid, attacker, type, combat, value) domodlib('feitisso') if isPlayer(cid) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and getPlayerStorageValue(cid, configuration.storage) >= 1 then local name = getPlayerNameByGUID(getPlayerStorageValue(cid, configuration.storage)) local victim = getCreatureByName(name) if isCreature(victim) and not (getTilePzInfo(getPlayerPosition(victim))) then dano = math.ceil(value) doSendMagicEffect(getPlayerPosition(cid), configuration.effect2) if attacker == victim then doTargetCombatHealth(cid, victim, combat, -dano, -dano, configuration.effect2) else doTargetCombatHealth(attacker, victim, combat, -dano, -dano, configuration.effect2) end return false end end return true end ]]></event> ------------------------------------------------------------------------------------ </mod> aqui você edita os storages da magia e do cooldown, além do tempo que ela dura, o tempo de cooldown (um uso e outro) e os efeitos que vão sair. ------------------------------------------------------------------------------------------------------------- aqui você edita o nome da spell, as palavras pra ela sair, level, custo de mana, se é preciso ser premium pra usar, o range dela, e as vocações que podem usá-la. OBS: se vc quiser que essa spell seja ganha em uma quest (por se tratar de algo bastante apelativo), é só colocar needlearn = "1" e fazer uma quest pra ganhar a spell (tem no meu Darkness Pact Quest uma quest de ganhar Spell, é só ir lá no meu perfil e procurar o tópico). Essa spell não serve somente pra ATS, use a criatividade pra criar uma história e fazer ela se encaixar... foque nos elementos de RPG e tcharam, está feito!. Façam bom uso e espero que não saiam postando em outros lugares sem os devidos créditos. Abraços do lobinho pra vcs PS: a foto ficou meio bosta mas vou postar mesmo assim Eu (sorc) ataquei a zuera e tomei o dano de volta e ainda saiu esse efeitinho bonito. Espero que tenham gostado e usem essa spell como base pra fazer outras coisas maravilhosas pra esse fórum E não esqueça de clicar em "gostei" caso tenha curtido a idéia. Ahhh, e antes que eu me esqueça dos agradecimentos: @ViitinG por me ajudar a testar @CreatServer por me dar a idéia @MaXwEllDeN por me orientar a trocar a table pelo storage possibilitando que o script fosse possível.
-
OT 8.6 Quando morre volta pro lv 1!
O tópico foi movido para a área correta ;] Este tópico foi movido: De: "OTServ → Suporte OTServ → Suporte de OTServ Geral" Para: "OTServ → Suporte OTServ → Suporte de Scripts"
-
Sistema De Owner Para Equips.
@Drafenous, você reviveu um tópico de 2011!!! Preste mais atenção da próxima vez.
-
(Resolvido)[PEDIDO SPELL] Strong Haste
não, milisegundos... aquele 20.000 na vdd são só 20 segundos
-
[tutorial] Toda vez que logar o canal abre. (help, trade, etc..)
-
(Resolvido)[PEDIDO SPELL] Strong Haste
local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) -- tempo q vai durar o haste setConditionFormula(condition, 1.7, -36, 1.7, -36) function onSay(cid, words, param) local pos = getThingPos(cid) if(param == '') then doSendMagicEffect(pos, 14) -- efeito que sai doAddCondition(cid, condition) return true end local t = string.explode(param, '"') if(t[2]) then doCreatureSay(cid, "Strong Haste: ".. t[2], 20, false, 0, pos) doSendMagicEffect(pos, 14) -- efeito que sai doAddCondition(cid, condition) end return true end <talkaction hide="yes" words="correr" event="script" value="correr.lua"/>
-
(Resolvido)[PEDIDO SPELL] Strong Haste
é uma talkaction bem simpleszinha.. faço pra ti essa semana ainda
-
{Ajuda} Error na Distro "NPC's"
O erro que tá dando é porque você trocou de versão e nessa nova versão não tem o KeywordHandler. Toda vez que você for trocar de server é melhor recomeçar do 0 porque não dá pra simplesmente jogar as coisas e esperar que funcione.. infelizmente é assim auhuhuheuha eu não saberia te ajudar além disso porque npc ainda é uma das coisas que eu menos mexo mas é esse erro aí que eu falei. Uma das soluções possíveis é editar a source e copiar a parte do keywordHandler da outra source pra essa nova, isso ia resolver eu acho
-
Erro Actions
continua com erros de lógica.. eu vou fazer uns testes no meu server e ao longo da semana vou falando aqui o resultado.
-
Erro Actions
não sei, pra mim isso tudo tá errado auheuhauhuhea mas deve ser algo no transformItem, a partir do momento que você transforma é como se tivesse deletado o item antigo (junto com a carga antiga) e esse SetItemAttribute também está muito estranho tendo só o item como parâmetro.
-
Erro Actions
vc tá usando um config.charges mas ali em cima tá local charges = {} (um array vazio), como isso não tá dando erro?
-
ERRO NO SERVIDOR
deve ser alguma quest ou algo assim q quando os players passam ativa o script e começa esse evento tendendo à infinito que faz o server crashar... mas eu só só scripter, não tem como eu adivinhar de onde vem o erro
-
ERRO NO SERVIDOR
a resposta é exata quando o console diz em qual script é o erro, agr analisar um a um todos os scripts que vc tem no seu movements ou mods vai ser complicado ein hahaha tenta lembrar qnd começou esse problema e oque você adicionou no server nessa época, é tão dificil assim? Daqui pra frente começa a manter um log de alterações que você faz no seu server pra ficar mais fácil descobrir oque pode estar dando erro.
-
[Ajuda] Mw e Growth
if itemEx.itemid == iddofireroxo then return true end adiciona isso no script que resolve.. agr se seu script é por spell eu não sei como fazer, teria que passar pra action e colocar essas linhas aqui de cima
-
ERRO NO SERVIDOR
pode ter sido algo em mods então ou algum movements que vc adicionou há muito tempo atrás e só foi dar problema agora
-
(Resolvido)Ajuda Spell Do Video
é bem simples cara: Presta atenção nessas linhas aqui local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 48) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 7) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local stun = createConditionObject(CONDITION_PARALYZE) setConditionParam(stun, CONDITION_PARAM_TICKS, 5000) setConditionFormula(stun, -0.8, 0, -0.9, 0) setCombatCondition(combat1, stun) agora observe a da condição paralyze: Basicamente eu criei uma condição e setei o combat criado anteriormente pra usar aquela condição. Se eu tivesse dois combats ficaria assim: local stun = createConditionObject(CONDITION_PARALYZE) setConditionParam(stun, CONDITION_PARAM_TICKS, 5000) setConditionFormula(stun, -0.8, 0, -0.9, 0) setCombatCondition(combat1, stun) setCombatCondition(combat2, stun)
-
(Resolvido)Ajuda Spell Do Video
local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 48) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 7) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local stun = createConditionObject(CONDITION_PARALYZE) setConditionParam(stun, CONDITION_PARAM_TICKS, 5000) setConditionFormula(stun, -0.8, 0, -0.9, 0) setCombatCondition(combat1, stun) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local pisos = {} function onCastSpell(cid, var) local config = { tempo = 4 } local pos = getThingPos(cid) table.insert(pisos, getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid) local list = tonumber(#pisos) local position = { [1] = {x = pos.x, y = pos.y - 1, z = pos.z}, [2] = {x = pos.x + 1, y = pos.y - 1, z = pos.z}, [3] = {x = pos.x + 1, y = pos.y, z = pos.z}, [4] = {x = pos.x + 1, y = pos.y + 1, z = pos.z}, [5] = {x = pos.x, y = pos.y + 1, z = pos.z}, [6] = {x = pos.x - 1, y = pos.y + 1, z = pos.z}, [7] = {x = pos.x - 1, y = pos.y, z = pos.z}, [8] = {x = pos.x - 1, y = pos.y - 1, z = pos.z}, [9] = {x = pos.x, y = pos.y, z = pos.z}, } local id = { [1] = 8336, [2] = 8341, [3] = 8337, [4] = 8339, [5] = 8335, [6] = 8340, [7] = 8338, [8] = 8342, [9] = 231 } local msg = { [1] = "Hakke Rokujuuyonshou", [2] = "Ninshou", [3] = "Yonshou", [4] = "Hashou", [5] = "Juurokushou", [6] = "Sanjuunishou", [7] = "ROKUJUUYONSHOU!", } function canEffect(pos, pz, proj) -- Night Wolf based on Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTilePzInfo(pos) and not pz then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function RemoveItem(cid, i) local tile = getTileItemById(position[i], id[i]) if tile.uid > 0 and i < #id then doRemoveItem(tile.uid) elseif tile.uid > 0 and i == #id then doTransformItem(tile.uid, pisos[list]) end end for i = 1, #id do if canEffect(position[i]) then doCreateItem(id[i], 1, position[i]) addEvent(RemoveItem, config.tempo*1000, cid, i) end end local parameters = {cid = cid, var = var, combat1 = combat1} for k = 1, #msg do addEvent(function() if isPlayer(cid) then addEvent(onCastSpell1, 1, parameters) doCreatureSay(cid, msg[k], 20, false, 0, pos) end end, 1 + ((k-1) * 500)) end return false end Seguinte, ela é bem facilzinha de configurar, só parece ser dificil:
-
MOTW #17
O foda é que dos suporters/moderadores acho que só o @ é mapper.
-
(Resolvido)Spell diferente
local config = { tempo = 10, --- tempo que vai durar a spell percent = 20, -- quanto % vai aumentar cooldown = 20, --- tempo entre um uso e outro effect1 = 39, -- efeito ao executar a spell effect2 = 13 -- efeito que vai ficar saindo por segundo enquanto ela tiver ativa } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 255) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUBPERCENT, 100+config.percent) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORDPERCENT, 100+config.percent) setConditionParam(condition, CONDITION_PARAM_SKILL_AXEPERCENT, 100+config.percent) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+config.percent) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCEPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) local position1 = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y+1, z=getPlayerPosition(cid).z} local position2 = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y+1, z=getPlayerPosition(cid).z} if getCreatureHealth(cid) <= (getCreatureMaxHealth(cid) * 0.3) then if os.time() - getPlayerStorageValue(cid, 54693) >= config.cooldown then doPlayerSetStorageValue(cid, 54693, os.time()) doSendMagicEffect(position1, config.effect1) doCombat(cid, combat, var) for n = 1, config.tempo do addEvent(function() if isCreature(cid) then doSendMagicEffect(position2, config.effect2) end end, (n - 1) * 1000) end else doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 54693))).." seconds.") return false end else doPlayerSendCancel(cid, "You can only use this skill when you're with less than 30 percent of your life.") return false end return true end só altera a position1 e a position2.