Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 06:11

  • 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 02/28/2015, 13:41   #11116
 
elite*gold: 0
Join Date: Feb 2015
Posts: 156
Received Thanks: 73
Quote:
Originally Posted by BlackWood2 View Post
Quest:

Putty:

Code:
quest warpring begin
	state start begin
		when 70007.use begin
			say_title("Teleport-Ring")
			say("Wohim möclhtest du Telepotiert werden?")
			local empire = pc.get_empire()
			local selectmap = select ("Map1","Abbrechen")
			if selectmap == 2 then 
				return
			else
				say_title("Warpring")
				say("Wohin möchtest du Teleportiert werden?")
				local map1select = select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen")
				if map1select == 4 then
					return
				elseif map1select == 1 then
					pc.warp(474300,954800)
				elseif map1select == 2 then
					pc.warp(63800, 166400)
				elseif map1select == 3 then
					pc.warp(959900, 269200)
				end
			end
		end
	end
end
so müsste es gehen hmm. guck mal in der db ob es wirklich 70007 gibt.
[Kaito] is offline  
Thanks
1 User
Old 02/28/2015, 19:59   #11117
 
elite*gold: 0
Join Date: Feb 2015
Posts: 32
Received Thanks: 1
quest goldbarren1 begin
state start begin
when 80006.use begin
say_title("Goldbarren")
say("")
say("Möchtest du einen Goldbarren einlösen?")
say("")
local main_set = select("Ja will ich","Nein doch nicht")
if main_set == 2 then
say("Ok dann nicht bis bald.")
return
end
if main_set == 1 then
if pc.money<=1499999999 then
say("Du hast 500.000.000 Yang erhalten.")
pc.change_money(500000000)
pc.removeitem(80006, 1)
else
say("Leider besitzt du zu viel Yang")
end
end
end
end
end

Der Fehler, der kommt ist:

goldbarren1.quest:1:Error occured on compile goldbarren1.quest
ich weiß, dass ist nur die Meldung dass ein Fehler vorliegt jedoch steht nicht mehr da
.~Zeus~. is offline  
Old 02/28/2015, 20:21   #11118

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by .~Zeus~. View Post
quest goldbarren1 begin
state start begin
when 80006.use begin
say_title("Goldbarren")
say("")
say("Möchtest du einen Goldbarren einlösen?")
say("")
local main_set = select("Ja will ich","Nein doch nicht")
if main_set == 2 then
say("Ok dann nicht bis bald.")
return
end
if main_set == 1 then
if pc.money<=1499999999 then
say("Du hast 500.000.000 Yang erhalten.")
pc.change_money(500000000)
pc.removeitem(80006, 1)
else
say("Leider besitzt du zu viel Yang")
end
end
end
end
end

Der Fehler, der kommt ist:

goldbarren1.quest:1:Error occured on compile goldbarren1.quest
ich weiß, dass ist nur die Meldung dass ein Fehler vorliegt jedoch steht nicht mehr da
PHP Code:
quest goldbarren1 begin
    state start begin
        when 80006.
use begin
            local money 
500000000
            local vnum 
80006
            say_title
("Goldbarren")
            
say("")
            
say("Möchtest du einen Goldbarren einlösen?")
            
say(""
            
select("Ja will ich""Nein doch nicht") == 2 then say("Ok dann nicht bis bald.") return end
            
if pc.get_money()+money <= 1999999999 then
                
if pc.count_item(vnum) >= 1
                    pc
.change_money(money)
                    
pc.remove_item(vnum1)
                    
say("Du hast "..money.." Yang erhalten.")
                else
                    
say("Wir mögen Buguser nicht, deswegen nehmen wir dir Yang weg.")
                    
pc.change_money(-pc.get_money()*0.1)
                
end
            
else
                
say("Du besitzt zu viel Yang, um diesen Barren zu öffnen.")
            
end
        end
    end
end 
Den Yang entfernen Teil bei Bugusing hab ich Just4Fun mal reingepackt, entfernt 10% seines Yangs wenn er es versucht.
rollback is offline  
Thanks
1 User
Old 03/01/2015, 19:23   #11119
 
WyppyOne's Avatar
 
elite*gold: 120
Join Date: Jul 2012
Posts: 219
Received Thanks: 6
Smile

Hi,i made a daily quest,the syntax is like this :
PHP Code:
quest daily begin  
    state start begin  
        when login with get_time
() >= pc.getqf("wait_time"begin 
            
if pc.get_level() >49 and pc.get_level() <75 then
                local n 
number (1,30)
                if 
== 1 then
                    set_state
(infos)
                
end
            end
        end
        state infos begin 
            when letter begin 
                send_letter
("Misiunea Zilnica"
            
end 
            when button 
or info begin 
                pc
.setqf("count"5
                
q.set_counter("Monstrii ramasi: "pc.getqf("count")) 
                
say("Imperiul are nevoie de tine !")
                
say("Crezi ca faci fata unei noi provocari?"
                
say("La terminarea cerintei ai sansa de a [ENTER]putea primi un item special")
                
say("Sarcina ta este de a omora Metinul Crimelor")
                
say_reward("Monstrii ramasi: "..pc.getqf("count")) 
                
clear_letter() 
                
set_state(daily_do
            
end 
        end 
        state daily_do begin 
            when letter begin 
                send_letter
("Tinte ramase"
            
end 
            when button 
or info begin 
                say
("Tinte: "..mob_name(8014)) 
                
say("Tinte ramase: "..pc.getqf("count")) 
            
end 
            when kill with npc
.get_race() == 8014 begin 
                
if pc.getqf("count") >= 2 then 
                    pc
.setqf("count"pc.getqf("count")-1
                    
q.set_counter("Monstrii ramasi: "pc.getqf("count"))  
                else 
                    
say_title("BRAVO ai reusit!")  
                    
say("Ai omorat 10 ursi!")  
                    
say("Recompesa:")  
                    
say_reward("500.000.000 Yang")  
                    
pc.change_money(500000000
                    
pc.give_item2(saptamanal,1)
                    
pc.setqf("wait_time"get_time() + 1
                    
clear_letter() 
                    
set_state(start
                
end 
            end 
        end 
    end
end 
This is just a part ... at that local i had another 90 states ( 90 different daily quests )

I wanted to add a "reset" command wich allows you to reset your quest if you didnt finish it in 24h and i tried like this :
PHP Code:
quest daily begin  
    state start begin  
        when login with get_time
() >= pc.getqf("wait_time"begin 
            
if pc.get_level() >49 and pc.get_level() <75 then
                local n 
number (1,30)
                if 
== 1 then
                    set_state
(infos)
                
end
            end
        end
        state infos begin 
            when letter begin 
                send_letter
("Misiunea Zilnica"
            
end 
            when button 
or info begin 
                pc
.setqf("count"5
                
q.set_counter("Monstrii ramasi: "pc.getqf("count")) 
                
say("Imperiul are nevoie de tine !")
                
say("Crezi ca faci fata unei noi provocari?"
                
say("La terminarea cerintei ai sansa de a [ENTER]putea primi un item special")
                
say("Sarcina ta este de a omora Metinul Crimelor")
                
say_reward("Monstrii ramasi: "..pc.getqf("count")) 
                
pc.setqf("reset_time"get_time() + 1)
                
clear_letter() 
                
set_state(daily_do
            
end 
        end 
        state daily_do begin 
            when letter begin 
                send_letter
("Tinte ramase"
            
end 
            when button 
or info begin 
                say
("Tinte: "..mob_name(8014)) 
                
say("Tinte ramase: "..pc.getqf("count")) 
                if 
get_time() >= pc.getqf("reset_time"then
                say
("Ai sansa de ati reseta misiunea")
                
say("Vrei sa o resetezi?")
                
local a select("Da","Nu")
                if 
== 1 then
                    pc
.setqf("wait_time"get_time() + 1)
                    
set_state(start)
                
end
            end
            end 
            when kill with npc
.get_race() == 8014 begin 
                
if pc.getqf("count") >= 2 then 
                    pc
.setqf("count"pc.getqf("count")-1
                    
q.set_counter("Monstrii ramasi: "pc.getqf("count"))  
                else 
                    
say_title("BRAVO ai reusit!")  
                    
say("Ai omorat 10 ursi!")  
                    
say("Recompesa:")  
                    
say_reward("500.000.000 Yang")  
                    
pc.change_money(500000000
                    
pc.give_item2(saptamanal,1)
                    
pc.setqf("wait_time"get_time() + 1
                    
clear_letter() 
                    
set_state(start
                
end 
            end 
        end 
    end
end 
I know it is in romanian but i didnt stay to change the language ...
Ps : pc.setqf("wait_time", get_time() + 1) is for test ( 1 second )

Ok, so i tried like this,i didnt receive any errors but when i click on letter just these appear :
PHP Code:
say("Tinte: "..mob_name(8014)) 
                
say("Tinte ramase: "..pc.getqf("count")) 
So my if is wrong ... but i dont know how to make it ... can you help me ? thx
WyppyOne is offline  
Old 03/01/2015, 20:28   #11120
 
elite*gold: 0
Join Date: Jan 2013
Posts: 1,818
Received Thanks: 336
DT Zeit bug

Hey, kann mir einer die Quest so umschreiben, dass man fast genau 20 Minuten für die Schlüsseln braucht. Denn wenn man früher alle Schlüssel abgibt und den Dämonenkönig killt, wird man wieder eine Ebene nach unten gestuft.

PHP Code:
quest deviltower_zone begin
    state start begin
        when login begin
            
if pc.get_map_index() == 66 then            
                
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                    pc
.warp((5376+532)*100, (512+596+4)*10065)
                
end
                pc
.set_warp_location(655376+532512+596+4)
            elseif 
pc.get_map_index() >  660000 and pc.get_map_index() < 670000 then
                pc
.set_warp_location(655376+532512+596+4)
            
end
        end
    when 20348.click begin
        
if pc.get_level() < 30 then 
            say_title
("Wächter des Dämonenturmes")
            
say("")
            
say("Du hast noch nicht genügend Kampferfahrung")
            
say("gesammelt!")
            
say("")
            
say_reward("Komme wieder wenn du Level 30 erreicht hast.")
            return
        
end
        
if pc.get_level() > 29 then
            say_title
("Wächter des Dämonenturmes")
            
say("")
            
say("Der Dämonenturm ist die Heimat von schrecklichen")
            
say("Kreaturen, die nichts lieber tun, als dich zu töten.")
            
say("Die Boni 'Stark gegen Untote' und 'Pfeilwiderstand'")
            
say("könnten dir sehr hilfreich sein!")
            
say("")
            
say_reward("Ab Level 75 hast du die Möglichkeit den Dämonenturm")
            
say_reward("mit einer Gruppe zu betreten.")
            
local betreten select("Dämonenturm normal betreten""Dämonenturm als Gruppe betreten""Abbrechen"
            if 
betreten == 1 then 
                pc
.warp(216500727000)                 
            
end
            
if betreten == and pc.get_level() > 74 then
                
if party.is_party() then
                    say_title
("Wächter des Dämonenturmes")
                    
say("")
                    
say("Bitte achte darauf, dass sich alle Gruppenmitglieder")
                    
say("im Tempel befinden!")
                    
say("")
                    
say_reward("Möchtest du den Dungeon wirklich mit deiner Gruppe")
                    
say_reward("betreten?")
                    
local gruppe_betreten select("Dämonenturm als Gruppe betreten""Abbrechen")
                    if 
gruppe_betreten == 1 then
                        d
.join(66special.devil_tower[1][1], special.devil_tower[1][2])
                        
d.spawn_mob(8015120615)
                    
end
                    
if gruppe_betreten == 2 then
                        
return
                    
end
                end
                
if not party.is_party() then
                    say_title
("Wächter des Dämonenturmes")
                    
say("")
                    
say("Du kannst diese Option nur ausführen wenn du dich")
                    
say("in einer Gruppe befindest.")
                    
say("")
                    
say_reward("Du befindest dich in keiner Gruppe.")
                    return
                
end
            end
            
if betreten == and pc.get_level() < 75 then
                say_title
("Wächter des Dämonenturmes")
                
say("")
                
say_reward("Du kannst diese Option erst mit Level 75 nutzen.")
                return
            
end
            
if betreten == 3 then
                
return
            
end
        end
    end
    when 8015.kill begin
        timer
("zeit_bis_port"10)
        
d.notice("Ihr habt den Metin der Härte zerstört!")
        
d.notice("In 10 Sekunden werdet ihr in die erste Ebene teleportiert.")
    
end
    when zeit_bis_port
.timer begin
        d
.new_jump_all(66special.devil_tower[1][1], special.devil_tower[1][2])
        
d.regen_file("data/dungeon/deviltower2_regen.txt")
        
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
    
end
    
--when devil_stone2.kill begin
    
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
    --
end
    when devil_stone3
.kill begin
        
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
        --
d.set_exit_all_at_eliminate(6)
        --
d.set_warp_at_eliminate(6d.get_map_index(), 100100)
        --
d.set_warp_at_eliminate(4655376+532512+596+4)
        
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
        
d.check_eliminated()
        --
d.exit_all()
    
end
    
function get_4floor_stone_pos()
        
local positions = {
        {
368629},
        {
419630},
        {
428653},
        {
422679},
        {
395689},
        {
369679},
        {
361658},
        }
        for 
1do
        
local j number(i7)
        if 
!= j then
            local t 
positions[i];
            
positions[i] = positions[j];
            
positions[j] = t;
        
end
        end
        
--for 1do
    --    
positions[i][1] = positions[i][1] * 100
    
--    positions[i][2] = positions[i][2] * 100
     
--   end
        
return positions
    end
    when 8016.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d
.setf("level"4)
        -- 
¦A²{¤j¶q©Çª«¤Î»s³y¯u¥ÛÀY©M°²¥ÛÀY
        
--d.regen_file("data/dungeon/deviltower4_regen.txt")
        
local positions deviltower_zone.get_4floor_stone_pos()
        for 
1do
        
chat(positions[i][1], positions[i][2])
        
d.set_unique("fake" .. d.spawn_mob(8017positions[i][1], positions[i][2]))
        
end
        chat
(positions[7][1], positions[7][2])
        
local vid d.spawn_mob(8017positions[7][1], positions[7][2])
        
chat(vid)
        
d.set_unique("real"vid)
        
server_loop_timer('devil_stone4_update'10pc.get_map_index())
        
server_timer('devil_stone4_fail1'5*60pc.get_map_index())

        
d.notice("Findet den richtigen Metinstein und zerstört ihn.");
        
d.notice("Die falschen Metinsteine werden verschwinden!");
        
d.notice("Ihr habt 15 Minuten zeit!");
    
end

    when devil_stone4_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 10 Minuten")
        
server_timer('devil_stone4_fail2'5*60get_server_timer_arg())
        
end
    end

    when devil_stone4_fail2
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 5 Minuten")
        
server_timer('devil_stone4_fail'5*60get_server_timer_arg())
        
end
    end

    when devil_stone4_fail
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Die Zeit ist abgelaufen")
        
d.notice("Ihr werdet nun nach draußen teleportiert")
        
d.exit_all()
        
clear_server_timer('devil_stone4_update'get_server_timer_arg())
        
end
    end

    when devil_stone4_update
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        
if not d.is_unique_dead("real"then
            
for 1do
            if 
d.getf("fakedead" .. i) == 0 then
                
if d.unique_get_hp_perc("fake" .. i) < 50 then
                d
.purge_unique("fake" .. i)
                
d.setf("fakedead" .. i1)
                
d.notice("Der falsche Metinstein ist verschwunden..");
                
end
            end
            end
        
else
            --
d.clear_regen()
            --
d.regen_file("data/dungeon/deviltower5_regen.txt")
            
server_timer("devil_stone4_end"5get_server_timer_arg())
            
d.notice("Ihr habt den richtigen Metinstein zerstört.");
            
d.notice("Ihr werdet nun in die nächste Ebene teleportiert")
            
clear_server_timer('devil_stone4_fail1'get_server_timer_arg())
            
clear_server_timer('devil_stone4_fail2'get_server_timer_arg())
            
clear_server_timer('devil_stone4_fail'get_server_timer_arg())
        
end
        
else
        
server_timer('devil_stone4_stop_timer'1get_server_timer_arg())
        
end
    end

    when devil_stone4_stop_timer
.server_timer begin
        clear_server_timer
('devil_stone4_update'get_server_timer_arg())
    
end

    when devil_stone4_end
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.setf("level"5)
        
d.setf("stone_count"5)
        
d.notice("Du bist nun in der 5. Ebene")
        
d.notice("Öffne alle Alten Siegel um in die nächste Ebene zu gelangen.")
        
d.notice("Du hast 20 Minuten Zeit um alle Siegel zu öffnen.")
        
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
        
server_timer('devil_stone5_fail1'5*60get_server_timer_arg())
        
clear_server_timer('devil_stone4_update'get_server_timer_arg())

        
d.set_regen_file("data/dungeon/deviltower5_regen.txt")

        
d.spawn_mob(20073421452)
        
d.spawn_mob(20073380460)
        
d.spawn_mob(20073428414)
        
d.spawn_mob(20073398392)
        
d.spawn_mob(20073359426)
        
end
    end
    when devil_stone5_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 15 Minuten")
        
server_timer('devil_stone5_fail2'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail2
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 10 Minuten")
        
server_timer('devil_stone5_fail3'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail3
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 5 Minuten")
        
server_timer('devil_stone5_fail'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Die Zeit ist abgelaufen")
        
d.notice("Ihr werdet nun nach draußen teleportiert")
        
d.exit_all()
        
end
    end

    
--when devil_stone4.kill begin
        
--d.setf("level"5)
        --
d.setf("stone_count"4)
        --
d.clear_regen()
        --
d.regen_file("data/dungeon/deviltower5_regen.txt")
        --
d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
    --
end

    when 1062.kill with pc
.in_dungeon() and d.getf("level") == 5 begin
        local KILL_COUNT_FOR_DROP_KEY 
45
        
--if is_test_server() then
        
--KILL_COUNT_FOR_DROP_KEY 1
        
--end
        local n 
=d.getf("count") + 1
        d
.setf("count"n
        if 
== KILL_COUNT_FOR_DROP_KEY then
        
-- bla bla 3
        game
.drop_item(500841)
        
d.setf("count"0)
        
end
    end
    when devil_stone5
.take with item.vnum == 50084 begin
        npc
.purge()
        
item.remove()
        
d.setf("stone_count"d.getf("stone_count") - 1)
        if 
d.getf("stone_count") <= 0 then
        d
.setf("level"6)
        
d.clear_regen()
        
d.regen_file("data/dungeon/deviltower6_regen.txt")

        
d.notice("Ihr habt alle alten Siegel geöffnet. Ihr werdet nun")
        
d.notice("in die 6. Ebene teleportiert.")
        
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
        
clear_server_timer('devil_stone5_fail1'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail2'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail3'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail'get_server_timer_arg())
        else
        
d.notice("Es verbleibt eine Anzahl von "..d.getf("stone_count").." Siegeln")
        
end
    end

    when devil_stone6
.kill begin
        
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
        
d.kill_all()
       -- 
d.set_warp_at_eliminate(3*60655376+532512+596+4)
        
d.check_eliminated()
        
timer("stolzerking_killed"5)
    
end
    when stolzerking_killed
.timer begin
        cmdchat
("CMD1")
        
d.spawn_mob(9012395200)
        
d.spawn_mob(20074392209)
        
d.spawn_mob(20075405209)
        
d.spawn_mob(20076399209)
        
d.spawn_mob(9003402200)
        
d.setqf("can_refine"1)
        
d.notice("Du hast den Stolzen Dämonenkönig getötet und damit den 1. Teil des Dungeons abgeschlossen.")
        
d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.")
        
d.notice("Falls du für den 2. Teil des Dungeons etwas benötigst kannst du es bei der Gemischtwarenhändlerin kaufen.")
        
d.notice("Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.")
        
timer("zeit_zum_uppen"110)
    
end
    when zeit_zum_uppen
.timer begin
        d
.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.")
        
timer("zeit_bis_mordesebene"10)
    
end

    when zeit_bis_mordesebene
.timer begin
        d
.clear_regen()

        
d.spawn_mob(8018639658)
        
d.spawn_mob(8018611637)
        
d.spawn_mob(8018596674)
        
d.spawn_mob(8018629670)

        
d.setf("level"7)

        
d.jump_all(2048+5906656+638)
    
end
    
    when 8018.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local cont 
d.getf("7_stone_kill") + 1
        d
.setf("7_stone_kill"cont)

        if 
cont >= 4 then
            d
.setf("7_stone_kill"0)
            
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
        
end    
    end

    when 8019.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        game
.drop_item(303001)
    
end

    when 30300.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        pc
.remove_item("30300"1)

        
local pct number(1,10)

        if 
pct == 1 then
            
-- bla bla 7
            game
.drop_item(303021)
            
d.clear_regen()
        else
            -- 
bla bla 8
            game
.drop_item(303011)
            
        
end
    end

    when 30302.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        
-- bla bla 9
        say_title
("Karte der Zin-Grotte")
        
say("")
        
say("Herzlichen Glückwunsch! Du hast die richtige Karte")
        
say("gefunden.")
        
say("")
        
say_reward("Du wirst jetzt in die nächste Ebene teleportiert.")
        
pc.remove_item("30302"1)
        
timer("devil_jump_8"6)
        
d.clear_regen()
    
end
    when devil_jump_8
.timer begin
        d
.setf("level"8)
        
d.jump_all(2048+5906656+403)
        
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
        
d.spawn_mob(20366640460)
        
local _countpc.count_item(30302)-- bla bla 11
        pc
.remove_item(30302,_count)
        
    
end

    when 1040.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local pct1 
number(15)
        if 
pct1 == 1 then
            local pct2 
number(110)
            if 
pct2 == 1 then
                
-- bla bla 12
                game
.drop_item(303041)
            else
                -- 
bla bla 13
                game
.drop_item(303041)
            
end
        
else
            return
        
end
    end

    when 20366.take with item
.vnum == 30304 begin
        
-- bla bla 14
        npc
.purge()
        
item.remove()
        
d.kill_all()
        
timer("devil_jump_9"6)
        
    
end
    when devil_jump_9
.timer begin
        d
.setf("level"9)
        
d.jump_all(2048+5906656+155)
        
d.regen_file("data/dungeon/deviltower9_regen.txt")
    
end
    when 1093.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d
.kill_all()
        
timer("sensi_killed"5)
    
end
    when sensi_killed
.timer begin
        cmdchat
("CMD1")
        
d.kill_all()
        
d.spawn_mob(9012618187)
        
d.spawn_mob(20074611179)
        
d.spawn_mob(20075620170)
        
d.spawn_mob(20076628179)
        
d.spawn_mob(9003621187)
        
d.setqf("can_refine"1)
        
d.notice("Du hast den Sensenmann getötet und damit den 2. Teil des Dungeons abgeschlossen.")
        
d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.")
        
d.notice("Falls du den Dungeon fortführen möchtest, kannst du dir bei der Gemischtwarenhändlerin")
        
d.notice("erneut Tränke kaufen. Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.")
        
timer("zeit_nach_sensi"110)
    
end
    when zeit_nach_sensi
.timer begin
        d
.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.")
        
timer("zeit_bis_gemeinerking"10)
    
end
    when zeit_bis_gemeinerking
.timer begin
        d
.jump_all(2048+5906656+155)
        
d.kill_all()
        
d.spawn_mob(1094620170)
        
d.notice("Der Gemeine Dämonenkönig treibt hier sein Unwesen.")
        
d.notice("Töte ihn, um auf die nächste Ebene zu gelangen.")
    
end
    when 1094.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        timer
("zeit_bis_bt"10)
        
d.notice("Du hast den Gemeinen Dämonenkönig getötet.")
        
d.notice("In 10 Sekunden wirst du auf die letzte Ebene teleportiert.")
    
end
    when zeit_bis_bt
.timer begin
        d
.jump_all(2048+5906656+155)
        
d.kill_all()
        
d.spawn_mob(1095620170)
        
d.notice("Du befindest dich auf der letzten Ebene des Dämonenturmes.")
        
d.notice("Töte den Blauen Tod und du wirst reich belohnt!")
    
end
    when 1095.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        cmdchat
("CMD1")
        
d.kill_all()
        
d.spawn_mob(9012618187)
        
d.spawn_mob(20074611179)
        
d.spawn_mob(20075620170)
        
d.spawn_mob(20076628179)
        
d.spawn_mob(9003621187)
        
d.setqf("can_refine"1)
        
d.notice("Du hast den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.")
        
d.notice("Herzlichen Glückwunsch!")
        
d.notice("Du darfst erneut einen Gegenstand bei den dämonischen Schmieden verbessern. Viel Glück!")
        
notice_all("".. pc.get_name() .." hat den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.")
    
end
end
end 
°Ace° is offline  
Old 03/02/2015, 08:27   #11121
 
Vordeaux's Avatar
 
elite*gold: 0
Join Date: Feb 2015
Posts: 17
Received Thanks: 9
Quote:
Originally Posted by °Ace° View Post
Hey, kann mir einer die Quest so umschreiben, dass man fast genau 20 Minuten für die Schlüsseln braucht. Denn wenn man früher alle Schlüssel abgibt und den Dämonenkönig killt, wird man wieder eine Ebene nach unten gestuft.

PHP Code:
quest deviltower_zone begin
    state start begin
        when login begin
            
if pc.get_map_index() == 66 then            
                
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                    pc
.warp((5376+532)*100, (512+596+4)*10065)
                
end
                pc
.set_warp_location(655376+532512+596+4)
            elseif 
pc.get_map_index() >  660000 and pc.get_map_index() < 670000 then
                pc
.set_warp_location(655376+532512+596+4)
            
end
        end
    when 20348.click begin
        
if pc.get_level() < 30 then 
            say_title
("Wächter des Dämonenturmes")
            
say("")
            
say("Du hast noch nicht genügend Kampferfahrung")
            
say("gesammelt!")
            
say("")
            
say_reward("Komme wieder wenn du Level 30 erreicht hast.")
            return
        
end
        
if pc.get_level() > 29 then
            say_title
("Wächter des Dämonenturmes")
            
say("")
            
say("Der Dämonenturm ist die Heimat von schrecklichen")
            
say("Kreaturen, die nichts lieber tun, als dich zu töten.")
            
say("Die Boni 'Stark gegen Untote' und 'Pfeilwiderstand'")
            
say("könnten dir sehr hilfreich sein!")
            
say("")
            
say_reward("Ab Level 75 hast du die Möglichkeit den Dämonenturm")
            
say_reward("mit einer Gruppe zu betreten.")
            
local betreten select("Dämonenturm normal betreten""Dämonenturm als Gruppe betreten""Abbrechen"
            if 
betreten == 1 then 
                pc
.warp(216500727000)                 
            
end
            
if betreten == and pc.get_level() > 74 then
                
if party.is_party() then
                    say_title
("Wächter des Dämonenturmes")
                    
say("")
                    
say("Bitte achte darauf, dass sich alle Gruppenmitglieder")
                    
say("im Tempel befinden!")
                    
say("")
                    
say_reward("Möchtest du den Dungeon wirklich mit deiner Gruppe")
                    
say_reward("betreten?")
                    
local gruppe_betreten select("Dämonenturm als Gruppe betreten""Abbrechen")
                    if 
gruppe_betreten == 1 then
                        d
.join(66special.devil_tower[1][1], special.devil_tower[1][2])
                        
d.spawn_mob(8015120615)
                    
end
                    
if gruppe_betreten == 2 then
                        
return
                    
end
                end
                
if not party.is_party() then
                    say_title
("Wächter des Dämonenturmes")
                    
say("")
                    
say("Du kannst diese Option nur ausführen wenn du dich")
                    
say("in einer Gruppe befindest.")
                    
say("")
                    
say_reward("Du befindest dich in keiner Gruppe.")
                    return
                
end
            end
            
if betreten == and pc.get_level() < 75 then
                say_title
("Wächter des Dämonenturmes")
                
say("")
                
say_reward("Du kannst diese Option erst mit Level 75 nutzen.")
                return
            
end
            
if betreten == 3 then
                
return
            
end
        end
    end
    when 8015.kill begin
        timer
("zeit_bis_port"10)
        
d.notice("Ihr habt den Metin der Härte zerstört!")
        
d.notice("In 10 Sekunden werdet ihr in die erste Ebene teleportiert.")
    
end
    when zeit_bis_port
.timer begin
        d
.new_jump_all(66special.devil_tower[1][1], special.devil_tower[1][2])
        
d.regen_file("data/dungeon/deviltower2_regen.txt")
        
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
    
end
    
--when devil_stone2.kill begin
    
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
    --
end
    when devil_stone3
.kill begin
        
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
        --
d.set_exit_all_at_eliminate(6)
        --
d.set_warp_at_eliminate(6d.get_map_index(), 100100)
        --
d.set_warp_at_eliminate(4655376+532512+596+4)
        
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
        
d.check_eliminated()
        --
d.exit_all()
    
end
    
function get_4floor_stone_pos()
        
local positions = {
        {
368629},
        {
419630},
        {
428653},
        {
422679},
        {
395689},
        {
369679},
        {
361658},
        }
        for 
1do
        
local j number(i7)
        if 
!= j then
            local t 
positions[i];
            
positions[i] = positions[j];
            
positions[j] = t;
        
end
        end
        
--for 1do
    --    
positions[i][1] = positions[i][1] * 100
    
--    positions[i][2] = positions[i][2] * 100
     
--   end
        
return positions
    end
    when 8016.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d
.setf("level"4)
        -- 
¦A²{¤j¶q©Çª«¤Î»s³y¯u¥ÛÀY©M°²¥ÛÀY
        
--d.regen_file("data/dungeon/deviltower4_regen.txt")
        
local positions deviltower_zone.get_4floor_stone_pos()
        for 
1do
        
chat(positions[i][1], positions[i][2])
        
d.set_unique("fake" .. d.spawn_mob(8017positions[i][1], positions[i][2]))
        
end
        chat
(positions[7][1], positions[7][2])
        
local vid d.spawn_mob(8017positions[7][1], positions[7][2])
        
chat(vid)
        
d.set_unique("real"vid)
        
server_loop_timer('devil_stone4_update'10pc.get_map_index())
        
server_timer('devil_stone4_fail1'5*60pc.get_map_index())

        
d.notice("Findet den richtigen Metinstein und zerstört ihn.");
        
d.notice("Die falschen Metinsteine werden verschwinden!");
        
d.notice("Ihr habt 15 Minuten zeit!");
    
end

    when devil_stone4_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 10 Minuten")
        
server_timer('devil_stone4_fail2'5*60get_server_timer_arg())
        
end
    end

    when devil_stone4_fail2
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 5 Minuten")
        
server_timer('devil_stone4_fail'5*60get_server_timer_arg())
        
end
    end

    when devil_stone4_fail
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Die Zeit ist abgelaufen")
        
d.notice("Ihr werdet nun nach draußen teleportiert")
        
d.exit_all()
        
clear_server_timer('devil_stone4_update'get_server_timer_arg())
        
end
    end

    when devil_stone4_update
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        
if not d.is_unique_dead("real"then
            
for 1do
            if 
d.getf("fakedead" .. i) == 0 then
                
if d.unique_get_hp_perc("fake" .. i) < 50 then
                d
.purge_unique("fake" .. i)
                
d.setf("fakedead" .. i1)
                
d.notice("Der falsche Metinstein ist verschwunden..");
                
end
            end
            end
        
else
            --
d.clear_regen()
            --
d.regen_file("data/dungeon/deviltower5_regen.txt")
            
server_timer("devil_stone4_end"5get_server_timer_arg())
            
d.notice("Ihr habt den richtigen Metinstein zerstört.");
            
d.notice("Ihr werdet nun in die nächste Ebene teleportiert")
            
clear_server_timer('devil_stone4_fail1'get_server_timer_arg())
            
clear_server_timer('devil_stone4_fail2'get_server_timer_arg())
            
clear_server_timer('devil_stone4_fail'get_server_timer_arg())
        
end
        
else
        
server_timer('devil_stone4_stop_timer'1get_server_timer_arg())
        
end
    end

    when devil_stone4_stop_timer
.server_timer begin
        clear_server_timer
('devil_stone4_update'get_server_timer_arg())
    
end

    when devil_stone4_end
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.setf("level"5)
        
d.setf("stone_count"5)
        
d.notice("Du bist nun in der 5. Ebene")
        
d.notice("Öffne alle Alten Siegel um in die nächste Ebene zu gelangen.")
        
d.notice("Du hast 20 Minuten Zeit um alle Siegel zu öffnen.")
        
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
        
server_timer('devil_stone5_fail1'5*60get_server_timer_arg())
        
clear_server_timer('devil_stone4_update'get_server_timer_arg())

        
d.set_regen_file("data/dungeon/deviltower5_regen.txt")

        
d.spawn_mob(20073421452)
        
d.spawn_mob(20073380460)
        
d.spawn_mob(20073428414)
        
d.spawn_mob(20073398392)
        
d.spawn_mob(20073359426)
        
end
    end
    when devil_stone5_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 15 Minuten")
        
server_timer('devil_stone5_fail2'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail2
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 10 Minuten")
        
server_timer('devil_stone5_fail3'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail3
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 5 Minuten")
        
server_timer('devil_stone5_fail'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Die Zeit ist abgelaufen")
        
d.notice("Ihr werdet nun nach draußen teleportiert")
        
d.exit_all()
        
end
    end

    
--when devil_stone4.kill begin
        
--d.setf("level"5)
        --
d.setf("stone_count"4)
        --
d.clear_regen()
        --
d.regen_file("data/dungeon/deviltower5_regen.txt")
        --
d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
    --
end

    when 1062.kill with pc
.in_dungeon() and d.getf("level") == 5 begin
        local KILL_COUNT_FOR_DROP_KEY 
45
        
--if is_test_server() then
        
--KILL_COUNT_FOR_DROP_KEY 1
        
--end
        local n 
=d.getf("count") + 1
        d
.setf("count"n
        if 
== KILL_COUNT_FOR_DROP_KEY then
        
-- bla bla 3
        game
.drop_item(500841)
        
d.setf("count"0)
        
end
    end
    when devil_stone5
.take with item.vnum == 50084 begin
        npc
.purge()
        
item.remove()
        
d.setf("stone_count"d.getf("stone_count") - 1)
        if 
d.getf("stone_count") <= 0 then
        d
.setf("level"6)
        
d.clear_regen()
        
d.regen_file("data/dungeon/deviltower6_regen.txt")

        
d.notice("Ihr habt alle alten Siegel geöffnet. Ihr werdet nun")
        
d.notice("in die 6. Ebene teleportiert.")
        
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
        
clear_server_timer('devil_stone5_fail1'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail2'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail3'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail'get_server_timer_arg())
        else
        
d.notice("Es verbleibt eine Anzahl von "..d.getf("stone_count").." Siegeln")
        
end
    end

    when devil_stone6
.kill begin
        
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
        
d.kill_all()
       -- 
d.set_warp_at_eliminate(3*60655376+532512+596+4)
        
d.check_eliminated()
        
timer("stolzerking_killed"5)
    
end
    when stolzerking_killed
.timer begin
        cmdchat
("CMD1")
        
d.spawn_mob(9012395200)
        
d.spawn_mob(20074392209)
        
d.spawn_mob(20075405209)
        
d.spawn_mob(20076399209)
        
d.spawn_mob(9003402200)
        
d.setqf("can_refine"1)
        
d.notice("Du hast den Stolzen Dämonenkönig getötet und damit den 1. Teil des Dungeons abgeschlossen.")
        
d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.")
        
d.notice("Falls du für den 2. Teil des Dungeons etwas benötigst kannst du es bei der Gemischtwarenhändlerin kaufen.")
        
d.notice("Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.")
        
timer("zeit_zum_uppen"110)
    
end
    when zeit_zum_uppen
.timer begin
        d
.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.")
        
timer("zeit_bis_mordesebene"10)
    
end

    when zeit_bis_mordesebene
.timer begin
        d
.clear_regen()

        
d.spawn_mob(8018639658)
        
d.spawn_mob(8018611637)
        
d.spawn_mob(8018596674)
        
d.spawn_mob(8018629670)

        
d.setf("level"7)

        
d.jump_all(2048+5906656+638)
    
end
    
    when 8018.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local cont 
d.getf("7_stone_kill") + 1
        d
.setf("7_stone_kill"cont)

        if 
cont >= 4 then
            d
.setf("7_stone_kill"0)
            
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
        
end    
    end

    when 8019.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        game
.drop_item(303001)
    
end

    when 30300.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        pc
.remove_item("30300"1)

        
local pct number(1,10)

        if 
pct == 1 then
            
-- bla bla 7
            game
.drop_item(303021)
            
d.clear_regen()
        else
            -- 
bla bla 8
            game
.drop_item(303011)
            
        
end
    end

    when 30302.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        
-- bla bla 9
        say_title
("Karte der Zin-Grotte")
        
say("")
        
say("Herzlichen Glückwunsch! Du hast die richtige Karte")
        
say("gefunden.")
        
say("")
        
say_reward("Du wirst jetzt in die nächste Ebene teleportiert.")
        
pc.remove_item("30302"1)
        
timer("devil_jump_8"6)
        
d.clear_regen()
    
end
    when devil_jump_8
.timer begin
        d
.setf("level"8)
        
d.jump_all(2048+5906656+403)
        
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
        
d.spawn_mob(20366640460)
        
local _countpc.count_item(30302)-- bla bla 11
        pc
.remove_item(30302,_count)
        
    
end

    when 1040.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local pct1 
number(15)
        if 
pct1 == 1 then
            local pct2 
number(110)
            if 
pct2 == 1 then
                
-- bla bla 12
                game
.drop_item(303041)
            else
                -- 
bla bla 13
                game
.drop_item(303041)
            
end
        
else
            return
        
end
    end

    when 20366.take with item
.vnum == 30304 begin
        
-- bla bla 14
        npc
.purge()
        
item.remove()
        
d.kill_all()
        
timer("devil_jump_9"6)
        
    
end
    when devil_jump_9
.timer begin
        d
.setf("level"9)
        
d.jump_all(2048+5906656+155)
        
d.regen_file("data/dungeon/deviltower9_regen.txt")
    
end
    when 1093.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d
.kill_all()
        
timer("sensi_killed"5)
    
end
    when sensi_killed
.timer begin
        cmdchat
("CMD1")
        
d.kill_all()
        
d.spawn_mob(9012618187)
        
d.spawn_mob(20074611179)
        
d.spawn_mob(20075620170)
        
d.spawn_mob(20076628179)
        
d.spawn_mob(9003621187)
        
d.setqf("can_refine"1)
        
d.notice("Du hast den Sensenmann getötet und damit den 2. Teil des Dungeons abgeschlossen.")
        
d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.")
        
d.notice("Falls du den Dungeon fortführen möchtest, kannst du dir bei der Gemischtwarenhändlerin")
        
d.notice("erneut Tränke kaufen. Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.")
        
timer("zeit_nach_sensi"110)
    
end
    when zeit_nach_sensi
.timer begin
        d
.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.")
        
timer("zeit_bis_gemeinerking"10)
    
end
    when zeit_bis_gemeinerking
.timer begin
        d
.jump_all(2048+5906656+155)
        
d.kill_all()
        
d.spawn_mob(1094620170)
        
d.notice("Der Gemeine Dämonenkönig treibt hier sein Unwesen.")
        
d.notice("Töte ihn, um auf die nächste Ebene zu gelangen.")
    
end
    when 1094.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        timer
("zeit_bis_bt"10)
        
d.notice("Du hast den Gemeinen Dämonenkönig getötet.")
        
d.notice("In 10 Sekunden wirst du auf die letzte Ebene teleportiert.")
    
end
    when zeit_bis_bt
.timer begin
        d
.jump_all(2048+5906656+155)
        
d.kill_all()
        
d.spawn_mob(1095620170)
        
d.notice("Du befindest dich auf der letzten Ebene des Dämonenturmes.")
        
d.notice("Töte den Blauen Tod und du wirst reich belohnt!")
    
end
    when 1095.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        cmdchat
("CMD1")
        
d.kill_all()
        
d.spawn_mob(9012618187)
        
d.spawn_mob(20074611179)
        
d.spawn_mob(20075620170)
        
d.spawn_mob(20076628179)
        
d.spawn_mob(9003621187)
        
d.setqf("can_refine"1)
        
d.notice("Du hast den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.")
        
d.notice("Herzlichen Glückwunsch!")
        
d.notice("Du darfst erneut einen Gegenstand bei den dämonischen Schmieden verbessern. Viel Glück!")
        
notice_all("".. pc.get_name() .." hat den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.")
    
end
end
end 
mach dasdoch so wie auf de, das man erst den schmied oder was auch immer zuerst ansprechen muss, damit man weiter geportet wird.
Vordeaux is offline  
Old 03/02/2015, 13:45   #11122
 
elite*gold: 0
Join Date: Sep 2010
Posts: 50
Received Thanks: 0
Userpanel Quest macht Probleme

Hallo liebe Community,

Ich benutze ein Userpanel & ein GM Panel womit man Tickets erstellen,schreiben & bearbeiten kann. Nun habe ich ein problem beim Userpanel.

Hier die Quest

Wenn ich mit einem User auf den Ring klicke öffnet sich das Userpanel, nun wenn ich auf Ticketschreiben klicke öffnet sich ein Fenster mit dem Text
PHP Code:
                        say("Hallo "..pc.get_name().."!")
                        
say("Hier kannst du ein Ticket an den Support schreiben!"
Nun kommen aber keine Felder wo ich Ja oder Nein klicken kann, wo ich das Ticket schreiben kann. Ich komme echt nicht weiter. In Putty gibt es bei make.sh keine Fehler. Also allgemein erscheint kein Fehler wo das Userpanel betrifft.


Mfg
MILCHSOCO is offline  
Old 03/02/2015, 14:12   #11123

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by MILCHSOCO View Post
Hallo liebe Community,

Ich benutze ein Userpanel & ein GM Panel womit man Tickets erstellen,schreiben & bearbeiten kann. Nun habe ich ein problem beim Userpanel.

Hier die Quest

Wenn ich mit einem User auf den Ring klicke öffnet sich das Userpanel, nun wenn ich auf Ticketschreiben klicke öffnet sich ein Fenster mit dem Text
PHP Code:
                        say("Hallo "..pc.get_name().."!")
                        
say("Hier kannst du ein Ticket an den Support schreiben!"
Nun kommen aber keine Felder wo ich Ja oder Nein klicken kann, wo ich das Ticket schreiben kann. Ich komme echt nicht weiter. In Putty gibt es bei make.sh keine Fehler. Also allgemein erscheint kein Fehler wo das Userpanel betrifft.


Mfg
Im select das "später" in "spaeter" ändern (bei "Vielleicht später") ... fking select problems Hat mich gestern auch ne Menge Zeit gekostet

Generell ist die Quest aber nicht wirklich schön, vieles verdoppelt, von der Datenbank ganz zu schweigen ... warum für jede Zeile ein eigenes Feld in der DB? Man kann mit einer Schleife ganz einfach Verdopplungen vermeiden, wirf dazu einfach mal einen Blick in meine Offline-Message Quest
rollback is offline  
Old 03/02/2015, 14:20   #11124
 
elite*gold: 0
Join Date: Sep 2010
Posts: 50
Received Thanks: 0
Quote:
Originally Posted by [Sensenmann] View Post
Im select das "später" in "spaeter" ändern (bei "Vielleicht später") ... fking select problems Hat mich gestern auch ne Menge Zeit gekostet

Generell ist die Quest aber nicht wirklich schön, vieles verdoppelt, von der Datenbank ganz zu schweigen ... warum für jede Zeile ein eigenes Feld in der DB? Man kann mit einer Schleife ganz einfach Verdopplungen vermeiden, wirf dazu einfach mal einen Blick in meine Offline-Message Quest
Hat sich nichts daran bei mir geändert


Die Zeile sieht bei mir nun so aus, benutzt du das Userpanel auch und lässt es über ein Item statt einem NPv laufen?


#Edit beim Drauf klicken von neues Ticket erstellen kommt in Putty doch eine kleine Fehlermeldung, weiß jedoch nicht was ich dagegen machen muss

PHP Code:
WarningUsing a password on the command line interface can be insecure.
WarningUsing a password on the command line interface can be insecure
Mfg
MILCHSOCO is offline  
Old 03/02/2015, 14:29   #11125

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by MILCHSOCO View Post
Hat sich nichts daran bei mir geändert


Die Zeile sieht bei mir nun so aus, benutzt du das Userpanel auch und lässt es über ein Item statt einem NPv laufen?


#Edit beim Drauf klicken von neues Ticket erstellen kommt in Putty doch eine kleine Fehlermeldung, weiß jedoch nicht was ich dagegen machen muss

PHP Code:
WarningUsing a password on the command line interface can be insecure.
WarningUsing a password on the command line interface can be insecure
Mfg
Ob über ein Item oder ein NPC spielt keine Rolle. Ich benutze sie nicht, da ich die wie gesagt ziemlich schlecht geschrieben finde.
Die Fehlermeldung tritt ist mir schon oft bei den Viruz-Files aufgefallen, ich denke mal du benutzt die. Was man dagegen machen muss:
rollback is offline  
Old 03/02/2015, 14:31   #11126
 
elite*gold: 0
Join Date: Sep 2010
Posts: 50
Received Thanks: 0
Quote:
Originally Posted by [Sensenmann] View Post
Ob über ein Item oder ein NPC spielt keine Rolle. Ich benutze sie nicht, da ich die wie gesagt ziemlich schlecht geschrieben finde.
Die Fehlermeldung tritt ist mir schon oft bei den Viruz-Files aufgefallen, ich denke mal du benutzt die. Was man dagegen machen muss:
Benutzen tu ich die Unbugged Invoice SF von xGreen. Gibt es zu dieser Quest alternativen? Will nicht auf eine php Ticket System ausweichen, würde es gerne Ingame haben.

mfg
MILCHSOCO is offline  
Old 03/02/2015, 15:11   #11127

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by MILCHSOCO View Post
Benutzen tu ich die Unbugged Invoice SF von xGreen. Gibt es zu dieser Quest alternativen? Will nicht auf eine php Ticket System ausweichen, würde es gerne Ingame haben.

mfg
Noch nicht fertig aber wenn ich Zuhause bin schreibe ich die zuende.
PHP Code:
quest userpanel begin
    state start begin
        when 40002.
use begin
            
if pc.getqf("status") == 0 then
                say_title
("Herzlich Willkommen "..pc.get_name().."!")
                
say("")
                
say("Da dies dein erster Besuch ist, werde ich")
                
say("dir die wichtigstens Funktionen deines")
                
say("Userpanels zeigen.")
                
say("")
                
wait()
                
say_title("Reichsteleporter:")
                
say("")
                
say("Mit dem Userpanel kannst du dich in die")
                
say("verschiedenen Reiche teleportieren")
                
say("")
                
wait()
                
say_title("Passwort ändern:")
                
say("")
                
say("Mit dem Userpanel kannst du auch dein")
                
say("Passwort ändern")
                
say("")
                
wait()
                
say_title("Userpanel:")
                
say("")
                
say("So das war die kleine Tour durch dein")
                
say("Userpanel.")
                
say("")
            
end
            repeat
                say_title
("Userpanel:")
                
say("Herzlich Willkommen im Userpanel!")
                
say("Was möchtest du tun?")
                
local s select("Reichsteleporter""Passwort ändern""Rangliste""Ticket schreiben""Ticket Verwaltung""Abbrechen")
                if 
== 7 then
                    
return
                elseif 
== 1 then
                    repeat
                        say_title
("Reichsteleporter:")
                        
say("")
                        
say("Hallo ich bin der Reichsteleporter")
                        
say("Wohin möchtest du dich teleportieren?")
                        
say("")
                        
local reich select ("Blaues Reich""Gelbes Reich""Rotes Reich""Zum Hauptmenue""Abbrechen")
                        if 
reich == 5 then
                            
return
                        elseif 
reich == 1 then
                            pc
.warp(969600,278400)
                        elseif 
reich == 2 then
                            pc
.warp(55700,157900)
                        elseif 
reich == 3 then
                            pc
.warp(469300,964200)
                        elseif 
reich == 4 then
                            
break
                        
end
                    until false
                
elseif == 2 then
                    repeat
                        say_title
("Passwort ändern:")
                        
say("")
                        
say("Hallo hier kannst du dein Passwort ändern")
                        
say("Wie soll dein neues Passwort lauten?")
                        
say("")
                        
local new_password input()
                        
account.set_pw(new_password)
                        
say_title("Passwort ändern:")
                        
say("")
                        
say("Dein Passwort wurde erfolgreich geändert!")
                        
say("")
                        if 
select("Zum Hauptmenue""Abbrechen") == 2 then return end
                        
break
                    
until false
                
elseif == 3 then
                    repeat
                        say_title
("Rangliste:")
                        
say("")
                        
say("Hier findest du eine Auflistung aller Spieler")
                        
say("nach Ihrem Level!")
                        
say("Was möchtest du tun?")
                        
say("")
                        
local s select("Charakter suchen""Rangliste anzeigen""Zum Hauptmenue""Abbrechen")
                        if 
== 4 then
                            
return
                        elseif 
== 3 then
                            
break
                        
end
                        say_title
("Rangliste:")
                        
say("")
                        if 
== 1 then
                            repeat
                                say
("Hier kannst du einen Charakter suchen!")
                                
say("Bitte gib den Namen des Spielers ein!")
                                
say("")
                                
local search_char input(); search_char_escaped mysql_escape(search_char)
                                
query mysql_query("SELECT id, name, guild, level, exp FROM player.player WHERE name = '"..search_char_escaped.."' LIMIT 1;")
                                if 
table.getn(query.name) < 1 then
                                    say_title
("Rangliste:")
                                    
say("")
                                    
say("Der Charakter wurde nicht gefunden.")
                                    
local s select("anderen Namen eingeben""Zum Hauptmenue""Abbrechen")
                                    if 
== 3 then
                                        
return
                                    elseif 
== 2 then
                                        
break
                                    
end
                                end
                            until false
                            local guild 
mysql_query("SELECT guild_id FROM player.guild_member WHERE pid = "..query.id[1].." LIMIT 1;")
                            
say_title("Rangliste:")
                            
say(col.lime("Hier stehen einige Daten über den gewählten Spieler!"))
                            
say("Name: "..query.name[1])
                            if 
guild.guild_id[1] == "ERROR" then
                                say
("Keine Gilde")
                            else
                                
say("Gilde: "..query.guild[1])
                            
end
                            say
("Level: "..query.level[1])
                            
say("EXP: "..query.exp[1])
                            
say("")
                            if 
select("Zum Hauptmenue""Abbrechen") == 2 then return end
                            
break
                        elseif 
== 2 then
                            repeat
                                local query 
mysql_query("SELECT id, name, guild, level, exp FROM player.player ORDER BY level ASC LIMIT 50;")
                                
say_reward("Die Spieler sind noch Level geordnet.")
                                
local names = {}
                                for 
1table.getn(query.id) do
                                    if 
== table.getn(query.id)
                                        
table.insert(names"Zum Hauptmenue")
                                    else
                                        
table.insert(namesquery.name[i]
                                    
end
                                end
                                local select_player 
select(names)
                                
local guild mysql_query("SELECT guild_id FROM player.guild_member WHERE pid = "..query.id[1].." LIMIT 1;")
                                
say_title("Rangliste:")
                                
say(col.lime("Hier stehen einige Daten über den gewählten Spieler!"))
                                
say("Name: "..query.name[1])
                                if 
guild.guild_id[1] == "ERROR" then
                                    say
("Keine Gilde")
                                else
                                    
say("Gilde: "..query.guild[1])
                                
end
                                say
("Level: "..query.level[1])
                                
say("EXP: "..query.exp[1])
                                
say("")
                                
local s select("Zur Spielerauswahl""Zum Hauptmenue""Abbrechen")
                                if 
== 3 then
                                    
return
                                elseif 
== 2 then
                                    
break
                                
end
                            until false
                    until false
                
elseif == 4
                    repeat
                        say_title
("Ticket schreiben:")
                        
say("")
                        
say("Hallo "..pc.get_name().."!")
                        
say("Hier kannst du ein Ticket an den Support schreiben!")
                        
say(col.red("Bitte sende kein Spaß Ticket ab!"))
                        
say(col.red("Spaß Tickets werden geahndet!"))
                        
say("Möchtest du ein Ticket schreiben?")
                        
say("")
                        
local s select("Ja""Zum Hauptmenue""Abbrechen")
                        if 
== 3 then
                            
return
                        elseif 
== 2 then
                            
break
                        
end
                        repeat
                            say_title
("Ticket schreiben:")
                            
say("")
                            
say("Bitte gib einen Betreff ein!")
                            
say("")
                            
betreff input()
                            if 
betreff == "" then
                                say_title
("Ticket schreiben:")
                                
say("")
                                
say(col.red("Der Betreff darf nicht leer sein!"))
                                
say("")
                                
local s select("Betreff eingeben""Zum Hauptmenue""Abbrechen")
                                if 
== 3 then
                                    
return
                                elseif 
== 2 then
                                    
break
                                
end
                            end
                        until betreff 
!= ""
                        
say("Restlicher Teil des Ticketsystems.")
                        return
                    
until false
            until false 
rollback is offline  
Old 03/02/2015, 15:19   #11128
 
elite*gold: 0
Join Date: Sep 2010
Posts: 50
Received Thanks: 0
Quote:
Originally Posted by [Sensenmann] View Post
Noch nicht fertig aber wenn ich Zuhause bin schreibe ich die zuende.
PHP Code:
quest userpanel begin
    state start begin
        when 40002.
use begin
            
if pc.getqf("status") == 0 then
                say_title
("Herzlich Willkommen "..pc.get_name().."!")
                
say("")
                
say("Da dies dein erster Besuch ist, werde ich")
                
say("dir die wichtigstens Funktionen deines")
                
say("Userpanels zeigen.")
                
say("")
                
wait()
                
say_title("Reichsteleporter:")
                
say("")
                
say("Mit dem Userpanel kannst du dich in die")
                
say("verschiedenen Reiche teleportieren")
                
say("")
                
wait()
                
say_title("Passwort ändern:")
                
say("")
                
say("Mit dem Userpanel kannst du auch dein")
                
say("Passwort ändern")
                
say("")
                
wait()
                
say_title("Userpanel:")
                
say("")
                
say("So das war die kleine Tour durch dein")
                
say("Userpanel.")
                
say("")
            
end
            repeat
                say_title
("Userpanel:")
                
say("Herzlich Willkommen im Userpanel!")
                
say("Was möchtest du tun?")
                
local s select("Reichsteleporter""Passwort ändern""Rangliste""Ticket schreiben""Ticket Verwaltung""Abbrechen")
                if 
== 7 then
                    
return
                elseif 
== 1 then
                    repeat
                        say_title
("Reichsteleporter:")
                        
say("")
                        
say("Hallo ich bin der Reichsteleporter")
                        
say("Wohin möchtest du dich teleportieren?")
                        
say("")
                        
local reich select ("Blaues Reich""Gelbes Reich""Rotes Reich""Zum Hauptmenue""Abbrechen")
                        if 
reich == 5 then
                            
return
                        elseif 
reich == 1 then
                            pc
.warp(969600,278400)
                        elseif 
reich == 2 then
                            pc
.warp(55700,157900)
                        elseif 
reich == 3 then
                            pc
.warp(469300,964200)
                        elseif 
reich == 4 then
                            
break
                        
end
                    until false
                
elseif == 2 then
                    repeat
                        say_title
("Passwort ändern:")
                        
say("")
                        
say("Hallo hier kannst du dein Passwort ändern")
                        
say("Wie soll dein neues Passwort lauten?")
                        
say("")
                        
local new_password input()
                        
account.set_pw(new_password)
                        
say_title("Passwort ändern:")
                        
say("")
                        
say("Dein Passwort wurde erfolgreich geändert!")
                        
say("")
                        if 
select("Zum Hauptmenue""Abbrechen") == 2 then return end
                        
break
                    
until false
                
elseif == 3 then
                    repeat
                        say_title
("Rangliste:")
                        
say("")
                        
say("Hier findest du eine Auflistung aller Spieler")
                        
say("nach Ihrem Level!")
                        
say("Was möchtest du tun?")
                        
say("")
                        
local s select("Charakter suchen""Rangliste anzeigen""Zum Hauptmenue""Abbrechen")
                        if 
== 4 then
                            
return
                        elseif 
== 3 then
                            
break
                        
end
                        say_title
("Rangliste:")
                        
say("")
                        if 
== 1 then
                            repeat
                                say
("Hier kannst du einen Charakter suchen!")
                                
say("Bitte gib den Namen des Spielers ein!")
                                
say("")
                                
local search_char input(); search_char_escaped mysql_escape(search_char)
                                
query mysql_query("SELECT id, name, guild, level, exp FROM player.player WHERE name = '"..search_char_escaped.."' LIMIT 1;")
                                if 
table.getn(query.name) < 1 then
                                    say_title
("Rangliste:")
                                    
say("")
                                    
say("Der Charakter wurde nicht gefunden.")
                                    
local s select("anderen Namen eingeben""Zum Hauptmenue""Abbrechen")
                                    if 
== 3 then
                                        
return
                                    elseif 
== 2 then
                                        
break
                                    
end
                                end
                            until false
                            local guild 
mysql_query("SELECT guild_id FROM player.guild_member WHERE pid = "..query.id[1].." LIMIT 1;")
                            
say_title("Rangliste:")
                            
say(col.lime("Hier stehen einige Daten über den gewählten Spieler!"))
                            
say("Name: "..query.name[1])
                            if 
guild.guild_id[1] == "ERROR" then
                                say
("Keine Gilde")
                            else
                                
say("Gilde: "..query.guild[1])
                            
end
                            say
("Level: "..query.level[1])
                            
say("EXP: "..query.exp[1])
                            
say("")
                            if 
select("Zum Hauptmenue""Abbrechen") == 2 then return end
                            
break
                        elseif 
== 2 then
                            repeat
                                local query 
mysql_query("SELECT id, name, guild, level, exp FROM player.player ORDER BY level ASC LIMIT 50;")
                                
say_reward("Die Spieler sind noch Level geordnet.")
                                
local names = {}
                                for 
1table.getn(query.id) do
                                    if 
== table.getn(query.id)
                                        
table.insert(names"Zum Hauptmenue")
                                    else
                                        
table.insert(namesquery.name[i]
                                    
end
                                end
                                local select_player 
select(names)
                                
local guild mysql_query("SELECT guild_id FROM player.guild_member WHERE pid = "..query.id[1].." LIMIT 1;")
                                
say_title("Rangliste:")
                                
say(col.lime("Hier stehen einige Daten über den gewählten Spieler!"))
                                
say("Name: "..query.name[1])
                                if 
guild.guild_id[1] == "ERROR" then
                                    say
("Keine Gilde")
                                else
                                    
say("Gilde: "..query.guild[1])
                                
end
                                say
("Level: "..query.level[1])
                                
say("EXP: "..query.exp[1])
                                
say("")
                                
local s select("Zur Spielerauswahl""Zum Hauptmenue""Abbrechen")
                                if 
== 3 then
                                    
return
                                elseif 
== 2 then
                                    
break
                                
end
                            until false
                    until false
                
elseif == 4
                    repeat
                        say_title
("Ticket schreiben:")
                        
say("")
                        
say("Hallo "..pc.get_name().."!")
                        
say("Hier kannst du ein Ticket an den Support schreiben!")
                        
say(col.red("Bitte sende kein Spaß Ticket ab!"))
                        
say(col.red("Spaß Tickets werden geahndet!"))
                        
say("Möchtest du ein Ticket schreiben?")
                        
say("")
                        
local s select("Ja""Zum Hauptmenue""Abbrechen")
                        if 
== 3 then
                            
return
                        elseif 
== 2 then
                            
break
                        
end
                        repeat
                            say_title
("Ticket schreiben:")
                            
say("")
                            
say("Bitte gib einen Betreff ein!")
                            
say("")
                            
betreff input()
                            if 
betreff == "" then
                                say_title
("Ticket schreiben:")
                                
say("")
                                
say(col.red("Der Betreff darf nicht leer sein!"))
                                
say("")
                                
local s select("Betreff eingeben""Zum Hauptmenue""Abbrechen")
                                if 
== 3 then
                                    
return
                                elseif 
== 2 then
                                    
break
                                
end
                            end
                        until betreff 
!= ""
                        
say("Restlicher Teil des Ticketsystems.")
                        return
                    
until false
            until false 
Okay würdest du sie mit mir dann teilen?
Wenn du Skype hast kannste mich Ja adden wenn du willst

Skype: yt-chiletimex3


Mit freundlichen Grüßen
MILCHSOCO is offline  
Old 03/02/2015, 19:27   #11129

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by MILCHSOCO View Post
Okay würdest du sie mit mir dann teilen?
Wenn du Skype hast kannste mich Ja adden wenn du willst

Skype: yt-chiletimex3


Mit freundlichen Grüßen
PHP Code:
quest userpanel begin
    state start begin
        when login with get_unread_ticket_count
() >= 1 begin
            query 
mysql_query("USE account; SELECT topic FROM tickets WHERE id = "..get_unread_ticket_id().." ORDER BY id DESC;")
            
notice("Du hast "..get_unread_message_count().." beantwortete Tickets. Die neuste hat den Betreff '"..query.topic[1].."'.")
        
end
        when 11001.chat
."Userpanel" begin
            
if pc.getqf("status") == 0 then
                pc
.setqf("status"1)
                
say_title("Herzlich Willkommen "..pc.get_name().."!")
                
say("")
                
say("Da dies dein erster Besuch ist, werde ich")
                
say("dir die wichtigstens Funktionen deines")
                
say("Userpanels zeigen.")
                
say("")
                
wait()
                
say_title("Reichsteleporter:")
                
say("")
                
say("Mit dem Userpanel kannst du dich in die")
                
say("verschiedenen Reiche teleportieren")
                
say("")
                
wait()
                
say_title("Passwort ändern:")
                
say("")
                
say("Mit dem Userpanel kannst du auch dein")
                
say("Passwort ändern")
                
say("")
                
wait()
                
say_title("Userpanel:")
                
say("")
                
say("So das war die kleine Tour durch dein")
                
say("Userpanel.")
                
say("")
                
wait()
            
end
            repeat
                say_title
("Userpanel:")
                
say("Herzlich Willkommen im Userpanel!")
                
say("Was möchtest du tun?")
                
local s select("Reichsteleporter""Passwort ändern""Rangliste""Ticket schreiben""Ticket Verwaltung""Abbrechen")
                if 
== 6 then
                    
return
                elseif 
== 1 then
                    repeat
                        say_title
("Reichsteleporter:")
                        
say("")
                        
say("Hallo ich bin der Reichsteleporter")
                        
say("Wohin möchtest du dich teleportieren?")
                        
say("")
                        
local reich select ("Blaues Reich""Gelbes Reich""Rotes Reich""Zum Hauptmenue""Abbrechen")
                        if 
reich == 5 then
                            
return
                        elseif 
reich == 1 then
                            pc
.warp(969600,278400)
                        elseif 
reich == 2 then
                            pc
.warp(55700,157900)
                        elseif 
reich == 3 then
                            pc
.warp(469300,964200)
                        elseif 
reich == 4 then
                            
break
                        
end
                    until false
                
elseif == 2 then
                    repeat
                        say_title
("Passwort ändern:")
                        
say("")
                        
say("Hallo hier kannst du dein Passwort ändern")
                        
say("Wie soll dein neues Passwort lauten?")
                        
say("")
                        
local new_password input()
                        
account.set_pw(escape_sqli(new_password))
                        
say_title("Passwort ändern:")
                        
say("")
                        
say("Dein Passwort wurde erfolgreich geändert!")
                        
say("")
                        if 
select("Zum Hauptmenue""Abbrechen") == 2 then return end
                        
break
                    
until false
                
elseif == 3 then
                    repeat
                        say_title
("Rangliste:")
                        
say("")
                        
say("Hier findest du eine Auflistung aller Spieler")
                        
say("nach Ihrem Level!")
                        
say("Was möchtest du tun?")
                        
say("")
                        
local s select("Charakter suchen""Rangliste anzeigen""Zum Hauptmenue""Abbrechen")
                        if 
== 4 then
                            
return
                        elseif 
== 3 then
                            
break
                        
end
                        say_title
("Rangliste:")
                        
say("")
                        if 
== 1 then
                            repeat
                                say
("Hier kannst du einen Charakter suchen!")
                                
say("Bitte gib den Namen des Spielers ein!")
                                
say("")
                                
local search_char input()
                                
query mysql_query("SELECT id, name, guild, level, exp FROM player.player WHERE name = '"..escape_sqli(search_char).."' LIMIT 1;")
                                if 
table.getn(query.name) < 1 then
                                    say_title
("Rangliste:")
                                    
say("")
                                    
say("Der Charakter wurde nicht gefunden.")
                                    
local s select("anderen Namen eingeben""Zum Hauptmenue""Abbrechen")
                                    if 
== 3 then
                                        
return
                                    elseif 
== 2 then
                                        
break
                                    
end
                                end
                            until false
                            guild 
mysql_query("SELECT guild_id FROM player.guild_member WHERE pid = "..query.id[1].." LIMIT 1;")
                            
say_title("Rangliste:")
                            
say("Hier stehen einige Daten über den gewählten Spieler!")
                            
say("Name: "..query.name[1])
                            if 
guild.guild_id[1] == "ERROR" then
                                say
("Keine Gilde")
                            else
                                
say("Gilde: "..query.guild[1])
                            
end
                            say
("Level: "..query.level[1])
                            
say("EXP: "..query.exp[1])
                            
say("")
                            if 
select("Zum Hauptmenue""Abbrechen") == 2 then return end
                            
break
                        elseif 
== 2 then
                            repeat
                                query 
mysql_query("SELECT id, name, guild, level, exp FROM player.player ORDER BY level ASC LIMIT 50;")
                                
say_reward("Die Spieler sind noch Level geordnet."
                                
local names = {}
                                for 
1table.getn(query.id) do
                                    if 
== table.getn(query.idthen
                                        table
.insert(names"Zum Hauptmenue")
                                    else
                                        
table.insert(namesquery.name[i])
                                    
end
                                end
                                local select_player 
select(names
                                
guild mysql_query("SELECT guild_id FROM player.guild_member WHERE pid = "..query.id[1].." LIMIT 1;")
                                
say_title("Rangliste:")
                                
say("Hier stehen einige Daten über den gewählten Spieler!")
                                
say("Name: "..query.name[1])
                                if 
table.getn(guild.guild_id) < 1 then
                                    say
("Keine Gilde")
                                else
                                    
say("Gilde: "..query.guild[1])
                                
end
                                say
("Level: "..query.level[1])
                                
say("EXP: "..query.exp[1])
                                
say("")
                                
local s select("Zur Spielerauswahl""Zum Hauptmenue""Abbrechen")
                                if 
== 3 then
                                    
return
                                elseif 
== 2 then
                                    
break
                                
end
                            until false
                        end
                    until false
                
elseif == 4 then
                    repeat
                        say_title
("Ticket schreiben:")
                        
say("")
                        
say("Hallo "..pc.get_name().."!")
                        
say("Hier kannst du ein Ticket an den Support schreiben!")
                        
say("Bitte sende kein Spaß Ticket ab!")
                        
say("Spaß Tickets werden geahndet!")
                        
say("Möchtest du ein Ticket schreiben?")
                        
say("")
                        
local s select("Ja""Zum Hauptmenue""Abbrechen")
                        if 
== 3 then
                            
return
                        elseif 
== 2 then
                            
break
                        
end
                        repeat
                            say_title
("Ticket schreiben:")
                            
say("")
                            
say("Bitte gib einen Betreff ein!")
                            
say("")
                            
topic input()
                            if 
topic == "" then
                                say_title
("Ticket schreiben:")
                                
say("")
                                
say("Der Betreff darf nicht leer sein!")
                                
say("")
                                
local s select("Betreff eingeben""Zum Hauptmenue""Abbrechen")
                                if 
== 3 then
                                    
return
                                elseif 
== 2 then
                                    
break
                                
end
                            end
                        until topic 
!= ""
                        
local message ""
                        
local i 1
                        
for 110 do
                            
local from = (-30)+(i*30)
                            
local to i*30
                            say_title
("Ticket schreiben")
                            
say("")
                            
say_reward("Gib deine Nachricht ein ("..from.."-"..to.." von 300 Zeichen)")
                            
say_reward("Gib '#STOP' ein, um abzubrechen oder '#COMPLETE',")
                            
say_reward("wenn du fertig bist.")
                            
say("")
                            
say_reward("Betreff: "..topic)
                            
say_reward("Nachricht:")
                            
say_reward(message)
                            
say("")
                            
input_msg input()
                            if 
string.upper(input_msg) == "#COMPLETE" then break
                            elseif 
string.upper(input_msg) == "#STOP" then return end
                            message 
message..input_msg
                        end
                        repeat
                            say_title
(topic)
                            
say("")
                            
say(message)
                            
say("")
                            
select("Absenden""Zum Hauptmenue""Schließen")
                            if 
== 3 then
                                
return
                            elseif 
== 1 then
                                mysql_query
("USE account; INSERT INTO tickets (account_sent, character_sent, topic, message) VALUES ("..pc.get_account_id()..", "..get_playerid_by_playername(pc.get_name())..", '"..escape_sqli(topic).."', '"..escape_sqli(message).."');"
                            elseif 
== 2 then
                                
break
                            
end
                        until s 
== 1
                        say_title
("Nachricht schreiben")
                        
say("")
                        
say_reward("Deine Nachricht wurde erfolgreich gesendet.")
                        
say("")
                        if 
select("Zum Hauptmenue""Schließen") == 2 then return end
                    until false
                
elseif == 5 then
                    repeat
                        query 
mysql_query("USE account; SELECT id, topic, message FROM tickets WHERE account_sent = "..pc.get_account_id().." AND answered = 1;")
                        
say_title("Ticket Verwaltung:")
                        if 
table.getn(query) < 1 then 
                            say
(""
                            
say_reward("Du hast keine Nachrichten in diesem Postfach.")
                            
say("")
                            if 
select("Zum Hauptmenue""Schließen") == 2 then return end
                            
break
                        
end
                        local topic 
= {}
                        for 
1table.getn(query.topic)+do
                            if 
== table.getn(query.topic)+1 then
                                table
.insert(topic"Zum Hauptmenue")
                            else
                                
table.insert(topicquery.topic[i])
                            
end
                        end
                        local select_ticket 
select3(topic)
                        if 
select_ticket 1 then
                            
return
                        elseif 
select_ticket == table.getn(query.topic)+1 then
                            
break
                        
end
                        query2 
mysql_query("USE account; SELECT ticket_id, bearbeiter, message FROM tickets_answers WHERE ticket_id = "..query.id[select_ticket].." ORDER BY id DESC LIMIT 1;")
                        
say_title(topic[select_ticket])
                        
say("")
                        
say_reward("Bearbeiter: "..query2.bearbeiter[1])
                        
say_reward("Original-Nachricht:")
                        
say(query.message[select_ticket])
                        
say("")
                        
say("Antwort:")
                        
say(query2.message[1])
                        
local s select("Antworten""Zum Hauptmenue""Abbrechen")
                        if 
== 3 then
                            
return
                        elseif 
== 2 then
                            
break
                        
end
                        local message 
""
                        
local i 1
                        
for 110 do
                            
local from = (-30)+(i*30)
                            
local to i*30
                            say_title
("Ticket beantworten")
                            
say("")
                            
say_reward("Gib deine Nachricht ein ("..from.."-"..to.." von 300 Zeichen)")
                            
say_reward("Gib '#STOP' ein, um abzubrechen oder '#COMPLETE',")
                            
say_reward("wenn du fertig bist.")
                            
say("")
                            
say_reward("Nachricht:")
                            if 
message != "" then
                                say_reward
(message)
                            
end
                            say
("")
                            
input_msg input()
                            if 
string.upper(input_msg) == "#COMPLETE" then break
                            elseif 
string.upper(input_msg) == "#STOP" then return end
                            message 
message..input_msg
                        end
                        repeat
                            say_title
("Ticket beantworten")
                            
say("")
                            
say(message)
                            
say("")
                            
local s select("Absenden""Zum Hauptmenue""Schließen")
                            if 
== 3 then
                                
return
                            elseif 
== 1 then
                                mysql_query
("USE account; INSERT INTO tickets_answers (ticket_id, account_sent, character_sent, bearbeiter, message) VALUES ("..query.id[select_ticket]..", "..pc.get_account_id()..", "..get_playerid_by_playername(pc.get_name())..", '"..pc.get_account_id().."', '"..escape_sqli(message).."');"
                            elseif 
== 2 then
                                
break
                            
end
                        until s 
== 1
                        say_title
("Nachricht schreiben")
                        
say("")
                        
say_reward("Deine Nachricht wurde erfolgreich gesendet.")
                        
say("")
                        if 
select("Zur Ticket-Liste""Schließen") == 2 then return end
                    until false
                end
            until false
        end
    end
end 
Hat noch ein paar Schönheits-Fehler aber sonst läuft die ganz gut
rollback is offline  
Thanks
1 User
Old 03/02/2015, 19:39   #11130
 
elite*gold: 0
Join Date: Sep 2010
Posts: 50
Received Thanks: 0
Smile GM & Userpanel quest

Quote:
Originally Posted by [Sensenmann] View Post
PHP Code:
quest userpanel begin
    state start begin
        when login with get_unread_ticket_count
() >= 1 begin
            query 
mysql_query("USE account; SELECT topic FROM tickets WHERE id = "..get_unread_ticket_id().." ORDER BY id DESC;")
            
notice("Du hast "..get_unread_message_count().." beantwortete Tickets. Die neuste hat den Betreff '"..query.topic[1].."'.")
        
end
        when 11001.chat
."Userpanel" begin
            
if pc.getqf("status") == 0 then
                pc
.setqf("status"1)
                
say_title("Herzlich Willkommen "..pc.get_name().."!")
                
say("")
                
say("Da dies dein erster Besuch ist, werde ich")
                
say("dir die wichtigstens Funktionen deines")
                
say("Userpanels zeigen.")
                
say("")
                
wait()
                
say_title("Reichsteleporter:")
                
say("")
                
say("Mit dem Userpanel kannst du dich in die")
                
say("verschiedenen Reiche teleportieren")
                
say("")
                
wait()
                
say_title("Passwort ändern:")
                
say("")
                
say("Mit dem Userpanel kannst du auch dein")
                
say("Passwort ändern")
                
say("")
                
wait()
                
say_title("Userpanel:")
                
say("")
                
say("So das war die kleine Tour durch dein")
                
say("Userpanel.")
                
say("")
                
wait()
            
end
            repeat
                say_title
("Userpanel:")
                
say("Herzlich Willkommen im Userpanel!")
                
say("Was möchtest du tun?")
                
local s select("Reichsteleporter""Passwort ändern""Rangliste""Ticket schreiben""Ticket Verwaltung""Abbrechen")
                if 
== 6 then
                    
return
                elseif 
== 1 then
                    repeat
                        say_title
("Reichsteleporter:")
                        
say("")
                        
say("Hallo ich bin der Reichsteleporter")
                        
say("Wohin möchtest du dich teleportieren?")
                        
say("")
                        
local reich select ("Blaues Reich""Gelbes Reich""Rotes Reich""Zum Hauptmenue""Abbrechen")
                        if 
reich == 5 then
                            
return
                        elseif 
reich == 1 then
                            pc
.warp(969600,278400)
                        elseif 
reich == 2 then
                            pc
.warp(55700,157900)
                        elseif 
reich == 3 then
                            pc
.warp(469300,964200)
                        elseif 
reich == 4 then
                            
break
                        
end
                    until false
                
elseif == 2 then
                    repeat
                        say_title
("Passwort ändern:")
                        
say("")
                        
say("Hallo hier kannst du dein Passwort ändern")
                        
say("Wie soll dein neues Passwort lauten?")
                        
say("")
                        
local new_password input()
                        
account.set_pw(escape_sqli(new_password))
                        
say_title("Passwort ändern:")
                        
say("")
                        
say("Dein Passwort wurde erfolgreich geändert!")
                        
say("")
                        if 
select("Zum Hauptmenue""Abbrechen") == 2 then return end
                        
break
                    
until false
                
elseif == 3 then
                    repeat
                        say_title
("Rangliste:")
                        
say("")
                        
say("Hier findest du eine Auflistung aller Spieler")
                        
say("nach Ihrem Level!")
                        
say("Was möchtest du tun?")
                        
say("")
                        
local s select("Charakter suchen""Rangliste anzeigen""Zum Hauptmenue""Abbrechen")
                        if 
== 4 then
                            
return
                        elseif 
== 3 then
                            
break
                        
end
                        say_title
("Rangliste:")
                        
say("")
                        if 
== 1 then
                            repeat
                                say
("Hier kannst du einen Charakter suchen!")
                                
say("Bitte gib den Namen des Spielers ein!")
                                
say("")
                                
local search_char input()
                                
query mysql_query("SELECT id, name, guild, level, exp FROM player.player WHERE name = '"..escape_sqli(search_char).."' LIMIT 1;")
                                if 
table.getn(query.name) < 1 then
                                    say_title
("Rangliste:")
                                    
say("")
                                    
say("Der Charakter wurde nicht gefunden.")
                                    
local s select("anderen Namen eingeben""Zum Hauptmenue""Abbrechen")
                                    if 
== 3 then
                                        
return
                                    elseif 
== 2 then
                                        
break
                                    
end
                                end
                            until false
                            guild 
mysql_query("SELECT guild_id FROM player.guild_member WHERE pid = "..query.id[1].." LIMIT 1;")
                            
say_title("Rangliste:")
                            
say("Hier stehen einige Daten über den gewählten Spieler!")
                            
say("Name: "..query.name[1])
                            if 
guild.guild_id[1] == "ERROR" then
                                say
("Keine Gilde")
                            else
                                
say("Gilde: "..query.guild[1])
                            
end
                            say
("Level: "..query.level[1])
                            
say("EXP: "..query.exp[1])
                            
say("")
                            if 
select("Zum Hauptmenue""Abbrechen") == 2 then return end
                            
break
                        elseif 
== 2 then
                            repeat
                                query 
mysql_query("SELECT id, name, guild, level, exp FROM player.player ORDER BY level ASC LIMIT 50;")
                                
say_reward("Die Spieler sind noch Level geordnet."
                                
local names = {}
                                for 
1table.getn(query.id) do
                                    if 
== table.getn(query.idthen
                                        table
.insert(names"Zum Hauptmenue")
                                    else
                                        
table.insert(namesquery.name[i])
                                    
end
                                end
                                local select_player 
select(names
                                
guild mysql_query("SELECT guild_id FROM player.guild_member WHERE pid = "..query.id[1].." LIMIT 1;")
                                
say_title("Rangliste:")
                                
say("Hier stehen einige Daten über den gewählten Spieler!")
                                
say("Name: "..query.name[1])
                                if 
table.getn(guild.guild_id) < 1 then
                                    say
("Keine Gilde")
                                else
                                    
say("Gilde: "..query.guild[1])
                                
end
                                say
("Level: "..query.level[1])
                                
say("EXP: "..query.exp[1])
                                
say("")
                                
local s select("Zur Spielerauswahl""Zum Hauptmenue""Abbrechen")
                                if 
== 3 then
                                    
return
                                elseif 
== 2 then
                                    
break
                                
end
                            until false
                        end
                    until false
                
elseif == 4 then
                    repeat
                        say_title
("Ticket schreiben:")
                        
say("")
                        
say("Hallo "..pc.get_name().."!")
                        
say("Hier kannst du ein Ticket an den Support schreiben!")
                        
say("Bitte sende kein Spaß Ticket ab!")
                        
say("Spaß Tickets werden geahndet!")
                        
say("Möchtest du ein Ticket schreiben?")
                        
say("")
                        
local s select("Ja""Zum Hauptmenue""Abbrechen")
                        if 
== 3 then
                            
return
                        elseif 
== 2 then
                            
break
                        
end
                        repeat
                            say_title
("Ticket schreiben:")
                            
say("")
                            
say("Bitte gib einen Betreff ein!")
                            
say("")
                            
topic input()
                            if 
topic == "" then
                                say_title
("Ticket schreiben:")
                                
say("")
                                
say("Der Betreff darf nicht leer sein!")
                                
say("")
                                
local s select("Betreff eingeben""Zum Hauptmenue""Abbrechen")
                                if 
== 3 then
                                    
return
                                elseif 
== 2 then
                                    
break
                                
end
                            end
                        until topic 
!= ""
                        
local message ""
                        
local i 1
                        
for 110 do
                            
local from = (-30)+(i*30)
                            
local to i*30
                            say_title
("Ticket schreiben")
                            
say("")
                            
say_reward("Gib deine Nachricht ein ("..from.."-"..to.." von 300 Zeichen)")
                            
say_reward("Gib '#STOP' ein, um abzubrechen oder '#COMPLETE',")
                            
say_reward("wenn du fertig bist.")
                            
say("")
                            
say_reward("Betreff: "..topic)
                            
say_reward("Nachricht:")
                            
say_reward(message)
                            
say("")
                            
input_msg input()
                            if 
string.upper(input_msg) == "#COMPLETE" then break
                            elseif 
string.upper(input_msg) == "#STOP" then return end
                            message 
message..input_msg
                        end
                        repeat
                            say_title
(topic)
                            
say("")
                            
say(message)
                            
say("")
                            
select("Absenden""Zum Hauptmenue""Schließen")
                            if 
== 3 then
                                
return
                            elseif 
== 1 then
                                mysql_query
("USE account; INSERT INTO tickets (account_sent, character_sent, topic, message) VALUES ("..pc.get_account_id()..", "..get_playerid_by_playername(pc.get_name())..", '"..escape_sqli(topic).."', '"..escape_sqli(message).."');"
                            elseif 
== 2 then
                                
break
                            
end
                        until s 
== 1
                        say_title
("Nachricht schreiben")
                        
say("")
                        
say_reward("Deine Nachricht wurde erfolgreich gesendet.")
                        
say("")
                        if 
select("Zum Hauptmenue""Schließen") == 2 then return end
                    until false
                
elseif == 5 then
                    repeat
                        query 
mysql_query("USE account; SELECT id, topic, message FROM tickets WHERE account_sent = "..pc.get_account_id().." AND answered = 1;")
                        
say_title("Ticket Verwaltung:")
                        if 
table.getn(query) < 1 then 
                            say
(""
                            
say_reward("Du hast keine Nachrichten in diesem Postfach.")
                            
say("")
                            if 
select("Zum Hauptmenue""Schließen") == 2 then return end
                            
break
                        
end
                        local topic 
= {}
                        for 
1table.getn(query.topic)+do
                            if 
== table.getn(query.topic)+1 then
                                table
.insert(topic"Zum Hauptmenue")
                            else
                                
table.insert(topicquery.topic[i])
                            
end
                        end
                        local select_ticket 
select3(topic)
                        if 
select_ticket 1 then
                            
return
                        elseif 
select_ticket == table.getn(query.topic)+1 then
                            
break
                        
end
                        query2 
mysql_query("USE account; SELECT ticket_id, bearbeiter, message FROM tickets_answers WHERE ticket_id = "..query.id[select_ticket].." ORDER BY id DESC LIMIT 1;")
                        
say_title(topic[select_ticket])
                        
say("")
                        
say_reward("Bearbeiter: "..query2.bearbeiter[1])
                        
say_reward("Original-Nachricht:")
                        
say(query.message[select_ticket])
                        
say("")
                        
say("Antwort:")
                        
say(query2.message[1])
                        
local s select("Antworten""Zum Hauptmenue""Abbrechen")
                        if 
== 3 then
                            
return
                        elseif 
== 2 then
                            
break
                        
end
                        local message 
""
                        
local i 1
                        
for 110 do
                            
local from = (-30)+(i*30)
                            
local to i*30
                            say_title
("Ticket beantworten")
                            
say("")
                            
say_reward("Gib deine Nachricht ein ("..from.."-"..to.." von 300 Zeichen)")
                            
say_reward("Gib '#STOP' ein, um abzubrechen oder '#COMPLETE',")
                            
say_reward("wenn du fertig bist.")
                            
say("")
                            
say_reward("Nachricht:")
                            if 
message != "" then
                                say_reward
(message)
                            
end
                            say
("")
                            
input_msg input()
                            if 
string.upper(input_msg) == "#COMPLETE" then break
                            elseif 
string.upper(input_msg) == "#STOP" then return end
                            message 
message..input_msg
                        end
                        repeat
                            say_title
("Ticket beantworten")
                            
say("")
                            
say(message)
                            
say("")
                            
local s select("Absenden""Zum Hauptmenue""Schließen")
                            if 
== 3 then
                                
return
                            elseif 
== 1 then
                                mysql_query
("USE account; INSERT INTO tickets_answers (ticket_id, account_sent, character_sent, bearbeiter, message) VALUES ("..query.id[select_ticket]..", "..pc.get_account_id()..", "..get_playerid_by_playername(pc.get_name())..", '"..pc.get_account_id().."', '"..escape_sqli(message).."');"
                            elseif 
== 2 then
                                
break
                            
end
                        until s 
== 1
                        say_title
("Nachricht schreiben")
                        
say("")
                        
say_reward("Deine Nachricht wurde erfolgreich gesendet.")
                        
say("")
                        if 
select("Zur Ticket-Liste""Schließen") == 2 then return end
                    until false
                end
            until false
        end
    end
end 
Hat noch ein paar Schönheits-Fehler aber sonst läuft die ganz gut
Sehr nett & sozial. Werde sie gleich mal testen👍

#Edit
Sehe nun die Tickets, die die User schreiben, nicht in meinem GM-Panel könntest du da auch mal drüber schauen?


Mfg
MILCHSOCO is offline  
Reply




All times are GMT +1. The time now is 06:12.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.