BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

(Resuelto) [Pedido Script] Movement en item

(Resuelto) [Pedido Script] Movement en item

#1 (Resuelto) [Pedido Script] Movement en item el Sáb Sep 27, 2014 9:10 am

nefinoo


Miembro
Un script de movement, a la cual se le pueda poner a un item magic level, dependiendo de la vocacion, por ejemplo, una plate armor que le de 1 ml a un knight, 5 si es paladin y 10 si es Sorcerer o Druid.

Digo en movement porque en movements.xml puedes poner lo siguiente
Código:

   <melee id="7382" level="60" unproperly="1" event="script" value="Critical_hit.lua">  -- <---- un script en movements.xml
      <vocation id="4"/>
      <vocation id="8" showInDescription="0"/>
   </melee>

Obviamente el codigo que acabo de poner es de un arma, pero me refiero en movements

nefinoo


Miembro
@BUMP

nefinoo


Miembro
Refresh

Belerofonte


Administrador
Ten en cuenta que así en movements quitará las demás propiedades que le pueda dar al jugador, que tengas puestas en su asociado párrafo del Items.xml ;D

Servidor/Data/Movements/Movements.xml:
Código:
<movevent type="Equip" itemid="2656" slot="armor" event="script" value="vocMagiclvl.lua"/>
<movevent type="DeEquip" itemid="2656" slot="armor" event="script" value="vocMagiclvl.lua"/>

Servidor/Data/Movements/Scripts/... vocMagiclvl.lua:
Código:
 local c = {
   Effect = CONST_ME_LOSEENERGY, -- Término del Efecto Mágico que saldrá al equipárselo.
   StrMana = 213876, -- StorageKey que gustes.
   Voc = {
    --[Número de Vocación] = {plus = Mana expandido},
    [1] = {plus = 10},   [5] = {plus = 10}, -- Sorcerer & Master Sorcerer.
    [2] = {plus = 10},   [6] = {plus = 10}, -- Druid & Elder Druid.
    [3] = {plus = 5},    [7] = {plus = 5}, -- Paladin & Royal Paladin.
    [4] = {plus = 1},    [8] = {plus = 1}, -- Knight & Elite Knight.
   },
  }
function onEquip(cid, item, slot)
  local v = c.Voc[getPlayerVocation(cid)]
    if (getPlayerStorageValue(cid, c.StrMana) < 0) then
        setCreatureMaxMana(cid, getCreatureMaxMana(cid) + v.plus)
        doCreatureAddMana(cid, getCreatureMaxMana(cid) - getCreatureMana(cid))
        doSendMagicEffect(getPlayerPosition(cid), c.Effect)
        setPlayerStorageValue(cid, c.StrMana, v.plus)
    end
  return true
end
function onDeEquip(cid, item, slot)
    if (getPlayerStorageValue(cid, c.StrMana) > 0) then
        setCreatureMaxMana(cid, getCreatureMaxMana(cid) - getPlayerStorageValue(cid, c.StrMana))
        doCreatureAddMana(cid, getCreatureMaxMana(cid) - getCreatureMana(cid))
        setPlayerStorageValue(cid, c.StrMana, -1)
    end
  return true
end

local c = {
  Effect = CONST_ME_LOSEENERGY, -- Término del Efecto Mágico que saldrá al equipárselo.
  StrMana = 213876, -- StorageKey que gustes.
  Voc = {
   --[Número de Vocación] = {plus = Mana expandido},
   [1] = {plus = 10},   [5] = {plus = 10}, -- Sorcerer & Master Sorcerer.
   [2] = {plus = 10},   [6] = {plus = 10}, -- Druid & Elder Druid.
   [3] = {plus = 5},    [7] = {plus = 5}, -- Paladin & Royal Paladin.
   [4] = {plus = 1},    [8] = {plus = 1}, -- Knight & Elite Knight.
  },
 }



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#5 Mana Expandido el Vie Nov 06, 2015 5:31 pm

nefinoo


Miembro
Esa parte no la entendi, agregara los 10 puntos de mana, o sera de magic level?

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Esa parte no la entendi, agregara los 10 puntos de mana, o sera de magic level?
Pfff qué ida de olla xD
No sé, parece que se me fue la cabeza Genius.  ahora lo arreglo.



Última edición por Belerofonte el Miér Nov 18, 2015 9:37 pm, editado 3 veces



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

Sirakx


Moderador
Belerofonte D: :fail:

Ya lo hice, estoy super aburrido

creas un archivo lua en movements/script con el nombre de magicLevel.lua y dentro pones

Código:

local config = {
    [1] = {vocs = {1, 5}, ml = 5},--sorcerer
    [2] = {vocs = {2, 6}, ml = 4},--druid
    [3] = {vocs = {3, 7}, ml = 3},--paladin
    [4] = {vocs = {4, 8}, ml = 2},--knight
}

local mglvl = createConditionObject(CONDITION_ATTRIBUTES)
 setConditionParam(mglvl, CONDITION_PARAM_TICKS, -1)
 setConditionParam(mglvl, CONDITION_PARAM_BUFF, true)

function getVocation(cid)
    for i=1, #config do
        for j=1, #config[i].vocs do
            if getPlayerVocation(cid) == config[i].vocs[j] then
                return config[i]
            end
        end
    end
    return false
end

function onEquip(cid, item, slot)
    local v = getVocation(cid)

    if v then
    setConditionParam(mglvl, CONDITION_PARAM_STAT_MAGICLEVEL, v.ml)
        doAddCondition(cid, mglvl)
        doSendMagicEffect(getPlayerPosition(cid), 14)
    end
    return true
end

function onDeEquip(cid, item, slot)
   doRemoveCondition(cid, CONDITION_ATTRIBUTES)
    doSendMagicEffect(getPlayerPosition(cid), 13)
    return true
end

y en movements.xml pones

Código:

<movevent type="Equip" itemid="8923" slot="legs" event="script" value="magicLevel.lua"/>
<movevent type="DeEquip" itemid="8923" slot="legs" event="script" value="magicLevel.lua"/>

el item que te dara ml es el item 8923 pero lo puedes cambiar en donde dice itemid ahí arriba. En esta parte del script es donde puedes cambiar el magic level que se le otorga al player:

Código:

local config = {
    [1] = {vocs = {1, 5}, ml = 5},--sorcerer
    [2] = {vocs = {2, 6}, ml = 4},--druid
    [3] = {vocs = {3, 7}, ml = 3},--paladin
    [4] = {vocs = {4, 8}, ml = 2},--knight
}

no muevas nada mas que el ml pones la cantidad que quieres que se le agrege a su vocación correspondiente



[Tienes que estar registrado y conectado para ver esa imagen]
http://celesta-global.net/

#8 Gracias pero... el Vie Nov 06, 2015 10:26 pm

nefinoo


Miembro
Eso era para mi server 8.6, y abri uno 10.78 crees que funcione ahi?

#9 Re: (Resuelto) [Pedido Script] Movement en item el Vie Nov 06, 2015 11:19 pm

Sirakx


Moderador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Eso era para mi server 8.6, y abri uno 10.78 crees que funcione ahi?

no tengo idea pero pruebalo.



[Tienes que estar registrado y conectado para ver esa imagen]
http://celesta-global.net/

#10 Re: (Resuelto) [Pedido Script] Movement en item el Miér Nov 18, 2015 8:06 pm

nefinoo


Miembro
No me sube el magic level, no sirve, solo hace el efecto

[18/11/2015 19:06:32] [Error - MoveEvents Interface]
[18/11/2015 19:06:32] data/movements/scripts/Magic/Armor/armor1.lua:onEquip
[18/11/2015 19:06:32] Description:
[18/11/2015 19:06:32] (luaSetConditionParam) This function can only be used while loading the script.

#11 Re: (Resuelto) [Pedido Script] Movement en item el Miér Nov 18, 2015 9:06 pm

Belerofonte


Administrador
Spoiler:
[Tienes que estar registrado y conectado para ver este vínculo]
Código:
   setConditionParam(mglvl, CONDITION_PARAM_STAT_MAGICLEVEL, v.ml)
Aggh ¿Dentro de una función?



[Tienes que estar registrado y conectado para ver este vínculo] escribió:Ayudame con un script que te pedi hace mucho pero otro lo quiso arreglar pero sale error
Código:
 local c = {
    Effect = CONST_ME_LOSEENERGY, -- Término del Efecto Mágico que saldrá al ponérselo.
    Mages = 10,
    Paladin = 5,
    Knight = 1,
  }

  local condition = {}
    for i = 1, 3 do
        condition[i] = createConditionObject(CONDITION_ATTRIBUTES)
        setConditionParam(condition[i], CONDITION_PARAM_TICKS, -1)
    end
    setConditionParam(condition[1], CONDITION_PARAM_STAT_MAGICLEVEL, c.Mages)
    setConditionParam(condition[2], CONDITION_PARAM_STAT_MAGICLEVEL, c.Paladin)
    setConditionParam(condition[3], CONDITION_PARAM_STAT_MAGICLEVEL, c.Knight)

  local voc = {
    --[{Vocación, Promoción}] = {Nivel Mágico aumentado},
    [{1, 5}] = condition[1], -- Sorcerer & Master Sorcerer.
    [{2, 6}] = condition[1], -- Druid & Elder Druid.
    [{3, 7}] = condition[2], -- Paladin & Royal Paladin.
    [{4, 8}] = condition[3], -- Knight & Elite Knight.
  }

function onEquip(cid, item, slot)

    for k, v in pairs(voc) do
        if isInArray(k, getPlayerVocation(cid)) then
            doAddCondition(cid, v)
            doSendMagicEffect(getPlayerPosition(cid), c.Effect)

          break
        end
    end

  return true
end

function onDeEquip(cid, item, slot)

    if hasCondition(cid, CONDITION_ATTRIBUTES, 0, CONDITIONID_COMBAT) then
        doRemoveCondition(cid, CONDITION_ATTRIBUTES)
    end

  return true
end



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#12 Re: (Resuelto) [Pedido Script] Movement en item el Miér Nov 18, 2015 9:17 pm

nefinoo


Miembro
Puse 2 items con tu mismo script, y no se acumulan los magic levels, y al momento de quitarme alguno de los 2 items, se queda el ml del otro, por ejemplo puse 2 items que subieran 150ml cada 1 y cuando me pongo los 2 se queda en 150 el ml, y cuando me quito los 2 me queda el ml 150 :LOL!

#13 Re: (Resuelto) [Pedido Script] Movement en item el Miér Nov 18, 2015 9:24 pm

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Puse 2 items con tu mismo script, y no se acumulan los magic levels, y al momento de quitarme alguno de los 2 items, se queda el ml del otro, por ejemplo puse 2 items que subieran 150ml cada 1 y cuando me pongo los 2 se queda en 150 el ml, y cuando me quito los 2 me queda el ml 150 :LOL!

Ok...
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Un script de movement, a la cual se le pueda poner a un item magic level, dependiendo de la vocacion
... Entendí que pondrías un solo objeto que dé ml y no más objetos en el Set. Ok. Hallaré otra forma de hacerlo para más objetos acumulativos.



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#14 Re: (Resuelto) [Pedido Script] Movement en item el Miér Nov 18, 2015 9:28 pm

nefinoo


Miembro
Gracias ! para que te desaburras xD

#15 Re: (Resuelto) [Pedido Script] Movement en item el Jue Nov 19, 2015 11:17 am

Sirakx


Moderador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:No me sube el magic level, no sirve, solo hace el efecto

[18/11/2015 19:06:32] [Error - MoveEvents Interface]
[18/11/2015 19:06:32] data/movements/scripts/Magic/Armor/armor1.lua:onEquip
[18/11/2015 19:06:32] Description:
[18/11/2015 19:06:32] (luaSetConditionParam) This function can only be used while loading the script.

usa The OTX Server Version: (2.X.S - 2) - Codename: (Crying Damson) no se por que te da error, lo tengo en mi server y no me da ningún error, mejor usa esa version de otx que te dejé, en esa versión me deja usar el setConditionParam dentro de las funciones.



[Tienes que estar registrado y conectado para ver esa imagen]
http://celesta-global.net/

#16 Re: (Resuelto) [Pedido Script] Movement en item el Miér Mar 02, 2016 1:41 am

Krápula


Miembro
[Tienes que estar registrado y conectado para ver esa imagen]

Funciona Perfectamente

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .