BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Action pedido

Action pedido

#1 Action pedido el Sáb Abr 26, 2014 9:26 am

Amy Azzkaban


Miembro
Hola! Me pueden ayudar con un pequeño script? Lo que necesito es que al darle click a un cofre, gane premium points y tengo lo siguiente:

Sheenita escribió:/libs/50-functions/

Código:
function doPlayerAddPremiumPoints(cid, points)
return db.executeQuery("UPDATE `accounts` SET `premium_points` = `premium_points` + " .. points .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
end

Uso:
Código:
doPlayerAddPremiumPoints(cid, cantidad)

Esa es la función necesaria para el script.
Me ayudan?
Gracias.

#2 Re: Action pedido el Sáb Abr 26, 2014 9:38 am

Elexonic


Miembro
Código:

function onUse(cid, item, fromPosition, itemEx, toPosition)

if(item.actionid == 63539) then
      doPlayerAddPremiumPoints(cid, 5)
   end
   
return true
end


edit: Lo suyo seria ponerle un storage..[mirate otros script cualquiera..] para qeu solo le puedan dar una vez.. sino seria infinito tal y como te lo puse.

#3 Re: Action pedido el Sáb Abr 26, 2014 10:01 am

DavidR


Moderador
Código:
local pt = 5 --puntos premium que dará
local sto = 12541 --storage
function onUse(cid, item)
     if getPlayerStorageValue(cid, sto) == -1 then
      doPlayerAddPremiumPoints(cid, pt)
      setPlayerStorageValue(cid, sto, 1)
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Congratulations. You have obtained "..pt.." premium "..(pt = 1 and "point" or "points")..".")
   else
      doPlayerSendCancel(cid, "You already used this chest.")
   end
return true
end
Así...?

http://www.blacktibia.org/

#4 Re: Action pedido el Sáb Abr 26, 2014 10:05 am

Amy Azzkaban


Miembro
Muchas gracias Elexonic y DavidR, ambos scripts me sirven, El de DavidR para las quest y el de Elexonic para mis tester players. Muchas gracias y una duda, cómo sería para agregarle el animatedtext con la cantidad de puntos ganados en color celeste?

#5 Re: Action pedido el Sáb Abr 26, 2014 12:05 pm

Dantarrix


Miembro
El de Elexonic lo puedes dejar así si es solo para testear:
Código:

function onUse(cid, item, fromPosition, itemEx, toPosition)

      doPlayerAddPremiumPoints(cid, 5)
      doSendAnimatedText(getPlayerPos(cid), "5 Premium Points!", math.random(1, 255))
       
return true
end

Eso con el Animated Text incluído. Recuerda que es una deprecated function.

Si lo quieres añadir en el de DavidR;

Código:

local pt = 5 --puntos premium que dará
local sto = 12541 --storage
function onUse(cid, item)
    if getPlayerStorageValue(cid, sto) == -1 then
      doPlayerAddPremiumPoints(cid, pt)
      setPlayerStorageValue(cid, sto, 1)
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Congratulations. You have obtained "..pt.." premium "..(pt = 1 and "point" or "points")..".")
doSendAnimatedText(getPlayerPos(cid), pt.." Premium Points!", math.random(1, 255))
  else
      doPlayerSendCancel(cid, "You already used this chest.")
  end
return true
end

#6 Re: Action pedido el Lun Abr 28, 2014 10:03 am

Amy Azzkaban


Miembro
Muchas gracias, y tengo otro pedido por si tienen tiempo y me ayuda. Es basado en la misma función, pero que al llegar a ciertos niveles me regalen 50 premiums points, configurable. Es como el advance reward, pero que entregue premium points.
Me ayudan?

#7 Re: Action pedido el Lun Abr 28, 2014 3:07 pm

DavidR


Moderador
Así?
Código:
function onAdvance(cid, skill, oldLevel, newLevel)
local status = 3500 --storage
local prize = {
   --[Nivel] = {pt=CantidadDePuntos, storage=status+n}
   [50] = {pt=10, storage=status}, --Id del item - cantidad - storageValue
   [75] = {pt=15, storage=status+1},
   [100] = {pt=15, storage=status+2},
   [150] = {pt=15, storage=status+3},
   [200] = {pt=20, storage=status+4},
}

   if skill == SKILL__LEVEL then
      if prize[newLevel] and getPlayerStorageValue(cid, prize[newLevel].storage) == -1 then
         setPlayerStorageValue(cid, prize[newLevel].storage, 1)
         doPlayerAddPremiumPoints(cid, prize[newLevel].pt)
         doSendAnimatedText(getPlayerPos(cid), "+"..prize[newLevel].pt.." Premium Points!", math.random(1, 255))
         doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have reached lvl "..getPlayerLevel(cid).." and you have received "..prize[newLevel].pt.." premium points!")
      end
   end
return true
end

http://www.blacktibia.org/

#8 Re: Action pedido Hoy a las 1:40 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 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 .