Crear cofre que dé varios objetos
2 participantes
- danipopeyeMiembro
- Mensajes : 11
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!
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!
Re: Crear cofre que dé varios objetos
Sáb Mayo 26, 2012 11:20 am
Puedes usar este script:
1,5 < sorcerer y master sorcerer.
2,6 < druid y elder druid.
3,7 4,8
Puedes agregar mas items,
Etc.
Y Le pondrias el actionID, A el chest.
Seria un solo cofre, para todas las vocaciones, revisara que vocacion es, y se les dara su item adecuado.
- 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
- Código:
{ITEM_ID, COUNT}, {ITEM_ID, COUNT}
1,5 < sorcerer y master sorcerer.
2,6 < druid y elder druid.
3,7
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.
- danipopeyeMiembro
- Mensajes : 11
Re: Crear cofre que dé varios objetos
Sáb Mayo 26, 2012 11:30 am
Falcon escribió:Puedes usar este script:
Solo el itemID, Y Count;
- 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
Segun su vocacion..
- Código:
{ITEM_ID, COUNT}, {ITEM_ID, COUNT}
1,5 < sorcerer y master sorcerer.
2,6 < druid y elder druid.
3,74,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...
- danipopeyeMiembro
- Mensajes : 11
Re: Crear cofre que dé varios objetos
Sáb Mayo 26, 2012 12:07 pm
Tengo este error:
El script es:
Y en actions.xml puse:
- 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"/>
Permisos de este foro:
No puedes responder a temas en este foro.