Ir para conteúdo

Nother

Membro
  • Registro em

  • Última visita

Solutions

  1. Nother's post in Exhaustion na spell was marked as the answer   
    local atk1 = createCombatObject() local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_RED) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) function kiaiho(cid, level, maglevel) local min = -(level * 100.0+ maglevel * 100 +0) local max = -(level * 500.0+ maglevel * 500 +0) return min, max end setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "kiaiho") arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) setCombatArea(atk1, area1) function onTargetTile(cid, pos) doCombat(cid,combat1,positionToVariant(pos)) end setCombatCallback(atk1, CALLBACK_PARAM_TARGETTILE, "onTargetTile") local function onCastSpell1(parameters) doCombat(parameters.cid, atk1, parameters.var) end function onCastSpell(cid, var) if exhaustion.check(cid, 100010) == TRUE then -- em 100010 coloca uma storage que não está sendo usada doPlayerSendCancel(cid, "Podera usar novamente dentro de 15 segundos.") doSendMagicEffect(getCreaturePosition(cid), 32) --effect que sai quando ta com exaust. se não quiser nada so colocar um effect vazio. return false end local parameters = { cid = cid, var = var} local pos1 = {x = getPlayerPosition(cid).x + 2, y = getPlayerPosition(cid).y + 2, z = getPlayerPosition(cid).z} local parameters = { cid = cid, var = var, combat1 = combat1} addEvent(onCastSpell1, 250, parameters) doSendMagicEffect(pos1, 979) exhaustion.set(cid, 100010, 15.0) -- storage aqui tem que ser a mesma de cima return true end Cara não sei nada sobre criar spells, mas o seu exaust colocado errado e eu coloquei da forma certa mas não deu, então peguei o exaust da minha spell e adaptei, testa ai
  2. Nother's post in Fazer o Buff trocar de vocation por 30 min depois voltar ao normal. was marked as the answer   
    Consegui resolver quase os problemas de ficar infinitamente na vocação. Ainda esta com o problema da outfit mas se eu resolver posto aqui tbm.
    local tempo = 1 * 60 local storage_time = 102053 local storage_voc = 102054 local msg = "Voce precisa aguardar %d segundos." local effect = {80} local effect1 = {80} local outfit = {lookType = 9} local points = 20 local health = 0.05 local new_voc = 11 -- id da voc local combat = createCombatObject() 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 doMagica(cid, times) if times > 0 and 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 addEvent(doMagica, 1000, cid, times-1) end end local function doOutfitzinha(cid, times) if times > 0 and isCreature(cid) then doRemoveCondition(cid, CONDITION_OUTFIT) addEvent(doOutfitzinha, 1000, cid, times-1) end end local function deTransform(cid) if isCreature(cid) then doPlayerSetVocation(cid, getPlayerStorageValue(cid, storage_voc)) end end function onCastSpell(cid, var) if tempo-(os.time()-getPlayerStorageValue(cid, storage_time)) > 0 then doPlayerSendCancel(cid, string.format(msg, tempo-(os.time()-getPlayerStorageValue(cid, storage_time)))) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end setPlayerStorageValue(cid, storage_time, os.time()) setPlayerStorageValue(cid, storage_voc, getPlayerVocation(cid)) registerCreatureEvent(cid, "stordeath") registerCreatureEvent(cid, "stordeath_off") addEvent(deTransform, tempo * 1000, cid) doPlayerSetVocation(cid, new_voc) doMagica(cid, tempo) doOutfitzinha(cid, tempo) local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doCreatureSay(cid, "KAIOKEEEEEEEN", TALKTYPE_MONSTER) doSendMagicEffect(position, 80) doHealthSecond(cid, -getCreatureMaxHealth(cid) * health, tempo) doSetCreatureOutfit(cid, outfit) return doCombat(cid, combat, var) end Estou utilizando aquele codigo la de cima passado anteriormente. E em
    creaturescripts/scripts/niwdeath.lua
    eu alterei para caso a vocação 11 morra ela retorne para a vocação 1.
    e em vocations.xml alterei a fromvoc da voc 11 para voc 1 caso relogue tbm volte para a vocação 1.
    Agora so falta eu resolver o bug da outfit que quando eu uso ele se transforma mas logo em seguida a outfit volta para a antiga.
    local tempo = 1 * 60 local storage_time = 102053 local storage_voc = 102054 local msg = "Voce precisa aguardar %d segundos." local effect = {87} local effect1 = {87} local outfit = {lookType = 9} local points = 20 local mana = 0.01 local new_voc = 11 -- id da voc local combat = createCombatObject() 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 doManaSecond(cid, amount, delay) -- function by vodka if not isCreature(cid) then return LUA_ERROR end doCreatureAddMana(cid, amount) if delay ~= 1 then addEvent(doManaSecond, 1000, cid, amount, delay-1) end end local function doMagica(cid, times) if times > 0 and isCreature(cid) then for i=1, #effect do local position = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} local position1 = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doSendMagicEffect(position, effect[i]) doSendMagicEffect(position1, effect1[i]) end addEvent(doMagica, 1000, cid, times-1) end end local function Outfitzinha(cid) doRemoveCondition(cid, CONDITION_OUTFIT) end local function deTransform(cid) if isCreature(cid) then doPlayerSetVocation(cid, getPlayerStorageValue(cid, storage_voc)) end end function onCastSpell(cid, var) if tempo-(os.time()-getPlayerStorageValue(cid, storage_time)) > 0 then doPlayerSendCancel(cid, string.format(msg, tempo-(os.time()-getPlayerStorageValue(cid, storage_time)))) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end setPlayerStorageValue(cid, storage_time, os.time()) setPlayerStorageValue(cid, storage_voc, getPlayerVocation(cid)) registerCreatureEvent(cid, "stordeath") registerCreatureEvent(cid, "stordeath_off") addEvent(deTransform, tempo * 1000, cid) doPlayerSetVocation(cid, new_voc) doMagica(cid, tempo) addEvent(Outfitzinha, tempo*1000, cid) local position = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doCreatureSay(cid, "KAIOKEEEEEEEN", TALKTYPE_MONSTER) doSendMagicEffect(position, 121) doManaSecond(cid, -getCreatureMaxMana(cid) * mana, tempo) doSetCreatureOutfit(cid, outfit) return doCombat(cid, combat, var) end BOM ESSE E O CODIGO, DEPOIS DE VARIOS TESTES COM OS CODIGOS DISPONIBILIZADOS AI PARA CIMA FINALMENTE CONSEGUI ARRUMAR OS PROBLEMAS E FA TUDO OK, LEMBRANDO QUE CASO ESTEJAM QUERENDO USAR ESSE CODIGO, PRECISAM FAZER AS ALTERAÇOES QUE INFORMEI AI EM CIMA. OBRIGADO A TODOS QUE ME AJUDARAM

Informação Importante

Confirmação de Termo