Hello
My Demon oak is absolutly wierd! ^^ I can cut the tree, monster is spawning BUT not all monster is spawning, only Demon, Elder Beholder, Demon Skeleton and Grim Reaper.
I can cut the tree how many times i want to, and I won't done the quest because the tree never will die!
Here you got [some] of my fils, maybe you can find any solution, It have to be something wrong with this files
Rep will be giving as always, and many many reps to the one who can fix it!
...Data/Actions/Sctip/-->Demon0ak.lua
...Data/Actions/Script/-->DemonOakGravestone
...Data/Creaturesscript/script/-->demonOakDeath
...Data/creaturesscript/script/-->demonOakLogout
My Demon oak is absolutly wierd! ^^ I can cut the tree, monster is spawning BUT not all monster is spawning, only Demon, Elder Beholder, Demon Skeleton and Grim Reaper.
I can cut the tree how many times i want to, and I won't done the quest because the tree never will die!
Here you got [some] of my fils, maybe you can find any solution, It have to be something wrong with this files
Rep will be giving as always, and many many reps to the one who can fix it!
...Data/Actions/Sctip/-->Demon0ak.lua
Code:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local onePerQuest = "yes"
local level = 120
local positions =
{
kick = { x = 571, y = 621, z = 7 },
summon =
{
{x=32723, y=32348, z=7},
{x=32720, y=32347, z=7},
{x=32716, y=32349, z=7},
{x=32719, y=32354, z=7}
}
}
local summons =
{
[1] = {"Demon", "Grim Reaper", "Elder Beholder", "Demon Skeleton"},
[2] = {"Dark Torturer", "Banshee", "Betrayed Wraith", "Blightwalker"},
[3] = {"Bonebeast", "Braindeath", "Diabolic Imp", "Giant Spider"},
[4] = {"Hand of Cursed Fate", "Lich", "Undead Dragon", "Vampire"},
[5] = {"braindeath", "Demon", "Bonebeast", "Diabolic Imp"},
[6] = {"Demon Skeleton", "Banshee", "Elder Beholder", "Bonebeast"},
[7] = {"Dark Torturer", "Undead Dragon", "Demon", "Demon"},
[8] = {"Elder Beholder", "Betrayed Wraith", "Demon Skeleton", "Giant Spider"},
[9] = {"Demon", "Banshee", "Blightwalker", "Demon Skeleton"},
[10] = {"Grim Reaper", "Demon", "Diabolic Imp", "Braindeath"},
[11] = {"Banshee", "Grim Reaper", "Hand of Cursed fate", "Demon"}
}
local areaPosition =
{
{x=32706, y=32350, z=7, stackpos = 255},
{x=32725, y=32350, z=7, stackpos = 255}
}
local demonOak = {8288, 8289, 8290, 8291}
local storages =
{
done = 35700,
cutTree = 36901
}
local blockingTree =
{
[2709] = {32193, 3669}
}
if blockingTree[itemEx.itemid] and itemEx.uid == blockingTree[itemEx.itemid][1] then
if getPlayerLevel(cid) < level then
doPlayerSendCancel(cid, "You need level " .. level .. " or more to enter this quest.")
return TRUE
end
if getPlayerStorageValue(cid, storages.done) > 0 then
doPlayerSendCancel(cid, "You already done this quest.")
return TRUE
end
if getPlayerStorageValue(cid, storages.cutTree) > 0 then
return FALSE
end
if onePerQuest == "yes" then
local players = getPlayersOnline()
for _, pid in ipairs(players) do
if isInRange(getCreaturePosition(pid), areaPosition[1], areaPosition[2]) then
doPlayerSendCancel(cid, "Wait until " .. getCreatureName(pid) .. " finish the quest.")
return TRUE
end
end
end
doTransformItem(itemEx.uid, blockingTree[itemEx.itemid][2])
doSendMagicEffect(toPosition, CONST_ME_POFF)
doMoveCreature(cid, SOUTH)
doPlayerSetStorageValue(cid, storages.cutTree, 1)
return TRUE
elseif isInArray(demonOak, itemEx.itemid) then
local get = getPlayerStorageValue(cid, itemEx.itemid)
if get == -1 then
get = 1
end
if(getPlayerStorageValue(cid, 8288) == 12 and getPlayerStorageValue(cid, 8289) == 12 and getPlayerStorageValue(cid, 8290) == 12 and getPlayerStorageValue(cid, 8291) == 12) then
doTeleportThing(cid, positions.kick)
doPlayerSetStorageValue(cid, storages.done, 1)
return TRUE
end
if getPlayerStorageValue(cid, itemEx.itemid) > 11 then
doSendMagicEffect(toPosition, CONST_ME_POFF)
return TRUE
end
if(math.random(100) <= 50) then
doPlayerSetStorageValue(cid, itemEx.uid, 12)
return TRUE
end
if summons[get] then
for i = 1, #summons[get] do
doCreateMonster(summons[get][i], positions.summon[i])
end
doSendMagicEffect(toPosition, CONST_ME_DRAWBLOOD)
doPlayerSetStorageValue(cid, itemEx.itemid, get + 1)
if math.random(100) >= 50 then
doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -270, -310, CONST_ME_BIGPLANTS)
end
end
return FALSE
end
end
...Data/Actions/Script/-->DemonOakGravestone
Code:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local position = {x=586, y=630, z=8} -- reward room
if getPlayerStorageValue(cid, 35700) > 1 then
doTeleportThing(cid, position)
doSendMagicEffect(position, CONST_ME_TELEPORT)
else
return FALSE
end
return TRUE
end
...Data/Creaturesscript/script/-->demonOakDeath
Code:
function onDeath(cid, corpse)
if getPlayerStorageValue(cid, 36901) > 0 and getPlayerStorageValue(cid, 35700) < 1 then
doPlayerSetStorageValue(cid, 36901, 0)
end
return TRUE
end
...Data/creaturesscript/script/-->demonOakLogout
Code:
function onLogout(cid)
if getPlayerStorageValue(cid, 36901) > 0 and getPlayerStorageValue(cid, 35700) < 1 then
doPlayerSetStorageValue(cid, 36901, 0)
return TRUE
end
return TRUE
end