|
You last visited: Today at 09:03
Advertisement
[SERVICE] Die Questerstellung
Discussion on [SERVICE] Die Questerstellung within the Metin2 Private Server forum part of the Metin2 category.
02/12/2016, 22:27
|
#3361
|
elite*gold: 0
Join Date: Jan 2016
Posts: 14
Received Thanks: 0
|
Könnte jemand bitte über diese quest rüberschauen?
Ich möchte, dass der Spieler zum Stallburschen geht und den Auftrag erhält 10x Metin der Dunkelheit zu zerstören und 10x Metin der Eifersucht und dann belohnung bei stallbursche aber die Quest schließt zum beispiel schon ab wenn 10x dunkelheit und kein eifersucht gekillt wurde. Ich muss die Texte noch anpassen ^^
PHP Code:
quest Lvl_35_Stallbursche_Metin begin
state start begin
when login or levelup with pc.get_level() >= 35 begin
set_state(start)
end
end
state start begin
when letter begin
local v = find_npc_by_vnum(20349)
if v != 0 then target.vid("NPC", v, "Mobquest3")
end
send_letter("Mobquest3")
end
when button or info begin
say_title("Mobquest3")
say("")
say("Seon-Pyeong sucht dich!")
say("")
say_reward("Sprich mit Seon-Pyeong!")
say("")
end
when NPC.target.click or 20349.chat."Mobquest3" begin
target.delete("NPC")
say("Stallbursche")
say("")
say("Toete 30 Orks. /m 601 30")
say("")
say("Belohnung:")
say("2.000.000 Yang")
say("1x Karotte")
say("")
say_reward("Zerstoere 10x Metin der Dunkelheit!")
say_reward("Zerstoere 10x Metin der Eifersucht!")
say("")
set_state(kill)
pc.setqf("state1", 0)
q.set_counter("Metin der Dunkelheit", 10)
pc.setqf("state2", 0)
q.set_counter("Metin der Eifersucht", 10)
end
end
state kill begin
when letter begin
send_letter("Mobquest3")
end
when button or info begin
say_title("Mobquest3")
say("")
say("Toete 30 Orks /m 601 30 und")
say("kehre dann zu Seon-Pyeong")
say("zurueck.")
say("")
say("Belohnung:")
say("2.000.000 Yang")
say("1x Karotte")
say("")
say_reward("Du hast "..pc.getqf("state1").." von 10 Metin der Dunkelheit zerstoert.")
say_reward("Du hast "..pc.getqf("state2").." von 10 Metin der Eifersucht zerstoert.")
end
when 8006.kill begin
local count1 = pc.getqf("state1") + 1
if count1 <= 10 then
pc.setqf("state1", count1)
q.set_counter("Metin der Dunkelheit", count1)
end
if count1 == 10 then
set_state(reward)
end
end
when 8007.kill begin
local count2 = pc.getqf("state2") + 1
if count2 <= 10 then
pc.setqf("state2", count2)
q.set_counter("Metin der Eifersucht", count2)
end
if count2 == 10 then
set_state(reward)
end
end
end
state reward begin
when letter begin
local v = find_npc_by_vnum(20349)
if v != 0 then target.vid("NPC", v, "Mobquest3")
end
send_letter("Mobquest3")
end
when button or info begin
say_title("Mobquest3")
say("")
say("Du hast alle Orks getoetet!")
say("Seon-Pyeong gibt dir deine")
say("Belohnung.")
say("")
say("2.000.000 Yang")
say("1x Karotte")
say("")
say_reward("Sprich mit Seon-Pyeong!")
say("")
end
when NPC.target.click or 20349.chat."Mobquest3" begin
target.delete("NPC")
say("Stallbursche")
say("")
say("Du erhaelst deine Belohnung.")
say("")
say("Belohnung:")
say("2.000.000 Yang")
say("1x Karotte")
say("")
pc.change_money(2000000)
pc.give_item2(50055, 1)
set_state(complete)
end
end
state complete begin
end
end
|
|
|
02/13/2016, 18:32
|
#3362
|
elite*gold: 0
Join Date: Nov 2012
Posts: 47
Received Thanks: 5
|
Hey, kann mir bitte jemand zu dieser Quest die Function item3.get_attr schreiben? Wäre echt nett
PHP Code:
quest guildstorage begin
state start begin
when login begin
cmdchat("GUILDSTORAGE QID/"..q.getcurrentquestindex())
pc.setqf('login',get_time()+15)
end
when 9005.chat. "Gildenlager" begin
setskin(NOWINDOW)
guildstorage.open_gs()
end
function open_gs()
if pc.getqf('login') >= get_time() then syschat'Du kannst das Gildenlager erst 15 Sekunden nach dem Login benutzen.' return end --NEU 06.07.2014
if game.get_event_flag('gildenlager') == 0 then syschat'Das Gildenlager ist zurzeit deaktiviert.' return end
if not pc.has_guild() then syschat'Du benoetigst eine Gilde um das Gildenlager benutzen zu koennen.' setskin(NOWINDOW) return end
if not guildstorage.has_guildstorage() then guildstorage.create_guildstorage() end
if pc.is_polymorphed() then syschat'Du kannst das Gildenlager nicht verwenden wenn du verwandelt bist.' return end -- NEW
if pc.is_guild_master() then
cmdchat('GUILDSTORAGE OPEN/1')
else
cmdchat('GUILDSTORAGE OPEN/0')
end
guildstorage.refresh()
pc.setqf("GUILDSTORAGE",1)
end
when button begin
if game.get_event_flag('gildenlager') == 0 then syschat'Das Gildenlager ist zurzeit deaktiviert.' return end
local cmd = guildstorage.client_command(getinput("GUILDSTORAGE QUESTCMD"))
if pc.is_polymorphed() and cmd[1] != 'UPDATE' then syschat'Du kannst das Gildenlager nicht verwenden wenn du verwandelt bist.' return end -- NEW
-- [ITEM]
if cmd[1] == 'TAKE_ITEM' then
if not guildstorage.get_authority(1) then syschat'Du besitzt keine Berechtigung hierfuer.' return end
-- if pc.get_empty_inventory_count() < 3 then syschat'Du hast nicht genug Platz im Inventar, du brauchst mindestens drei freie Plaetze' return end
local slot = tonumber(cmd[2])+120*tonumber(cmd[3])
local item = guildstorage.get_slot_item(slot)
if not pc.enough_inventory(item[1]) then syschat'Du hast nicht genug Platz im Inventar.' return end
if guildstorage.slot_empty(slot) then syschat'Dieses Item befindet sich an einer anderen Position, oder wurde schon rausgenommen' return end
if game.get_event_flag('GUILDS_USE_'..pc.get_guild()) == 1 then syschat'Fehler #101' return end
guildstorage.remove_item(slot)
guildstorage.give_item(item)
elseif cmd[1] == 'MOVE_ITEM' then
item.select_cell(tonumber(cmd[3]))
if not guildstorage.get_authority(0) then syschat'Du besitzt keine Berechtigung hierfuer.' 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'Dieser Slot ist bereits belegt.' 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'Dieser Slot ist bereits belegt, oder das Item existiert nichtmehr.' 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'Du besitzt keine Berechtigung hierfuer.' return end
local old_money = guildstorage.get_money()
if old_money < tonumber(cmd[2]) then syschat'Soviel Yang ist nicht im Gildenlager.' return end
local new_money = tonumber(cmd[2])
if new_money+pc.get_money() >= 1999999999 then syschat'Du kannst nicht mehr wie 2.000.000.000 Yang bei dir haben.' return end
guildstorage.change_money(-new_money)
pc.change_money(new_money)
guildstorage.add_log(pc.get_name(),'Yang','abheben',new_money)
cmdchat('GUILDSTORAGE REFRESH_MONEY/'..(old_money-new_money))
elseif cmd[1] == 'GIVE_MONEY' then
if not guildstorage.get_authority(2) then syschat'Du besitzt keine Berechtigung hierfuer.' return end
local old_money = guildstorage.get_money()
local new_money = tonumber(cmd[2])
if new_money > pc.get_money() then syschat'Soviel Yang besitzt du nicht' return end
pc.change_money(-new_money)
guildstorage.change_money(new_money)
guildstorage.add_log(pc.get_name(),'Yang','einzahlen',new_money)
cmdchat('GUILDSTORAGE REFRESH_MONEY/'..(old_money+new_money))
-- [MEMBER]
elseif cmd[1] == 'ADD_MEMBER' then
if not pc.is_guild_master() then syschat'Cheese. ;p' return end
local members = guildstorage.get_members()
if table.getn(members) >= 12 then syschat'Du kannst maximal nur 12 Member eintragen.' 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'Cheese. ;p' return end
guildstorage.delete_member(cmd[2])
cmdchat('GUILDSTORAGE MEMBER_COMPLETE')
elseif cmd[1] == 'AUTHORITY' then
if not pc.is_guild_master() then syschat'Cheese. ;p' return end
guildstorage.set_authority(cmd[2],tonumber(cmd[3]),cmd[4])
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
elseif cmd[1] == 'GETMEMBERLIST' then
if not pc.is_guild_master() then syschat'Cheese. ;p' 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] == 'OPEN' then
guildstorage.open_gs()
elseif cmd[1] == 'LOAD_LOGS' then
if not pc.is_guild_master() then syschat'Cheese. ;p' 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'Cheese. ;p' return end
guildstorage.clear_logs()
end
end
function item_can_store(itemvnum)
local antiflags = guildstorage.item_get_real_antiflags(guildstorage.item_antiflag(itemvnum))
local blackListItem = {50821,50822,50823,50824,50825,50826,51002}
for i = 1, table.getn(blackListItem) do
if blackListItem[i] == itemvnum then
return false
end
end
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
-- Wenn das item die Antiflag hat wird es nicht eingelagert.
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 tonumber(result.antiflag[1])
end
----------------------
--LOGS START
----------------------
function load_logs()
local logs = {}
local gs_logs = io.open(guildstorage_path.."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(guildstorage_path.."Guildstorage/"..pc.get_guild().."/logs.txt", "w+")
gs_log:flush()
gs_log:close()
end
function add_log(name_,type_,do_,desc_)
local gs_logs = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/logs.txt", "r")
local lineCount = 0
for line in gs_logs:lines() do
lineCount = lineCount + 1
end
if lineCount >= 1000 then
local gs_log = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/logs.txt", "w+")
gs_log:flush()
gs_log:close()
end
local gs_log = io.open(guildstorage_path.."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(guildstorage_path.."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(guildstorage_path.."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'Member ist schon eingetragen.'
return
end
end
local gs_member = io.open(guildstorage_path.."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(guildstorage_path.."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(guildstorage_path.."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(guildstorage_path.."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(guildstorage_path.."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
item.set_value(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
game.set_event_flag('GUILDS_USE_'..pc.get_guild(),0)
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 "..guildstorage_path.."Guildstorage/"..pc.get_guild())
local guildstorage = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/storage.txt", "w+")
local guildstorage = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/money.txt", "w+")
guildstorage:write("0")
guildstorage:close()
local guildstorage = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/authority.txt", "w+")
local guildstorage = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/logs.txt", "w+")
guildstorage:close()
end
function insert_item(cell,slot,tab)
local result = item.select_cell(cell)
if not result then syschat'Probier es nochmal.' return end
local itemId1 = item.get_id()
local itemVnum1 = item.get_vnum()
item.select_cell(cell)
local attr = {{item3.get_attr(0)}, {item3.get_attr(1)}, {item3.get_attr(2)}, {item3.get_attr(3)},{item3.get_attr(4)},{item3.get_attr(5)}, {item3.get_attr(6)}}
local socket, itemCount, itemVnum = {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_count(),item.get_vnum()
if itemId1 != item.get_id() or itemVnum1 != itemVnum then syschat'wtf?' return end
if not guildstorage.item_can_store(itemVnum) then syschat'Dieses Item kann nicht gelagert werden.' return end
if itemCount > 1 then
for i = 1, itemCount do
item.remove()
item.select_cell(cell)
end
elseif itemCount == 1 then
item.remove()
else
chat'Fehler'
return
end
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])
guildstorage.add_log(pc.get_name(),'Item','einlagern',item_name(itemVnum)..' ('..itemCount..')')
local guildstorage = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/storage.txt", "a+")
-- syschat(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])
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()
end
function remove_item(slot)
game.set_event_flag('GUILDS_USE_'..pc.get_guild(),1)
local gsPath = guildstorage_path.."Guildstorage/"..pc.get_guild().."/storage.txt"
local items = {}
local itemList = guildstorage.get_items()
if slot > 720 then syschat'Dieser Slot existiert nicht.' return end
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','rausnehmen',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(guildstorage_path.."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 = guildstorage_path.."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
end
end
Mfg HaRdCoOrEd
|
|
|
02/14/2016, 11:26
|
#3363
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
@Falo55 probiers mal so
PHP Code:
quest Lvl_35_Stallbursche_Metin begin state start begin when login or levelup with pc.get_level() >= 35 begin set_state(start) end end
state start begin when letter begin local v = find_npc_by_vnum(20349) if v != 0 then target.vid("NPC", v, "Mobquest3") end send_letter("Mobquest3") end
when button or info begin say_title("Mobquest3") say("") say("Seon-Pyeong sucht dich!") say("") say_reward("Sprich mit Seon-Pyeong!") say("") end when NPC.target.click or 20349.chat."Mobquest3" begin target.delete("NPC") say("Stallbursche") say("") say("Toete 30 Orks. /m 601 30") say("") say("Belohnung:") say("2.000.000 Yang") say("1x Karotte") say("") say_reward("Zerstoere 10x Metin der Dunkelheit!") say_reward("Zerstoere 10x Metin der Eifersucht!") say("") set_state(kill) pc.setqf("state1", 0) q.set_counter("Metin der Dunkelheit", 10) pc.setqf("state2", 0) q.set_counter("Metin der Eifersucht", 10) end end
state kill begin when letter begin send_letter("Mobquest3") end
when button or info begin say_title("Mobquest3") say("") say("Toete 30 Orks /m 601 30 und") say("kehre dann zu Seon-Pyeong") say("zurueck.") say("") say("Belohnung:") say("2.000.000 Yang") say("1x Karotte") say("") say_reward("Du hast "..pc.getqf("state1").." von 10 Metin der Dunkelheit zerstoert.") say_reward("Du hast "..pc.getqf("state2").." von 10 Metin der Eifersucht zerstoert.") end
when kill begin if npc.get_race() == 8006 then local count = pc.getqf("state1") + 1 if count <= 10 then pc.setqf("state1", count) q.set_counter("Metin der Dunkelheit", count) end elseif npc.get_race() == 8007 then local count = pc.getqf("state2") + 1 if count <= 10 then pc.setqf("state2", count) q.set_counter("Metin der Eifersucht", count) end end if pc.getqf("state1") == 10 and pc.getqf("state2") == 10 then set_state(reward) end end end state reward begin when letter begin local v = find_npc_by_vnum(20349) if v != 0 then target.vid("NPC", v, "Mobquest3") end send_letter("Mobquest3") end
when button or info begin say_title("Mobquest3") say("") say("Du hast alle Orks getoetet!") say("Seon-Pyeong gibt dir deine") say("Belohnung.") say("") say("2.000.000 Yang") say("1x Karotte") say("") say_reward("Sprich mit Seon-Pyeong!") say("") end
when NPC.target.click or 20349.chat."Mobquest3" begin target.delete("NPC") say("Stallbursche") say("") say("Du erhaelst deine Belohnung.") say("") say("Belohnung:") say("2.000.000 Yang") say("1x Karotte") say("") pc.change_money(2000000) pc.give_item2(50055, 1) set_state(complete) end end
state complete begin end end
|
|
|
02/15/2016, 10:35
|
#3364
|
elite*gold: 0
Join Date: Dec 2015
Posts: 121
Received Thanks: 18
|
Hallo Elitepvpers,
Ich suche jemanden, der mir diese Quest umschreiben kann.
PHP Code:
quest levelupitem begin
state start begin
when 30013.use begin
pc.give_exp2(pc.get_next_exp()-pc.get_exp())
pc.remove_item(30013,1)
end
end
end
Diese Quest soll folgende Funktionen haben
Sollte das Item angeklickt werden, wird der Spieler ein Level hochgestuft, jedoch sollte er immer 50% an Erfahrung haben.
Auch mit Level 105 sollte er 50% Erfahrung haben. ( Für Gilde Spenden )
Wäre sehr froh, wenn es jemand machen könnte.
|
|
|
02/15/2016, 14:37
|
#3365
|
elite*gold: 0
Join Date: Apr 2009
Posts: 301
Received Thanks: 17
|
Servus,
wollte Fragen ob es möglich ist eine Quest du erstellen bzw. ob es eine gibt, womit ich ingame Yang gegen Coins Tauschen kann.
MFG Eagle94
|
|
|
02/16/2016, 04:25
|
#3366
|
elite*gold: 0
Join Date: May 2013
Posts: 605
Received Thanks: 580
|
Quote:
Originally Posted by .UNLTD.
Hallo Elitepvpers,
Ich suche jemanden, der mir diese Quest umschreiben kann.
PHP Code:
quest levelupitem begin
state start begin
when 30013.use begin
pc.give_exp2(pc.get_next_exp()-pc.get_exp())
pc.remove_item(30013,1)
end
end
end
Diese Quest soll folgende Funktionen haben
Sollte das Item angeklickt werden, wird der Spieler ein Level hochgestuft, jedoch sollte er immer 50% an Erfahrung haben.
Auch mit Level 105 sollte er 50% Erfahrung haben. ( Für Gilde Spenden )
Wäre sehr froh, wenn es jemand machen könnte.
|
PHP Code:
quest levelupitem begin
state start begin
when 30013.use begin
pc.give_exp2(pc.get_next_exp()-pc.get_exp()) -- lvl upp?
pc.remove_item(30013,1)
pc.give_exp2(pc.get_next_exp()/2)--lvl uppexp/2= 50%
end
end
end
|
|
|
02/17/2016, 08:05
|
#3367
|
elite*gold: 0
Join Date: Oct 2015
Posts: 33
Received Thanks: 2
|
kann mir einer eine quest machen das man durch metin2 steine killen coins bekommt automatisch gutgeschrieben im chat ?
|
|
|
02/17/2016, 17:40
|
#3368
|
elite*gold: 0
Join Date: Jan 2012
Posts: 195
Received Thanks: 19
|
Hallo liebe Quester kann mir jemand bitte eine Quest schreiben wo man durch
z.B Wildund 101 & Metin z.B 8027 Items nach dem Töten erhalten
z.B (19,149,189,.......) zu % chance
|
|
|
02/17/2016, 23:47
|
#3369
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
Quote:
Originally Posted by Supermgking
Hallo liebe Quester kann mir jemand bitte eine Quest schreiben wo man durch
z.B Wildund 101 & Metin z.B 8027 Items nach dem Töten erhalten
z.B (19,149,189,.......) zu % chance
|
PHP Code:
quest drop begin
state start begin
when kill with not npc.is_pc() begin
local drops = ({
[mobvnum] = {dropchance,item,anzahl},
[mobvnum] = {dropchance,item,anzahl},
[mobvnum] = {dropchance,item,anzahl},
[mobvnum] = {dropchance,item,anzahl}
})[npc.get_race()] or 0
if drops != 0 then
local chance = math.random(1,100)
if chance <= drops[1] then
game.drop_item_with_ownership(drops[2],drops[3]
end
end
end
end
end
|
|
|
02/18/2016, 21:33
|
#3370
|
elite*gold: 110
Join Date: Jun 2015
Posts: 85
Received Thanks: 22
|
huhu könntet ihr mir bitte eine quest erstellen
eine Automatische Rates der von montag bis donnerstag auf 150er rates sind und freitag samstag und sonnstag auf 250er rates sind und ab montag wieder 150er rates
es sollen Yang drop item_drop und exp rates sind quest drine sein
|
|
|
02/19/2016, 12:20
|
#3371
|
elite*gold: 0
Join Date: Jan 2012
Posts: 195
Received Thanks: 19
|
@Rofelmau
Fehler :
syntax error : [string "startnot npc . is_pc ( )"):11 ´)´ expected (to close ´(
´at line 10) near ´end´
drop_mob.quest::Error occured on compile drop_mob.quest
|
|
|
02/19/2016, 12:26
|
#3372
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
mach
PHP Code:
game.drop_item_with_ownership(drops[2],drops[3]
zu
PHP Code:
game.drop_item_with_ownership(drops[2],drops[3])
fehlt ne Klammer,
hättest du anhand der Fehlermeldung aber auch drauf kommen können
|
|
|
02/19/2016, 12:26
|
#3373
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
mach
PHP Code:
game.drop_item_with_ownership(drops[2],drops[3]
zu
PHP Code:
game.drop_item_with_ownership(drops[2],drops[3])
fehlt ne Klammer,
hättest du anhand der Fehlermeldung aber auch drauf kommen können
|
|
|
02/19/2016, 22:51
|
#3374
|
elite*gold: 0
Join Date: Jul 2015
Posts: 24
Received Thanks: 2
|
Hat wer eine funktionierende Bio-Quest wo die Monster die Items schon dropen?
Würde mich freuen wenn sie jemand posten kann.
|
|
|
02/21/2016, 23:54
|
#3375
|
elite*gold: 0
Join Date: Feb 2016
Posts: 110
Received Thanks: 14
|
PHP Code:
quest mondlicht begin state start begin when 20011.chat."Mondlichttruhen-Event" with pc.is_gm() begin if game.get_event_flag("event_2") != 1 then say_title("Mondlichttruhen-Event") say("") say_reward("Das Mondlichttruhen Event ist Aus") say_reward("Möchtest du es Starten?") local a = select("Ja", "Nein") if a == 1 then say_title("Mondlichttruhen-Event") say_reward("Wie lange soll das Event gehen?") say_reward("Länge in Stunden eingeben: ") zeit = input() if zeit == '' then return else zeit_h = tonumber(zeit) say_title("Mondlichttruhen Event") say("") say_reward("Möchtest du das Event für "..zeit_h.." Stunden laufen lassen?") local b = select("Ja", "Nein") if b == 1 then server_timer("event_zeit", zeit_h*60*60) game.set_event_flag("event_2", 1) notice_all("Das Mondlichttruhen-Event hat gestartet") notice_all("Um daran, teilzunehmen meldet euch beu Uriel.") else return end end else return end else say_title("Mondlichttruhen-Event") say("") say_reward("Das Mondlichttruhen-Event ist An") say_reward("Möchtest du es Anhalten?") local c = select("Ja", "Nein") if c == 1 then game.set_event_flag("event_2", 0) notice_all("Das Mondlichttruhen-Event wurde beendet") else return end end end when event_zeit.server_timer with game.get_event_flag("event_2") != 0 begin game.set_event_flag("event_2", 0) notice_all("Das Mondlichttruhen-Event wurde beendet") end when kill with game.get_event_flag("event_2") == 1 and pc.get_map_index() == 112 begin local s=number(1, 20) if 5 == s then game.drop_item_with_ownership(50011,1) end end end end
Ich benötige nur noch eine Quest, die durch den Event_flag bei Uriel eine Quest aktiviert die, dem Spieler auf die Map portet ( 3 Reiche, 3 Spawnplätze ).
Sollten von einem Reich 500 Kills erreicht werden, endet das Event.
Und alle Spieler werden in ihr Reich geportet
|
|
|
 |
|
Similar Threads
|
[Community]Questerstellung
09/06/2015 - Metin2 Private Server - 5 Replies
Hallo liebe Community,
ich möchte meine Questkenntnisse ein wenig erweitern, deshalb möchte ich euch hier die Möglichkeit geben, Ideen, Wünsche und alles was mit Quests zu tun hat an mich weiterzuleiten.
Ich werde, sobald ich Zeit und Lust habe, die Ideen größtenteils umsetzen und das Ergebnis hier veröffentlichen. Wie oben schon erwähnt bin ich Quasi noch am 'lernen' (ja ich weis, man lernt nie aus), deshalb bitte ich euch, mich zu informieren wenn ich irgendwo gefailed hab, man es...
|
Hilfe bei Questerstellung
02/25/2012 - Metin2 Private Server - 0 Replies
€dit:
Kan gelöscht werden habe jemanden gefunden!!!!
|
Hilfe bei Questerstellung
02/15/2012 - Metin2 Private Server - 8 Replies
Heyy
Ich hätte eine bitte an euch.
Und zwar einer von euch mir einige quests erstellst.
Ich habe voll kp von quests.
Als blohnung würde ich dir auf meinem server
5k coins (Wert 50€) geben.
also hier die quests:
30 Quest
Belohnung: 100kk 42 rüssi+7 je nach der klasse.
|
Hilfe bei Questerstellung
08/16/2011 - Metin2 Private Server - 0 Replies
Mahlzeit
also ich suche jemanden der mir ein grundgerüst einer quest erstellen kann so das ich diese weiter ausbauen kann,
So nun zur quest idee
Also ich möchte einen NPC hinstellen nennen wir den mal Questnpc
wenn man den anklickt soll man dem levelabhängig quest angeboten bekommen,zum beispiel ab lvl10 töte 50 weisse Tiger,aber lvl40 töte 30 Oberork und so weiter,was mit levelanstieg natürlich komplexer werden sollte.Manche Quest sollten nur einmal zumachen gehen und manche im höheren lvl...
|
[SERVICE]Questerstellung
05/24/2011 - Metin2 Private Server - 4 Replies
Abend e*pvp,
nach langem Überlegen hab ich mich doch dazu entschlossen, meine Arbeit gegen e*gold zur Verfügung zu stellen.
Ich werde euch mal die wichtigsten Fragen beantworten ;)
Woraus besteht dein Service?
Zum einen erstelle ich einzelne, sowie ganze Questreihen. Die von mir verschickten Dateien werden Unikate bleiben, und sofort nach erfolgreichem Transfer gelöscht. Außerdem biete ich nochmal seperat eine Questverbesserung zum Sammelthread an. Diese wird dann natürlich...
|
All times are GMT +1. The time now is 09:05.
|
|