Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 23:30

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[SERVICE] Die Questkontrolle

Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old 09/24/2016, 00:50   #12421
 
elite*gold: 0
Join Date: Jun 2011
Posts: 14
Received Thanks: 2
PHP Code:
quest desert_battle begin
    state start begin
        when 20352.chat
."Wüstenschlacht" begin
        
        
if pc.get_level()>=75 then
            
if game.get_event_flag("deserton") == 0 then
                say
("Die Wüstenschlacht findet derzeit nicht statt.")
                return
            elseif 
game.get_event_flag("deserton") == 2 then
                say
("Die Wüstenschlacht befindet sich in der Endphase du kannst nicht beitreten.")
                return
            
end
            say
("Die Schlacht in der Wüste ist im vollen gange,")
            
say("möchtest du beitreten oder Informationen erhalten?")
            
local info select("Auf in die Wüste""Informationen""Abbrechen")
            
            if 
info == 3 then
                
return
            elseif 
info == 2 then
                say
("Das Ziel der Wüstenschlacht ist es als erstes reich 500")
                
say("Gegner aus den anderen Reichen zu besiegen.")
                
say("")
                
say("Das Reich, welches gewinnt erhält am schluss eine Belohnung")
                
say("in Form einiger Metinsteine")
                
local teilnehmen select("Teilnehmen""Abbrechen")
                    if 
teilnehmen == 2 then
                        
return
                    elseif 
teilnehmen == 1 then
                        
if pc.get_empire() == 1 then
                            pc
.warp(217800627200)
                        elseif 
pc.get_empire() == 2 then
                            pc
.warp(221900502700)
                        elseif 
pc.get_empire() == 3 then
                            pc
.warp(344000502500)
                        else
                            
say("Bei deinem Reich gab es einen Fehler!")
                        
end
                    end
            
elseif info == 1 then
                    
if pc.get_empire() == 1 then
                            pc
.warp(217800627200)
                    elseif 
pc.get_empire() == 2 then
                            pc
.warp(221900502700)
                    elseif 
pc.get_empire() == 3 then
                            pc
.warp(344000502500)
                    else
                            
say("Bei deinem Reich gab es einen Fehler!")
                    
end
            end
        
else
            
say("Du bist noch nicht Level 75")
            return
        
end
        end
        
        when kill with npc
.get_empire() != pc.get_empire() and npc.is_pc() and pc.get_map_index() == and game.get_event_flag("turnieron") == 1 begin --X durch die ID der Map ersetzen
            
if game.get_event_flag("turnier"..pc.get_empire().."punkte") == 0 then
                game
.set_event_flag("turnier"..pc.get_empire().."punkte"1)
            else
                
game.set_event_flag("turnier"..pc.get_empire().."punkte"game.get_event_flag("turnier"..pc.get_empire().."punkte")+1)
            
end
            
if game.get_event_flag("turnier"..pc.get_empire().."punkte") >= 500 then
                game
.set_event_flag("reich"..pc.get_empire().."status"1)
                if 
pc.get_empire() == 1 then
                    notice_all
("Das Rote Reich hat in der Wüste dominiert.")
                elseif 
pc.get_empire() == 2 then
                    notice_all
("Das Gelbe Reich hat in der Wüste dominiert.")
                elseif 
pc.get_empire() == 2 then
                    notice_all
("Das Blaue Reich hat in der Wüste dominiert.")
                
end
                game
.set_event_flag("deserton"2)
            
end
        end
        when game
.get_event_flag("deserton") == 2 begin
            notice_all
("Das Turnier geht nun in die Endphase.")
            
notice_all("Für das Siegerreich spawnen nun Metins")
            
notice_all("in der Mitte der Wüste.")
            
regen_in_map(183"locale /germany/map/desert_war/regen_metins.txt")
            
say_in_map(183"Ihr habt nun 30 Minuten Zeit die Metins in der Wüste")
            
say_in_map(183"zu finden und zu zerstören. Viel Spass!")
            
timer("cooldown"60*30)
        
end
        when login 
or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == and pc.get_map_index() == 183 begin
            
if game.get_event_flag("reich"..pc.get_empire().."status") == 1 then
                
return
            elseif 
pc.is_gm() then
                
return
            else
                if 
pc.get_empire == 1 then
                    pc
.warp(474200954400)
                elseif 
pc.get_empire == 2 then
                    pc
.warp(63200166100)
                elseif 
pc.get_empire == 3 then
                    pc
.warp(960100268700)
                else
                    
say("Du konntest auf grund deines Reiches nicht zurückteleportiert werden.")
                    
say("Bitte Teleportier dich selber zurück")
                
end
            end
        end
        when login 
or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == and pc.get_map_index() == 183 and pc.get_level<75 begin
            
if pc.get_empire == 1 then
                pc
.warp(474200954400)
            elseif 
pc.get_empire == 2 then
                pc
.warp(63200166100)
            elseif 
pc.get_empire == 3 then
                pc
.warp(960100268700)
            
end
        end
        when 
"cooldown".timer begin
            cleartimer
("cooldown")
            
game.set_event_flag("deserton"0)
            
game.set_event_flag("turnier1punkte"0)
            
game.set_event_flag("turnier2punkte"0)
            
game.set_event_flag("turnier3punkte"0)
            
game.set_event_flag("reich1status"0)
            
game.set_event_flag("reich2status"0)
            
game.set_event_flag("reich3status"0)
            
notice_all("Die Wüstenschlacht hat ein Ende gefunden.")
            
wait()
            
warp_all_to_village(1831)
            
kill_all_in_map(183)
        
end
        
        when 20352.chat
."Wüstenschlacht-Einstellungen" with pc.is_gm() begin
            say
("Was möchtest du machen?")
            
local what select("Wüstenschlacht starten""Wüstenschlacht Beenden""Abbrechen")
            
            if 
what == 3 then
                
return
            elseif 
what == 2 then
                game
.set_event_flag("deserton"0)
                
game.set_event_flag("turnier1punkte"0)
                
game.set_event_flag("turnier2punkte"0)
                
game.set_event_flag("turnier3punkte"0)
                
game.set_event_flag("reich1status"0)
                
game.set_event_flag("reich2status"0)
                
game.set_event_flag("reich3status"0)
                
notice_all("Die Wüstenschlacht hat ein Ende gefunden.")
            elseif 
what == 1 then
                game
.set_event_flag("deserton"1)
                
notice_all("Die Wüstenschlacht wurde von "..pc.get_name.." gestartet.")
                
notice_all("Begebt euch zum Schlachtenverwalter.")
            
end
        end
            
    end 
WHEN : game.get_event_flag
Quest/desert_battle.quest:74:when doesn't have begin-end clause. (()
Error occured on compile Quest/desert_battle.quest
PL4tiinum is offline  
Old 09/24/2016, 01:22   #12422
 
zazadi's Avatar
 
elite*gold: 21
Join Date: Mar 2015
Posts: 679
Received Thanks: 245
Quote:
Originally Posted by PL4tiinum View Post
PHP Code:
quest desert_battle begin
    state start begin
        when 20352.chat
."Wüstenschlacht" begin
        
        
if pc.get_level()>=75 then
            
if game.get_event_flag("deserton") == 0 then
                say
("Die Wüstenschlacht findet derzeit nicht statt.")
                return
            elseif 
game.get_event_flag("deserton") == 2 then
                say
("Die Wüstenschlacht befindet sich in der Endphase du kannst nicht beitreten.")
                return
            
end
            say
("Die Schlacht in der Wüste ist im vollen gange,")
            
say("möchtest du beitreten oder Informationen erhalten?")
            
local info select("Auf in die Wüste""Informationen""Abbrechen")
            
            if 
info == 3 then
                
return
            elseif 
info == 2 then
                say
("Das Ziel der Wüstenschlacht ist es als erstes reich 500")
                
say("Gegner aus den anderen Reichen zu besiegen.")
                
say("")
                
say("Das Reich, welches gewinnt erhält am schluss eine Belohnung")
                
say("in Form einiger Metinsteine")
                
local teilnehmen select("Teilnehmen""Abbrechen")
                    if 
teilnehmen == 2 then
                        
return
                    elseif 
teilnehmen == 1 then
                        
if pc.get_empire() == 1 then
                            pc
.warp(217800627200)
                        elseif 
pc.get_empire() == 2 then
                            pc
.warp(221900502700)
                        elseif 
pc.get_empire() == 3 then
                            pc
.warp(344000502500)
                        else
                            
say("Bei deinem Reich gab es einen Fehler!")
                        
end
                    end
            
elseif info == 1 then
                    
if pc.get_empire() == 1 then
                            pc
.warp(217800627200)
                    elseif 
pc.get_empire() == 2 then
                            pc
.warp(221900502700)
                    elseif 
pc.get_empire() == 3 then
                            pc
.warp(344000502500)
                    else
                            
say("Bei deinem Reich gab es einen Fehler!")
                    
end
            end
        
else
            
say("Du bist noch nicht Level 75")
            return
        
end
        end
        
        when kill with npc
.get_empire() != pc.get_empire() and npc.is_pc() and pc.get_map_index() == and game.get_event_flag("turnieron") == 1 begin --X durch die ID der Map ersetzen
            
if game.get_event_flag("turnier"..pc.get_empire().."punkte") == 0 then
                game
.set_event_flag("turnier"..pc.get_empire().."punkte"1)
            else
                
game.set_event_flag("turnier"..pc.get_empire().."punkte"game.get_event_flag("turnier"..pc.get_empire().."punkte")+1)
            
end
            
if game.get_event_flag("turnier"..pc.get_empire().."punkte") >= 500 then
                game
.set_event_flag("reich"..pc.get_empire().."status"1)
                if 
pc.get_empire() == 1 then
                    notice_all
("Das Rote Reich hat in der Wüste dominiert.")
                elseif 
pc.get_empire() == 2 then
                    notice_all
("Das Gelbe Reich hat in der Wüste dominiert.")
                elseif 
pc.get_empire() == 2 then
                    notice_all
("Das Blaue Reich hat in der Wüste dominiert.")
                
end
                game
.set_event_flag("deserton"2)
            
end
        end
        when game
.get_event_flag("deserton") == 2 begin
            notice_all
("Das Turnier geht nun in die Endphase.")
            
notice_all("Für das Siegerreich spawnen nun Metins")
            
notice_all("in der Mitte der Wüste.")
            
regen_in_map(183"locale /germany/map/desert_war/regen_metins.txt")
            
say_in_map(183"Ihr habt nun 30 Minuten Zeit die Metins in der Wüste")
            
say_in_map(183"zu finden und zu zerstören. Viel Spass!")
            
timer("cooldown"60*30)
        
end
        when login 
or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == and pc.get_map_index() == 183 begin
            
if game.get_event_flag("reich"..pc.get_empire().."status") == 1 then
                
return
            elseif 
pc.is_gm() then
                
return
            else
                if 
pc.get_empire == 1 then
                    pc
.warp(474200954400)
                elseif 
pc.get_empire == 2 then
                    pc
.warp(63200166100)
                elseif 
pc.get_empire == 3 then
                    pc
.warp(960100268700)
                else
                    
say("Du konntest auf grund deines Reiches nicht zurückteleportiert werden.")
                    
say("Bitte Teleportier dich selber zurück")
                
end
            end
        end
        when login 
or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == and pc.get_map_index() == 183 and pc.get_level<75 begin
            
if pc.get_empire == 1 then
                pc
.warp(474200954400)
            elseif 
pc.get_empire == 2 then
                pc
.warp(63200166100)
            elseif 
pc.get_empire == 3 then
                pc
.warp(960100268700)
            
end
        end
        when 
"cooldown".timer begin
            cleartimer
("cooldown")
            
game.set_event_flag("deserton"0)
            
game.set_event_flag("turnier1punkte"0)
            
game.set_event_flag("turnier2punkte"0)
            
game.set_event_flag("turnier3punkte"0)
            
game.set_event_flag("reich1status"0)
            
game.set_event_flag("reich2status"0)
            
game.set_event_flag("reich3status"0)
            
notice_all("Die Wüstenschlacht hat ein Ende gefunden.")
            
wait()
            
warp_all_to_village(1831)
            
kill_all_in_map(183)
        
end
        
        when 20352.chat
."Wüstenschlacht-Einstellungen" with pc.is_gm() begin
            say
("Was möchtest du machen?")
            
local what select("Wüstenschlacht starten""Wüstenschlacht Beenden""Abbrechen")
            
            if 
what == 3 then
                
return
            elseif 
what == 2 then
                game
.set_event_flag("deserton"0)
                
game.set_event_flag("turnier1punkte"0)
                
game.set_event_flag("turnier2punkte"0)
                
game.set_event_flag("turnier3punkte"0)
                
game.set_event_flag("reich1status"0)
                
game.set_event_flag("reich2status"0)
                
game.set_event_flag("reich3status"0)
                
notice_all("Die Wüstenschlacht hat ein Ende gefunden.")
            elseif 
what == 1 then
                game
.set_event_flag("deserton"1)
                
notice_all("Die Wüstenschlacht wurde von "..pc.get_name.." gestartet.")
                
notice_all("Begebt euch zum Schlachtenverwalter.")
            
end
        end
            
    end 
WHEN : game.get_event_flag
Quest/desert_battle.quest:74:when doesn't have begin-end clause. (()
Error occured on compile Quest/desert_battle.quest
Am Schluss fehlt ein "end"
zazadi is offline  
Thanks
1 User
Old 09/24/2016, 16:33   #12423
 
elite*gold: 0
Join Date: Jun 2011
Posts: 14
Received Thanks: 2
danke aber jz kommt leider das. ^^

Quest/desert_battle.quest:145:syntax error : [string "startnpc . get_empire ( ) ~= pc . get_empire ( ) and npc . is_p..."]:17: unexpected symbol near `when'
Error occured on compile Quest/desert_battle.quest
PL4tiinum is offline  
Old 09/24/2016, 18:38   #12424
 
elite*gold: 0
Join Date: Apr 2013
Posts: 22
Received Thanks: 13

Putty:Error occured on compile maxim/ring123.quest
Syssr sagt nichts.
Bitte um schnelle Hilfe
Mytho2 is offline  
Old 09/24/2016, 18:57   #12425
 
zazadi's Avatar
 
elite*gold: 21
Join Date: Mar 2015
Posts: 679
Received Thanks: 245
Quote:
Originally Posted by Mytho2 View Post

Putty:Error occured on compile maxim/ring123.quest
Syssr sagt nichts.
Bitte um schnelle Hilfe
Am schluss ist ein "end" zu viel
zazadi is offline  
Thanks
1 User
Old 09/24/2016, 19:22   #12426
 
elite*gold: 0
Join Date: Apr 2013
Posts: 22
Received Thanks: 13
Quote:
Originally Posted by Core ツ View Post
Am schluss ist ein "end" zu viel
Danke, aber das funktioniert immer noch nicht
Mytho2 is offline  
Old 09/24/2016, 20:42   #12427
 
zazadi's Avatar
 
elite*gold: 21
Join Date: Mar 2015
Posts: 679
Received Thanks: 245
Quote:
Originally Posted by Mytho2 View Post
Danke, aber das funktioniert immer noch nicht
Die quest hatte mehrere Fehler.
Hier unten die quest sollte nun gehen.

Lg
zazadi is offline  
Thanks
1 User
Old 10/06/2016, 09:17   #12428
 
elite*gold: 0
Join Date: Feb 2011
Posts: 3
Received Thanks: 0
würde jemand da drüber gucken und mir sagen wo der Fehler ist ? bin noch recht neu auf dem Gebiet .

95Arndt is offline  
Old 10/06/2016, 10:28   #12429
 
zazadi's Avatar
 
elite*gold: 21
Join Date: Mar 2015
Posts: 679
Received Thanks: 245
Quote:
Originally Posted by 95Arndt View Post
würde jemand da drüber gucken und mir sagen wo der Fehler ist ? bin noch recht neu auf dem Gebiet .

Jedesmal wenn du
HTML Code:
if
benutzt, musst du es mit
HTML Code:
end
wieder schließen.
Hier die korrigierte Version:
zazadi is offline  
Thanks
1 User
Old 10/14/2016, 12:48   #12430
 
Ide.'s Avatar
 
elite*gold: 6
Join Date: Dec 2007
Posts: 4,072
Received Thanks: 1,234
Quote:
Originally Posted by ImbaSun View Post
PHP Code:
quest guildstorage begin
state start begin
 
function getinput©
cmdchat
("GetInputStart")
local ret input(cmdchat©)
cmdchat("GetInputStop")
return 
ret
end
 
function item_can_store(itemvnum)
local antiflags guildstorage.item_get_real_antiflags(guildstorage.item_antiflag(itemvnum))
for 
table.getn(antiflags) do
if 
antiflags == 128 or antiflags == 131072 or antiflags == 8192 or antiflags == 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,vantiflag_ 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/home/game/share/locale/service/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/home/game/share/locale/service/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/home/game/share/locale/service/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/home/game/share/locale/service/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 
1table.getn(members) do
if 
members[1] == pc.get_name() then
if tonumber(members[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 
1table.getn(members) do
if 
members[1] == member then 
members
[authID+2] = auth
break
end
end
 
local gs_member 
io.open("/usr/home/game/share/locale/service/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/authority.txt""w+")
 
for 
1table.getn(members) do
gs_member:write(members[1]..'#'..members[2]..'#'..members[3]..'#'..members[4]..'#'..members[5]..'n')
end
gs_member
:flush()
gs_member:close()
end
 
function add_member(member)
local members guildstorage.get_members()
 
for 
1table.getn(members) do
if 
members[1] == member then 
syschat
'Member ist schon eingetragen.' 
return
end
end
 
local gs_member 
io.open("/usr/home/game/share/locale/service/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/authority.txt""a+")
gs_member:write(member..'#0#0#0#0n')
gs_member:flush()
gs_member:close()
end
 
function delete_member(member)
local members guildstorage.get_members()
 
for 
1table.getn(members) do
if 
members[1] == member then 
table
.remove(members,i)
break
end
end
 
local gs_member 
io.open("/usr/home/game/share/locale/service/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/authority.txt""w+")
 
for 
1table.getn(members) do
gs_member:write(members[1]..'#'..members[2]..'#'..members[3]..'#'..members[4]..'#'..members[5]..'n')
end
gs_member
:flush()
gs_member:close()
end
 
----------------------
--
MEMBER AUTHORITY END
----------------------
 
----------------------
--
MONEY START
----------------------
function 
get_money()
local gs_money io.open("/usr/home/game/share/locale/service/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/home/game/share/locale/service/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/home/game/share/locale/service/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 
10,23 do table.insert(attr,{itemTab,itemTab[i+1]}) i+1 end
for 4,do table.insert(socket,itemTabend
for 1table.getn(attr) do 
item2.set_attr(i-1attr[1], attr[2]) 
end 
for 1table.getn(socket) do if tonumber(socket) > 0 then item.set_socket(i-1socketend end
end
 
function get_slot_item(slot)
local items guildstorage.get_items()
for 
1table.getn(items) do
local item guildstorage.split_(items,"#")
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 1table.getn(items) do
local item guildstorage.split_(items,"#")
-- 
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 1table.getn(items) do
local item guildstorage.split_(items,"#")
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 
table.getn(itemList) do
local item guildstorage.split_(itemList,"#")
if 
tonumber(item[3]) == slot then
return false
end
end
return true
end
 
function create_guildstorage()
os.execute("mkdir ".."/usr/home/game/share/locale/service/quest/Guildstorage/".."Guildstorage/"..pc.get_guild())
local guildstorage io.open("/usr/home/game/share/locale/service/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/storage.txt""w+")
local guildstorage io.open("/usr/home/game/share/locale/service/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/money.txt""w+")
guildstorage:write("0")
guildstorage:close()
local guildstorage io.open("/usr/home/game/share/locale/service/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/authority.txt""w+")
local guildstorage io.open("/usr/home/game/share/locale/service/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 socketitemVnumitemCount = {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(itemVnumthen syschat'Dieses Item kann nicht gelagert werden.' return end
guildstorage
.add_log(pc.get_name(),'Item','einlagern',item_name(itemVnum)..' ('..itemCount..')')
local guildstorage io.open("/usr/home/game/share/locale/service/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/home/game/share/locale/service/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/storage.txt"
local items = {}
local itemList guildstorage.get_items()
 
for 
table.getn(itemList) do
table.insert(items,guildstorage.split_(itemList,"#"))
end
 
for 1table.getn(items) do
if 
items[3] == tostring(slotthen 
guildstorage
.add_log(pc.get_name(),'Item','rausnehmen',item_name(items[1])..' ('..items[2]..')')
table.remove(items,i)
break
end
end
local gs 
io.open(gsPath"w+")
for 
1table.getn(items) do
gs:write(items[1]..'#'..items[2]..'#'..items[3]..'#'..items[4]..'#'..items[5]..'#'..items[6]..'#'..items[7]..'#'..items[8]..'#'..items[9]..'#'..items[10]..'#'..items[11]..'#'..items[12]..'#'..items[13]..'#'..items[14]..'#'..items[15]..'#'..items[16]..'#'..items[17]..'#'..items[18]..'#'..items[19]..'#'..items[20]..'#'..items[21]..'#'..items[22]..'#'..items[23]..'n')
end
gs
:flush()
gs:close()
end
 
function get_items()
local guildstorageTab = {}
local guildstorage io.open("/usr/home/game/share/locale/service/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/home/game/share/locale/service/quest/Guildstorage/".."Guildstorage/"..pc.get_guild().."/storage.txt"
 
local items = {}
local itemList guildstorage.get_items()
 
for 
table.getn(itemList) do
table.insert(items,guildstorage.split_(itemList,"#"))
end
 
for 1table.getn(items) do
if 
items[3] == tostring(fromthen items[3] = tostring(toend
end
local gs 
io.open(gsPath"w+")
for 
1table.getn(items) do
gs:write(items[1]..'#'..items[2]..'#'..items[3]..'#'..items[4]..'#'..items[5]..'#'..items[6]..'#'..items[7]..'#'..items[8]..'#'..items[9]..'#'..items[10]..'#'..items[11]..'#'..items[12]..'#'..items[13]..'#'..items[14]..'#'..items[15]..'#'..items[16]..'#'..items[17]..'#'..items[18]..'#'..items[19]..'#'..items[20]..'#'..items[21]..'#'..items[22]..'#'..items[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.findstring_delimiterfrom  )
while 
delim_from do
table.insertresultstring.substring_from delim_from-) )
from  delim_to 1
delim_from
delim_to string.findstring_delimiterfrom  )
end
table
.insertresultstring.substring_from  ) )
return 
result
end
 
 
when login begin
cmdchat
("GUILDSTORAGE QID/"..q.getcurrentquestindex())
end
when 70028.
use begin
cmdchat
("GetInputStop")
end
when 60002.
use begin
if not pc.has_guild() then say"Du benoetigst eine Gilde um das Gildenlager benutzen zu koennen." setskin(skin) return end
if not guildstorage.has_guildstorage() then guildstorage.create_guildstorage() end
-- chat("PENIS")
if 
pc.is_guild_master() then 
cmdchat
('GUILDSTORAGE OPEN/1')
else
cmdchat('GUILDSTORAGE OPEN/0')
end
 
-- chat("2")--pack reload mein ich xD wo ist mein chat du judenkind frag das die quest nicht mich
guildstorage
.refresh()
pc.setqf("GUILDSTORAGE",1)
setskin(NOWINDOW)
-- 
say("TEST")
--
ka ob das am setskin liegtich nutze das nie hm...
end
 
when button begin
if pc.get_handle() == 1 then
chat
("Zugriff zum Gildenlager wurde blockiert.")
chat("Bitte schliessen sie das Handelsfenster!")
return
end
local cmd 
guildstorage.client_command(guildstorage.getinput("GUILDSTORAGE QUESTCMD"))
-- [
iTEM]
--
chat(cmd)
--
bist in ner gildexD erst auf unserem server testen haben das doch auch danach da sonst musste ich leveln xDok xD
if cmd[1] == 'TAKE_ITEM' then
if not guildstorage.get_authority(1then 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 
guildstorage.slot_empty(slotthen syschat'Dieses Item befindet sich an einer anderen Position, oder wurde schon rausgenommen' return end
guildstorage
.remove_item(slot)
guildstorage.give_item(item)
elseif 
cmd[1] == 'MOVE_ITEM' then
if not guildstorage.get_authority(0then syschat'Du besitzt keine Berechtigung hierfuer.' return end
--possible to store the itemantiflag/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(3then 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(2then 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))
elseif 
cmd[1] == 'GETGUILDSTORAGEMONEY' then
cmdchat
('GUILDSTORAGE REFRESH_GUILDWINDOW_MONEY/'..guildstorage.get_money())
--
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])
elseif 
cmd[1] == 'GETMEMBERLIST' then
if not pc.is_guild_master() then syschat'Cheese. ;p' return end
local members 
guildstorage.get_members()
for 
1table.getn(members) do
-- 
idmembernameauthority 1-4
cmdchat
('GUILDSTORAGE_ADDMEMBER '..(i-1)..' '..members[1]..' '..members[2]..' '..members[3]..' '..members[4]..' '..members[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'Cheese. ;p' return end
local logs 
guildstorage.load_logs()
local logsLen table.getn(logs)
for 
0logsLen-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()
 
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'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_guild_master() then 
cmdchat
('GUILDSTORAGE OPEN/1')
else
cmdchat('GUILDSTORAGE OPEN/0')
end
 
guildstorage
.refresh()
pc.setqf("GUILDSTORAGE",1)
setskin(NOWINDOW)
end
end
cmdchat
("works")
end
 
 
 
end
end 
Kann mir jemand helfen ?
Nächstes mal: Pack deinen Code entweder in [PHP*][/PHP*], [Code*][/Code*] oder [HTML*][HTML*] !! ...

Wenn du uns erzählst was dein Problem ist, können wir dir bestimmt helfen.
Einfach die Quest hinklatschen hilft uns auch nicht...
Ide. is offline  
Old 10/16/2016, 13:50   #12431
 
elite*gold: 0
Join Date: Apr 2015
Posts: 89
Received Thanks: 51
Hab ein Problem mit meiner Jagt Quest bin noch neu im Questbereich..

Error

BuRnOuTx3 is offline  
Old 10/16/2016, 16:34   #12432
 
.Delta's Avatar
 
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
änder die 1. Zeile, damit du keine Freizeichen im Questnamen hast, z.b. Der_Untergang

Quote:
Originally Posted by BuRnOuTx3 View Post
Hab ein Problem mit meiner Jagt Quest bin noch neu im Questbereich..

Error

.Delta is offline  
Old 11/06/2016, 14:29   #12433
 
kalonka007's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 48
Received Thanks: 5
Moin =)

kann mir jemand sagen wie man es so machen kann, dass es
erst ab level 30 bis 50 funktioniert ?

kalonka007 is offline  
Old 11/06/2016, 14:57   #12434
 
.Delta's Avatar
 
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
Quote:
Originally Posted by kalonka007 View Post
Moin =)

kann mir jemand sagen wie man es so machen kann, dass es
erst ab level 30 bis 50 funktioniert ?

PHP Code:
when ITEM ID.use with pc.get_level() >= 30 and pc.get_level() <= 50 begin 
.Delta is offline  
Old 11/10/2016, 14:17   #12435
 
Lauling's Avatar
 
elite*gold: 315
Join Date: Jun 2012
Posts: 5,158
Received Thanks: 4,813
Guten Tag

Habe vorhin eine alte quest auf meine externen platte gefunden und wollte die mal zu testzwecken laufen lassen. irgendwie ist da was falsch und ich habe momentan wenig zeit um mir das anzugucken. Vielleicht weiss einer auf die schnelle wo fehler liegen.

besten dank

PHP Code:
quest desert_battle begin
    state start begin
        when 20352.chat
."Wüstenschlacht" begin
        
if pc.get_level()>=75 then
            
if game.get_event_flag("deserton") == 0 then
                say
("Die Wüstenschlacht findet derzeit nicht statt.")
                return
            elseif 
game.get_event_flag("deserton") == 2 then
                say
("Die Wüstenschlacht befindet sich in der Endphase du kannst nicht beitreten.")
                return
            
end
            say
("Die Schlacht in der Wüste ist im vollen gange,")
            
say("möchtest du beitreten oder Informationen erhalten?")
            
local info select("Auf in die Wüste""Informationen""Abbrechen")
            if 
info == 3 then
                
return
            elseif 
info == 2 then
                say
("Das Ziel der Wüstenschlacht ist es als erstes reich 500")
                
say("Gegner aus den anderen Reichen zu besiegen.")
                
say("")
                
say("Das Reich, welches gewinnt erhält am schluss eine Belohnung")
                
say("in Form einiger Metinsteine")
                
local teilnehmen select("Teilnehmen""Abbrechen")
                    if 
teilnehmen == 2 then
                        
return
                    elseif 
teilnehmen == 1 then
                        
if pc.get_empire() == 1 then
                            pc
.warp(217800627200)
                        elseif 
pc.get_empire() == 2 then
                            pc
.warp(221900502700)
                        elseif 
pc.get_empire() == 3 then
                            pc
.warp(344000502500)
                        else
                            
say("Bei deinem Reich gab es einen Fehler!")
                            
end
                        end
                    end
                end
            
elseif info == 1 then
                    
if pc.get_empire() == 1 then
                            pc
.warp(217800627200)
                    elseif 
pc.get_empire() == 2 then
                            pc
.warp(221900502700)
                    elseif 
pc.get_empire() == 3 then
                            pc
.warp(344000502500)
                    else
                            
say("Bei deinem Reich gab es einen Fehler!")
        else
            
say("Du bist noch nicht Level 75")
            return
        
end
        end
        when kill with npc
.get_empire() != pc.get_empire() and npc.is_pc() and pc.get_map_index() == and game.get_event_flag("turnieron") == 1 begin --X durch die ID der Map ersetzen
            
if game.get_event_flag("turnier"..pc.get_empire().."punkte") == 0 then
                game
.set_event_flag("turnier"..pc.get_empire().."punkte"1)
            else
                
game.set_event_flag("turnier"..pc.get_empire().."punkte"game.get_event_flag("turnier"..pc.get_empire().."punkte")+1)
            
end
            
if game.get_event_flag("turnier"..pc.get_empire().."punkte") >= 500 then
                game
.set_event_flag("reich"..pc.get_empire().."status"1)
                if 
pc.get_empire() == 1 then
                    notice_all
("Das Rote Reich hat in der Wüste dominiert.")
                elseif 
pc.get_empire() == 2 then
                    notice_all
("Das Gelbe Reich hat in der Wüste dominiert.")
                elseif 
pc.get_empire() == 2 then
                    notice_all
("Das Blaue Reich hat in der Wüste dominiert.")
                
end
                game
.set_event_flag("deserton"2)
                
end
            end
        end
        when game
.get_event_flag("deserton") == 2 begin
            notice_all
("Das Turnier geht nun in die Endphase.")
            
notice_all("Für das Siegerreich spawnen nun Metins")
            
notice_all("in der Mitte der Wüste.")
            
regen_in_map(183"locale /germany/map/desert_war/regen_metins.txt")
            
say_in_map(183"Ihr habt nun 30 Minuten Zeit die Metins in der Wüste")
            
say_in_map(183"zu finden und zu zerstören. Viel Spass!")
            
timer("cooldown"60*30)
        
end
        when login 
or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == and pc.get_map_index() == 183 begin
            
if game.get_event_flag("reich"..pc.get_empire().."status") == 1 then
                
return
            elseif 
pc.is_gm() then
                
return
            else
                if 
pc.get_empire == 1 then
                    pc
.warp(474200954400)
                elseif 
pc.get_empire == 2 then
                    pc
.warp(63200166100)
                elseif 
pc.get_empire == 3 then
                    pc
.warp(960100268700)
                else
                    
say("Du konntest auf grund deines Reiches nicht zurückteleportiert werden.")
                    
say("Bitte Teleportier dich selber zurück")
                
end
            end
        end
        when login 
or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == and pc.get_map_index() == 183 and pc.get_level<75 begin
            
if pc.get_empire == 1 then
                pc
.warp(474200954400)
            elseif 
pc.get_empire == 2 then
                pc
.warp(63200166100)
            elseif 
pc.get_empire == 3 then
                pc
.warp(960100268700)
            
end
        end
        when 
"cooldown".timer begin
            cleartimer
("cooldown")
            
game.set_event_flag("deserton"0)
            
game.set_event_flag("turnier1punkte"0)
            
game.set_event_flag("turnier2punkte"0)
            
game.set_event_flag("turnier3punkte"0)
            
game.set_event_flag("reich1status"0)
            
game.set_event_flag("reich2status"0)
            
game.set_event_flag("reich3status"0)
            
notice_all("Die Wüstenschlacht hat ein Ende gefunden.")
            
wait()
            
warp_all_to_village(1831)
            
kill_all_in_map(183)
        
end
        
        when 20352.chat
."Wüstenschlacht-Einstellungen" with pc.is_gm() begin
            say
("Was möchtest du machen?")
            
local what select("Wüstenschlacht starten""Wüstenschlacht Beenden""Abbrechen")
            
            if 
what == 3 then
                
return
            elseif 
what == 2 then
                game
.set_event_flag("deserton"0)
                
game.set_event_flag("turnier1punkte"0)
                
game.set_event_flag("turnier2punkte"0)
                
game.set_event_flag("turnier3punkte"0)
                
game.set_event_flag("reich1status"0)
                
game.set_event_flag("reich2status"0)
                
game.set_event_flag("reich3status"0)
                
notice_all("Die Wüstenschlacht hat ein Ende gefunden.")
            elseif 
what == 1 then
                game
.set_event_flag("deserton"1)
                
notice_all("Die Wüstenschlacht wurde von "..pc.get_name.." gestartet.")
                
notice_all("Begebt euch zum Schlachtenverwalter.")
            
end
        end
            
    end
end 
Lauling is offline  
Reply




All times are GMT +2. The time now is 23:30.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.