BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

(PEDIDO) Exp Ring

(PEDIDO) Exp Ring

#1 (PEDIDO) Exp Ring el Jue Jun 04, 2015 9:32 pm

lordhades92


Aprendiz
Hola gente de BT se que es un script que ya existe pero estaba investigando y no encontre el que me gustaria tener para implementar en mi OTS (proyecto aun en creacion)

Se preguntaran "ok que tiene de diferente este scrip de los demas?"
Bueno lo que les queria pedir es el popular Exp Ring peeeeeroo!!!
Al equiparte el "X" ring te de exp por 2 o por 3 (editable) a cambio de 1 punto de SOUL cada 10 segundos..
Si me entienden? lo tratare de explicar mejor osea quedaria algo asi...


Name: Exp Ring.. un anillo con "X" ID.
Efecto: Mas Exp.. al equiparlo ofrece doble exp.
Costo: SOUL... 1 punto de Soul cada 10 Segundos.

Al quedarse sin SOUL ya no ganas doble exp...

PD: el anillo no es necesario que sea por tiempo ni que se active sol hay q tenerlo equipado y mientras se tenga soul se tendra el bono de exp...

GRACIAS DE ANTEMANO
DOY +REP

#2 Re: (PEDIDO) Exp Ring el Vie Jun 05, 2015 7:08 am

ArcaniaOnline


Miembro
Check2Exp.lua
Código:
function onThink(pid, interval)
        for _, pid in ipairs(getPlayersOnline()) do
                if getPlayerStorageValue(pid,23331) == 1 then
            
                        if getPlayerSoul(pid) > 5 then -- aca indicas el minimo de soul para poder equiparte el ring
                                doPlayerAddSoul(pid, -1) -- 1 soul menos si quieres le dejas 5 soul menos cada x tiempo.
                        else
                            setPlayerStorageValue(pid, 23331, -1) -- el storage vacio o cuando te desequipes el ring.
            doCreatureSay(pid, "You have no enought Soul Points to Equip Ring. Try again with more than 6 Soul Points.", TALKTYPE_ORANGE_1)                     
                        end
                end

        end
return true
end

Código:
   <globalevent name="check" interval="200000" event="script" value="check2exp.lua"/>

El intervalo hay que cambiarlo aún, para que sea cada 1 segundo o 2 o 3 o 1 minuto tu elegirás :p

Movements tu ring sin el triple mensaje creeeeo intentalo :p, me voy a trabajar salu2
Código:
local config = {
 
      rate = 2.0, -- 2.0 = 2x faster than normal.
        un_equip = 2168, -- Item ID of the UN-Equipped ring.
        equip = 2205  -- Item ID of the Equipped ring.
 
}
 
function onDeEquip(cid, item, slot)
        doPlayerSetExperienceRate(cid, 1.0)
        doCreatureSay(cid, "Your extra experience rate has ended.", TALKTYPE_ORANGE_1)
        doTransformItem(item.uid, config.un_equip)
      setPlayerStorageValue(cid,23331, -1)
        return true
end
 
function onEquip(cid, item, slot)
        if getConfigValue("experienceStages") == "yes" then
          doPlayerSetExperienceRate(cid, getExperienceStage(getPlayerLevel(cid))*2)
        else
          doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*2)
        end
      doCreatureSay(cid, "Your extra experience rate has been activated! It is now: " .. config.rate .. "x doubled your former experience rate.", TALKTYPE_ORANGE_1)
      doTransformItem(item.uid, config.equip)
     setPlayerStorageValue(cid,23331, 1)
        doDecayItem(item.uid)
        return true
end

#3 Re: (PEDIDO) Exp Ring el Vie Jun 05, 2015 7:10 am

ArcaniaOnline


Miembro
PD: Igual copia el sscript del ring porque tiene el Storage para que se active el globalevents, y en esta linea tu tienes que jugar para ver el tiempo ....

interval="200000" event="script" value="check2exp.lua"/>

#4 Re: (PEDIDO) Exp Ring el Vie Jun 05, 2015 8:09 pm

lordhades92


Aprendiz
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Check2Exp.lua
Spoiler:

Código:
function onThink(pid, interval)
        for _, pid in ipairs(getPlayersOnline()) do
                if getPlayerStorageValue(pid,23331) == 1 then
            
                        if getPlayerSoul(pid) > 5 then -- aca indicas el minimo de soul para poder equiparte el ring
                                doPlayerAddSoul(pid, -1) -- 1 soul menos si quieres le dejas 5 soul menos cada x tiempo.
                        else
                             setPlayerStorageValue(pid, 23331, -1) -- el storage vacio o cuando te desequipes el ring.
            doCreatureSay(pid, "You have no enought Soul Points to Equip Ring. Try again with more than 6 Soul Points.", TALKTYPE_ORANGE_1)                     
                        end
                end

        end
return true
end

Código:
   <globalevent name="check" interval="200000" event="script" value="check2exp.lua"/>

El intervalo hay que cambiarlo aún, para que sea cada 1 segundo o 2 o 3 o 1 minuto tu elegirás :p

Movements tu ring sin el triple mensaje creeeeo intentalo :p, me voy a trabajar salu2
Código:
local config = {
 
      rate = 2.0, -- 2.0 = 2x faster than normal.
        un_equip = 2168, -- Item ID of the UN-Equipped ring.
        equip = 2205  -- Item ID of the Equipped ring.
 
}
 
function onDeEquip(cid, item, slot)
        doPlayerSetExperienceRate(cid, 1.0)
         doCreatureSay(cid, "Your extra experience rate has ended.", TALKTYPE_ORANGE_1)
        doTransformItem(item.uid, config.un_equip)
      setPlayerStorageValue(cid,23331, -1)
        return true
end
 
function onEquip(cid, item, slot)
        if getConfigValue("experienceStages") == "yes" then
          doPlayerSetExperienceRate(cid, getExperienceStage(getPlayerLevel(cid))*2)
        else
          doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*2)
        end
      doCreatureSay(cid, "Your extra experience rate has been activated! It is now: " .. config.rate .. "x doubled your former experience rate.", TALKTYPE_ORANGE_1)
      doTransformItem(item.uid, config.equip)
     setPlayerStorageValue(cid,23331, 1)
        doDecayItem(item.uid)
        return true
end

Gracias viejo lo pruebo en un rato! =D de verdad gracias hay esta tu +REP

#5 Re: (PEDIDO) Exp Ring el Sáb Jun 06, 2015 3:02 pm

ArcaniaOnline


Miembro
Aún te salen los 3 mensajes al equiparte el ring o se arreglo también?

#6 (PEDIDO) Exp Ring el Dom Jun 07, 2015 11:57 pm

God Storm


Novato
Muy buen Script, funciona al 100% REP+

#7 Re: (PEDIDO) Exp Ring el Lun Jun 08, 2015 1:23 am

God Storm


Novato
Encontre un error :/ al parecer si funciona todo lo de que le quite soul points y que de la exp x2 pero es infinito :s en ningun momento aunque tenga el soul minimo, no le quita el Ring del Slot, sigue puesto y por lo tanto no se acaba

No se si tenga que ver algo que yo tenga que poner en Movements.xml, ya que solo pasaste el Lua yo puse esto

Código:
<movevent type="Equip" itemid="8752" slot="ring" event="script" value="expring.lua"/>
<movevent type="DeEquip" itemid="8752" slot="ring" event="script" value="expring.lua"/>
<movevent type="Equip" itemid="5804" slot="ring" event="script" value="expring.lua"/>
<movevent type="DeEquip" itemid="5804" slot="ring" event="script" value="expring.lua"/>

y en Items.xml no se si tambien lleve eso de transformTo="xxxx" de atributos

#8 Re: (PEDIDO) Exp Ring el Lun Jun 08, 2015 7:20 am

ArcaniaOnline


Miembro
u.u, amigo sii va eso que añadiste en movements.xml yo no lo agrege porque deduje que ya lo tenia con el pedido que hizo y si no se te remueve el ring o la doble exp al gastarse tu soul, deberia ser problema del script ahora voy al trabajo dps lo reviso si la cagé ! :p Salu2

#9 Re: (PEDIDO) Exp Ring el Miér Jun 10, 2015 12:49 am

God Storm


Novato
[Tienes que estar registrado y conectado para ver este vínculo] escribió:u.u, amigo sii va eso que añadiste en movements.xml yo no lo agrege porque deduje que ya lo tenia con el pedido que hizo y si no se te remueve el ring o la doble exp al gastarse tu soul, deberia ser problema del script ahora voy al trabajo dps lo reviso si la cagé ! :p Salu2
Sigo esperando a ver si respondes xD

#10 Re: (PEDIDO) Exp Ring el Miér Jun 10, 2015 2:44 pm

ArcaniaOnline


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] escribió:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:u.u, amigo sii va eso que añadiste en movements.xml yo no lo agrege porque deduje que ya lo tenia con el pedido que hizo y si no se te remueve el ring o la doble exp al gastarse tu soul, deberia ser problema del script ahora voy al trabajo dps lo reviso si la cagé ! :p Salu2
Sigo esperando a ver si respondes xD

AMIGO !

( movements.xml )

Código:
<movevent type="Equip" itemid="2205" slot="ring" event="script" value="expring.lua"/>
<movevent type="DeEquip" itemid="2168" slot="ring" event="script" value="expring.lua"/>

expring.lua ( MOVEMENTS/SCRIPT/expring.lua )

Código:
local config = {
 
      rate = 2.0, -- multiplicador experiencia
        un_equip = 2168, -- Item desequipado ( RING)
        equip = 2205  -- Item equipado ( RING)
 
}
 
function onDeEquip(cid, item, slot)
if getPlayerStorageValue(cid,23331, -1) -- Al desequipartelo si no tienes el valor en PlayerStorageValue(cid,23331, 1) te lo desequipara supuetamente y ...
        doPlayerSetExperienceRate(cid, 1.0) -- te configurara la experiencia por 1
        doCreatureSay(cid, "Your extra experience rate has ended.", TALKTYPE_ORANGE_1) -- mensaje
        doTransformItem(item.uid, config.un_equip)
      setPlayerStorageValue(cid,23331, -1) -- lo puse por las dudaaaaaaaaas en caso que el globalevent no te añada este valor, igual si no te lo remueve el globalevent no servira esta parte.
     end
        return true
end
 
function onEquip(cid, item, slot)
        if getConfigValue("experienceStages") == "yes" then
          doPlayerSetExperienceRate(cid, getExperienceStage(getPlayerLevel(cid))*2) -- Si tienes activado experienceStages te lo multiplica por 2
        setPlayerStorageValue(cid,23331, 1) -- Te añade este valor en caso de tener experienceStages
        else
          doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*2) -- En caso que no tengas experienceStages activado te la multiplica por 2 igual.
        setPlayerStorageValue(cid,23331, 1)  -- Te añade este valor en caso de no tener experienceStages
        end
      doCreatureSay(cid, "Your extra experience rate has been activated! It is now: " .. config.rate .. "x doubled your former experience rate.", TALKTYPE_ORANGE_1) -- Mensaje que te esta dando doble experiencia.
      doTransformItem(item.uid, config.equip)
      doDecayItem(item.uid)
        return true
end

La parte del globalevent esta igual ....

Código:
function onThink(pid, interval)
        for _, pid in ipairs(getPlayersOnline()) do
                if getPlayerStorageValue(pid,23331) == 1 then
           
                        if getPlayerSoul(pid) > 5 then -- aca indicas el minimo de soul para poder equiparte el ring
                                doPlayerAddSoul(pid, -1) -- 1 soul menos si quieres le dejas 5 soul menos cada x tiempo.
                        else
                            setPlayerStorageValue(pid, 23331, -1) -- si no te puede quitar mas soul entonces te remueve el valor
            doCreatureSay(pid, "You have no enought Soul Points to Equip Ring. Try again with more than 6 Soul Points.", TALKTYPE_ORANGE_1)                     
                        end
                end

        end
return true
end

Te funciona? disculpa que no lo pruebe yo mismo pero hace muuuucho no abro el server que tengo para probar algo =/

#11 Re: (PEDIDO) Exp Ring el Miér Jun 10, 2015 3:16 pm

God Storm


Novato
[Tienes que estar registrado y conectado para ver este vínculo] escribió:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:u.u, amigo sii va eso que añadiste en movements.xml yo no lo agrege porque deduje que ya lo tenia con el pedido que hizo y si no se te remueve el ring o la doble exp al gastarse tu soul, deberia ser problema del script ahora voy al trabajo dps lo reviso si la cagé ! :p Salu2
Sigo esperando a ver si respondes xD

AMIGO !

( movements.xml )

Código:
<movevent type="Equip" itemid="2205" slot="ring" event="script" value="expring.lua"/>
<movevent type="DeEquip" itemid="2168" slot="ring" event="script" value="expring.lua"/>

expring.lua ( MOVEMENTS/SCRIPT/expring.lua )

Código:
local config = {
 
      rate = 2.0, -- multiplicador experiencia
        un_equip = 2168, -- Item desequipado ( RING)
        equip = 2205  -- Item equipado ( RING)
 
}
 
function onDeEquip(cid, item, slot)
if getPlayerStorageValue(cid,23331, -1) -- Al desequipartelo si no tienes el valor en PlayerStorageValue(cid,23331, 1) te lo desequipara supuetamente y ...
        doPlayerSetExperienceRate(cid, 1.0) -- te configurara la experiencia por 1
        doCreatureSay(cid, "Your extra experience rate has ended.", TALKTYPE_ORANGE_1) -- mensaje
        doTransformItem(item.uid, config.un_equip)
      setPlayerStorageValue(cid,23331, -1) -- lo puse por las dudaaaaaaaaas en caso que el globalevent no te añada este valor, igual si no te lo remueve el globalevent no servira esta parte.
     end
        return true
end
 
function onEquip(cid, item, slot)
        if getConfigValue("experienceStages") == "yes" then
          doPlayerSetExperienceRate(cid, getExperienceStage(getPlayerLevel(cid))*2) -- Si tienes activado experienceStages te lo multiplica por 2
        setPlayerStorageValue(cid,23331, 1) -- Te añade este valor en caso de tener experienceStages
        else
          doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*2) -- En caso que no tengas experienceStages activado te la multiplica por 2 igual.
        setPlayerStorageValue(cid,23331, 1)  -- Te añade este valor en caso de no tener experienceStages
        end
      doCreatureSay(cid, "Your extra experience rate has been activated! It is now: " .. config.rate .. "x doubled your former experience rate.", TALKTYPE_ORANGE_1) -- Mensaje que te esta dando doble experiencia.
      doTransformItem(item.uid, config.equip)
      doDecayItem(item.uid)
        return true
end

La parte del globalevent esta igual ....

Código:
function onThink(pid, interval)
        for _, pid in ipairs(getPlayersOnline()) do
                if getPlayerStorageValue(pid,23331) == 1 then
           
                        if getPlayerSoul(pid) > 5 then -- aca indicas el minimo de soul para poder equiparte el ring
                                doPlayerAddSoul(pid, -1) -- 1 soul menos si quieres le dejas 5 soul menos cada x tiempo.
                        else
                            setPlayerStorageValue(pid, 23331, -1) -- si no te puede quitar mas soul entonces te remueve el valor
            doCreatureSay(pid, "You have no enought Soul Points to Equip Ring. Try again with more than 6 Soul Points.", TALKTYPE_ORANGE_1)                     
                        end
                end

        end
return true
end

Te funciona? disculpa que no lo pruebe yo mismo pero hace muuuucho no abro el server que tengo para probar algo =/
Me sale el siguiente error:
[10/06/2015 14:41:22 [Error - LuaScriptInterface::loadFile] data/movements/scripts/expring.lua:11: 'then' expected near 'doPlayerSetExperienceRate'
[10/06/2015 14:41:22] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/expring.lua)
[10/06/2015 14:41:22] data/movements/scripts/expring.lua:11: 'then' expected near 'doPlayerSetExperienceRate'

#12 Re: (PEDIDO) Exp Ring el Jue Jun 11, 2015 12:26 pm

ArcaniaOnline


Miembro
Código:
local config = {
 
      rate = 2.0, -- multiplicador experiencia
        un_equip = 2168, -- Item desequipado ( RING)
        equip = 2205  -- Item equipado ( RING)
 
}
 
function onDeEquip(cid, item, slot)
   queststatus = getPlayerStorageValue(cid,23331)
      if queststatus == -1 or queststatus == 0 then -- Al desequipartelo si no tienes el valor en PlayerStorageValue(cid,23331, 1) te lo desequipara supuetamente y ...
        doPlayerSetExperienceRate(cid, 1.0) -- te configurara la experiencia por 1
        doCreatureSay(cid, "Your extra experience rate has ended.", TALKTYPE_ORANGE_1) -- mensaje
        doTransformItem(item.uid, config.un_equip)
      setPlayerStorageValue(cid,23331, -1) -- lo puse por las dudaaaaaaaaas en caso que el globalevent no te añada este valor, igual si no te lo remueve el globalevent no servira esta parte.
     end
        return true
end
 
function onEquip(cid, item, slot)
        if getConfigValue("experienceStages") == "yes" then
          doPlayerSetExperienceRate(cid, getExperienceStage(getPlayerLevel(cid))*2) -- Si tienes activado experienceStages te lo multiplica por 2
        setPlayerStorageValue(cid,23331, 1) -- Te añade este valor en caso de tener experienceStages
        else
          doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*2) -- En caso que no tengas experienceStages activado te la multiplica por 2 igual.
        setPlayerStorageValue(cid,23331, 1)  -- Te añade este valor en caso de no tener experienceStages
        end
      doCreatureSay(cid, "Your extra experience rate has been activated! It is now: " .. config.rate .. "x doubled your former experience rate.", TALKTYPE_ORANGE_1) -- Mensaje que te esta dando doble experiencia.
      doTransformItem(item.uid, config.equip)
      doDecayItem(item.uid)
        return true
end

Ahí se debió haber eliminado el error u.u

#13 Re: (PEDIDO) Exp Ring Hoy a las 5:48 pm

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 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 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 .