Samman
Senior User
- Joined
- Aug 23, 2009
- Messages
- 782
- Reaction score
- 39
Witajcie,
A tak z nud?w napisa?em prosty quest skrzynkowy. Bardzo prosty config no i ?atwo?? wykonania
Tworzymy plik chest.lua w folderze data/actions/scripts/. Oto skrypt:
[LUA]
--[[ ### Autor: Jakub98
### Free to use
### Quest system with using ActionIDs
]]--
function onUse(cid, item, frompos, item2, topos)
local chests = {
[3000] = {level = 600, name = "nazwa itemu", item_id = 3843, count = 1, experience = 1000, text = "Testowy napis"},
}
-- ### TEGO PONI?EJ PROSZ? NIE EDYTOWA?!!! ### --
for i, v in pairs(chests) do
if item.actionid == i and getPlayerStorageValue(cid, i) == -1 and getPlayerLevel(cid) >= v.level then
doPlayerAddItem(cid, v.item_id, v.count)
doPlayerSendTextMessage(cid, 18, "You have found '..v.name..'.")
doSendMagicEffect(topos, CONST_ME_MAGIC_BLUE)
doPlayerAddExp(cid, v.experience)
setPlayerStorageValue(cid, i, 1)
else
doPlayerSendCancel(cid, 'Sorry, not possible')
doSendMagicEffect(topos, CONST_ME_PUFF)
return 1
end
end
end[/LUA]
Jak wida? w tablicy "chests" mamy kilka warto?ci. Pierwsza strona tablicy oznacza ActionID skrzynki, druga natomiast definicje warto?ci.
Skrzynka, kt?ra b?dzie posiada? ActionID 3000 b?dzie zwraca?a przedmiot o ID 3843, w liczbie 1, oraz zwr?ci napis "Testowy napis", wymagany poziom to 600, dodatkowo gracz otrzyma 1000 expa.
Aby doda? nast?pn? pozycj?, musimy po "," doda? nast?pn? warto??, na przyk?ad:
[LUA]local chests = {
[3000] = {level = 600, item_id = 3843, count = 1, experience = 1000, text = "Testowy napis"},
[3001] = {level = 250, item_id = 2237, count = 1, experience = 2500, text = "Testowy napis drugi"},
}[/LUA]
I to wszystko co musicie wykona?. Reszt? zrobi skrypt. Teraz na mapie tworzycie jak?? skrzyneczk? i nadajecie jej ActionID 3001. Gotowe, quest jest gotowy do przetestowania przez pierwszego ?mia?ka
Actions.xml:
A tak z nud?w napisa?em prosty quest skrzynkowy. Bardzo prosty config no i ?atwo?? wykonania
Tworzymy plik chest.lua w folderze data/actions/scripts/. Oto skrypt:
[LUA]
--[[ ### Autor: Jakub98
### Free to use
### Quest system with using ActionIDs
]]--
function onUse(cid, item, frompos, item2, topos)
local chests = {
[3000] = {level = 600, name = "nazwa itemu", item_id = 3843, count = 1, experience = 1000, text = "Testowy napis"},
}
-- ### TEGO PONI?EJ PROSZ? NIE EDYTOWA?!!! ### --
for i, v in pairs(chests) do
if item.actionid == i and getPlayerStorageValue(cid, i) == -1 and getPlayerLevel(cid) >= v.level then
doPlayerAddItem(cid, v.item_id, v.count)
doPlayerSendTextMessage(cid, 18, "You have found '..v.name..'.")
doSendMagicEffect(topos, CONST_ME_MAGIC_BLUE)
doPlayerAddExp(cid, v.experience)
setPlayerStorageValue(cid, i, 1)
else
doPlayerSendCancel(cid, 'Sorry, not possible')
doSendMagicEffect(topos, CONST_ME_PUFF)
return 1
end
end
end[/LUA]
Jak wida? w tablicy "chests" mamy kilka warto?ci. Pierwsza strona tablicy oznacza ActionID skrzynki, druga natomiast definicje warto?ci.
Skrzynka, kt?ra b?dzie posiada? ActionID 3000 b?dzie zwraca?a przedmiot o ID 3843, w liczbie 1, oraz zwr?ci napis "Testowy napis", wymagany poziom to 600, dodatkowo gracz otrzyma 1000 expa.
Aby doda? nast?pn? pozycj?, musimy po "," doda? nast?pn? warto??, na przyk?ad:
[LUA]local chests = {
[3000] = {level = 600, item_id = 3843, count = 1, experience = 1000, text = "Testowy napis"},
[3001] = {level = 250, item_id = 2237, count = 1, experience = 2500, text = "Testowy napis drugi"},
}[/LUA]
I to wszystko co musicie wykona?. Reszt? zrobi skrypt. Teraz na mapie tworzycie jak?? skrzyneczk? i nadajecie jej ActionID 3001. Gotowe, quest jest gotowy do przetestowania przez pierwszego ?mia?ka
Actions.xml:
PHP:
<action actionid="3000" script="chest.lua"/>
<action actionid="3001" script="chest.lua"/>