Bienvenido a Open Games Community

Únete ahora para acceder a todas nuestras funciones. Una vez que te registres e inicies sesión, podrás crear temas, responder a hilos existentes, valorar la reputación de otros miembros y muchísimo más. Además, es rápido y totalmente gratuito; ¿a qué esperas?

RevScript Tibia Coins

Alex

Administrador
Dev
Registrado
1 Sep 2021
Mensajes
2.362
Puntuación de reacción
28.649
Puntos
707
Hola a todos,

Aqui les traigo el Revscript del Tibia Coin, que por defecto tiene la ID 24774 en el juego,
Al darle click derecho este ultimo añade 1 Tibia Coin a la cuenta, pueden modificar el value, local coins = 1 , por el numero que quieran.

El script va en data/actions/others

Código Lua:
local tibiaCoin = Action()

function tibiaCoin.onUse(player, item, fromPosition, target, toPosition, isHotkey)
local coins = 1 -- cantidad de tibia coins que dara
  db.query("UPDATE `accounts` SET `coins` = `coins` + '" .. coins .. "' WHERE `id` = '" .. player:getAccountId() .. "';")
  player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received "..coins.." Tibia Coin")
  item:remove(1)
  return true
end

tibiaCoin:id(24774)
tibiaCoin:register()
 

kurinino

Miembro
Registrado
10 Nov 2022
Mensajes
66
Puntuación de reacción
13
Puntos
168
Ubicación
Iquique, Chile
Hola a todos,

Aqui les traigo el Revscript del Tibia Coin, que por defecto tiene la ID 24774 en el juego,
Al darle click derecho este ultimo añade 1 Tibia Coin a la cuenta, pueden modificar el value, local coins = 1 , por el numero que quieran.

El script va en data/actions/others

Código:
local tibiaCoin = Action()

function tibiaCoin.onUse(player, item, fromPosition, target, toPosition, isHotkey)
local coins = 1 -- cantidad de tibia coins que dara
  db.query("UPDATE `accounts` SET `coins` = `coins` + '" .. coins .. "' WHERE `id` = '" .. player:getAccountId() .. "';")
  player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received "..coins.." Tibia Coin")
  item:remove(1)
  return true
end

tibiaCoin:id(24774)
tibiaCoin:register()
Hola Alex, estoy utilizando este código, pero le cambié los valores a 25. Ahora el problema, es que cuando tengo 1 solo tibia coin, y le hago click, me suma los 25 pero no elimina ese 1 tibia coin, como le puedo agregar un condicional que solo se pueda clickear si es que son 25 como mínimo?
 

kurinino

Miembro
Registrado
10 Nov 2022
Mensajes
66
Puntuación de reacción
13
Puntos
168
Ubicación
Iquique, Chile
Hola Alex, estoy utilizando este código, pero le cambié los valores a 25. Ahora el problema, es que cuando tengo 1 solo tibia coin, y le hago click, me suma los 25 pero no elimina ese 1 tibia coin, como le puedo agregar un condicional que solo se pueda clickear si es que son 25 como mínimo?
Intenté agregar un condicional como lo habia explicado anteriormente, pero no me resultó, adjunto imagenes, por si me puedes ayudar por favor.
 

Adjuntos

  • tibiaCoinLua.jpg
    tibiaCoinLua.jpg
    86,4 KB · Visitas: 20
  • errorConsola.jpg
    errorConsola.jpg
    48,6 KB · Visitas: 20

Alex

Administrador
Dev
Registrado
1 Sep 2021
Mensajes
2.362
Puntuación de reacción
28.649
Puntos
707
Intenté agregar un condicional como lo habia explicado anteriormente, pero no me resultó, adjunto imagenes, por si me puedes ayudar por favor.
Hola,
Indicas
if coins>= 25
Cuando indicas al principio un nombre hará la llamada y si te fijas por encima no hay ningún local coin, sino que por debajo.

Indica,
local coinsId = 24774
Después indicaras el item,
if player:getItemCount(coinsId) == 25 then
Con el == indicas cantidad justa,
Y al final indicar que diga si no los tiene , antes del end,
else Player:sendTextMessage("You dont have a stack of 25 tibia coins.)

Juntando a esto , puedes hacer casi lo que quieras con el script es la libertad, por ejemplo si quieres que únicamente los playeras que han hecho una mission particular puedan usar los tibia coins, o casi cualquier otra cosa.
 

kurinino

Miembro
Registrado
10 Nov 2022
Mensajes
66
Puntuación de reacción
13
Puntos
168
Ubicación
Iquique, Chile
Hola,
Indicas
if coins>= 25
Cuando indicas al principio un nombre hará la llamada y si te fijas por encima no hay ningún local coin, sino que por debajo.

Indica,
local coinsId = 24774
Después indicaras el item,
if player:getItemCount(coinsId) == 25 then
Con el == indicas cantidad justa,
Y al final indicar que diga si no los tiene , antes del end,
else Player:sendTextMessage("You dont have a stack of 25 tibia coins.)

Juntando a esto , puedes hacer casi lo que quieras con el script es la libertad, por ejemplo si quieres que únicamente los playeras que han hecho una mission particular puedan usar los tibia coins, o casi cualquier otra cosa.
Hola Alex, mira, probé modificar el código como dijiste, poniendo el "local coinsId = 24774" antes de la función y dentro de la función, pero de ninguna forma me funcionó :(, me podrías indicar que me falta por favor?. Te adjunto la imagen.
 

Adjuntos

  • luaTibiaCoins.jpg
    luaTibiaCoins.jpg
    86,9 KB · Visitas: 11

Alex

Administrador
Dev
Registrado
1 Sep 2021
Mensajes
2.362
Puntuación de reacción
28.649
Puntos
707
Hola Alex, mira, probé modificar el código como dijiste, poniendo el "local coinsId = 24774" antes de la función y dentro de la función, pero de ninguna forma me funcionó :(, me podrías indicar que me falta por favor?. Te adjunto la imagen.
Tienes razon, tras probarlo no se puede con este tipo de funcion.

Lo que yo te aconsejo de hacer, es utilizar el mismo script, con otra ID y solamente cambiar el local coins para el valor que quieras, 25/50/100...
Y al utilizar 1 item que habras puesto dará ese X coins que habrás puesto.
Puedes utilizar el mismo sprite del tibia coin , cambiándolo de color por ejemplo y luego subirlo en tu editor y agregar así un nuevo tibia coin, y cada color con una cantidad distinta.
Modificar de otra forma el script, como aumentar el remove, puedes crear un bug al separar X monedas y que sean infinitas de uso.
Recomiendo que hagas un nuevo script por cantidad.
 

kurinino

Miembro
Registrado
10 Nov 2022
Mensajes
66
Puntuación de reacción
13
Puntos
168
Ubicación
Iquique, Chile
Tienes razon, tras probarlo no se puede con este tipo de funcion.

Lo que yo te aconsejo de hacer, es utilizar el mismo script, con otra ID y solamente cambiar el local coins para el valor que quieras, 25/50/100...
Y al utilizar 1 item que habras puesto dará ese X coins que habrás puesto.
Puedes utilizar el mismo sprite del tibia coin , cambiándolo de color por ejemplo y luego subirlo en tu editor y agregar así un nuevo tibia coin, y cada color con una cantidad distinta.
Modificar de otra forma el script, como aumentar el remove, puedes crear un bug al separar X monedas y que sean infinitas de uso.
Recomiendo que hagas un nuevo script por cantidad.
Alex, tu amigo Gazia de Discord, me ayudó a crear el código, ahora si funciona de a 25 y te sale un error cuando tienes menos, tal como lo quería, lo comparto aquí por si alguien más lo necesita, muchas gracias 😁👍-
 

Adjuntos

  • tibiaCoinsFuncional.jpg
    tibiaCoinsFuncional.jpg
    88,6 KB · Visitas: 19

Alex

Administrador
Dev
Registrado
1 Sep 2021
Mensajes
2.362
Puntuación de reacción
28.649
Puntos
707
Alex, tu amigo Gazia de Discord, me ayudó a crear el código, ahora si funciona de a 25 y te sale un error cuando tienes menos, tal como lo quería, lo comparto aquí por si alguien más lo necesita, muchas gracias 😁👍-

Ah el famoso removeItem es verdad.

Puedes devolverlo funcional para cualquier forma en vez de que no funcione si no tiene 25, quizas quiere solo agregar 10 para comprar algo ?
Aqui tu codigo:

Código:
local tibiaCoin = Action()

function tibiaCoin.onUse(player, item, fromPosition, target, toPosition, isHotkey)
if player:removeItems(24774, 25) then
local coins = 1 -- cantidad de tibia coins que dara
  db.query("UPDATE `accounts` SET `coins` = `coins` + '" .. coins .. "' WHERE `id` = '" .. player:getAccountId() .. "';")
  player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received "..coins.." Tibia Coin")
else
player:sendCancelMessage("You dont have 25 Tibia Coins.")
player:getPosition():sendMagicEffect(CONST_ME_POFF)
  return true
end
end

tibiaCoin:id(24774)
tibiaCoin:register()

De la forma que puedes utilizar 1 o 25 Tibia coins, deberia de ser asi:
Código:
local tibiaCoin = Action()

function tibiaCoin.onUse(player, item, fromPosition, target, toPosition, isHotkey)
if player:removeItems(24774, 25) then
local coins = 25 -- cantidad de tibia coins que dara
local coinsTwo = 1
  db.query("UPDATE `accounts` SET `coins` = `coins` + '" .. coins .. "' WHERE `id` = '" .. player:getAccountId() .. "';")
  player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received "..coins.." Tibia Coin")
elseif player:removeItems(24774, 1) then
db.query("UPDATE `accounts` SET `coins` = `coins` + '" .. coinsTwo .. "' WHERE `id` = '" .. player:getAccountId() .. "';")
  player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received "..coinsTwo.." Tibia Coin")
else
player:sendCancelMessage("You dont enought Tibia Coins.")
player:getPosition():sendMagicEffect(CONST_ME_POFF)
  return true
end
end

tibiaCoin:id(24774)
tibiaCoin:register()

Saludos,
 

kurinino

Miembro
Registrado
10 Nov 2022
Mensajes
66
Puntuación de reacción
13
Puntos
168
Ubicación
Iquique, Chile
Ah el famoso removeItem es verdad.

Puedes devolverlo funcional para cualquier forma en vez de que no funcione si no tiene 25, quizas quiere solo agregar 10 para comprar algo ?
Aqui tu codigo:

Código:
local tibiaCoin = Action()

function tibiaCoin.onUse(player, item, fromPosition, target, toPosition, isHotkey)
if player:removeItems(24774, 25) then
local coins = 1 -- cantidad de tibia coins que dara
  db.query("UPDATE `accounts` SET `coins` = `coins` + '" .. coins .. "' WHERE `id` = '" .. player:getAccountId() .. "';")
  player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received "..coins.." Tibia Coin")
else
player:sendCancelMessage("You dont have 25 Tibia Coins.")
player:getPosition():sendMagicEffect(CONST_ME_POFF)
  return true
end
end

tibiaCoin:id(24774)
tibiaCoin:register()

De la forma que puedes utilizar 1 o 25 Tibia coins, deberia de ser asi:
Código:
local tibiaCoin = Action()

function tibiaCoin.onUse(player, item, fromPosition, target, toPosition, isHotkey)
if player:removeItems(24774, 25) then
local coins = 25 -- cantidad de tibia coins que dara
local coinsTwo = 1
  db.query("UPDATE `accounts` SET `coins` = `coins` + '" .. coins .. "' WHERE `id` = '" .. player:getAccountId() .. "';")
  player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received "..coins.." Tibia Coin")
elseif player:removeItems(24774, 1) then
db.query("UPDATE `accounts` SET `coins` = `coins` + '" .. coinsTwo .. "' WHERE `id` = '" .. player:getAccountId() .. "';")
  player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received "..coinsTwo.." Tibia Coin")
else
player:sendCancelMessage("You dont enought Tibia Coins.")
player:getPosition():sendMagicEffect(CONST_ME_POFF)
  return true
end
end

tibiaCoin:id(24774)
tibiaCoin:register()

Saludos,
Muchas gracias Alex por la ayuda como siempre ❤😁
 

zaabon

Miembro
Registrado
28 Jun 2024
Mensajes
1
Puntuación de reacción
0
Puntos
76
Ubicación
chile
hola, funciona para otserv 13.16?
 
shape1
shape2
shape3
shape4
shape5
shape6
Arriba