Ir para conteúdo

Fabi Marzan

Membro
  • Registro em

  • Última visita

Tudo que Fabi Marzan postou

  1. Basta deletar as linhas: if getPlayerItemCount(cid, itemid) >= 1 then local itemid = 13898, 13941, 13806, 13818, 13975, 13982, 13763, 13607, 13782, 13787 else doPlayerSendCancel(cid, "Voce precisa de uma Gunbai para executar este Jutsu !") return false end Aqui está pronto para você: local config = { storage = 318210, -- storage que salva o tempo da spell storagecol = 3482101, -- storage que salva o tempo entre 1 uso e outro cooldown = 60, -- tempo de um uso e outro duration = 5, -- tempo que a spell dura effect1 = 9 --- efeito que sai qnd usa a spell } function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) - os.time() > 0 then doPlayerSendCancel(cid, "Você está refletindo todo o dano recebido!") return true end if os.time() - getPlayerStorageValue(cid, config.storagecol) >= config.cooldown then setPlayerStorageValue(cid, config.storagecol, os.time()) doSendMagicEffect(getCreaturePosition(cid), config.effect1) setPlayerStorageValue(cid, config.storage, os.time() + config.duration) doPlayerSendTextMessage(cid, 27, "Voce ativou o modo Reflect e nos proximos ".. config.duration.." segundos refletira os danos recebidos.") else doPlayerSendCancel(cid, "Você está cansado, precisa aguardar "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, config.storagecol))).." segundos.") return true end return true end
  2. local function No_Move_Target(cid) local target = getCreatureTarget(cid) if isCreature(target) then doCreatureSetNoMove(target, false) mayNotMove(target, false) end return TRUE end local function No_Move_Target_2(cid) local target = getCreatureTarget(cid) if isCreature(target) then doCreatureSetNoMove(target, true) mayNotMove(target, true) end return TRUE end function onCastSpell(cid, var) local target = getCreatureTarget(cid) local targetpos = getCreaturePosition(target) local efepos = {x=targetpos.x, y=targetpos.y, z=targetpos.z} local time = 5 -- tempo paralyzado if isPlayer(cid) and exhaustion.check(cid, 11560) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, 11560) .. " segundos para usar novamente.") return FALSE end exhaustion.set(cid, 11560, 20) doSendMagicEffect(efepos, 24) addEvent(No_Move_Target, time*1000, cid) addEvent(No_Move_Target_2, time*1500, cid) return TRUE end
  3. local function No_Move_Target_2(cid) local target = getCreatureTarget(cid) if isCreature(target) then doCreatureSetNoMove(target, true) end return TRUE end addEvent(No_Move_Target_2, time*1500, cid) Se não funcionar, use este outro: mayNotMove(target, true) mayNotMove(target, false)
  4. @daniel.braga989 Se você notar, quando você parar de atacar o efeito para, não dá erro, mas para quando perde o alvo. @daniel.braga989 Os scripts que eu te passo, resolvem todos esses problemas apenas usando essas funções. function effect_1(cid, target) -- NOME DO FUCTION (EFFECT_1) if isCreature(cid) and isCreature(target) then local pos = getCreaturePosition(target) doSendMagicEffect({x = pos.x + 0, y = pos.y + 0, z = pos.z}, 32) -- Effect end end Abaixo do function onCastSpell(cid, var) Você coloca isso: local config = { hit = 1, -- Hits que vai dar time = 500, -- Delay (time for effect) configtarget = getCreatureTarget(cid), } for a = 1, config.hit do addEvent(effect_1, config.time * a, cid, config.configtarget) -- Se você olhar, você obterá o nome da função (effect_1) end Você deseja obter outra função com outros hits e tempo? O mesmo function effect_2(cid, target) -- NOME DO FUCTION (EFFECT_2) agr e 2. if isCreature(cid) and isCreature(target) then local pos = getCreaturePosition(target) doSendMagicEffect({x = pos.x + 0, y = pos.y + 0, z = pos.z}, 32) -- Effect end end O mesmo adiciona outro hit e tempo local config = { hit = 1, -- Hits que vai dar hit2 = 2, -- Hits que vai dar (Outro Hit para funcao do Effect_2) time = 500, -- Delay (time for effect) time2 = 500, -- Delay (time for effect) -- (Tempo para funcao do Effect_2) configtarget = getCreatureTarget(cid), } Então o final seria assim for a = 1, config.hit do addEvent(effect_1, config.time * a, cid, config.configtarget) for a = 1, config.hit2 do -- (Hit2 pra funcao Effect_2) addEvent(effect_2, config.time2 * a, cid, config.configtarget) end end A partir daqui é uma questão de saber ler os scripts.
  5. Agr sim: -------Created:FABIAN MARZAN/ DISCORD: SoyFabi#5938------- ---------SCRIPTS--------- -----------FOR--------- ----------NARUTO------- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_HITCOLOR, 95) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 205) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.0, -42000, -1.0, -46000) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end --/Dentro aqui coloque as funções que você deseja... depois de / if isCreature(target) then function effect_1(cid, target) if isCreature(cid) then if isCreature(target) then ---------> local pos = getCreaturePosition(target) addEvent(doSendMagicEffect, 0, {x = pos.x+1, y = pos.y, z = pos.z}, 292) end end end function onCastSpell(cid, var) local waittime = 1 -- Tempo de exhaustion local storage = 3 -- não mecha if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "You are exhausted.") doSendMagicEffect(getCreaturePosition(cid), 2) return false end local parameters = {cid = cid, var = var, combat = combat, combat1 = combat1 , combat2 = combat2} addEvent(onCastSpell2, 300, parameters) local config = { hit = 1, -- Hits time = 100, -- Delay(time for effect) configtarget = getCreatureTarget(cid), } for a = 1, config.hit do addEvent(effect_1, config.time * a, cid, config.configtarget) end ---DISCORD: SoyFabi#5938---- exhaustion.set(cid, storage, waittime) return doCombat(cid, combat, var) end
  6. @daniel.braga989 Na verdade quando comecei a editar Jutsus, tive o mesmo problema e não consegui encontrar outra forma, até que depois de um tempo encontrei outro script que resolve esse problema. -------Created:FABIAN MARZAN/ DISCORD: SoyFabi#5938------- ---------SCRIPTS--------- -----------FOR--------- ----------NARUTO------- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_HITCOLOR, 95) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 205) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.0, -42000, -1.0, -46000) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end --/Dentro aqui coloque as funções que você deseja... depois de / if isCreature(target) then function effect_1(cid, target) if isCreature(cid) then if isCreature(target) then ---------> local pos = getCreaturePosition(target) addEvent(doSendMagicEffect, 0, {x = pos.x+1, y = pos.y, z = pos.z}, 292) end end function onCastSpell(cid, var) local waittime = 1 -- Tempo de exhaustion local storage = 3 -- não mecha if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "You are exhausted.") doSendMagicEffect(getCreaturePosition(cid), 2) return false end local parameters = {cid = cid, var = var, combat = combat, combat1 = combat1 , combat2 = combat2} addEvent(onCastSpell2, 300, parameters) local config = { hit = 1, -- Hits time = 100, -- Delay(time for effect) configtarget = getCreatureTarget(cid), } for a = 1, config.hit do addEvent(effect_1, config.time * a, cid, config.configtarget) end ---DISCORD: SoyFabi#5938---- exhaustion.set(cid, storage, waittime) return doCombat(cid, combat, var) end Não é o script que você deseja, mas se você o ler, poderá combinar esse script com o seu.
  7. mas isso já é um problema do sprite... a roupa que você tem, não está centrada para dizer.
  8. Eles podem ajudá-lo facilmente se você colocar um script inicial. 860? 0.X...?
  9. Fabi Marzan postou uma resposta no tópico em Outros Clients
    bom
  10. Coloco database?
  11. Não entendi sua postagem, quer fazer o arco não usar flechas?
  12. Deve ir para Items.cpp } else if (it.abilities->regeneration) { s << " (faster regeneration)"; Não tenho ideia de como seria no 0.4, mas encontre o Faster Regeneration, e apague-o.
  13. Que isso do World? Mapa oq?
  14. @raphadoidera VC TEM COLOCAR ISSO: local pos = getCreaturePosition(cid) TESTA AGR: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -78.2, 1, -88.2, 1) arr1 = { {0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 3, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0} } local area1 = createCombatArea(arr1) setCombatArea(combat1, area1) local function onCastSpell1(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var) end function onCastSpell(cid, var) local waittime = 2 -- Tempo de exhaustion local storage = 1000150 if exhaustion.check(cid, storage) then doSendMagicEffect(getCreaturePosition(cid), 2) return false end local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) local pos = getCreaturePosition(cid) addEvent(doSendMagicEffect, 100, {x = pos.x, y = pos.y-2, z = pos.z}, 7) addEvent(doSendMagicEffect, 100, {x = pos.x, y = pos.y-1, z = pos.z}, 7) addEvent(doSendMagicEffect, 100, {x = pos.x, y = pos.y+2, z = pos.z}, 7) addEvent(doSendMagicEffect, 100, {x = pos.x, y = pos.y+1, z = pos.z}, 7) addEvent(doSendMagicEffect, 100, {x = pos.x+2, y = pos.y, z = pos.z}, 7) addEvent(doSendMagicEffect, 100, {x = pos.x+1, y = pos.y, z = pos.z}, 7) addEvent(doSendMagicEffect, 100, {x = pos.x-2, y = pos.y, z = pos.z}, 7) addEvent(doSendMagicEffect, 100, {x = pos.x-1, y = pos.y, z = pos.z}, 7) addEvent(doSendMagicEffect, 100, {x = pos.x+1, y = pos.y-1, z = pos.z}, 7) addEvent(doSendMagicEffect, 100, {x = pos.x+1, y = pos.y+1, z = pos.z}, 7) addEvent(doSendMagicEffect, 100, {x = pos.x-1, y = pos.y-1, z = pos.z}, 7) addEvent(doSendMagicEffect, 100, {x = pos.x-1, y = pos.y+1, z = pos.z}, 7) addEvent(doSendMagicEffect, 200, {x = pos.x+2, y = pos.y-1, z = pos.z}, 332) addEvent(doSendMagicEffect, 200, {x = pos.x+1, y = pos.y-2, z = pos.z}, 332) addEvent(doSendMagicEffect, 200, {x = pos.x+2, y = pos.y+1, z = pos.z}, 332) addEvent(doSendMagicEffect, 200, {x = pos.x+1, y = pos.y+2, z = pos.z}, 332) addEvent(doSendMagicEffect, 200, {x = pos.x-2, y = pos.y-1, z = pos.z}, 332) addEvent(doSendMagicEffect, 200, {x = pos.x-1, y = pos.y-2, z = pos.z}, 332) addEvent(doSendMagicEffect, 200, {x = pos.x-1, y = pos.y+2, z = pos.z}, 332) addEvent(doSendMagicEffect, 200, {x = pos.x-2, y = pos.y+1, z = pos.z}, 332) exhaustion.set(cid, storage, waittime) return TRUE end
  15. -------Created:FABIAN MARZAN------- ---------SCRIPTS--------- -----------FOR--------- ---------NARUTO------- local config = { time = 5, } function onCastSpell(cid, var) local waittime = 8 -- Tempo de exhaustion local storage = 50000 -- não mecha if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "You are exhausted.") --doPlayerSendCancel(cid, "Please wait " .. exhaustion.get(cid, storage) .. " seconds to use Jutsu again.") doSendMagicEffect(getCreaturePosition(cid), 2) return false end parameters = {cid=cid} setPlayerGroupId(cid, 2) doSetItemOutfit(cid, 1548, config.time*1000) doCreatureExecuteTalkAction(cid, "/ghost", TRUE) addEvent(talk, 5200, parameters) exhaustion.set(cid, storage, waittime) return true end function talk(parameters) doCreatureExecuteTalkAction(parameters.cid, "/ghost", TRUE) setPlayerGroupId(parameters.cid, 1) end IN LOGIN ACIMA DO local loss = getConfigValue('deathLostPercent') Você coloca isso -- Login Cancel Invisible -- if(getPlayerGroupId(cid) == 2) then setPlayerGroupId(cid, 1) end if(isPlayerGhost(cid)) then doCreatureExecuteTalkAction(cid, "/ghost", TRUE) end caso contrário, seria dizer que ao usar o jutsu ele não permite atacar ou lançar jutsus, ou quando atacar o fantasma está desativado. Mas você tem que fazer
  16. Esse scripts ta ussando uma funcao so pra Target. Remova isso : local target = getCreatureTarget(cid) -- efeito no alvo
  17. Não tem nada a ver com otx.
  18. Existe uma maneira de fazer com que pisar no chão o levará um degrau acima? em vez de usar teletransporte .. em esse scripts? algo semelhante a uma escada que quando você clica leva você para cima sem usar um teletransporte, em movements. algo assim, mas eu quero passar para movements. local UP_FLOORS = {1386, 3678, 5543, 8599, 10035, 13010} local FIELDS = {1497, 1499, 11095, 11096} local DRAW_WELL = 1369 function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.itemid == DRAW_WELL and item.actionid ~= 100) then return false end local check = false fromPosition.stackpos = STACKPOS_GROUND if(isInArray(UP_FLOORS, item.itemid)) then fromPosition.z = fromPosition.z - 1 fromPosition.y = fromPosition.y + 1 if(doTileQueryAdd(cid, fromPosition, 38) ~= RETURNVALUE_NOERROR) then local field = getTileItemByType(fromPosition, ITEM_TYPE_MAGICFIELD) if(field.uid == 0 or not isInArray(FIELDS, field.itemid)) then fromPosition.y = fromPosition.y - 2 else check = true end end else fromPosition.z = fromPosition.z + 1 end if(not check and doTileQueryAdd(cid, fromPosition, 38) ~= RETURNVALUE_NOERROR) then local field = getTileItemByType(fromPosition, ITEM_TYPE_MAGICFIELD) if(field.uid == 0 or not isInArray(FIELDS, field.itemid)) then return false end end local pos, dir = getCreaturePosition(cid), SOUTH if(pos.x < fromPosition.x) then dir = EAST elseif(pos.x == fromPosition.x) then if(pos.y == fromPosition.y) then dir = getCreatureLookDirection(cid) elseif(pos.y > fromPosition.y) then dir = NORTH end elseif(pos.x > fromPosition.x) then dir = WEST end doTeleportThing(cid, fromPosition, false) doCreatureSetLookDirection(cid, dir) return true end
  19. Hoje comecei a me adaptar para acomodar os monstros, mas agora há um problema em matar o monstro, agora recebo 2 erros uma é que não consigo abrir o cliente antigo (oldclient) porque diz que não foi possível encontrar o tibia.dat. e outra é que quando mato em um Otclient recebo vários erros. OTLCLIENT o erro que eu recebo quando o mato e outro erro que recebo ao abrir o otclient Tento abrir o cliente antigo e não me deixa Tentei mesmo assim, pensei que era porque não se espalhou ou algo assim, mas continuo recebendo erros e não abre Usei alguns sprites antigos que tinha e deixei o antigo cliente abrir, mas quando matei o monstro ele travou.
  20. Olá pessoal, venho investigando como criar um spell que o oponente vai perder o alvo, mas na área, Duas pessoas estão atacando você, o que eu quero é fazer com que percam o alvo É semelhante ao spell. Mas eu preciso convertê-lo para área Versao: OTX2
  21. @Siempre feliz hmm, eu estava saber como fazer isso, quero dizer quando voce usa o spell, ele ilhe da storage 9500 neste caso. entao colocar um creaturescripts que ao receber danos do qualquer tipo, sejam montros desabilite o storage 9500. Eu usso este scripts pra invisibilidade function onCastSpell(cid, var) parameters = {cid=cid} setPlayerGroupId(cid, 2) doCreatureExecuteTalkAction(cid, "/ghost", TRUE) setPlayerStorageValue(cid, 9500, 1) -- STORAGEXX addEvent(talk, 15000, parameters) return true end function talk(parameters) doCreatureExecuteTalkAction(parameters.cid, "/ghost", TRUE) setPlayerGroupId(parameters.cid, 1) end A funcao estaria faltando. (OnTarget)
  22. local tempo = 30 local effect = {80} local effect1 = {80} local outfit = {lookType = 3} local voc = 6 --- VOCATION local points = 20 local combat = createCombatObject() local health = 0.05 setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, points) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, points) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, points) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, points) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, points) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, points) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, points) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) function doHealthSecond(cid, amount, delay) -- function by vodka if not isCreature(cid) then return LUA_ERROR end doCreatureAddHealth(cid, amount) if delay ~= 1 then addEvent(doHealthSecond, 1000, cid, amount, delay -1) end end local function Magica(tempo2,tempo3,cid) if isCreature(cid) then for i=1, #effect do local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} local position1 = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doSendMagicEffect(position, effect[i]) doSendMagicEffect(position1, effect1[i]) end end end local function Outfitzinha(cid) doRemoveCondition(cid, CONDITION_OUTFIT) end function onCastSpell(cid, var) registerCreatureEvent(cid, "stordeath") setPlayerStorageValue(cid, voc_stor, getPlayerVocation(cid)) doPlayerSetVocation(cid, voc) addEvent(doPlayerSetVocation,tempo,cid,getPlayerStorageValue(cid, voc_stor)) addEvent(setPlayerStorageValue,tempo,cid,voc_stor,0) if exhaustion.check(cid, 102053) == FALSE then doCombat(cid, combat, var) tempo2 = 0 while (tempo2 ~= (tempo*1000)) do addEvent(Magica, tempo2, tempo2, tempo*1000, cid) addEvent(Outfitzinha, tempo*1000, cid) tempo2 = tempo2 + 1000 end local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} exhaustion.set(cid, 102053, tempo) doCreatureSay(cid, "KAIOKEEEEEEEN", TALKTYPE_MONSTER) doSendMagicEffect(position, 80) doHealthSecond(cid, -getCreatureMaxHealth(cid) * health, tempo) doSetCreatureOutfit(cid, outfit) else doPlayerSendCancel(cid, "Desculpe, voce ja esta Transformado.") end end Em creaturescripts/scripts/ function onDeath(cid, corpse, deathList) local i = getPlayerStorageValue(cid, voc_stor) if i > 0 then doPlayerSetVocation(cid, i) setPlayerStorageValue(cid, voc_stor, 0) end return true end <event type="death" name="stordeath" event="script" value="stordeath.lua"/>
  23. Nao sei se isso vai te ajudar doCreatureAddHealth(cid, -1500)
  24. Se voce nao puder, e tao simples quanto colocar um movements. function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition) if getPlayerLevel(cid) >= 10 then -- Level to go down the ladder if item.actionid == 13528 then -- ActionId SQM (Portal, Stairs) doTeleportThing(cid, {x = 905, y = 939, z = 7}) -- Position where it will take you doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) else doPlayerSendCancel(cid, "You dont have enough level to down the stairs.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) doTeleportThing(cid, fromPosition, FALSE) end end return true end <movevent type="StepIn" actionid="13528" event="script" value="Portal.lua"/>

Informação Importante

Confirmação de Termo