RevScript Tibia Coins

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
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
LV
21
 
Awards
19
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
LV
21
 
Awards
19
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: 16
  • errorConsola.jpg
    errorConsola.jpg
    48,6 KB · Visitas: 16

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
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
LV
21
 
Awards
19
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: 7

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
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
LV
21
 
Awards
19
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: 9

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
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
LV
21
 
Awards
19
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 ❤😁
 
Arriba