- Fórum
- OTServ
- Recursos
- Scripting
- Actions e Talkactions
- TFS 0.2 Mystic Spirit system.lua
LU
action
TFS 0.2 Mystic Spirit system.lua
Por LuckinhaSan, 31 de mar. de 2013 em Actions e Talkactions
system.lua
mystic
spirit
tfs
forgotten server
otserv
tibia
script
1
1.2k
info
Grupo: Conde
Registrado: 03/09/11
Posts: 703
Reputação: +191
Gênero: Masculino
Char no Tibia: Mirade
Durante os últimos dois meses tenho notado uma grande quantidade de pedidos de suporte sobre o TFS 0.3/0.4 system.lua para TFS 0.2.
As pessoas que não sabem como editá-lo para fazer o trabalho para o TFS 0.2 ou que não sabiam que poderiam usá-lo para TFS 0.2 com algumas edições.
Todos os créditos vão para o criador do TFS 0.3 system.lua, e créditos para Limos pela
edição.
Adicione a seguinte tag em data/actions/actions.xml -
Agora em data/actions/scripts, system.lua -
local specialQuests = { [2001] = 30015 --Annihilator } local questsExperience = { [30015] = 10000 } function onUse(cid, item, fromPosition, itemEx, toPosition) local storage = specialQuests[item.actionid] if(not storage) then storage = item.uid if(storage > 65535) then return false end end if(getPlayerStorageValue(cid, storage) > 0) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.") return true end local items = {} local reward = 0 local size = isContainer(item.uid) and getContainerSize(item.uid) or 0 if(size == 0) then reward = doCopyItem(item, false) else for i = 0, size do local tmp = getContainerItem(item.uid, i) if(tmp.itemid > 0) then table.insert(items, tmp) end end end size = table.maxn(items) if(size == 1) then reward = doCopyItem(items[1], true) end local result = "" if(reward ~= 0) then local ret = getItemDescriptions(reward.itemid) if(reward.type > 0 and isItemRune(reward.itemid)) then result = reward.type .. " charges " .. ret.name elseif(reward.type > 0 and isItemStackable(reward.itemid)) then result = reward.type .. " " .. ret.plural else result = ret.article .. " " .. ret.name end else if(size > 20) then reward = doCopyItem(item, false) elseif(size > 8) then reward = getThing(doCreateItemEx(1988, 1)) else reward = getThing(doCreateItemEx(1987, 1)) end for i = 1, size do local tmp = doCopyItem(items[i], true) if(doAddContainerItemEx(reward.uid, tmp.uid) ~= RETURNVALUE_NOERROR) then print("[Warning] QuestSystem:", "Could not add quest reward") else local ret = ", " if(i == 2) then ret = " and " elseif(i == 1) then ret = "" end result = result .. ret ret = getItemDescriptions(tmp.itemid) if(tmp.type > 0 and isItemRune(tmp.itemid)) then result = result .. tmp.type .. " charges " .. ret.name elseif(tmp.type > 0 and isItemStackable(tmp.itemid)) then result = result .. tmp.type .. " " .. ret.plural else result = result .. ret.article .. " " .. ret.name end end end end if(doPlayerAddItemEx(cid, reward.uid, false) ~= RETURNVALUE_NOERROR) then result = "You have found a reward. It is too heavy or you have not enough space." else result = "You have found " .. result .. "." setPlayerStorageValue(cid, storage, 1) if(questsExperience[storage] ~= nil) then doPlayerAddExp(cid, questsExperience[storage]) end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, result) return true endTambém remova isso se você quiser usar aquelas caixas para o system.lua:
Como isso funciona:
[Como Fazer] Quest's Simples