- Katılım
- 13 Ara 2014
- Konular
- 76
- Mesajlar
- 696
- Online süresi
- 4g 22527s
- Reaksiyon Skoru
- 72
- Altın Konu
- 0
- Başarım Puanı
- 128
- TM Yaşı
- 11 Yıl 4 Ay 10 Gün
- MmoLira
- 683
- DevLira
- 0
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
iyi akşamlar arkadaşlar forumda paylaşılmış olan
lonca depo sisteminin questinde bir hata mevcut
okuturken qc.core veriyor
tam aktif olmuyor quest bu yüzden sistem düzdün çalışmıyor.
questten anlayan birisi baştan düzenleyebilir ise turkmmo ya kazandırsın bu sistemi
QUEST:grey:
http://www.dosyaupload.com/2Zq
lonca depo sisteminin questinde bir hata mevcut
okuturken qc.core veriyor
tam aktif olmuyor quest bu yüzden sistem düzdün çalışmıyor.
questten anlayan birisi baştan düzenleyebilir ise turkmmo ya kazandırsın bu sistemi
QUEST:grey:
http://www.dosyaupload.com/2Zq
Kod:
quest guildstorage begin
state start begin
function getinput(par)
cmdchat("getinputbegin")
local ret = input(cmdchat(par))
cmdchat("getinputend")
return ret
end
function item_can_store(itemvnum)
local antiflags = guildstorage.item_get_real_antiflags(guildstorage.item_antiflag(itemvnum))
for i = 1 , table.getn(antiflags) do
if antiflags[i] == 128 or antiflags[i] == 131072 or antiflags[i] == 8192 or antiflags[i] == 64 then return false end
end
return true
end
function item_get_real_antiflags(antiflag_)
antiflags = {131072,65536,32768,16384,8192,4096,2048,1024,512,256,128,64,32,16,8,4,2,1}
tab2 = {}
table.foreach(antiflags,function(_,v) if antiflag_ >= v then table.insert(tab2,v) antiflag_ = antiflag_ - v end end)
return tab2
end
function item_antiflag(item_vnum)
local result = mysql_query("SELECT antiflag from player.item_proto where vnum = "..item_vnum..";")
return (result[1][1])--pack
end
----------------------
--LOGS START
----------------------
function load_logs()
local logs = {}
local gs_logs = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/logs.txt", "r")
for line in gs_logs:lines() do
table.insert(logs,guildstorage.split_(line,"#"))
end
return logs
end
function clear_logs()
local gs_log = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/logs.txt", "w+")
gs_log:flush()
gs_log:close()
end
function add_log(name_,type_,do_,desc_)
local gs_log = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/logs.txt", "a+")
local date_ = os.date()
date_ = string.gsub(date_," ", "+-+")
desc_ = string.gsub(desc_," ", "+-+")
gs_log:write(name_..'#'..date_..'#'..type_..'#'..do_..'#'..desc_..'\\n')
gs_log:flush()
gs_log:close()
end
----------------------
--LOGS END
----------------------
----------------------
--MEMBER & AUTHORITY START
----------------------
-- Auth 0 = einlagern
-- Auth 1 = rausnehmen
-- Auth 2 = einzahlen
-- Auth 3 = auszahlen
function get_members()
local members = {}
local gs_member = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/authority.txt", "r")
for line in gs_member:lines() do
table.insert(members,guildstorage.split_(line,"#"))
end
return members
end
function get_authority(authID)
if pc.is_guild_master() then return true end
local members = guildstorage.get_members()
for i = 1, table.getn(members) do
if members[i][1] == pc.get_name() then
if tonumber(members[i][authID+2]) == 0 then return false else return true end
end
end
return false
end
function set_authority(member,authID,auth)
local members = guildstorage.get_members()
for i = 1, table.getn(members) do
if members[i][1] == member then
members[i][authID+2] = auth
break
end
end
local gs_member = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/authority.txt", "w+")
for i = 1, table.getn(members) do
gs_member:write(members[i][1]..'#'..members[i][2]..'#'..members[i][3]..'#'..members[i][4]..'#'..members[i][5]..'\\n')
end
gs_member:flush()
gs_member:close()
end
function add_member(member)
local members = guildstorage.get_members()
for i = 1, table.getn(members) do
if members[i][1] == member then
syschat'Üye zaten ekli.'
return
end
end
local gs_member = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/authority.txt", "a+")
gs_member:write(member..'#0#0#0#0\\n')
gs_member:flush()
gs_member:close()
end
function delete_member(member)
local members = guildstorage.get_members()
for i = 1, table.getn(members) do
if members[i][1] == member then
table.remove(members,i)
break
end
end
local gs_member = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/authority.txt", "w+")
for i = 1, table.getn(members) do
gs_member:write(members[i][1]..'#'..members[i][2]..'#'..members[i][3]..'#'..members[i][4]..'#'..members[i][5]..'\\n')
end
gs_member:flush()
gs_member:close()
end
----------------------
--MEMBER & AUTHORITY END
----------------------
----------------------
--MONEY START
----------------------
function get_money()
local gs_money = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/money.txt", "r")
for line in gs_money:lines() do
return tonumber(line)
end
end
function change_money(money)
local old_money = guildstorage.get_money()
local gs_money = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/money.txt", "w+")
gs_money:write(old_money+money)
gs_money:flush()
gs_money:close()
end
----------------------
--MONEY END
----------------------
----------------------
--STORAGE START
----------------------
function has_guildstorage()
local guildstorage = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/storage.txt", "r")
if guildstorage == nil then
return false
else
return true
end
end
function give_item(itemTab)
pc.give_item2_select(itemTab[1],itemTab[2])
local attr,socket = {},{}
for i = 10,23 do table.insert(attr,{itemTab[i],itemTab[i+1]}) i = i+1 end
for i = 4,6 do table.insert(socket,itemTab[i]) end
for i = 1, table.getn(attr) do
item2.set_attr(i-1, attr[i][1], attr[i][2])
end
for i = 1, table.getn(socket) do if tonumber(socket[i]) > 0 then item.set_socket(i-1, socket[i]) end end
end
function get_slot_item(slot)
local items = guildstorage.get_items()
for i = 1, table.getn(items) do
local item = guildstorage.split_(items[i],"#")
if tonumber(item[3]) == slot then
return item
end
end
return 0
end
function refresh()
cmdchat('GUILDSTORAGE REFRESH_MONEY/'..guildstorage.get_money())
local items = guildstorage.get_items()
if items != 0 then
for i = 1, table.getn(items) do
local item = guildstorage.split_(items[i],"#")
-- chat(table.getn(item))
cmdchat('GUILDSTORAGE_ADDITEM '..item[3]..' '..item[1]..' '..item[2]..' '..item[4]..' '..item[5]..' '..item[6]..' '..item[7]..' '..item[8]..' '..item[9]..' '..item[10]..' '..item[11]..' '..item[12]..' '..item[13]..' '..item[14]..' '..item[15]..' '..item[16]..' '..item[17]..' '..item[18]..' '..item[19]..' '..item[20]..' '..item[21]..' '..item[22]..' '..item[23])
end
end
cmdchat('GUILDSTORAGE REFRESH')
end
function refresh_tempslots()
cmdchat('GUILDSTORAGE REFRESH_MONEY/'..guildstorage.get_money())
cmdchat('GUILDSTORAGE CLEAR_TEMPSLOTS')
local items = guildstorage.get_items()
if items != 0 then
for i = 1, table.getn(items) do
local item = guildstorage.split_(items[i],"#")
cmdchat('GUILDSTORAGE_ADDTEMPSLOT '..item[3]..' '..item[1]..' '..item[2]..' '..item[4]..' '..item[5]..' '..item[6]..' '..item[7]..' '..item[8]..' '..item[9]..' '..item[10]..' '..item[11]..' '..item[12]..' '..item[13]..' '..item[14]..' '..item[15]..' '..item[16]..' '..item[17]..' '..item[18]..' '..item[19]..' '..item[20]..' '..item[21]..' '..item[22]..' '..item[23])
end
end
cmdchat('GUILDSTORAGE COMPARE_TEMPSLOTS')
end
function slot_empty(slot)
local itemList = guildstorage.get_items()
for i = 1 , table.getn(itemList) do
local item = guildstorage.split_(itemList[i],"#")
if tonumber(item[3]) == slot then
return false
end
end
return true
end
function create_guildstorage()
os.execute("mkdir ".."/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild())
local guildstorage = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/storage.txt", "w+")
local guildstorage = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/money.txt", "w+")
guildstorage:write("0")
guildstorage:close()
local guildstorage = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/authority.txt", "w+")
local guildstorage = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/logs.txt", "w+")
guildstorage:close()
end
function insert_item(cell,slot,tab)
item.select_cell(cell)
local attr = {{item2.get_attr(0)}, {item2.get_attr(1)}, {item2.get_attr(2)}, {item2.get_attr(3)},{item2.get_attr(4)},{item2.get_attr(5)}, {item2.get_attr(6)}}
local socket, itemVnum, itemCount = {item.get_socket(0), item.get_socket(1), item.get_socket(2),item.get_socket(3),item.get_socket(4),item.get_socket(5)}, item.get_vnum(), item.get_count()
if not guildstorage.item_can_store(itemVnum) then syschat'Bu öğeyi depoya koyamazsın.' return end
guildstorage.add_log(pc.get_name(),'Item','Ekledi ',item_name(itemVnum)..' ('..itemCount..')')
local guildstorage = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/storage.txt", "a+")
if not pc.can_warp() then return end
item.select(cell)
if item.vnum == 0 then return end
--if item.rem(item.get_count()) then
item.remove()
guildstorage:write(itemVnum.."#"..itemCount.."#"..(slot+120*tab).."#"..socket[1].."#"..socket[2].."#"..socket[3].."#"..socket[4].."#"..socket[5].."#"..socket[6].."#"..attr[1][1].."#"..attr[1][2].."#"..attr[2][1].."#"..attr[2][2].."#"..attr[3][1].."#"..attr[3][2].."#"..attr[4][1].."#"..attr[4][2].."#"..attr[5][1].."#"..attr[5][2].."#"..attr[6][1].."#"..attr[6][2].."#"..attr[7][1].."#"..attr[7][2].."\\n")
guildstorage:flush()
guildstorage:close()
cmdchat('GUILDSTORAGE_ADDITEMSLOT '..slot..' '..tab..' '..itemVnum..' '..itemCount..' '..socket[1]..' '..socket[2]..' '..socket[3]..' '..socket[4]..' '..socket[5]..' '..socket[6]..' '..attr[1][1]..' '..attr[1][2]..' '..attr[2][1]..' '..attr[2][2]..' '..attr[3][1]..' '..attr[3][2]..' '..attr[4][1]..' '..attr[4][2]..' '..attr[5][1]..' '..attr[5][2]..' '..attr[6][1]..' '..attr[6][2]..' '..attr[7][1]..' '..attr[7][2])
--else
--syschat("Du hast das Item nicht mehr")
--end
end
function remove_item(slot)
local gsPath = "/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/storage.txt"
local items = {}
local itemList = guildstorage.get_items()
for i = 1 , table.getn(itemList) do
table.insert(items,guildstorage.split_(itemList[i],"#"))
end
for i = 1, table.getn(items) do
if items[i][3] == tostring(slot) then
guildstorage.add_log(pc.get_name(),'Item','Çekti ',item_name(items[i][1])..' ('..items[i][2]..')')
table.remove(items,i)
break
end
end
local gs = io.open(gsPath, "w+")
for i = 1, table.getn(items) do
gs:write(items[i][1]..'#'..items[i][2]..'#'..items[i][3]..'#'..items[i][4]..'#'..items[i][5]..'#'..items[i][6]..'#'..items[i][7]..'#'..items[i][8]..'#'..items[i][9]..'#'..items[i][10]..'#'..items[i][11]..'#'..items[i][12]..'#'..items[i][13]..'#'..items[i][14]..'#'..items[i][15]..'#'..items[i][16]..'#'..items[i][17]..'#'..items[i][18]..'#'..items[i][19]..'#'..items[i][20]..'#'..items[i][21]..'#'..items[i][22]..'#'..items[i][23]..'\\n')
end
gs:flush()
gs:close()
end
function get_items()
local guildstorageTab = {}
local guildstorage = io.open("/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/storage.txt", "r")
for item in guildstorage:lines() do
table.insert(guildstorageTab,item)
end
return guildstorageTab or 0
end
function move_item(from,to)
local gsPath = "/usr/game/share/locale/turkey/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/storage.txt"
local items = {}
local itemList = guildstorage.get_items()
for i = 1 , table.getn(itemList) do
table.insert(items,guildstorage.split_(itemList[i],"#"))
end
for i = 1, table.getn(items) do
if items[i][3] == tostring(from) then items[i][3] = tostring(to) end
end
local gs = io.open(gsPath, "w+")
for i = 1, table.getn(items) do
gs:write(items[i][1]..'#'..items[i][2]..'#'..items[i][3]..'#'..items[i][4]..'#'..items[i][5]..'#'..items[i][6]..'#'..items[i][7]..'#'..items[i][8]..'#'..items[i][9]..'#'..items[i][10]..'#'..items[i][11]..'#'..items[i][12]..'#'..items[i][13]..'#'..items[i][14]..'#'..items[i][15]..'#'..items[i][16]..'#'..items[i][17]..'#'..items[i][18]..'#'..items[i][19]..'#'..items[i][20]..'#'..items[i][21]..'#'..items[i][22]..'#'..items[i][23]..'\\n')
end
gs:flush()
gs:close()
end
----------------------
--STORAGE END
----------------------
function client_command(command_)
return guildstorage.split_(command_,"#")
end
function split_(string_,delimiter)
local result = { }
local from = 1
local delim_from, delim_to = string.find( string_, delimiter, from )
while delim_from do
table.insert( result, string.sub( string_, from , delim_from-1 ) )
from = delim_to + 1
delim_from, delim_to = string.find( string_, delimiter, from )
end
table.insert( result, string.sub( string_, from ) )
return result
end
when login begin
cmdchat("GUILDSTORAGE QID/"..q.getcurrentquestindex())
end
when guild_man1.chat."Lonca Deposu " or guild_man2.chat."Lonca Deposu " or guild_man3.chat."Lonca Deposu " begin
if not pc.has_guild() then syschat'Loncan olmadan bu depoyu kullanamazsın.' setskin(NOWINDOW) return end
if not guildstorage.has_guildstorage() then guildstorage.create_guildstorage() end
if pc.is_guild_master() then
cmdchat('GUILDSTORAGE OPEN/1')
else
cmdchat('GUILDSTORAGE OPEN/0')
end
guildstorage.refresh()
pc.setqf("GUILDSTORAGE",1)
setskin(NOWINDOW)
end
when button begin
local cmd = guildstorage.client_command(guildstorage.getinput("GUILDSTORAGE QUESTCMD"))
if cmd[1] == 'TAKE_ITEM' then
if not guildstorage.get_authority(1) then syschat'Yetkin olmadan işlem yapamazsın.' return end
if pc.get_empty_inventory_count() < 3 then syschat'Envanterinde yeterli boşluk yok.' return end
local slot = tonumber(cmd[2])+120*tonumber(cmd[3])
local item = guildstorage.get_slot_item(slot)
if guildstorage.slot_empty(slot) then syschat'Bu pozisyondan item daha önce alınmış.' return end
guildstorage.remove_item(slot)
guildstorage.give_item(item)
elseif cmd[1] == 'MOVE_ITEM' then
if not guildstorage.get_authority(0) then syschat'Yetkin olmadan işlem yapamazsın.' return end
--possible to store the item? antiflag/flag
if cmd[2] == 'INVENTORY' then
if not guildstorage.slot_empty(tonumber(cmd[4])+120*tonumber(cmd[5])) then syschat'Burada zaten item var. Başka bir yuva deneyin.' return end
guildstorage.insert_item(tonumber(cmd[3]),tonumber(cmd[4]),tonumber(cmd[5]))
elseif cmd[2] == 'GUILDSTORAGE' then
if not guildstorage.slot_empty(tonumber(cmd[5])+120*tonumber(cmd[6])) then syschat'Burada zaten item var. Başka bir yuva deneyin.' return end
guildstorage.move_item(tonumber(cmd[3])+120*tonumber(cmd[4]),tonumber(cmd[5])+120*tonumber(cmd[6]))
end
-- [MONEY]
elseif cmd[1] == 'TAKE_MONEY' then
if not guildstorage.get_authority(3) then syschat'Yetkin olmadan işlem yapamazsın.' return end
local old_money = guildstorage.get_money()
if old_money < tonumber(cmd[2]) then syschat"O kadar yang'a sahip değilsin." return end
local new_money = tonumber(cmd[2])
if new_money+pc.get_money() >= 1999999999 then syschat'2.000.000.000 yangdan fazla işlem yapamazsın.' return end
guildstorage.change_money(-new_money)
pc.change_money(new_money)
guildstorage.add_log(pc.get_name(),'Yang','Çekti ',new_money)
cmdchat('GUILDSTORAGE REFRESH_MONEY/'..(old_money-new_money))
elseif cmd[1] == 'GIVE_MONEY' then
if not guildstorage.get_authority(2) then syschat'Yetkin olmadan işlem yapamazsın.' return end
local old_money = guildstorage.get_money()
local new_money = tonumber(cmd[2])
if new_money > pc.get_money() then syschat'O kadar yanga sahip değilsin.' return end
pc.change_money(-new_money)
guildstorage.change_money(new_money)
guildstorage.add_log(pc.get_name(),'Yang','Yatırdı ',new_money)
cmdchat('GUILDSTORAGE REFRESH_MONEY/'..(old_money+new_money))
elseif cmd[1] == 'GETGUILDSTORAGEMONEY' then
cmdchat('GUILDSTORAGE REFRESH_GUILDWINDOW_MONEY/'..guildstorage.get_money())
-- [MEMBER]
elseif cmd[1] == 'ADD_MEMBER' then
if not pc.is_guild_master() then syschat'Lonca lideri olmadan işlem yapamazsın.' return end
local members = guildstorage.get_members()
if table.getn(members) >= 12 then syschat'Maksimum 12 üye girebilirsin.' return end
guildstorage.add_member(cmd[2])
cmdchat('GUILDSTORAGE MEMBER_COMPLETE')
elseif cmd[1] == 'DELETE_MEMBER' then
if not pc.is_guild_master() then syschat'Lonca lideri olmadan işlem yapamazsın.' return end
guildstorage.delete_member(cmd[2])
cmdchat('GUILDSTORAGE MEMBER_COMPLETE')
elseif cmd[1] == 'AUTHORITY' then
if not pc.is_guild_master() then syschat'Lonca lideri olmadan işlem yapamazsın.' return end
guildstorage.set_authority(cmd[2],tonumber(cmd[3]),cmd[4])
elseif cmd[1] == 'GETMEMBERLIST' then
if not pc.is_guild_master() then syschat'Lonca lideri olmadan işlem yapamazsın.' return end
local members = guildstorage.get_members()
for i = 1, table.getn(members) do
-- id, membername, authority 1-4
cmdchat('GUILDSTORAGE_ADDMEMBER '..(i-1)..' '..members[i][1]..' '..members[i][2]..' '..members[i][3]..' '..members[i][4]..' '..members[i][5])
end
cmdchat('GUILDSTORAGE REFRESH_MEMBERS')
elseif cmd[1] == 'UPDATE' then
guildstorage.refresh_tempslots()
elseif cmd[1] == 'LOAD_LOGS' then
if not pc.is_guild_master() then syschat'Lonca lideri olmadan işlem yapamazsın.' return end
local logs = guildstorage.load_logs()
local logsLen = table.getn(logs)
for i = 0, logsLen-1 do
local var = (logsLen-i)
cmdchat('GUILDSTORAGE_ADDLOG '..(var-1)..' '..logs[var][1]..' '..logs[var][2]..' '..logs[var][3]..' '..logs[var][4]..' '..logs[var][5])
end
elseif cmd[1] == 'DELETE_LOGS' then
if not pc.is_guild_master() then syschat'Lonca lideri olmadan işlem yapamazsın.' return end
guildstorage.clear_logs()
elseif cmd[1] == 'BUTTON' then
if cmd[2] == "0" then
setskin(NOWINDOW)
game.open_mall()
elseif cmd[2] == "1" then
setskin(NOWINDOW)
game.open_safebox()
elseif cmd[2] == "2" then
if not pc.has_guild() then syschat'Loncan olmadan depoyu kullanamazsın.' setskin(NOWINDOW) return end
if not guildstorage.has_guildstorage() then guildstorage.create_guildstorage() end
if pc.is_guild_master() then
cmdchat('GUILDSTORAGE OPEN/1')
else
cmdchat('GUILDSTORAGE OPEN/0')
end
guildstorage.refresh()
pc.setqf("GUILDSTORAGE",1)
setskin(NOWINDOW)
end
end
end
end
end
Son düzenleme:


