LuisPro
World War <3
- Joined
- May 10, 2009
- Messages
- 425
- Solutions
- 1
- Reaction score
- 53
My training script to learn about addEvent/stopEvent:
Code:
-- Annihilator by Shawak v2.1
-- Modified by Nottinghster
-- CONFIG --
local playersOnly = "yes"
local questLevel = 100
local room = { -- arena
fromX = 112,
fromY = 83,
fromZ = 7,
--------------
toX = 116,
toY = 87,
toZ = 7,
}
local monster_pos = {
[1] = {pos = {77, 100, 12}, monster = "Demon"},
[2] = {pos = {79, 100, 12}, monster = "Demon"},
[3] = {pos = {78, 104, 12}, monster = "Demon"},
[4] = {pos = {80, 104, 12}, monster = "Demon"},
[5] = {pos = {81, 102, 12}, monster = "Demon"},
[6] = {pos = {82, 102, 12}, monster = "Demon"}
}
local players_pos = {
{x = 111, y =85, z = 7, stackpos = 253},
{x = 117, y =85, z = 7, stackpos = 253},
--{x = 82, y =114, z = 12, stackpos = 253},
--{x = 83, y =114, z = 12, stackpos = 253}
}
local new_player_pos = {
{x = 113, y = 85, z = 7},
{x = 115, y = 85, z = 7},
--{x = 79, y = 102, z = 12},
--{x = 80, y = 102, z = 12}
}
------------------------------------------------------
--- CONFIG END ---------------------------------------
------------------------------------------------------
local t = {
a = {x=112, y=83, z=7}, -- top left corner
b = {x=116, y=87, z=7}, -- bottom right corner
c = {x=120, y=90, z=6} -- where to teleport
}
function tp()
for x = room.fromX, room.toX do
for y = room.fromY, room.toY do
for z = room.fromZ, room.toZ do
local pos = {x=x, y=y, z=z,stackpos = 253}
local players = getThingfromPos(pos)
if players.uid > 0 then
doTeleportThing(players.uid, t.c)
end
end
end
end
return true
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
local all_ready, monsters, player, level = 0, 0, {}, 0
if item.uid == 7001 then
if item.itemid == 1946 then
for i = 1, #players_pos do
table.insert(player, 0)
end
for i = 1, #players_pos do
player[i] = getThingfromPos(players_pos[i])
if player[i].itemid > 0 then
if string.lower(playersOnly) == "yes" then
if isPlayer(player[i].uid) == true then
all_ready = all_ready+1
else
monsters = monsters+1
end
else
all_ready = all_ready+1
end
end
end
if all_ready == #players_pos then
for i = 1, #players_pos do
player[i] = getThingfromPos(players_pos[i])
if isPlayer(player[i].uid) == true then
if getPlayerLevel(player[i].uid) >= questLevel then
level = level+1
end
else
level = level+1
end
end
if level == #players_pos then
if string.lower(playersOnly) == "yes" and monsters == 0 or string.lower(playersOnly) == "no" then
--for _, area in pairs(monster_pos) do
-- doSummonCreature(area.monster,{x=area.pos[1],y=area.pos[2],z=area.pos[3]})
--end
for i = 1, #players_pos do
doSendMagicEffect(players_pos[i], CONST_ME_POFF)
doTeleportThing(player[i].uid, new_player_pos[i])
doSendMagicEffect(new_player_pos[i], CONST_ME_ENERGYAREA)
doTransformItem(item.uid,1945)
--addEvent(tp, 15000)
local event = addEvent(tp, 15000)
end
else
doPlayerSendTextMessage(cid,19,"Only players can enter.")
end
else
doPlayerSendTextMessage(cid,19,"All Players have to be level "..questLevel.." to do this quest.")
end
else
doPlayerSendCancel(cid,"You need players.")
end
elseif item.itemid == 1945 then
local player_room = 0
for x = room.fromX, room.toX do
for y = room.fromY, room.toY do
for z = room.fromZ, room.toZ do
local pos = {x=x, y=y, z=z,stackpos = 253}
local thing = getThingfromPos(pos)
if thing.itemid > 0 then
if isPlayer(thing.uid) == true then
player_room = player_room+1
end
end
end
end
end
if player_room >= 1 then
doPlayerSendTextMessage(cid,19,"Wait for your turn.")
elseif player_room == 0 then
for x = room.fromX, room.toX do
for y = room.fromY, room.toY do
for z = room.fromZ, room.toZ do
local pos = {x=x, y=y, z=z,stackpos = 253}
local thing = getThingfromPos(pos)
if thing.itemid > 0 then
doRemoveCreature(thing.uid)
end
end
end
end
doTransformItem(item.uid,1946)
stopEvent(event)
end
end
end
return true
end