Shawak
Intermediate OT User
Here a usefully annihaltor script.
Credits:
100% by me
Version:
TFS 0.3.4
Annihaltor
data/actions/scrips/annihaltor.lua
data/actions/actions.xml
Annihaltor Chests
data/actions/scripts/anni chest.lua
data/actions/actions.xml
Tested on TFS 0.3.4
Enjoy ^_^
Regards,
Shawak
Credits:
100% by me
Version:
TFS 0.3.4
Annihaltor
data/actions/scrips/annihaltor.lua
Lua:
function onUse(cid, item, fromPosition, itemEx, toPosition)
-- Annihaltor by Maxi (Shawak) v1.0
local room = { -- room with demons
fromX = 1100,
fromY = 1192,
fromZ = 10,
toX = 1105,
toY = 1196,
toZ = 10
}
local monster_pos = {
[1] = {pos = {1100,1192,10}},
[2] = {pos = {1102,1192,10}},
[3] = {pos = {1101,1196,10}},
[4] = {pos = {1103,1196,10}},
[5] = {pos = {1104,1194,10}},
[6] = {pos = {1105,1194,10}}
}
local players_pos = {
{x = 1101,y = 1195,z = 7,stackpos = 253},
{x = 1101,y = 1194,z = 7,stackpos = 253},
{x = 1101,y = 1193,z = 7,stackpos = 253},
{x = 1101,y = 1192,z = 7,stackpos = 253}
}
local new_player_pos = {
{x = 1100, y = 1194, z = 10},
{x = 1101, y = 1194, z = 10},
{x = 1102, y = 1194, z = 10},
{x = 1103, y = 1194, z = 10}
}
local monster = "Demon"
local questLevel = 100
-- don't touch ------------
local player = {0, 0, 0, 0}
local all_ready = 0
---------------------------
local player1 = getThingfromPos(players_pos[1])
local player2 = getThingfromPos(players_pos[2])
local player3 = getThingfromPos(players_pos[3])
local player4 = getThingfromPos(players_pos[4])
if item.itemid == 1945 then
if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
for i = 1, 4 do
player[i] = getThingfromPos(players_pos[i])
if player[i].itemid > 0 then
all_ready = 1
end
end
else
doPlayerSendTextMessage(cid,19,"You need 4 players to do this quest.")
end
if all_ready == 1 then
for _, area in pairs(monster_pos) do
doSummonCreature(monster,{x=area.pos[1],y=area.pos[2],z=area.pos[3]})
end
for i = 1, 4 do
doSendMagicEffect(players_pos[i], CONST_ME_POFF)
doTeleportThing(player[i].uid, new_player_pos[i], FALSE)
doSendMagicEffect(new_player_pos[i], CONST_ME_ENERGYAREA)
all_ready = 0
end
doTransformItem(item.uid,1946)
end
elseif item.itemid == 1946 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,"There is already a team in the quest room.")
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
player_room = 0
doTransformItem(item.uid,1945)
end
end
return TRUE
end
data/actions/actions.xml
HTML:
<action uniqueid="30015" event="script" value="annihilator.lua"/>
Annihaltor Chests
data/actions/scripts/anni chest.lua
Code:
--[[
Annihaltor Chest's
by Maxi (Shawak)
]]--
config = {
storage = 5010,
items = { -- id,count
item_1 = {2494,1}, -- Demon Armor
item_2 = {2400,1}, -- Magic Sword
item_3 = {2431,1}, -- Stonecutter Axe
item_4 = {2421,1} -- Thunder Hammer
}
}
function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid,config.storage) == -1 then
if item.uid == 5001 then
newItem = config.items.item_1[1]
count = config.items.item_1[2]
elseif item.uid == 5002 then
newItem = config.items.item_2[1]
count = config.items.item_2[2]
elseif item.uid == 5003 then
newItem = config.items.item_3[1]
count = config.items.item_3[2]
elseif item.uid == 5004 then
newItem = config.items.item_4[1]
count = config.items.item_4[2]
end
-- MSG Config -----------------------------------------------------------------------------------------------------------------
msgEmpty = "It is empty."
msgGetItem = "You have found "..getItemArticleById(newItem).." "..getItemNameById(newItem).."."
msgNoCap = "You have found a "..getItemNameById(newItem).." weighing "..getItemWeightById(newItem,count).." oz it is too heavy."
--------------------------------------------------------------------------------------------------------------------------------
if getPlayerFreeCap(cid) >= getItemWeightById(newItem,count) then
setPlayerStorageValue(cid,config.storage,1)
doPlayerAddItem(cid,newItem,count)
doPlayerSendTextMessage(cid,21,msgGetItem)
else
doPlayerSendTextMessage(cid,21,msgNoCap)
end
else
doPlayerSendTextMessage(cid,21,msgEmpty)
end
return TRUE
end
data/actions/actions.xml
HTML:
<!-- Anni Chest -->
<action uniqueid="5001" event="script" value="anni chest.lua"/>
<action uniqueid="5002" event="script" value="anni chest.lua"/>
<action uniqueid="5003" event="script" value="anni chest.lua"/>
<action uniqueid="5004" event="script" value="anni chest.lua"/>
Tested on TFS 0.3.4
Enjoy ^_^
Regards,
Shawak
Last edited: