Soporte ✅fusion de dos scripts no da error pero cuando pasa al otro no sale el nuevo uid para enlazarlo con el otro....

neowtwo

Miembro
LV
19
 
Awards
18
el primer script es desde un item crear un boss, desaparezca el item, se vuelva a crear en un tiempo con una id:

  1. local config = {
  2. targetId = 8615, -- Item ID que vas a usar y va a desaparecer.
  3. bossName = 'Horadron', -- boss name
  4. newItemUID = 55545, -- UniqueID del objeto que se creará despues de los 20 segundos
  5. keyPlayerPosition = Position(1910, 515, 7), -- posicion del player aunque no se si sea usable
  6. bossPosition = Position(1906, 512, 7), -- Boss Position
  7. }

  8. local itemPos = Position(1910, 514, 7)

  9. local bosskeyes = Action()

  10. function bosskeyes.onUse(player, item, fromPosition, target, toPosition, isHotkey)
  11. local tmpConfig = config
  12. if not tmpConfig then
  13. return true
  14. end
  15. if itemid == tmpConfig.targetId then
  16. return true
  17. end
  18. local monster = Game.createMonster(tmpConfig.bossName, tmpConfig.bossPosition)
  19. if not monster then
  20. return true
  21. end
  22. -- Send message
  23. player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Cuidado! un Boss ha sido convocado!')
  24. item:remove()
  25. toPosition:sendMagicEffect(CONST_ME_POFF)
  26. addEvent(function()
  27. Game.createItem(8615, 1, itemPos)
  28. item:setAttribute(ITEM_ATTRIBUTE_UNIQUEID, tmpConfig.newItemUID)
  29. end, 20000)
  30. return true
  31. end

  32. bosskeyes:uid(55546) -- unique id que le pondras al objeto en el remeres
  33. bosskeyes:register()

el otro es el nuevo id que lo que hace es teletransportarte a tu templo y al poco tiempo se crea un item con la unique del primer script :

  1. -- Script for items that teleport when giving use
  2. -- Add a new item in the action_unique table at the correct range
  3. local config = {
  4. newItemUID = 55546, -- UniqueID del objeto que se creará despues de los 20 segundos
  5. targetId = 8615, -- Item ID que vas a usar y va a desaparecer.
  6. }
  7. local itemPos = Position(1910, 514, 7)
  8. local telbosskeyes = Action()

  9. function telbosskeyes.onUse(player, item, fromPosition, target, toPosition, isHotkey)
  10. local config = config
  11. if config then
  12. end
  13. local setting = TeleportItemUnique[item.uid]
  14. if setting then
  15. player:teleportTo(setting.destination)
  16. player:getPosition():sendMagicEffect(setting.effect)
  17. addEvent(function()
  18. local item = Game.createItem(8615, 1, itemPos)
  19. item:setAttribute(ITEM_ATTRIBUTE_UNIQUEID, config.newItemUID)
  20. end, 20000)
  21. end
  22. if itemid == tmpConfig.targetId then
  23. return true
  24. end
  25. for uniqueRange = 55545, 20000 do
  26. telbosskeyes:uid(uniqueRange)
  27. end
  28. return true
  29. end


  30. telbosskeyes:register()
 
Solución
Te funciona ?
Cuál fue entonces el error ?
ahora si funciona me ayudo Maya de tibiaface


  1. local config = {
  2. newItemUID = 55545, -- UniqueID del objeto que se creará despues de los 20 segundos
  3. pos = {x = 1910, y = 510, z = 7},
  4. removeItem = true -- remover item ao usar
  5. }


  6. local itemPos = Position(1910, 514, 7)
  7. local telbosskeyes = Action()

  8. function telbosskeyes.onUse(player, item, fromPosition, target, toPosition, isHotkey)




  9. if config.removeItem then
  10. item:remove(1)
  11. end
  12. player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED)
  13. player:teleportTo(config.pos)
  14. ...

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
el primer script es desde un item crear un boss, desaparezca el item, se vuelva a crear en un tiempo con una id:



el otro es el nuevo id que lo que hace es teletransportarte a tu templo y al poco tiempo se crea un item con la unique del primer script :
Hola,

estoy en el mobil, pero lo poco que veo el segundo script hay algo que no cuadra.

Dice settings.effect por una parte, lo que significa que llama a "local settings = { effect = EFFECTO NUMERO }", eso no lo tienes,
Otra, dice player:teleportTo(setting.destination) igual, settings = position no esta , por el cual no puede hacer TP.
Más abajo dice: if itemid == tmpConfig.targetId Aqui otro error, if itemid , llamas a local itemid = , no esta, o bien config.itemid, si esta dentro de config = itemid = 1111, destination = x= 1111, y= 11111, z= 1, por ejemplo.
Después dice si itemId == Es igual a tmpConfig.targetId, tmpConfig no existe, no hay ningún variable, por el cual seria config.targetId = ahi llama al 8615.

Lo que entendi esque el segundo script es copiado del primero, pero algunas cosas borras y algunas otras inutiles, como local tmpConfig = config,
porqué crear una variable que llama a otra variable, directamente llamar a config.itemId, es como si harias esto:

Código:
config = {
    itemId = 2111
},

local tmpConfig = config
local 1tmpConfig = tmpConfig
local 2tmpConfig = 1tmpConfig
local 3tmpConfig = 2tmpConfig

Llamas cada vez al anterior para finalmente llegar al config = 2111.
En el primer script if itemId , igual no sabe en donde llama el itemId no sabe donde buscarlo,

No se mucho de las funciones dichas "for", pero creo que esto, no es como deberia de ser, no seguro:
Código:
for uniqueRange = 55545, 20000 do
telbosskeyes:uid(uniqueRange)
end

Si usas ( Visual Studio Code ) con extensión lua ,veras los errores en los scripts, se marcan amarillo / gris si no existen / rojo si error... y el amarillo cuando no llama a nada o no corresponde.
Ahi for uniqueRange = 55545, 20000 do,
yo probaria
Código:
local uniqueRange = 55545
local uniqueRangeSec = 20000

if uniqueRange and UniqueRangeSec then
- darle la unique al itemId
end

Pero entiendo que el script lo registra antes:
Código:
addEvent(function()
local item = Game.createItem(8615, 1, itemPos)
item:setAttribute(ITEM_ATTRIBUTE_UNIQUEID, config.newItemUID)
end, 20000)
end
por el cual no entiendo bien esa función for ahí.
 

neowtwo

Miembro
LV
19
 
Awards
18
Hola,

estoy en el mobil, pero lo poco que veo el segundo script hay algo que no cuadra.

Dice settings.effect por una parte, lo que significa que llama a "local settings = { effect = EFFECTO NUMERO }", eso no lo tienes,
Otra, dice player:teleportTo(setting.destination) igual, settings = position no esta , por el cual no puede hacer TP.
Más abajo dice: if itemid == tmpConfig.targetId Aqui otro error, if itemid , llamas a local itemid = , no esta, o bien config.itemid, si esta dentro de config = itemid = 1111, destination = x= 1111, y= 11111, z= 1, por ejemplo.
Después dice si itemId == Es igual a tmpConfig.targetId, tmpConfig no existe, no hay ningún variable, por el cual seria config.targetId = ahi llama al 8615.

Lo que entendi esque el segundo script es copiado del primero, pero algunas cosas borras y algunas otras inutiles, como local tmpConfig = config,
porqué crear una variable que llama a otra variable, directamente llamar a config.itemId, es como si harias esto:

Código:
config = {
    itemId = 2111
},

local tmpConfig = config
local 1tmpConfig = tmpConfig
local 2tmpConfig = 1tmpConfig
local 3tmpConfig = 2tmpConfig

Llamas cada vez al anterior para finalmente llegar al config = 2111.
En el primer script if itemId , igual no sabe en donde llama el itemId no sabe donde buscarlo,

No se mucho de las funciones dichas "for", pero creo que esto, no es como deberia de ser, no seguro:
Código:
for uniqueRange = 55545, 20000 do
telbosskeyes:uid(uniqueRange)
end

Si usas ( Visual Studio Code ) con extensión lua ,veras los errores en los scripts, se marcan amarillo / gris si no existen / rojo si error... y el amarillo cuando no llama a nada o no corresponde.
Ahi for uniqueRange = 55545, 20000 do,
yo probaria
Código:
local uniqueRange = 55545
local uniqueRangeSec = 20000

if uniqueRange and UniqueRangeSec then
- darle la unique al itemId
end

Pero entiendo que el script lo registra antes:
Código:
addEvent(function()
local item = Game.createItem(8615, 1, itemPos)
item:setAttribute(ITEM_ATTRIBUTE_UNIQUEID, config.newItemUID)
end, 20000)
end
por el cual no entiendo bien esa función for ahí.
gracias Alex, la cosa que llevo todo el dia pensando que el telepot item lo saque de un ejemplo dentro de una de las carpetas del juego e imagino que es como un ejemplo y no tiene los parametros establecidos, mirare de configurarlo y lo subire cuando este terminado... gracias por la aclaracion!!! La cabeza me ha hecho pummm ( ya esta aqui la guerra) mañana lo intentare configurar. si me pongo ahora se que no duermo....
 

neowtwo

Miembro
LV
19
 
Awards
18
Hola,

estoy en el mobil, pero lo poco que veo el segundo script hay algo que no cuadra.

Dice settings.effect por una parte, lo que significa que llama a "local settings = { effect = EFFECTO NUMERO }", eso no lo tienes,
Otra, dice player:teleportTo(setting.destination) igual, settings = position no esta , por el cual no puede hacer TP.
Más abajo dice: if itemid == tmpConfig.targetId Aqui otro error, if itemid , llamas a local itemid = , no esta, o bien config.itemid, si esta dentro de config = itemid = 1111, destination = x= 1111, y= 11111, z= 1, por ejemplo.
Después dice si itemId == Es igual a tmpConfig.targetId, tmpConfig no existe, no hay ningún variable, por el cual seria config.targetId = ahi llama al 8615.

Lo que entendi esque el segundo script es copiado del primero, pero algunas cosas borras y algunas otras inutiles, como local tmpConfig = config,
porqué crear una variable que llama a otra variable, directamente llamar a config.itemId, es como si harias esto:

Código:
config = {
    itemId = 2111
},

local tmpConfig = config
local 1tmpConfig = tmpConfig
local 2tmpConfig = 1tmpConfig
local 3tmpConfig = 2tmpConfig

Llamas cada vez al anterior para finalmente llegar al config = 2111.
En el primer script if itemId , igual no sabe en donde llama el itemId no sabe donde buscarlo,

No se mucho de las funciones dichas "for", pero creo que esto, no es como deberia de ser, no seguro:
Código:
for uniqueRange = 55545, 20000 do
telbosskeyes:uid(uniqueRange)
end

Si usas ( Visual Studio Code ) con extensión lua ,veras los errores en los scripts, se marcan amarillo / gris si no existen / rojo si error... y el amarillo cuando no llama a nada o no corresponde.
Ahi for uniqueRange = 55545, 20000 do,
yo probaria
Código:
local uniqueRange = 55545
local uniqueRangeSec = 20000

if uniqueRange and UniqueRangeSec then
- darle la unique al itemId
end

Pero entiendo que el script lo registra antes:
Código:
addEvent(function()
local item = Game.createItem(8615, 1, itemPos)
item:setAttribute(ITEM_ATTRIBUTE_UNIQUEID, config.newItemUID)
end, 20000)
end
por el cual no entiendo bien esa función for ahí.

Hola Alex, acabó así, pero no sé porque aún no se teletransporta, si aparece la uid pero no hace la funcion... ;(

local config = {
newItemUID = 55545, -- UniqueID del objeto que se creará despues de los 20 segundos
playerPos = {x=1906, y=510, z=7},
targetId = 8615 -- Item ID que vas a usar y va a desaparecer.

}

local itemPos = Position(1910, 514, 7)
local telbosskeyes = Action()

function telbosskeyes.onUse(player, item, frompos, item2, topos)
if itemid == config.targetId then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Has sido expulsado!')
RemoveItem(8615, 1, itemPos)
player:teleportTo(config.playerPos)
addEvent(function()
local item = Game.createItem(8615, 1, itemPos)
item:setAttribute(ITEM_ATTRIBUTE_UNIQUEID, config.newItemUID)
end, 20000)
end
return true
end

telbosskeyes:uid(55546)
telbosskeyes:register()
 

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
Hola Alex, acabó así, pero no sé porque aún no se teletransporta, si aparece la uid pero no hace la funcion... ;(
Intentaré mirarlo mañana, si puedo.

Item2, para que es en la función() ?
Quitalo, el removeitem, reemplazalo por item:remove(1) , es más sencillo.

El player:téléport() has probado sin el To?, He tenido un error similar con el target:transformTo(), y había que quitar el To, únicamente.
 

neowtwo

Miembro
LV
19
 
Awards
18
Te funciona ?
Cuál fue entonces el error ?
ahora si funciona me ayudo Maya de tibiaface


  1. local config = {
  2. newItemUID = 55545, -- UniqueID del objeto que se creará despues de los 20 segundos
  3. pos = {x = 1910, y = 510, z = 7},
  4. removeItem = true -- remover item ao usar
  5. }


  6. local itemPos = Position(1910, 514, 7)
  7. local telbosskeyes = Action()

  8. function telbosskeyes.onUse(player, item, fromPosition, target, toPosition, isHotkey)




  9. if config.removeItem then
  10. item:remove(1)
  11. end
  12. player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED)
  13. player:teleportTo(config.pos)
  14. player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Has sido expulsado!')
  15. addEvent(function()
  16. local item = Game.createItem(8615, 1, itemPos)
  17. item:setAttribute(ITEM_ATTRIBUTE_UNIQUEID, config.newItemUID)
  18. end, 20000)
  19. return true
  20. end

  21. telbosskeyes:uid(55546)
  22. telbosskeyes:register()
 
Arriba