OTHispano
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Ir abajo
avatar
danipopeye
Miembro
Mensajes Mensajes : 11

Crear cofre que dé varios objetos Empty Crear cofre que dé varios objetos

Sáb Mayo 26, 2012 11:14 am
Hola,

Soy Yanger, me dijeron que aquí me ayudarían pues aquí estoy.

Mi problema es que en mi OT cuando pongo el firstitems los objetos aparecen en el suelo al conectar-se al personaje, y no es problema ni de cap, ni nada de eso. Por lo tanto he decidido crear un chest que te los dé pero no sé como hacerlo desde el Remeres Map editor, por favor, ayuda!
Falcon
Falcon
Administrador
Mensajes Mensajes : 350
http://www.othispano.net

Crear cofre que dé varios objetos Empty Re: Crear cofre que dé varios objetos

Sáb Mayo 26, 2012 11:20 am
Puedes usar este script:
Código:
local config = {
   [ACTION_ID] = {
      premiumOnly = false,
      storage = 15150,
      level = 20,
      t = {
         [{1, 5}] = {
            {ITEM_ID, COUNT}, {ITEM_ID, COUNT}
         },
         [{2, 6}] = {
            {ITEM_ID, COUNT}, {ITEM_ID, COUNT}
         },
         [{3, 7}] = {
            {ITEM_ID, COUNT}, {ITEM_ID, COUNT}
         },
         [{4, 8}] = {
            {ITEM_ID, COUNT}, {ITEM_ID, COUNT}
         }
      }
   }
}
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
   local v = config[item.actionid]
 
   if(v.premiumOnly) then
      if(not isPremium(cid)) then
         doPlayerSendCancel(cid, "Sorry, you are not a Premium member.")
         return true
      end
   end
 
   if(getCreatureStorage(cid, v.storage) > 0) then
      doPlayerSendCancel(cid, "The " .. getItemName(item.uid) .. " is empty.")
      return true
   end
 
   if(getPlayerLevel(cid) < v.level) then
      doPlayerSendCancel(cid, "Sorry, not possible.")
      return true
   end
 
   for voc, k in pairs(v.t) do
      if(isInArray(voc, getPlayerVocation(cid))) then
         for i = 1, #k do
            local id = doCreateItemEx(k[i][1], k[i][2] or 1)
            if(doPlayerAddItemEx(cid, id) ~= RETURNVALUE_NOERROR) then
               return doPlayerSendCancel(cid, #k == 1 and "You cannot carry this item." or "You cannot carry these items."), false
            end
         end
 
         doCreatureSetStorage(cid, v.storage, 1)
 
         local msg = "You have found"
         if #k > 0 then
            for p = 1, #k do
               msg = msg .. " " .. k[p][2] .. " " .. (#k == 1 and "" .. getItemInfo(k[p][1]).name .. "" or "" .. getItemInfo(k[p][1]).plural .. "") .. " "
            end
         end
 
         doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, msg)
         doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_BLUE)
      end
   end
   return true
end
Solo el itemID, Y Count;
Código:
{ITEM_ID, COUNT}, {ITEM_ID, COUNT}
Segun su vocacion..
1,5 < sorcerer y master sorcerer.
2,6 < druid y elder druid.
3,7 4,8
Puedes agregar mas items,
Código:
{ITEM_ID, COUNT}, {ITEM_ID, COUNT}, {ITEM_ID, COUNT}, {ITEM_ID, COUNT}

Etc.
Y Le pondrias el actionID, A el chest.
Código:
<action actionid="ACTION_ID;" event="script" value="SCRIPT_NAME.lua"/>

Seria un solo cofre, para todas las vocaciones, revisara que vocacion es, y se les dara su item adecuado.
avatar
danipopeye
Miembro
Mensajes Mensajes : 11

Crear cofre que dé varios objetos Empty Re: Crear cofre que dé varios objetos

Sáb Mayo 26, 2012 11:30 am
Falcon escribió:Puedes usar este script:
Código:
local config = {
   [ACTION_ID] = {
      premiumOnly = false,
      storage = 15150,
      level = 20,
      t = {
         [{1, 5}] = {
            {ITEM_ID, COUNT}, {ITEM_ID, COUNT}
         },
         [{2, 6}] = {
            {ITEM_ID, COUNT}, {ITEM_ID, COUNT}
         },
         [{3, 7}] = {
            {ITEM_ID, COUNT}, {ITEM_ID, COUNT}
         },
         [{4, 8}] = {
            {ITEM_ID, COUNT}, {ITEM_ID, COUNT}
         }
      }
   }
}
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
   local v = config[item.actionid]
 
   if(v.premiumOnly) then
      if(not isPremium(cid)) then
         doPlayerSendCancel(cid, "Sorry, you are not a Premium member.")
         return true
      end
   end
 
   if(getCreatureStorage(cid, v.storage) > 0) then
      doPlayerSendCancel(cid, "The " .. getItemName(item.uid) .. " is empty.")
      return true
   end
 
   if(getPlayerLevel(cid) < v.level) then
      doPlayerSendCancel(cid, "Sorry, not possible.")
      return true
   end
 
   for voc, k in pairs(v.t) do
      if(isInArray(voc, getPlayerVocation(cid))) then
         for i = 1, #k do
            local id = doCreateItemEx(k[i][1], k[i][2] or 1)
            if(doPlayerAddItemEx(cid, id) ~= RETURNVALUE_NOERROR) then
               return doPlayerSendCancel(cid, #k == 1 and "You cannot carry this item." or "You cannot carry these items."), false
            end
         end
 
         doCreatureSetStorage(cid, v.storage, 1)
 
         local msg = "You have found"
         if #k > 0 then
            for p = 1, #k do
               msg = msg .. " " .. k[p][2] .. " " .. (#k == 1 and "" .. getItemInfo(k[p][1]).name .. "" or "" .. getItemInfo(k[p][1]).plural .. "") .. " "
            end
         end
 
         doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, msg)
         doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_BLUE)
      end
   end
   return true
end
Solo el itemID, Y Count;
Código:
{ITEM_ID, COUNT}, {ITEM_ID, COUNT}
Segun su vocacion..
1,5 < sorcerer y master sorcerer.
2,6 < druid y elder druid.
3,7 4,8
Puedes agregar mas items,
Código:
{ITEM_ID, COUNT}, {ITEM_ID, COUNT}, {ITEM_ID, COUNT}, {ITEM_ID, COUNT}

Etc.
Y Le pondrias el actionID, A el chest.
Código:
<action actionid="ACTION_ID;" event="script" value="SCRIPT_NAME.lua"/>

Seria un solo cofre, para todas las vocaciones, revisara que vocacion es, y se les dara su item adecuado.

¿Qué tipo de script es? O sea en que carpeta se tiene que poner...
Falcon
Falcon
Administrador
Mensajes Mensajes : 350
http://www.othispano.net

Crear cofre que dé varios objetos Empty Re: Crear cofre que dé varios objetos

Sáb Mayo 26, 2012 11:34 am
Actions.
avatar
danipopeye
Miembro
Mensajes Mensajes : 11

Crear cofre que dé varios objetos Empty Re: Crear cofre que dé varios objetos

Sáb Mayo 26, 2012 12:07 pm
Tengo este error:

Código:
[Error - Action Interface]
[26/05/2012 19:06:53] data/actions/scripts/quests/firstitems.lua
[26/05/2012 19:06:53] Description:
[26/05/2012 19:06:53] data/actions/scripts/quests/firstitems.lua:20: table index is nil
[26/05/2012 19:06:53] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/firstitems.lua)

El script es:

Código:
local config = {
  [ACTION_ID] = {
      premiumOnly = false,
      storage = 15150,
      level = 1,
      t = {
        [{1, 5}] = {
            {1988, 1}, {2173, 1}, {2525, 1}, {2191, 1}, {2323, 1}, {2647, 1}, {2643, 1}, {8871, 1}, {2160, 5}, {5710, 1}, {7731, 1}, {7620, 1}, {7618, 1}, {2673, 2}
        },
        [{2, 6}] = {
            {1988, 1}, {2173, 1}, {2525, 1}, {2186, 1}, {2323, 1}, {2647, 1}, {2643, 1}, {8871, 1}, {2160, 5}, {5710, 1}, {7731, 1}, {7620, 1}, {7618, 1}, {2673, 2}
        },
        [{3, 7}] = {
            {1988, 1}, {2173, 1}, {2525, 1}, {2389, 1}, {2457, 1}, {2647, 1}, {2643, 1}, {8872, 1}, {2160, 5}, {5710, 1}, {7731, 1}, {7620, 1}, {7618, 1}, {2673, 2}
        },
        [{4, 8}] = {
            {1988, 1}, {2173, 1}, {2525, 1}, {2428, 1}, {2457, 1}, {2383, 1}, {2647, 1}, {2643, 1}, {2463, 1}, {2160, 5}, {5710, 1}, {7731, 1}, {7620, 1}, {7618, 1}, {2673, 2}
        }
      }
  }
}
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
  local v = config[item.actionid]
 
  if(v.premiumOnly) then
      if(not isPremium(cid)) then
        doPlayerSendCancel(cid, "Sorry, you are not a Premium member.")
        return true
      end
  end
 
  if(getCreatureStorage(cid, v.storage) > 0) then
      doPlayerSendCancel(cid, "The " .. getItemName(item.uid) .. " is empty.")
      return true
  end
 
  if(getPlayerLevel(cid) < v.level) then
      doPlayerSendCancel(cid, "Sorry, not possible.")
      return true
  end
 
  for voc, k in pairs(v.t) do
      if(isInArray(voc, getPlayerVocation(cid))) then
        for i = 1, #k do
            local id = doCreateItemEx(k[i][1], k[i][2] or 1)
            if(doPlayerAddItemEx(cid, id) ~= RETURNVALUE_NOERROR) then
              return doPlayerSendCancel(cid, #k == 1 and "You cannot carry this item." or "You cannot carry these items."), false
            end
        end
 
        doCreatureSetStorage(cid, v.storage, 1)
 
        local msg = "You have found"
        if #k > 0 then
            for p = 1, #k do
              msg = msg .. " " .. k[p][2] .. " " .. (#k == 1 and "" .. getItemInfo(k[p][1]).name .. "" or "" .. getItemInfo(k[p][1]).plural .. "") .. " "
            end
        end
 
        doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, msg)
        doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_BLUE)
      end
  end
  return true
end

Y en actions.xml puse:

Código:
<action actionid="2002" event="script" value="firstitems.lua"/>
Contenido patrocinado

Crear cofre que dé varios objetos Empty Re: Crear cofre que dé varios objetos

Volver arriba
Permisos de este foro:
No puedes responder a temas en este foro.