Miragem
-
Total de itens
15 -
Registro em
-
Última visita
Tipo de Conteúdo
Perfis
Fóruns
Calendário
Publique
Tudo que Miragem postou
-
Olá Brunds, vc foi um dos poucos que reportou no meu topico a um mes atras sobre OTpanel, se ainda quiser saber sobre ele, tenho uma semana de dedicado restando e não vou usar pra nada ja que não vou renovar com eles, se quiser usar pra ver se lhe é util, manda uma mensagem pra mim. Abraço!
-
Olá VODKART, estava usando um script de autoloot seu, por sinal maravilhoso, porem em determinado momento ele apresentava erros na distro (vi milhares de posts aqui iguais), rodando o servidor no meu pc, TFS 0.4 SVN, ainda dava pra manter, sem ocorrer bugs no jogo ou crashar o server, mas no VPS rodando um TFS 0.3.7 ja não deu, a principio roda tudo normalmente mas depois começa a dar erros na distro e posteriormente a bugar o servidor, fazendo com que monstros fiquem congelados após terem o hp total zerado, gostaria de saber se você ainda oferece suporte pelo seu script, caso sim, posso pagar pelo trabalho pra não ser tão incomodo.
Agradeço desde ja!
Segue o código do MOD! contem algumas edições nos itens à venda mas acho que não influencia.Spoiler<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Loot System" version="1.0" author="Vodkart And Mkalo" contact="none.com" enabled="yes">
<config name="Loot_func"><![CDATA[
info = {
AutomaticDeposit = true,
BlockMonsters = {"crystal protect","castle protect","spider of jungle","serpent of jungle","blue bottom tower","blue middle tower","blue supreme tower","blue top tower","red bottom tower","red middle tower","red supreme tower","red top tower"},
BlockItemsList = {2123,2515},
Max_Slots = {free = 5, premium = 8},
Storages = {27000,28008,28006,28007},
items_price = {[2537] = 4000, [2458] = 35, [2518] = 1500, [2459] = 30, [7386] = 8000, [2195] = 40000, [2487] = 20000, [2519] = 5000, [2491] = 5000, [2356] = 5000, [2497] = 9000, [2494] = 90000, [2520] = 40000, [7413] = 50000, [2663] = 500, [2477] = 6000, [2462] = 4000, [2488] = 15000, [2187] = 2000, [2434] = 2000, [7421] = 50000, [2414] = 10000, [2492] = 60000, [7402] = 20000, [7419] = 30000, [7900] = 10000, [2432] = 10000, [2409] = 1500, [2392] = 3000, [2407] = 6000, [2393] = 10000, [2466] = 30000, [2646] = 100000,[2470] = 80000, [2522] = 100000, [6553] = 60000, [7891] = 10000, [2427] = 7500, [2396] = 4000, [2452] = 50000, [2476] = 5000, [2430] = 2000, [2387] = 200, [2472] = 200000, [2400] = 120000, [2514] = 150000, [2536] = 8000, [2377] = 400, [7452] = 70000, [2383] = 800, [2417] = 60, [8891] = 30000, [2498] = 40000, [5741] = 35000, [2388] = 200, [2378] = 100, [2398] = 30, [2436] = 1000, [2423] = 200, [2381] = 200, [8889] = 60000, [2645] = 40000, [2431] = 90000, [2421] = 90000, [2528] = 4000, [2376] = 25, [2413] = 70, [2500] = 2500, [2534] = 25000, [2391] = 6000, [2408] = 100000, [8928] = 3000, [2525] = 100, [7404] = 9000, [2647] = 500, [2535] = 5000, [2464] = 100, [2463] = 400, [7430] = 3000, [2656] = 15000, [7382] = 10000, [7463] = 6000, [7437] = 7000, [7451] = 5000, [2454] = 9000, [2523] = 150000, [7418] = 9000, [2521] = 500, [2516] = 4000, [2444] = 60000, [7894] = 4000, [7899] = 4000, [7896] = 3000, [8910] = 7000, [2475] = 6000}
}
function setPlayerStorageTable(cid, storage, tab)
local tabstr = "&"
for i,x in pairs(tab) do
tabstr = tabstr .. i .. "," .. x .. ";"
end
setPlayerStorageValue(cid, storage, tabstr:sub(1, #tabstr-1))
end
function getPlayerStorageTable(cid, storage)
local tabstr = getPlayerStorageValue(cid, storage)
local tab = {}
if type(tabstr) ~= "string" then
return {}
end
if tabstr:sub(1,1) ~= "&" then
return {}
end
local tabstr = tabstr:sub(2, #tabstr)
local a = string.explode(tabstr, ";")
for i,x in pairs(a) do
local b = string.explode(x, ",")
tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2]
end
return tab
end
function isInTable(cid, item)
for _,i in pairs(getPlayerStorageTable(cid, info.Storages[1]))do
if tonumber(i) == tonumber(item) then
return true
end
end
return false
end
function addItemTable(cid, item)
local x = {}
for i = 1,#getPlayerStorageTable(cid, info.Storages[1]) do
table.insert(x,getPlayerStorageTable(cid, info.Storages[1]))
end
if x ~= 0 then
table.insert(x,tonumber(item))
setPlayerStorageTable(cid, info.Storages[1], x)
else
setPlayerStorageTable(cid, info.Storages[1], {item})
end
end
function removeItemTable(cid, item)
local x = {}
for i = 1,#getPlayerStorageTable(cid, info.Storages[1]) do
table.insert(x,getPlayerStorageTable(cid, info.Storages[1]))
end
for i,v in ipairs(x) do
if tonumber(v) == tonumber(item) then
table.remove(x,i)
end
end
return setPlayerStorageTable(cid, info.Storages[1], x)
end
function ShowItemsTabble(cid)
local n,str = 0,"[+] Auto Loot Commands [+]\n\n!autoloot item name --> To add ou Remove item from list.\n!autoloot money --> To collect gold automatically.\n!autoloot clear --> To clear the list.\n!autoloot on/off --> To enable or disable the collecting of items in the system.\n!autoloot autosell --> To enable or disable the auto selling items.\n\n[+] Auto Loot Info [+]\n\nSystem: "..(getPlayerStorageValue(cid, info.Storages[3]) <= 0 and "Activated" or "Disabled")..".\nGold Collecting: "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "Disabled")..".\nAutomatic Item Selling: "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "Disabled")..".\nBalance Total: ["..getPlayerBalance(cid).."] gp's.\nMaximum Slots: ["..#getPlayerStorageTable(cid, info.Storages[1]).."/"..(isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free).."]\n\n[+] Auto Loot Slots [+]\n\n"
for i = 1,#getPlayerStorageTable(cid, info.Storages[1]) do
n = n + 1
str = str.."Slot "..n.." - "..getItemNameById(getPlayerStorageTable(cid, info.Storages[1])).."\n"
end
return doPlayerPopupFYI(cid, str)
end
function getContainerItems(containeruid)
local items = {}
local containers = {}
if type(getContainerSize(containeruid)) ~= "number" then
return false
end
for slot = 0, getContainerSize(containeruid)-1 do
local item = getContainerItem(containeruid, slot)
if item.itemid == 0 then
break
end
if isContainer(item.uid) then
table.insert(containers, item.uid)
end
table.insert(items, item)
end
if #containers > 0 then
for i,x in ipairs(getContainerItems(containers[1])) do
table.insert(items, x)
end
table.remove(containers, 1)
end
return items
end
function getItemsInContainerById(container, itemid) -- Function By Kydrai
local items = {}
if isContainer(container) and getContainerSize(container) > 0 then
for slot=0, (getContainerSize(container)-1) do
local item = getContainerItem(container, slot)
if isContainer(item.uid) then
local itemsbag = getItemsInContainerById(item.uid, itemid)
for i=0, #itemsbag do
table.insert(items, itemsbag)
end
else
if itemid == item.itemid then
table.insert(items, item.uid)
end
end
end
end
return items
end
function doPlayerAddItemStacking(cid, itemid, amount) -- revisado
local item, _G = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid), 0
if #item > 0 then
for _ ,x in pairs(item) do
local ret = getThing(x)
if ret.type < 100 then
doTransformItem(ret.uid, itemid, ret.type+amount)
if ret.type+amount > 100 then
doPlayerAddItem(cid, itemid, ret.type+amount-100)
end
break
else
_G = _G+1
end
end
if _G == #item then
doPlayerAddItem(cid, itemid, amount)
end
else
return doPlayerAddItem(cid, itemid, amount)
end
end
function AutomaticDeposit(cid,item,n)
local deposit = item == tonumber(2160) and (n*10000) or tonumber(item) == 2152 and (n*100) or (n*1)
return doPlayerDepositMoney(cid, deposit)
end
function AutomaticItensSelling(cid, x)
return doPlayerAddMoney(cid, x) and doPlayerDepositMoney(cid, x)
end
function ExistItemByName(name) -- by vodka
local items = io.open("data/items/items.xml", "r"):read("*all")
local get = items:match('name="' .. name ..'"')
if get == nil or get == "" then
return false
end
return true
end
function corpseRetireItems(cid, pos)
local check = false
for i = 0, 255 do
pos.stackpos = i
tile = getTileThingByPos(pos)
if tile.uid > 0 and isCorpse(tile.uid) then
check = true break
end
end
if check == true then
local items = getContainerItems(tile.uid)
for i,x in pairs(items) do
if isInArray(getPlayerStorageTable(cid, info.Storages[1]), tonumber(x.itemid)) or getPlayerStorageValue(cid, info.Storages[2]) > 0 and isInArray({2148,2152,2160},tonumber(x.itemid)) then
if isItemStackable(x.itemid) then
if getPlayerStorageValue(cid, info.Storages[4]) > 0 and info.items_price[tonumber(x.itemid)] then
AutomaticItensSelling(cid, (info.items_price[tonumber(x.itemid)]*x.type))
else
doPlayerAddItemStacking(cid, x.itemid, x.type)
if info.AutomaticDeposit == true and isInArray({2148,2152,2160}, tonumber(x.itemid)) then
AutomaticDeposit(cid,x.itemid,x.type)
end
end
else
if getPlayerStorageValue(cid, info.Storages[4]) > 0 and info.items_price[tonumber(x.itemid)] then
AutomaticItensSelling(cid, info.items_price[tonumber(x.itemid)])
else
doPlayerAddItem(cid, x.itemid)
end
end
doRemoveItem(x.uid)
end
end
end
end]]></config>
<event type="login" name="LootLogin" event="script"><![CDATA[
function onLogin(cid)
registerCreatureEvent(cid, "LootEventKIll")
if isPremium(cid) and getPlayerStorageValue(cid, 27001) <= 0 then
setPlayerStorageValue(cid, 27001, 1)
elseif getPlayerStorageValue(cid, 27001) > 0 and not isPremium(cid) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Auto Loot] You premium is Over, Start a new list!")
setPlayerStorageValue(cid, 27001, -1)
setPlayerStorageValue(cid, info.Storages[1], -1)
end
return true
end]]></event>
<event type="kill" name="LootEventKIll" event="script"><![CDATA[
domodlib('Loot_func')
function onKill(cid, target, lastHit)
if isPlayer(cid) and getPlayerStorageValue(cid, info.Storages[3]) <= 0 and isMonster(target) and not isInArray(info.BlockMonsters, getCreatureName(target):lower()) then
addEvent(corpseRetireItems, 0, cid ,getThingPos(target))
end
return true
end]]></event>
<talkaction words="!autoloot;/autoloot" event="buffer"><![CDATA[
domodlib('Loot_func')
local param, slots = param:lower(), isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free
if not param or param == "" then
ShowItemsTabble(cid) return true
elseif tonumber(param) then
doPlayerSendCancel(cid, "enter commands: !autoloot item name [+] !autoloot clean [+] !autoloot money [+] !autoloot on/off") return true
elseif isInArray({"clean","limpar", "clear"}, param) then
setPlayerStorageValue(cid, info.Storages[1], -1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Your list has been cleaned.") return true
elseif isInArray({"start","stop","on","off"}, param) then
setPlayerStorageValue(cid, info.Storages[3], getPlayerStorageValue(cid, info.Storages[3]) <= 0 and 1 or 0)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] "..(getPlayerStorageValue(cid, info.Storages[3]) > 0 and "Stopped" or "Started")..".") return true
elseif isInArray({"money","gold","gps","dinheiro"}, param) then
setPlayerStorageValue(cid, info.Storages[2], getPlayerStorageValue(cid, info.Storages[2]) <= 0 and 1 or 0)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Gold Colleting "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "disabled")..".") return true
elseif isInArray({"autoselling","autosell","autovender","vender"}, param) then
setPlayerStorageValue(cid, info.Storages[4], getPlayerStorageValue(cid, info.Storages[4]) <= 0 and 1 or 0)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Automatic Itens Selling "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "disabled")..".") return true
end
local item = ExistItemByName(tostring(param))
if not item then
doPlayerSendCancel(cid, "This item does not exist.") return true
end
local item = getItemIdByName(tostring(param))
if not item then
doPlayerSendCancel(cid, "This item does not exist.") return true
end
local var = isInTable(cid, item)
if isInArray({2148,2152,2160},item) then
doPlayerSendCancel(cid, "Enter !autoloot money to add money in your list!") return true
elseif isInArray(info.BlockItemsList, item) then
doPlayerSendCancel(cid, "You can not add this item in the list!") return true
elseif not var and #getPlayerStorageTable(cid, info.Storages[1]) >= slots then
doPlayerSendCancel(cid, "max "..slots.." from auto loot") return true
end
if not var then
addItemTable(cid, item)
else
removeItemTable(cid, item)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,not var and "you added the item "..param.." in the list" or "you removed the item "..param.." from the list")
return true]]></talkaction>
</mod> -
Oi amigo, vim em um post vc ajudando a compilar um server para um usuario, queria saber se pode me ajudar de alguma maneira!!
Uso TFS 0.4 SVN, nesse server não da pra usar o fast atk mais rapido como padrão, somente com bot, então baixei uma versão do OTX SERVER, nele a source ja esta editada para usar fast atk sem precisar usar bot, mas infelizmente as magias vem com cooldown pré definido, suporte em 1 segundo e ataque em 2 segundos e não da pra baixar, só aumentar.
Resumidamente, em um posso usar magias rapidas porem não posso usar fast atk sem bot, no outro posso usar fast sem bot mas não posso usar magias rapidas.
Sei que é apenas questão de edição da source certa e tal, mas ja tentei de todas as maneiras compilar aqui e não consigo. Uso windows 10, não tenho experiencia nenhuma com compilação, poderia me ajudar com isso?
Agradeço desde ja!-
Aaa tudo bem, se eu te enviar as sources editadas, você consegue compilar?
Tudo que eu tenho da source é isso, ainda não editei, to mandando essas pra vc ver se consegue pq n sei se tem tudo que precisa ai. Posso pagar se precisar!
http://www.mediafire.com/file/y4a9s99zs496e0p/Sources_by_Fir3z_-_blogdotserv.rar