BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Item storage

Item storage

#1 Item storage el Miér Ago 19, 2015 2:31 pm

naruto6


Miembro
Buenas, necesito un movement que tenga funciones onequip y ondeequip, uso TFS 1.1, estoy tratando de hacer una armadura que de 125% mas de exp, la unica forma que encuentro de hacer eso es agregando un storage que de eso en player.lua, entonces lo que necesito es que al equipar la armadura el player quede con el storage y al quitarsela logicamente pierda el storage, tengo el siguiente codigo  pero, no funciona me da error con la linea 2 y 3:(..

Código:
function onEquip(cid, item, itemEx, slot)
doSendMagicEffect(getPlayerPosition(cid), 51)
    player:getStorageValue(1235)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu experience Es De "..((2.25 - 1)*100).."% Mas!")
    return true
 end

function onDeEquip(cid, item, itemEx, slot)
    doSendMagicEffect(getPlayerPosition(cid), 65)
    player:setStorageValue(1235)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu Exp Regreso A La Normalidad")
    return true
end

Espero me puedan ayudar, de antemano muchas gracias y Saludos

#2 Re: Item storage el Jue Ago 20, 2015 8:04 am

ArcaniaOnline


Miembro
Funcionara?

Código:
function onEquip(cid, item, itemEx, slot)
   position:sendMagicEffect(getPlayerPosition(cid),51)
    player:getStorageValue(1235,1)
   player:sendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu experience Es De "..((2.25 - 1)*100).."% Mas!")
    return true
 end

function onDeEquip(cid, item, itemEx, slot)
   position:sendMagicEffect(getPlayerPosition(cid),65)
    player:setStorageValue(1235,-1)
   player:sendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu Exp Regreso A La Normalidad")
    return true
end

[Tienes que estar registrado y conectado para ver este vínculo]

#3 Re: Item storage el Jue Ago 20, 2015 9:23 am

naruto6


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Funcionara?

Código:
function onEquip(cid, item, itemEx, slot)
   position:sendMagicEffect(getPlayerPosition(cid),51)
    player:getStorageValue(1235,1)
   player:sendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu experience Es De "..((2.25 - 1)*100).."% Mas!")
    return true
 end

function onDeEquip(cid, item, itemEx, slot)
   position:sendMagicEffect(getPlayerPosition(cid),65)
    player:setStorageValue(1235,-1)
   player:sendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu Exp Regreso A La Normalidad")
    return true
end

[Tienes que estar registrado y conectado para ver este vínculo]

Man el tuyo me dio error en consola, solucione el error, el script quedo así

Código:
function onEquip(cid, item, slot)
    local player = Player(cid)
    player:getStorageValue(1235, 1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu experience Es De "..((2.25 - 1)*100).."% Mas!")
    return true
 end

function onDeEquip(cid, item, slot)
    local player = Player(cid)
    player:setStorageValue(1235, -1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu Exp Regreso A La Normalidad")
    return true
end

No da error, al ponerme la armadura me dice que tengo 125% mas de exp, al quitármela me dice que volvió a la normalidad pero, no me da el storage, la exp sigue siendo normal , tengo una poción de doble exp, también funciona dando un storage por 2 horas, solo que esta si queda funcionando por que es onuse

#4 Re: Item storage el Jue Ago 20, 2015 12:49 pm

ArcaniaOnline


Miembro
Código:
function onEquip(cid, item, slot)
   local rate = 2.25
    local player = Player(cid)
    player:getStorageValue(1235, 1)
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu experience Es De "..((rate - 1)*100).."% Mas!")
   doPlayerSetExperienceRate(cid, rate) -- esta es para tfs 0.3 no se cual es su parecida en tfs 1.1
    return true
 end

function onDeEquip(cid, item, slot)
    local player = Player(cid)
    player:setStorageValue(1235, -1)
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu Exp Regreso A La Normalidad")
   doPlayerSetExperienceRate(cid, 1.0)
    return true
end

No esta arreglado pero podría ser ese el problema =/ mira la linea que añadí doPlayerSetExperienceRate(cid,cantidad)


Esta es parecida pero si usamos el Get le dará una cantidad determinada de experiencia creo, usando un Set podríamos definir cuando obtendrá hasta que deje de ocurrir eso..
Aunque no soy experto en lua y podría funcionar simplemente el player->getExperience(x)

Código:
int LuaScriptInterface::luaPlayerGetExperience(lua_State* L)
{
   // player:getExperience()
   Player* player = getUserdata<Player>(L, 1);
   if (player) {
      lua_pushnumber(L, player->getExperience());
   } else {
      lua_pushnil(L);
   }
   return 1;
}


Este podría ser usando esa linea ( PERO LO DUDO !! ):

Código:
function onEquip(cid, item, slot)
   local rate = 2.25
    local player = Player(cid)
    player:getStorageValue(1235, 1)
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu experience Es De "..((rate - 1)*100).."% Mas!")
   player->getExperience(rate)
    return true
 end

function onDeEquip(cid, item, slot)
    local player = Player(cid)
    player:setStorageValue(1235, -1)
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu Exp Regreso A La Normalidad")
   player->getExperience(1.0)
    return true
end

Intenta postearme la potion o enviarla por pm y lo hacemos usando un OnUse y lo movemos al OnEquip

#5 Re: Item storage el Jue Ago 20, 2015 1:03 pm

naruto6


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] escribió:
Código:
function onEquip(cid, item, slot)
   local rate = 2.25
    local player = Player(cid)
    player:getStorageValue(1235, 1)
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu experience Es De "..((rate - 1)*100).."% Mas!")
   doPlayerSetExperienceRate(cid, rate) -- esta es para tfs 0.3 no se cual es su parecida en tfs 1.1
    return true
 end

function onDeEquip(cid, item, slot)
    local player = Player(cid)
    player:setStorageValue(1235, -1)
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu Exp Regreso A La Normalidad")
   doPlayerSetExperienceRate(cid, 1.0)
    return true
end

No esta arreglado pero podría ser ese el problema =/ mira la linea que añadí doPlayerSetExperienceRate(cid,cantidad)


Esta es parecida pero si usamos el Get le dará una cantidad determinada de experiencia creo, usando un Set podríamos definir cuando obtendrá hasta que deje de ocurrir eso..
Aunque no soy experto en lua y podría funcionar simplemente el player->getExperience(x)

Código:
int LuaScriptInterface::luaPlayerGetExperience(lua_State* L)
{
   // player:getExperience()
   Player* player = getUserdata<Player>(L, 1);
   if (player) {
      lua_pushnumber(L, player->getExperience());
   } else {
      lua_pushnil(L);
   }
   return 1;
}


Este podría ser usando esa linea ( PERO LO DUDO !! ):

Código:
function onEquip(cid, item, slot)
   local rate = 2.25
    local player = Player(cid)
    player:getStorageValue(1235, 1)
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu experience Es De "..((rate - 1)*100).."% Mas!")
   player->getExperience(rate)
    return true
 end

function onDeEquip(cid, item, slot)
    local player = Player(cid)
    player:setStorageValue(1235, -1)
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu Exp Regreso A La Normalidad")
   player->getExperience(1.0)
    return true
end

Intenta postearme la potion o enviarla por pm y lo hacemos usando un OnUse y lo movemos al OnEquip


Man me da un error en consola referente a player->getExperience(x), lo solucione dejándola así: player:getExperience pero, no me cambia la experiencia, por eso digo que hacer uq el item al equiparse lo me de el storage en ves de la exp, ya que en player.lua, uno configura para que ese storage te active la experiencia, por que en TFS 1.1 no he podido encontrar la función que de el rate de exp, el scrip quedo así pero, no da ni el storage ni la exp...

Código:
function onEquip(cid, item, slot)
  local rate = 2.25
    local player = Player(cid)
    player:getStorageValue(1235, 1)
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu experience Es De "..((rate - 1)*100).."% Mas!")
  player:getExperience(rate)
    return true
 end

function onDeEquip(cid, item, slot)
    local player = Player(cid)
    player:setStorageValue(1235, -1)
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora Tu Exp Regreso A La Normalidad")
  player:getExperience(1.0)
    return true
end

Igual muchas gracias por tu ayuda

#6 Re: Item storage el Vie Ago 21, 2015 8:53 am

naruto6


Miembro
@bump

#7 Re: Item storage el Sáb Ago 22, 2015 12:10 pm

naruto6


Miembro
@Bump

#8 Re: Item storage Hoy a las 12:48 am

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 .