|
You last visited: Today at 06:11
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
02/28/2015, 13:41
|
#11116
|
elite*gold: 0
Join Date: Feb 2015
Posts: 156
Received Thanks: 73
|
Quote:
Originally Posted by BlackWood2
Quest:
quest warpring begin
state start begin
when 70007.use begin
say_title("Teleport-Ring")
say("Wohin möchtest du Teleportiert werden?")
local empire = pc.get_empire()
local selectmap = select("Map1","Abbrechen")
if selectmap == 2 then
return
elseif selectmap == 1 then
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)
elseif map1select == 4 then
return
end
end
end
end
Putty:
QUEST : warpring
STATE : start
WHEN : 70007.use
assertion failure : nested==0
warpring.quest:29:Error occured on compile warpring.quest
|
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.
|
|
|
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
|
|
|
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~.
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(vnum, 1) 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.
|
|
|
03/01/2015, 19:23
|
#11119
|
elite*gold: 120
Join Date: Jul 2012
Posts: 219
Received Thanks: 6
|
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 n == 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 n == 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 a == 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
|
|
|
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)*100, 65)
end
pc.set_warp_location(65, 5376+532, 512+596+4)
elseif pc.get_map_index() > 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5376+532, 512+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(216500, 727000)
end
if betreten == 2 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(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.spawn_mob(8015, 120, 615)
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 == 2 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(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.regen_file("data/dungeon/deviltower2_regen.txt")
d.set_warp_at_eliminate(4, d.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(6, d.get_map_index(), 100, 100)
--d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
d.set_warp_at_eliminate(4, d.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 = {
{368, 629},
{419, 630},
{428, 653},
{422, 679},
{395, 689},
{369, 679},
{361, 658},
}
for i = 1, 6 do
local j = number(i, 7)
if i != j then
local t = positions[i];
positions[i] = positions[j];
positions[j] = t;
end
end
--for i = 1, 7 do
-- 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 i = 1, 6 do
chat(positions[i][1], positions[i][2])
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
end
chat(positions[7][1], positions[7][2])
local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
chat(vid)
d.set_unique("real", vid)
server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
server_timer('devil_stone4_fail1', 5*60, pc.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*60, get_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*60, get_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 i = 1, 6 do
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" .. i, 1)
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", 5, get_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', 1, get_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*60, get_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(20073, 421, 452)
d.spawn_mob(20073, 380, 460)
d.spawn_mob(20073, 428, 414)
d.spawn_mob(20073, 398, 392)
d.spawn_mob(20073, 359, 426)
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*60, get_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*60, get_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*60, get_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 n == KILL_COUNT_FOR_DROP_KEY then
-- bla bla 3
game.drop_item(50084, 1)
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*60, 65, 5376+532, 512+596+4)
d.check_eliminated()
timer("stolzerking_killed", 5)
end
when stolzerking_killed.timer begin
cmdchat("CMD1")
d.spawn_mob(9012, 395, 200)
d.spawn_mob(20074, 392, 209)
d.spawn_mob(20075, 405, 209)
d.spawn_mob(20076, 399, 209)
d.spawn_mob(9003, 402, 200)
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(8018, 639, 658)
d.spawn_mob(8018, 611, 637)
d.spawn_mob(8018, 596, 674)
d.spawn_mob(8018, 629, 670)
d.setf("level", 7)
d.jump_all(2048+590, 6656+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(30300, 1)
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(30302, 1)
d.clear_regen()
else
-- bla bla 8
game.drop_item(30301, 1)
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+590, 6656+403)
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
d.spawn_mob(20366, 640, 460)
local _count= pc.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(1, 5)
if pct1 == 1 then
local pct2 = number(1, 10)
if pct2 == 1 then
-- bla bla 12
game.drop_item(30304, 1)
else
-- bla bla 13
game.drop_item(30304, 1)
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+590, 6656+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(9012, 618, 187)
d.spawn_mob(20074, 611, 179)
d.spawn_mob(20075, 620, 170)
d.spawn_mob(20076, 628, 179)
d.spawn_mob(9003, 621, 187)
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+590, 6656+155)
d.kill_all()
d.spawn_mob(1094, 620, 170)
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+590, 6656+155)
d.kill_all()
d.spawn_mob(1095, 620, 170)
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(9012, 618, 187)
d.spawn_mob(20074, 611, 179)
d.spawn_mob(20075, 620, 170)
d.spawn_mob(20076, 628, 179)
d.spawn_mob(9003, 621, 187)
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
|
|
|
03/02/2015, 08:27
|
#11121
|
elite*gold: 0
Join Date: Feb 2015
Posts: 17
Received Thanks: 9
|
Quote:
Originally Posted by °Ace°
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)*100, 65)
end
pc.set_warp_location(65, 5376+532, 512+596+4)
elseif pc.get_map_index() > 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5376+532, 512+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(216500, 727000)
end
if betreten == 2 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(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.spawn_mob(8015, 120, 615)
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 == 2 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(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.regen_file("data/dungeon/deviltower2_regen.txt")
d.set_warp_at_eliminate(4, d.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(6, d.get_map_index(), 100, 100)
--d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
d.set_warp_at_eliminate(4, d.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 = {
{368, 629},
{419, 630},
{428, 653},
{422, 679},
{395, 689},
{369, 679},
{361, 658},
}
for i = 1, 6 do
local j = number(i, 7)
if i != j then
local t = positions[i];
positions[i] = positions[j];
positions[j] = t;
end
end
--for i = 1, 7 do
-- 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 i = 1, 6 do
chat(positions[i][1], positions[i][2])
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
end
chat(positions[7][1], positions[7][2])
local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
chat(vid)
d.set_unique("real", vid)
server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
server_timer('devil_stone4_fail1', 5*60, pc.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*60, get_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*60, get_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 i = 1, 6 do
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" .. i, 1)
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", 5, get_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', 1, get_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*60, get_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(20073, 421, 452)
d.spawn_mob(20073, 380, 460)
d.spawn_mob(20073, 428, 414)
d.spawn_mob(20073, 398, 392)
d.spawn_mob(20073, 359, 426)
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*60, get_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*60, get_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*60, get_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 n == KILL_COUNT_FOR_DROP_KEY then
-- bla bla 3
game.drop_item(50084, 1)
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*60, 65, 5376+532, 512+596+4)
d.check_eliminated()
timer("stolzerking_killed", 5)
end
when stolzerking_killed.timer begin
cmdchat("CMD1")
d.spawn_mob(9012, 395, 200)
d.spawn_mob(20074, 392, 209)
d.spawn_mob(20075, 405, 209)
d.spawn_mob(20076, 399, 209)
d.spawn_mob(9003, 402, 200)
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(8018, 639, 658)
d.spawn_mob(8018, 611, 637)
d.spawn_mob(8018, 596, 674)
d.spawn_mob(8018, 629, 670)
d.setf("level", 7)
d.jump_all(2048+590, 6656+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(30300, 1)
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(30302, 1)
d.clear_regen()
else
-- bla bla 8
game.drop_item(30301, 1)
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+590, 6656+403)
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
d.spawn_mob(20366, 640, 460)
local _count= pc.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(1, 5)
if pct1 == 1 then
local pct2 = number(1, 10)
if pct2 == 1 then
-- bla bla 12
game.drop_item(30304, 1)
else
-- bla bla 13
game.drop_item(30304, 1)
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+590, 6656+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(9012, 618, 187)
d.spawn_mob(20074, 611, 179)
d.spawn_mob(20075, 620, 170)
d.spawn_mob(20076, 628, 179)
d.spawn_mob(9003, 621, 187)
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+590, 6656+155)
d.kill_all()
d.spawn_mob(1094, 620, 170)
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+590, 6656+155)
d.kill_all()
d.spawn_mob(1095, 620, 170)
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(9012, 618, 187)
d.spawn_mob(20074, 611, 179)
d.spawn_mob(20075, 620, 170)
d.spawn_mob(20076, 628, 179)
d.spawn_mob(9003, 621, 187)
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.
|
|
|
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
PHP Code:
###############################################################
# Diese Quest wurde von #
# aze' #
# http://www.elitepvpers.com/forum/members/3692143--e-.html #
# erstellt #
###############################################################
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("")
pc.setqf("status",1)
end
say_title("Userpanel:")
say("Herzlich Willkommen im Userpanel!")
say("Was möchtest du tun?")
local sel = select ("Reichsteleporter", "Passwort ändern", "Rangliste", "Ticket schreiben", "Ticket Verwaltung", "Abbrechen")
if sel == 7 then
return
elseif sel == 1 then
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", "Abbruch")
if reich == 4 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)
end
elseif sel == 2 then
say_title("Passwort ändern:")
say("")
say("Hallo hier kannst du dein Passwort ändern")
say("Wie soll dein neues Passwort lauten?")
say("")
local inp = input()
account.set_pw(inp)
say_title("Passwort ändern:")
say("")
say("Dein Passwort wurde erfolgreich geändert!")
say("")
elseif sel == 3 then
say_title("Rangliste:")
say("")
say("Hier findest du eine Auflistung aller Spieler")
say("nach Ihrem Level!")
say("Was möchtest du tun?")
say("")
local sor = select("Charakter suchen", "Rangliste anzeigen", "Abbrechen")
if sor == 3 then
return
elseif sor == 1 then
say_title("Rangliste:")
say("")
say("Hier kannst du einen Charakter suchen!")
say("Bitte gib den Namen des Spielers ein!")
say("")
local charsuchein = input(); charsuche = mysql_escape(charsuchein)
if charsuchein == "" then
say_title("Rangliste:")
say("")
say(col.red("Das Eingabefeld darf nicht leer sein!"))
say("")
return
end
local charsuche = mysql_query("SELECT * FROM player.player WHERE name LIKE \\'%"..charsuchein.."%\\'")
local suname = charsuche.name
local charsuchetab = suname; table.insert(charsuchetab,"Abbrechen")
table.insert(charsuchetab,1,6) -- 6 ist die Anzahl der Maximalen User auf einer Seite.
local auswahlsuche = select2(charsuchetab)
if charsuchetab[auswahlsuche] == "Abbruch" then
return
end
if charsuchetab[auswahlsuche] != "Abbrechen" then
local spielersu = mysql_query("SELECT * FROM player.player WHERE name='"..suname[auswahlsuche].."' LIMIT 1")
say_title("Rangliste:")
say(col.lime("Hier stehen einige Daten über den gewählten Spieler!"))
say("Name: "..spielersu.name[1])
local guildid = mysql_query("SELECT guild_id FROM player.guild_member WHERE pid='"..spielersu.id[1].."' LIMIT 1")
if guildid == "ERROR" then
say("Gilde: Keine Gilde")
say("Level: "..spielersu.level[1])
say("EXP: "..spielersu.exp[1])
say("Verwarnungen: "..spielersu.verwarnungen[1])
say("")
else
local guildnam = mysql_query("SELECT name FROM player.guild WHERE id='"..guildid.guild_id[1].."' LIMIT 1")
local guildname = guildnam.name[1]
say("Gilde: "..guildname)
say("Level: "..spielersu.level[1])
say("EXP: "..spielersu.exp[1])
say("Verwarnungen: "..spielersu.verwarnungen[1])
say("")
end
end
elseif sor == 2 then
local abfrage = mysql_query("SELECT * FROM player.player WHERE name NOT LIKE '[%]%' ORDER BY level DESC")
local spielerid = abfrage.id
local spname = abfrage.name
local auswahl = spielerid
say_title("Rangliste:")
say("Die Spieler sind vom höchsten Level an geordnet!")
local abfrage2 = spname; table.insert(abfrage2,"Abbrechen")
table.insert(abfrage2,1,6) -- 6 ist die Anzahl der Maximalen User auf einer Seite.
local auswahl = select2(abfrage2)
if abfrage2[auswahl] == "Abbruch" then
return
end
if abfrage2[auswahl] != "Abbrechen" then
local spieler = mysql_query("SELECT * FROM player.player WHERE name='"..spname[auswahl].."' LIMIT 1")
say_title("Rangliste:")
say(col.lime("Hier stehen einige Daten über den gewählten Spieler!"))
say("Name: "..spieler.name[1])
local guildid = mysql_query("SELECT guild_id FROM player.guild_member WHERE pid='"..spieler.id[1].."' LIMIT 1")
if guildid == "ERROR" then
say("Gilde: Keine Gilde")
say("Level: "..spieler.level[1])
say("EXP: "..spieler.exp[1])
say("Verwarnungen: "..spielersu.verwarnungen[1])
say("")
else
local guildnam = mysql_query("SELECT name FROM player.guild WHERE id='"..guildid.guild_id[1].."' LIMIT 1")
local guildname = guildnam.name[1]
say("Gilde: "..guildname)
say("Level: "..spieler.level[1])
say("EXP: "..spieler.exp[1])
say("Verwarnungen: "..spielersu.verwarnungen[1])
say("")
end
end
end
elseif sel == 4 then
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 schreiben = select ("Ja", "Vielleicht später")
if schreiben == 2 then
return
end
if schreiben == 1 then
say_title("Ticket schreiben:")
say("")
say("Bitte gib einen Betreff ein!")
say("")
local betreff = input()
if betreff == "" then
say_title("Ticket schreiben:")
say("")
say(col.red("Der Betreff darf nicht leer sein!"))
say("")
return
end
say_title("Ticket schreiben:")
say("")
say("Bitte gib die erste Zeile deines Tickets ein!")
say("")
local zeile1 = input()
if zeile1 == "" then
say_title("Ticket schreiben:")
say("")
say(col.red("Die erste Zeile darf nicht leer sein!"))
say("")
return
end
say_title("Ticket schreiben:")
say("")
say("Bitte gib die zweite Zeile deines Tickets ein!")
say("")
local zeile2 = input()
say_title("Ticket schreiben:")
say("")
say("Bitte gib die dritte Zeile deines Tickets ein!")
say("")
local zeile3 = input()
say_title("Ticket schreiben:")
say("")
say("Bitte gib die vierte Zeile deines Tickets ein!")
say("")
local zeile4 = input()
say_title("Ticket schreiben:")
say("")
say("Okey hier ist dein Ticket:")
say("Betreff: "..betreff)
say(zeile1)
say(zeile2)
say(zeile3)
say(zeile4)
say("")
say("Möchtest du das Ticket senden?")
local senden = select ("Ja", "Nein")
if senden == 2 then
return
else
local speichern = mysql_query("INSERT INTO account.igticket (betreff, zeile1, zeile2, zeile3, zeile4, von, neu) VALUES ('"..betreff.."', '"..zeile1.."', '"..zeile2.."', '"..zeile3.."', '"..zeile4.."', '"..pc.get_name().."', '1')")
local ticketid = mysql_query("SELECT * FROM account.igticket WHERE betreff='"..betreff.."' AND neu='1' AND zeile1='"..zeile1.."'")
local ticket_id = ticketid.id[1]
mysql_query("INSERT INTO account.ticket_verlauf (ticket_id, betreff, empfänger, zeile1, zeile2, zeile3, zeile4) VALUES ('"..ticket_id.."', '"..betreff.."', '"..pc.get_name().."', '"..zeile1.."', '"..zeile2.."', '"..zeile3.."', '"..zeile4.."')")
if speichern != "ERROR" then
say_title("Ticket schreiben:")
say("")
say(col.red("Ein Fehler beim speichern ist aufgetreten!"))
say("")
else
say_title("Ticket schreiben:")
say("")
say(col.lime("Das Ticket wurde erfolgreich gesendet!"))
say("")
end
end
end
elseif sel == 5 then
local aws = mysql_query("SELECT * FROM account.ticket_verlauf WHERE neu='1' AND empfänger='"..pc.get_name().."' ORDER BY time DESC")
if aws == "ERROR" then
say_title("Tickets:")
say("")
say(col.red("Keine Antworten vorhanden!"))
say("")
return
end
local bet = aws.betreff
local antw1 = aws.zeile1
local antw2 = aws.zeile2
local antw3 = aws.zeile3
local antw4 = aws.zeile4
local bearbeiter = aws.bearbeiter
local time = aws.time
local ticket_id = aws.ticket_id
say_title("Ticket Verwaltung:")
say("Neue Tickets stehen oben!")
say("")
local taws = bet; table.insert(taws,"Abbrechen")
table.insert(taws,1,6) -- 6 ist die Anzahl der Maximalen User auf einer Seite.
local tausw = select2(taws)
if taws[tausw] == "Abbrechen" then
return
end
if taws[tausw] != "Abbrechen" then
mysql_query("UPDATE account.ticket_verlauf SET neu='0' WHERE neu='1' AND betreff='"..bet[tausw].."' AND empfänger='"..pc.get_name().."' AND time='"..time[tausw].."'")
say_title(bet[tausw].." von "..bearbeiter[tausw].." am "..time[tausw])
say(antw1[tausw])
say(antw2[tausw])
say(antw3[tausw])
say(antw4[tausw])
local antworten = select ("Antworten", "Abbruch")
if antworten == 2 then
return
elseif antworten == 1 then
say_title("Ticket Verwaltung:")
say("")
say("Antwort eingeben:")
say("")
local aw1 = input()
if aw1 == "" then
say_title("Antworten:")
say("")
say(col.red("Die erste Zeile darf nicht leer sein!"))
return
end
say_title("Antworten:")
say("")
say(aw1)
local aw2 = input()
say_title("Antworten:")
say("")
say(aw1)
say(aw2)
local aw3 = input()
say_title("Antworten:")
say("")
say(aw1)
say(aw2)
say(aw3)
local aw4 = input()
say_title("Antworten:")
say("Hier ist deine Antwort:")
say("")
say(aw1)
say(aw2)
say(aw3)
say(aw4)
local send = select ("Absenden", "Abbrechen")
if send == 2 then
return
elseif send == 1 then
local speichern2 = mysql_query("INSERT INTO account.ticket_verlauf (ticket_id, betreff, empfänger, bearbeiter, zeile1, zeile2, zeile3, zeile4, neu) VALUES ('"..ticket_id[tausw].."', 'Q: "..bet[tausw].."', '"..pc.get_name().."', '"..bearbeiter[tausw].."', '"..aw1.."', '"..aw2.."', '"..aw3.."', '"..aw4.."', '1')")
if speichern2 != "ERROR" then
say_title("Ticket schreiben:")
say("")
say(col.red("Ein Fehler beim speichern ist aufgetreten!"))
say("")
else
say_title("Ticket schreiben:")
say("")
say(col.lime("Die Antwort wurde erfolgreich gesendet!"))
say("")
end
end
end
end
elseif sel == 5 then
return
end
end
end
end
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
|
|
|
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
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
PHP Code:
############################################################### # Diese Quest wurde von # # aze' # # http://www.elitepvpers.com/forum/members/3692143--e-.html # # erstellt # ############################################################### 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("") pc.setqf("status",1) end say_title("Userpanel:") say("Herzlich Willkommen im Userpanel!") say("Was möchtest du tun?") local sel = select ("Reichsteleporter", "Passwort ändern", "Rangliste", "Ticket schreiben", "Ticket Verwaltung", "Abbrechen") if sel == 7 then return elseif sel == 1 then 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", "Abbruch") if reich == 4 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) end elseif sel == 2 then say_title("Passwort ändern:") say("") say("Hallo hier kannst du dein Passwort ändern") say("Wie soll dein neues Passwort lauten?") say("") local inp = input() account.set_pw(inp) say_title("Passwort ändern:") say("") say("Dein Passwort wurde erfolgreich geändert!") say("") elseif sel == 3 then say_title("Rangliste:") say("") say("Hier findest du eine Auflistung aller Spieler") say("nach Ihrem Level!") say("Was möchtest du tun?") say("") local sor = select("Charakter suchen", "Rangliste anzeigen", "Abbrechen") if sor == 3 then return elseif sor == 1 then say_title("Rangliste:") say("") say("Hier kannst du einen Charakter suchen!") say("Bitte gib den Namen des Spielers ein!") say("") local charsuchein = input(); charsuche = mysql_escape(charsuchein) if charsuchein == "" then say_title("Rangliste:") say("") say(col.red("Das Eingabefeld darf nicht leer sein!")) say("") return end local charsuche = mysql_query("SELECT * FROM player.player WHERE name LIKE \\'%"..charsuchein.."%\\'") local suname = charsuche.name local charsuchetab = suname; table.insert(charsuchetab,"Abbrechen") table.insert(charsuchetab,1,6) -- 6 ist die Anzahl der Maximalen User auf einer Seite. local auswahlsuche = select2(charsuchetab) if charsuchetab[auswahlsuche] == "Abbruch" then return end if charsuchetab[auswahlsuche] != "Abbrechen" then local spielersu = mysql_query("SELECT * FROM player.player WHERE name='"..suname[auswahlsuche].."' LIMIT 1") say_title("Rangliste:") say(col.lime("Hier stehen einige Daten über den gewählten Spieler!")) say("Name: "..spielersu.name[1]) local guildid = mysql_query("SELECT guild_id FROM player.guild_member WHERE pid='"..spielersu.id[1].."' LIMIT 1") if guildid == "ERROR" then say("Gilde: Keine Gilde") say("Level: "..spielersu.level[1]) say("EXP: "..spielersu.exp[1]) say("Verwarnungen: "..spielersu.verwarnungen[1]) say("") else local guildnam = mysql_query("SELECT name FROM player.guild WHERE id='"..guildid.guild_id[1].."' LIMIT 1") local guildname = guildnam.name[1] say("Gilde: "..guildname) say("Level: "..spielersu.level[1]) say("EXP: "..spielersu.exp[1]) say("Verwarnungen: "..spielersu.verwarnungen[1]) say("") end end elseif sor == 2 then local abfrage = mysql_query("SELECT * FROM player.player WHERE name NOT LIKE '[%]%' ORDER BY level DESC") local spielerid = abfrage.id local spname = abfrage.name local auswahl = spielerid say_title("Rangliste:") say("Die Spieler sind vom höchsten Level an geordnet!") local abfrage2 = spname; table.insert(abfrage2,"Abbrechen") table.insert(abfrage2,1,6) -- 6 ist die Anzahl der Maximalen User auf einer Seite. local auswahl = select2(abfrage2) if abfrage2[auswahl] == "Abbruch" then return end if abfrage2[auswahl] != "Abbrechen" then local spieler = mysql_query("SELECT * FROM player.player WHERE name='"..spname[auswahl].."' LIMIT 1") say_title("Rangliste:") say(col.lime("Hier stehen einige Daten über den gewählten Spieler!")) say("Name: "..spieler.name[1]) local guildid = mysql_query("SELECT guild_id FROM player.guild_member WHERE pid='"..spieler.id[1].."' LIMIT 1") if guildid == "ERROR" then say("Gilde: Keine Gilde") say("Level: "..spieler.level[1]) say("EXP: "..spieler.exp[1]) say("Verwarnungen: "..spielersu.verwarnungen[1]) say("") else local guildnam = mysql_query("SELECT name FROM player.guild WHERE id='"..guildid.guild_id[1].."' LIMIT 1") local guildname = guildnam.name[1] say("Gilde: "..guildname) say("Level: "..spieler.level[1]) say("EXP: "..spieler.exp[1]) say("Verwarnungen: "..spielersu.verwarnungen[1]) say("") end end end elseif sel == 4 then 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 schreiben = select ("Ja", "Vielleicht später") if schreiben == 2 then return end if schreiben == 1 then say_title("Ticket schreiben:") say("") say("Bitte gib einen Betreff ein!") say("") local betreff = input() if betreff == "" then say_title("Ticket schreiben:") say("") say(col.red("Der Betreff darf nicht leer sein!")) say("") return end say_title("Ticket schreiben:") say("") say("Bitte gib die erste Zeile deines Tickets ein!") say("") local zeile1 = input() if zeile1 == "" then say_title("Ticket schreiben:") say("") say(col.red("Die erste Zeile darf nicht leer sein!")) say("") return end say_title("Ticket schreiben:") say("") say("Bitte gib die zweite Zeile deines Tickets ein!") say("") local zeile2 = input() say_title("Ticket schreiben:") say("") say("Bitte gib die dritte Zeile deines Tickets ein!") say("") local zeile3 = input() say_title("Ticket schreiben:") say("") say("Bitte gib die vierte Zeile deines Tickets ein!") say("") local zeile4 = input() say_title("Ticket schreiben:") say("") say("Okey hier ist dein Ticket:") say("Betreff: "..betreff) say(zeile1) say(zeile2) say(zeile3) say(zeile4) say("") say("Möchtest du das Ticket senden?") local senden = select ("Ja", "Nein") if senden == 2 then return else local speichern = mysql_query("INSERT INTO account.igticket (betreff, zeile1, zeile2, zeile3, zeile4, von, neu) VALUES ('"..betreff.."', '"..zeile1.."', '"..zeile2.."', '"..zeile3.."', '"..zeile4.."', '"..pc.get_name().."', '1')") local ticketid = mysql_query("SELECT * FROM account.igticket WHERE betreff='"..betreff.."' AND neu='1' AND zeile1='"..zeile1.."'") local ticket_id = ticketid.id[1] mysql_query("INSERT INTO account.ticket_verlauf (ticket_id, betreff, empfänger, zeile1, zeile2, zeile3, zeile4) VALUES ('"..ticket_id.."', '"..betreff.."', '"..pc.get_name().."', '"..zeile1.."', '"..zeile2.."', '"..zeile3.."', '"..zeile4.."')") if speichern != "ERROR" then say_title("Ticket schreiben:") say("") say(col.red("Ein Fehler beim speichern ist aufgetreten!")) say("") else say_title("Ticket schreiben:") say("") say(col.lime("Das Ticket wurde erfolgreich gesendet!")) say("") end end end elseif sel == 5 then local aws = mysql_query("SELECT * FROM account.ticket_verlauf WHERE neu='1' AND empfänger='"..pc.get_name().."' ORDER BY time DESC") if aws == "ERROR" then say_title("Tickets:") say("") say(col.red("Keine Antworten vorhanden!")) say("") return end local bet = aws.betreff local antw1 = aws.zeile1 local antw2 = aws.zeile2 local antw3 = aws.zeile3 local antw4 = aws.zeile4 local bearbeiter = aws.bearbeiter local time = aws.time local ticket_id = aws.ticket_id say_title("Ticket Verwaltung:") say("Neue Tickets stehen oben!") say("") local taws = bet; table.insert(taws,"Abbrechen") table.insert(taws,1,6) -- 6 ist die Anzahl der Maximalen User auf einer Seite. local tausw = select2(taws) if taws[tausw] == "Abbrechen" then return end if taws[tausw] != "Abbrechen" then mysql_query("UPDATE account.ticket_verlauf SET neu='0' WHERE neu='1' AND betreff='"..bet[tausw].."' AND empfänger='"..pc.get_name().."' AND time='"..time[tausw].."'") say_title(bet[tausw].." von "..bearbeiter[tausw].." am "..time[tausw]) say(antw1[tausw]) say(antw2[tausw]) say(antw3[tausw]) say(antw4[tausw]) local antworten = select ("Antworten", "Abbruch") if antworten == 2 then return elseif antworten == 1 then say_title("Ticket Verwaltung:") say("") say("Antwort eingeben:") say("") local aw1 = input() if aw1 == "" then say_title("Antworten:") say("") say(col.red("Die erste Zeile darf nicht leer sein!")) return end say_title("Antworten:") say("") say(aw1) local aw2 = input() say_title("Antworten:") say("") say(aw1) say(aw2) local aw3 = input() say_title("Antworten:") say("") say(aw1) say(aw2) say(aw3) local aw4 = input() say_title("Antworten:") say("Hier ist deine Antwort:") say("") say(aw1) say(aw2) say(aw3) say(aw4) local send = select ("Absenden", "Abbrechen") if send == 2 then return elseif send == 1 then local speichern2 = mysql_query("INSERT INTO account.ticket_verlauf (ticket_id, betreff, empfänger, bearbeiter, zeile1, zeile2, zeile3, zeile4, neu) VALUES ('"..ticket_id[tausw].."', 'Q: "..bet[tausw].."', '"..pc.get_name().."', '"..bearbeiter[tausw].."', '"..aw1.."', '"..aw2.."', '"..aw3.."', '"..aw4.."', '1')") if speichern2 != "ERROR" then say_title("Ticket schreiben:") say("") say(col.red("Ein Fehler beim speichern ist aufgetreten!")) say("") else say_title("Ticket schreiben:") say("") say(col.lime("Die Antwort wurde erfolgreich gesendet!")) say("") end end end end elseif sel == 5 then return end end end end
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
|
|
|
03/02/2015, 14:20
|
#11124
|
elite*gold: 0
Join Date: Sep 2010
Posts: 50
Received Thanks: 0
|
Quote:
Originally Posted by [Sensenmann]
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?
PHP Code:
elseif sel == 4 then
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 schreiben = select ("Ja", "Vielleicht spaeter")
if schreiben == 2 then
return
#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:
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.
Mfg
|
|
|
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
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?
PHP Code:
elseif sel == 4 then
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 schreiben = select ("Ja", "Vielleicht spaeter")
if schreiben == 2 then
return
#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:
Warning: Using a password on the command line interface can be insecure.
Warning: Using 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:
|
|
|
03/02/2015, 14:31
|
#11126
|
elite*gold: 0
Join Date: Sep 2010
Posts: 50
Received Thanks: 0
|
Quote:
Originally Posted by [Sensenmann]
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
|
|
|
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
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 s == 7 then
return
elseif s == 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 s == 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 s == 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 s == 4 then
return
elseif s == 3 then
break
end
say_title("Rangliste:")
say("")
if s == 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 s == 3 then
return
elseif s == 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 s == 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 i = 1, table.getn(query.id) do
if i == table.getn(query.id)
table.insert(names, "Zum Hauptmenue")
else
table.insert(names, query.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 s == 3 then
return
elseif s == 2 then
break
end
until false
until false
elseif s == 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 s == 3 then
return
elseif s == 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 s == 3 then
return
elseif s == 2 then
break
end
end
until betreff != ""
say("Restlicher Teil des Ticketsystems.")
return
until false
until false
|
|
|
03/02/2015, 15:19
|
#11128
|
elite*gold: 0
Join Date: Sep 2010
Posts: 50
Received Thanks: 0
|
Quote:
Originally Posted by [Sensenmann]
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 s == 7 then
return
elseif s == 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 s == 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 s == 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 s == 4 then
return
elseif s == 3 then
break
end
say_title("Rangliste:")
say("")
if s == 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 s == 3 then
return
elseif s == 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 s == 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 i = 1, table.getn(query.id) do
if i == table.getn(query.id)
table.insert(names, "Zum Hauptmenue")
else
table.insert(names, query.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 s == 3 then
return
elseif s == 2 then
break
end
until false
until false
elseif s == 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 s == 3 then
return
elseif s == 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 s == 3 then
return
elseif s == 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
|
|
|
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
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 s == 6 then
return
elseif s == 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 s == 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 s == 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 s == 4 then
return
elseif s == 3 then
break
end
say_title("Rangliste:")
say("")
if s == 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 s == 3 then
return
elseif s == 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 s == 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 i = 1, table.getn(query.id) do
if i == table.getn(query.id) then
table.insert(names, "Zum Hauptmenue")
else
table.insert(names, query.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 s == 3 then
return
elseif s == 2 then
break
end
until false
end
until false
elseif s == 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 s == 3 then
return
elseif s == 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 s == 3 then
return
elseif s == 2 then
break
end
end
until topic != ""
local message = ""
local i = 1
for i = 1, 10 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("")
s = select("Absenden", "Zum Hauptmenue", "Schließen")
if s == 3 then
return
elseif s == 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 s == 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 s == 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 i = 1, table.getn(query.topic)+1 do
if i == table.getn(query.topic)+1 then
table.insert(topic, "Zum Hauptmenue")
else
table.insert(topic, query.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 s == 3 then
return
elseif s == 2 then
break
end
local message = ""
local i = 1
for i = 1, 10 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 s == 3 then
return
elseif s == 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 s == 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
|
|
|
03/02/2015, 19:39
|
#11130
|
elite*gold: 0
Join Date: Sep 2010
Posts: 50
Received Thanks: 0
|
GM & Userpanel quest
Quote:
Originally Posted by [Sensenmann]
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 s == 6 then
return
elseif s == 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 s == 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 s == 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 s == 4 then
return
elseif s == 3 then
break
end
say_title("Rangliste:")
say("")
if s == 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 s == 3 then
return
elseif s == 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 s == 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 i = 1, table.getn(query.id) do
if i == table.getn(query.id) then
table.insert(names, "Zum Hauptmenue")
else
table.insert(names, query.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 s == 3 then
return
elseif s == 2 then
break
end
until false
end
until false
elseif s == 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 s == 3 then
return
elseif s == 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 s == 3 then
return
elseif s == 2 then
break
end
end
until topic != ""
local message = ""
local i = 1
for i = 1, 10 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("")
s = select("Absenden", "Zum Hauptmenue", "Schließen")
if s == 3 then
return
elseif s == 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 s == 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 s == 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 i = 1, table.getn(query.topic)+1 do
if i == table.getn(query.topic)+1 then
table.insert(topic, "Zum Hauptmenue")
else
table.insert(topic, query.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 s == 3 then
return
elseif s == 2 then
break
end
local message = ""
local i = 1
for i = 1, 10 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 s == 3 then
return
elseif s == 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 s == 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?
PHP Code:
quest gmpanel begin
state start begin
when 70058.use begin
say_title("GM-Panel:")
say("")
say("Herzlich Willkommen "..pc.get_name().."!")
say("Da du dich nun angemeldet hast, ist es Zeit")
say("auch den Usern deinen Status anzuzeigen!")
say("")
say("Hier kannst du deinen Status ändern und außerdem")
say("einige Funktionen nutzen")
local funktionen = select("Status ändern", "Tickets", "Abbruch")
if funktionen == 3 then
return
elseif funktionen == 1 then
if pc.getqf("status") == 0 then
say_title("Status ändern:")
say("")
say("Hier kannst du deinen Status ändern!")
say("")
local sel = select ("Online gehen", "Abbruch")
if sel == 2 then
say_title("GM-Panel:")
say("")
say("Auf wiedersehen!")
say("Bitte denke daran, den Usern zu zeigen,")
say("dass du online bist!")
say("")
return
elseif sel == 1 then
say_title("GM-Panel:")
say("")
say("Du bist jetzt als GM online!")
say("")
notice_all(pc.get_name().." ist jetzt online!")
pc.setqf("status", 1)
end
elseif pc.getqf("status") == 1 then
local sel2 = select ("Abwesend gehen", "Offline gehen", "Abbruch")
if sel2 == 3 then
return
elseif sel2 == 1 then
say_title("GM-Panel:")
say("")
say("Oh, du möchtest Abwesend gehen?")
say("Möchtest du den Usern einen Grund nennen?")
say("")
local sel3 = select ("Kein Grund", "Essen", "Rauchen")
if sel3 == 1 then
notice_all(pc.get_name().." ist nun AFK")
say_title("GM-Panel:")
say("")
say("Dein Status wurde gesendet")
say("")
elseif sel3 == 2 then
notice_all(pc.get_name().." geht nun Essen")
say_title("GM-Panel:")
say("")
say("Dein Status wurde gesendet")
say("")
elseif sel3 == 3 then
notice_all(pc.get_name().." geht eine Rauchen")
say_title("GM-Panel:")
say("")
say("Dein Status wurde gesendet")
say("")
end
elseif sel2 == 2 then
say_title("GM-Panel:")
say("")
say("Auf wiedersehen "..pc.get_name().."!")
say("Bis bald!")
say("")
notice_all(pc.get_name().." geht nun Offline!")
notice_all("Bis morgen!")
pc.setqf("status", 0)
end
end
elseif funktionen == 2 then
local meine = select ("Meine Tickets ansehen", "Neue Tickets", "Abbrechen")
if meine == 3 then
return
elseif meine == 2 then
local checknew = mysql_query("SELECT * FROM account.igticket WHERE neu='1' AND bearbeiter='0'")
if checknew == "ERROR" then
say_title("Tickets:")
say("")
say(col.red("Keine neuen Tickets vorhanden!"))
say("")
return
end
local ticketid = checknew.id
local ticketname = checknew.betreff
local tickets = ticketname; table.insert(tickets,"Abbrechen")
table.insert(tickets,1,6) -- 6 ist die Anzahl der Maximalen User auf einer Seite.
local auswahl = select2(tickets)
if tickets[auswahl] == "Abbruch" then
return
end
if tickets[auswahl] != "Abbruch" then
local ticketwahl = mysql_query("SELECT * FROM account.igticket WHERE betreff='"..tickets[auswahl].."'")
local id = ticketwahl.id[1]
local betreff = ticketwahl.betreff[1]
local zeile1 = ticketwahl.zeile1[1]
local zeile2 = ticketwahl.zeile2[1]
local zeile3 = ticketwahl.zeile3[1]
local zeile4 = ticketwahl.zeile4[1]
say_title(betreff)
say("")
say(zeile1)
say(zeile2)
say(zeile3)
say(zeile4)
local bearbeitung = select ("In Bearbeitung", "Abbrechen")
if bearbeitung == 2 then
return
else
say_title("Tickets:")
say(col.lime("Du hast das Ticket angenommen!"))
say("")
mysql_query("UPDATE account.igticket SET neu='0' WHERE id='"..id.."'")
mysql_query("UPDATE account.igticket SET bearbeiter='"..pc.get_name().."' WHERE id='"..id.."'")
mysql_query("UPDATE account.ticket_verlauf SET bearbeiter='"..pc.get_name().."' WHERE ticket_id='"..id.."'")
end
end
elseif meine == 1 then
say_title("Meine Tickets:")
say("")
local mtickets = mysql_query("SELECT * FROM account.igticket WHERE bearbeiter='"..pc.get_name().."' AND geschlossen='0'")
local mticketid = mtickets.id
local mticketname = mtickets.betreff
local meinetickets = mticketname; table.insert(meinetickets,"Abbrechen")
table.insert(meinetickets,1,6) -- 6 ist die Anzahl der Maximalen User auf einer Seite.
local ticketwahl2 = select2(meinetickets)
if meinetickets[ticketwahl2] == "Abbruch" then
return
end
if meinetickets[ticketwahl2] != "Abbruch" then
local daten = mysql_query("SELECT * FROM account.ticket_verlauf WHERE ticket_id='"..mticketid[ticketwahl2].."' AND bearbeiter='"..pc.get_name().."' ORDER BY time DESC")
local ticket_id = daten.ticket_id
local betreff = daten.betreff
local zeile1 = daten.zeile1
local zeile2 = daten.zeile2
local zeile3 = daten.zeile3
local zeile4 = daten.zeile4
local von = daten.empfänger
local time = daten.time
say_title("Meine Tickets:")
say("Neue Tickets stehen oben!")
say("")
local aws = betreff; table.insert(aws,"Abbrechen")
table.insert(aws,1,6) -- 6 ist die Anzahl der Maximalen User auf einer Seite.
local awswahl = select2(aws)
if aws[awswahl] == "Abbruch" then
return
end
if aws[awswahl] != "Abbruch" then
say_title(betreff[awswahl].." von "..von[awswahl].." am "..time[awswahl])
say("")
say(zeile1[awswahl])
say(zeile2[awswahl])
say(zeile3[awswahl])
say(zeile4[awswahl])
local antworten = select ("Antworten", "Ticket schließen", "Abbruch")
if antworten == 3 then
return
elseif antworten == 2 then
mysql_query("UPDATE account.igticket SET geschlossen='1' WHERE id='"..ticket_id[awswahl].."'")
say_title("Meine Tickets:")
say("")
say(col.lime("Das Ticket wurde geschlossen!"))
say("")
return
elseif antworten == 1 then
say_title(betreff[awswahl].." von "..von[awswahl].." am "..time[awswahl])
say(zeile1[awswahl])
say(zeile2[awswahl])
say(zeile3[awswahl])
say(zeile4[awswahl])
say("")
say("Antwort eingeben:")
local aw1 = input()
if aw1 == "" then
say_title("Antworten:")
say("")
say(col.red("Die erste Zeile darf nicht leer sein!"))
return
end
say_title("Antworten:")
say("")
say(aw1)
local aw2 = input()
say_title("Antworten:")
say("")
say(aw1)
say(aw2)
local aw3 = input()
say_title("Antworten:")
say("")
say(aw1)
say(aw2)
say(aw3)
local aw4 = input()
say_title("Antworten:")
say("Hier ist deine Antwort:")
say("")
say(aw1)
say(aw2)
say(aw3)
say(aw4)
local send = select ("Absenden", "Abbrechen")
if send == 2 then
return
elseif send == 1 then
local speichern2 = mysql_query("INSERT INTO account.ticket_verlauf (ticket_id, betreff, empfänger, bearbeiter, zeile1, zeile2, zeile3, zeile4, neu) VALUES ('"..ticket_id[awswahl].."', 'AW: "..betreff[awswahl].."', '"..von[awswahl].."', '"..pc.get_name().."', '"..aw1.."', '"..aw2.."', '"..aw3.."', '"..aw4.."', '1')")
if speichern2 != "ERROR" then
say_title("Ticket schreiben:")
say("")
say(col.red("Ein Fehler beim speichern ist aufgetreten!"))
say("")
else
say_title("Ticket schreiben:")
say("")
say(col.lime("Die Antwort wurde erfolgreich gesendet!"))
say("")
end
end
end
end
end
end
end
end
end
end
Mfg
|
|
|
All times are GMT +1. The time now is 06:12.
|
|