[SERVICE] Die Questerstellung

03/17/2015 16:36 byKlaus#2356
Quote:
1. Quest
Eine quest die, wenn man ein Mob gekillt hat, im Rufchat (GM Rufchat) ansagt blablabla hat blablabla getötet. Und diese quest soll auch immer wieder bei jedem erneuten kill des Mobs angesagt werden.
PHP Code:
quest Wildhund begin
    state start begin
        when 101.kill begin 
            notice_all
("Der Mob Wildhund wurde von "..pc.get_name().." getötet!"
            
notice_all("gw!"
        
end    
     end
end 
03/17/2015 19:05 °Ace°#2357
Kann mir bitte den Dämonenturm Quest ergänzen. Und zwar, sobald man den Sensenmann killt, dass man in die nächste Ebene kommt wo der Blaue Tod schon steht.

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(590500110500)
                
end
                pc
.set_warp_location(6559051105)
            elseif 
pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
                pc
.set_warp_location(6559051105)
                
deviltower_zone.register_player(pc.get_vid())
            
end
        end
        
        when logout begin
            
if pc.count_item(30300) >= 1 then
                pc
.remove_item(30300pc.count_item(30300))
            
end
            
if pc.count_item(30302) >= 1 then
                pc
.remove_item(30302pc.count_item(30302))
            
end
            
if pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
                deviltower_zone
.unregister_player(pc.get_vid())
            
end
        end
        when deviltower_man
.chat."Der Dämonenturm" begin
            
if pc.get_level() < 40 then
                say_title
("Wächter des Demonenturms:")
                
say("")
                ---                                                   
l
                say
("Dieser Turm ist voll mit Demonen.")
                
say("Nur die Stärksten schaffen es auf die Spitze.")
                
say("Es wird gemunkelt, das keiner der den Turm je")
                
say("betreten hat, ihn wieder lebendig verlassen hat.")
                
say("Du kannst den Turm nicht betreten, du hast ")
                
say("Level 40 noch nicht erreicht.")
            else
                
say_title("Wächter des Demonenturms:")
                
say("")
                ---                                                   
l
                say
("Dieser Turm ist voll mit Demonen.")
                
say("Nur die Stärksten schaffen es auf die Spitze.")
                
say("Es wird gemunkelt, das keiner der den Turm je")
                
say("betreten hat, ihn wieder lebendig verlassen hat.")
                
say("Willst du den Turm wirklich betreten?")
                
say("")
                
local s select("Ja.""Nein.")
                if 
== 1 then
                    
-- warp into!
                    
pc.warp(216500,727000)
                
end
            end
        end
        when devil_stone1
.kill begin
            timer
("devil_stone1_1"8)
        
end
        when devil_stone1_1
.timer begin
            d
.new_jump_all(66special.devil_tower[1][1], special.devil_tower[1][2])
            
d.regen_file("data/dungeon/deviltower2_regen.txt")
            
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
        
end
        when devil_stone3
.kill begin
            d
.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
            
d.check_eliminated()
        
end
        
function get_4floor_stone_pos()
            
local positions =
            {
                {
368629}, {419630}, {428653}, {422679},
                {
395689}, {369679}, {361658},
            }
            for 
1do
                
local j number(i7)
                if 
!= j then
                    local t 
positions[i];
                    
positions[i] = positions[j];
                    
positions[j] = t;
                
end
            end
            
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)
            
local positions deviltower_zone.get_4floor_stone_pos()
            for 
1do
                
d.set_unique("fake" .. d.spawn_mob(8017positions[i][1], positions[i][2]))
            
end
            local vid 
d.spawn_mob(8017positions[7][1], positions[7][2])
            
d.set_unique("real"vid)
            
server_loop_timer('devil_stone4_update'10pc.get_map_index())
            
server_timer('devil_stone4_fail1'5*60pc.get_map_index())
            
            
d.notice("Du hast die Ebene der Illusionen im 4. Stock erreicht.");
            
d.notice("Viele falsche Metin Steine werden dich hier erwarten.");
            
d.notice("Finde den richtigen und zerstöre ihn innerhalb 15 Minuten.");
            
d.notice("Dies ist der einzige Weg, die nächste Ebene zu erreichen.");
        
end
        
        when devil_stone4_fail1
.server_timer begin
            
if d.select(get_server_timer_arg()) then
                d
.notice("Zeit übrig: 10 Minuten")
                
server_timer('devil_stone4_fail2'5*60get_server_timer_arg())
            
end
        end
        
        when devil_stone4_fail2
.server_timer begin
            
if d.select(get_server_timer_arg()) then
                d
.notice("Zeit übrig: 5 Minuten")
                
server_timer('devil_stone4_fail'5*60get_server_timer_arg())
            
end
        end
        
        when devil_stone4_fail
.server_timer begin
            
if d.select(get_server_timer_arg()) and d.getf("level") == 4 then
                d
.notice("Die Zeit ist abgelaufen.")
                
d.exit_all()
            
end
        end
        
        when devil_stone4_update
.server_timer begin
            
if d.select(get_server_timer_arg()) then
                
if not d.is_unique_dead("real"then
                    
for 1do
                        if 
d.getf("fakedead" .. i) == 0 then
                            
if d.unique_get_hp_perc("fake" .. i) < 50 then
                                d
.purge_unique("fake" .. i)
                                
d.setf("fakedead" .. i1)
                                
d.notice("Der Metin verschwindet...");
                            
end
                        end
                    end
                
else
                    
server_timer("devil_stone4_end"5get_server_timer_arg())
                    
                    
d.notice("Du hast Stärke gezeigt.");
                    
d.notice("Du hast den Richtigen Metin zerstört.")
                    
d.purge()
                
end
            
else
                
server_timer('devil_stone4_stop_timer'1get_server_timer_arg())
            
end
        end
        
        when devil_stone4_stop_timer
.server_timer begin
            clear_server_timer
('devil_stone4_update'get_server_timer_arg())
        
end
        
        when devil_stone4_end
.server_timer begin
            
if d.select(get_server_timer_arg()) then
                clear_server_timer
('devil_stone4_update'get_server_timer_arg())
                
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())
                
                
d.setf("level"5)
                
d.setf("stone_count"5)
                
                
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
                
d.notice("Du hast die Verschlossene Ebene im 5. Stock erreicht.");
                
d.notice("Ein paar Monster tragen den Schlüssel zum öffnen")
                
d.notice("der altertümlichen Schlösser bei sich.")
                
d.notice("Öffne die 5 Schlösser in 20 Minuten um")
                
d.notice("die nächste Ebene zu erreichen!")
                
                
                
server_timer('devil_stone5_fail1'5*60get_server_timer_arg())
                
clear_server_timer('devil_stone4_update'get_server_timer_arg())
                
                
d.set_regen_file("data/dungeon/deviltower5_regen.txt")
                
                
d.spawn_mob(20073421452)
                
d.spawn_mob(20073380460)
                
d.spawn_mob(20073428414)
                
d.spawn_mob(20073398392)
                
d.spawn_mob(20073359426)
            
end
        end
        when devil_stone5_fail1
.server_timer begin
            
if d.select(get_server_timer_arg()) then
                d
.notice("Zeit übrig: 5 Minuten")
                
server_timer('devil_stone5_fail2'5*60get_server_timer_arg())
            
end
        end
        
        when devil_stone5_fail2
.server_timer begin
            
if d.select(get_server_timer_arg()) then
                d
.notice("Zeit übrig: 10 Minuten")
                
server_timer('devil_stone5_fail3'5*60get_server_timer_arg())
            
end
        end
        
        when devil_stone5_fail3
.server_timer begin
            
if d.select(get_server_timer_arg()) then
                d
.notice("Zeit übrig: 5 Minuten")
                
server_timer('devil_stone5_fail'5*60get_server_timer_arg())
            
end
        end
        
        when devil_stone5_fail
.server_timer begin
            
if d.select(get_server_timer_arg()) and d.getf("level") == 5 then
                d
.notice("Die Zeit ist abgelaufen.")
                
d.exit_all()
            
end
        end
        
        when 1062.kill with pc
.in_dungeon() and d.getf("level") == 5 begin
            local KILL_COUNT_FOR_DROP_KEY 
50
            local n 
=d.getf("count") + 1
            d
.setf("count"n)
            if 
== KILL_COUNT_FOR_DROP_KEY then
                game
.drop_item(500841)
                
d.setf("count"0)
            
end
        end
        when devil_stone5
.take with item.vnum == 50084 begin
            npc
.purge()
            
item.remove()
            
d.setf("stone_count"d.getf("stone_count") - 1)
            if 
d.getf("stone_count") <= 0 then
                d
.clear_regen()
                
d.kill_all()
                
d.notice("Du hast das letzte Schloss geöffnet,")
                
d.notice("ihr werdet nun den 6. Stock betreten!")
                
                
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())
                
                
d.setf("level"6)
                
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
                
d.regen_file("data/dungeon/deviltower6_regen.txt")
                
                
d.notice("Erledige alle Demonen, bevor")
                
d.notice("du den König angreifst!")
                
            else
                
d.notice("Du hast das Schloss geöffnet,es sind noch "..d.getf("stone_count").." übrig.")
            
end
        end
        
        when devil_stone6
.kill begin
            d
.kill_all()
            
d.check_eliminated()
            
local reward_alchemist = {200742007520076}
            
d.spawn_mob(reward_alchemist[number(1,3)], 425216);
            
d.setqf("can_refine"1)
        
end

        when 20074.chat
."Höhere Ebenen des DT" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
            say_title
(""..mob_name(20074)..":")
            
say("")
            ----
"111111222222333333444444555555666666777777888888999999000000"
            
say("Es wurde ein Weg gefunden, die 7.Etage zu betreten.")
            
say("Es erfordert einigen Mut und Stärke, dorthin zu gehen.")
            
say("Hmmmm...")
            
say("Lass dich anschauen.....")
            
wait()
            if 
pc.level >=60 then
                say_title
(""..mob_name(20074)..":")
                
say("")
                
say("Du bist würdig, nach oben zu gelangen")
                
say("Hier ist der Weg..")
                
timer("devil_jump_7"6)
                
npc.unlock()
                
d.purge()
                return
            
end
            say_title
(""..mob_name(20074)..":")
            
say("")
            
say("Du musst mehr Trainieren.")
            
say("Komm wieder, wenn du stärker geworden bist.")
            
say("")
            
wait()
            
pc.warp(590500110500)
            return
        
end
        when 20075.chat
."Höhere Ebenen des DT" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
            say_title
(""..mob_name(20075)..":")
            
say("")
            
say("Es wurde ein Weg gefunden, die 7.Etage zu betreten.")
            
say("Es erfordert einigen Mut und Stärke, dorthin zu gehen.")
            
say("Hmmmm...")
            
say("Lass dich anschauen.....")
            
wait()
            if 
pc.level >=60 then
                say_title
(""..mob_name(20075)..":")
                
say("")
                
say("Du bist würdig, nach oben zu gelangen")
                
say("Hier ist der Weg..")
                
timer("devil_jump_7"6)
                
npc.unlock()
                
d.purge()
                return
            
end
            say_title
(""..mob_name(20075)..":")
            
say("")
            
say("Du musst mehr Trainieren.")
            
say("Komm wieder, wenn du stärker geworden bist.")
            
say("")
            
wait()
            
pc.warp(590500110500)
            return
        
end
        when 20076.chat
."Höhere Ebenen des DT" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
            say_title
(""..mob_name(20076)..":")
            
say("")
            
say("Es wurde ein Weg gefunden, die 7.Etage zu betreten.")
            
say("Es erfordert einigen Mut und Stärke, dorthin zu gehen.")
            
say("Hmmmm...")
            
say("Lass dich anschauen.....")
            
wait()
            if 
pc.level >=60 then
                say_title
(""..mob_name(20076)..":")
                
say("")
                
say("Du bist würdig, nach oben zu gelangen")
                
say("Hier ist der Weg..")
                
timer("devil_jump_7"6)
                
npc.unlock()
                
d.purge()
                return
            
end
            say_title
(""..mob_name(20076)..":")
            
say("")
            
say("Du musst mehr Trainieren.")
            
say("Komm wieder, wenn du stärker geworden bist.")
            
say("")
            
wait()
            
pc.warp(590500110500)
            return
        
end
        
        when devil_jump_7
.timer begin
            d
.clear_regen()
            
            
d.spawn_mob(8018639658)
            
d.spawn_mob(8018611637)
            
d.spawn_mob(8018596674)
            
d.spawn_mob(8018629670)
            
            
d.setf("level"7)
            
            
d.jump_all(2048+5906656+638)
        
end
        
        when 8018.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            local cont 
d.getf("7_stone_kill") + 1
            d
.setf("7_stone_kill"cont)
            
            if 
cont >= 4 then
                d
.setf("7_stone_kill"0)
                
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
            
end
        end
        
        when 8019.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            game
.drop_item(303001)
        
end
        
        when 30300.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            pc
.remove_item("30300"1)
            
            
local pct number(1,8)
            
            if 
pct == 1 then
                game
.drop_item(303021)
                
d.clear_regen()
            else
                
game.drop_item(303011)
                
            
end
        end
        
        when 30302.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            
-- 8ÃþÀ¸·Î ¿öÇÁ
            
            
if d.getf"level" ) != 7 then
                pc
.remove_item"30302"1)
                return
            
end
            
----"111111222222333333444444555555666666777777888888999999000000"
            
say("Mit dieser Karte, kann ich dich zur nächsten Ebene bringen!")
            
pc.remove_item("30302"1)
            
timer("devil_jump_8"6)
            
d.clear_regen()
        
end
        
        
--------------------------------------------
        -- 
8Ãþ ÁøÀÔºÎÅÍ 9Ãþ ±îÁö
        
--------------------------------------------
        
when devil_jump_8.timer begin
            d
.setf("level"8)
            
d.jump_all(2048+5906656+403)
            
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
            
d.spawn_mob(20366640460)
            
local _count pc.count_item(30302)
            
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
            
if d.getf("level") < 9 then
                local pct1 
number(110)
                if 
pct1 == 1 then
                    local pct2 
number(14)
                    if 
pct2 == 1 then
                        
-- ÁøÂ¥ ¿*¼è µå·Ó
                        game
.drop_item(303041)
                    else
                        -- 
°¡Â¥ ¿*¼è µå·Ó
                        game
.drop_item(303031)
                    
end
                
else
                    return
                
end
            end
        end
        
        when 20366.take with item
.vnum == 30304 begin
            
-- ºÀÀÎ ÇØÃ¼ 9Ãþ ¤¡¤¡
            npc
.purge()
            
item.remove()
            
timer("devil_jump_9"8)
        
end
        
        
---------------------------------------------
        -- 
9Ãþ ÁøÀÔºÎÅÍ ¿Ï·á±îÁö
        
---------------------------------------------
        
when devil_jump_9.timer begin
            d
.setf("level"9)
            
d.jump_all(2048+5906656+155)
            
d.regen_file("data/dungeon/deviltower9_regen.txt")
        
end
        
        when 1093.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            d
.kill_all()
            
d.spawn_mob(33002pc.get_local_x(), pc.get_local_y())
        
end
        
        when 33002.chat
."Belohnung für Tapfere Krieger" with pc.get_level() >= 60 begin
            say
("Du hast keine Mühen gescheut um den Sensenmann zu besiegen.")
            
say("Deine Mühe soll belohnt werden!")
            
say("")
            
say_reward("Du hast die Truhe der Könige erhalten!")
            
pc.give_item(50132,1)-- Truhe vergeben!
            
deviltower_zone.teleport()
            --
timer("devil_end_jump"30)
        
end
        
        when 33002.chat
."Bring mich an einen sicheren Ort" with pc.get_level() < 60 begin
            say_title
("Ich verstehe:")
            
say("Dieser Ort macht dir wohl Angst.")
            
say("Ich werde dich an einen sicheren Ort bringen.")
            
deviltower_zone.teleport()
        
end
        
        
function teleport()
            
local t select("Ok")
            if 
t==1 then
                say_title
("Wohin möchtest du teleportiert werden ?")
                
local s select("DT Eingang","Joan","Pyungmoo","Yongan")
                if 
== 1 then
                    pc
.warp(590500,110800)
                elseif 
== 2 then
                    pc
.warp(55700157900)
                elseif 
== 3 then
                    pc
.warp(969600278400)
                elseif 
== 4 then
                    pc
.warp(469300964200)
                
end
            end
        end
        
        when devil_end_jump
.timer begin
            d
.exit_all()
        
end
        
        
function register_player(vid)
            
local player_count d.getf("player_count")
            
player_count player_count 1
            d
.setf("player_count"tonumber(player_count))
            
d.setf(string.format("player%d"player_count), tonumber(vid))
        
end
        
function unregister_player(vid)
            
local player_count d.getf("player_count")
            
local found false
            
for 1player_countdo
                if 
found == true then
                    d
.setf(string.format("player%d"tonumber(i)), d.getf(string.format("player%d"i+1)))
                
end
                p 
d.getf("player"..tostring(i))
                if 
== vid then
                    i 
-1
                    found 
true
                end
            end
            
if found == true then
                d
.setf("player_count"tonumber(player_count 1))
            
end
        end
        
function get_players()
            
local players = {}
            
local player_count d.getf("player_count")
            for 
1player_countdo
                
players[i] = d.getf("player"..tostring(i))
            
end
            
return players
        end
        
function give_dc_access(pindex)
            
local self_checked false
            local self 
pc.select(d.getf("player"..tostring(pindex)))
            --
pc.setqf("dcenter"1)
            
pc.setf("deviltower_zone""dcenter"1)
            
pc.select(self)
        
end
    end
end 
03/17/2015 20:59 Giftschwert#2358
Kann mir wer ne Quest schreiben, + Erklärung, wie man sie genau einfügt:
Umhang, heißt ein Umhang den man immer wieder nutzen kann.
03/17/2015 21:02 rollback#2359
Quote:
Originally Posted by Giftschwert View Post
Kann mir wer ne Quest schreiben, + Erklärung, wie man sie genau einfügt:
Umhang, heißt ein Umhang den man immer wieder nutzen kann.
Code:
quest umhang begin
	state start begin
		when vnum.use begin
			pc.aggregate_monster()
		end
	end
end
vnum bei .use anpassen, item in der db auf type 18 stelle, quest einfügen (hochladen, in die quest_list /locale_list eintragen, quests reloaden (1. putty / vbox dann ingame))
03/17/2015 21:07 Nick#2360
Quote:
Originally Posted by infinty04 View Post
Hallo JayZon
also leider hat das mit der Quest nicht funkitioniert
ich kann mich per Quest auf die map porten.
Doch dann passiert nichts mehr normalweise müsste dort
nen metin stehen mit venum 8021 den man zerstören mus um auf die nechste ebene zu kommen auch wenn ich per befehl /m 8021 den metin ruf erscheint er zwar, aber wenn ich ihn zerstören werd ich denoch nicht hoch geportet.
Hab mal nen video gemacht davon

Video
Der Map-Index muss der Zahl 221 entsprechen.

lg
03/17/2015 21:51 Giftschwert#2361
Wilkommensgruß im Chat (GM-Benachrichtigung)
Wilkommen auf dem Server blabla

Quest bitte :/

habe das hier:

Der sagt immer wieder herzlich willkommen wenn ich mich einlogge, will es aber nur einmailig, beim ersten einloggen (erstellen des Chars)
03/17/2015 21:57 rollback#2362
Quote:
Originally Posted by Giftschwert View Post
Wilkommensgruß im Chat (GM-Benachrichtigung)
Wilkommen auf dem Server blabla

Quest bitte :/

habe das hier:

Der sagt immer wieder herzlich willkommen wenn ich mich einlogge, will es aber nur einmailig, beim ersten einloggen (erstellen des Chars)
Code:
quest willkommen_anfang begin
	state start begin 
		when login begin 
			notice("Herzlich Wilkommen "..pc.get_name ().." auf dem Server Nagot2.")
			set_state(_COMPLETE_)
		end
	end
	state _COMPLETE_ begin
	end
end
03/18/2015 01:05 fino123#2363
Quote:
Originally Posted by definitely not Sensenmann View Post
Code:
quest abgeber begin
	state start begin
		when 10.take begin
			if item.get_vnum() == 1000 then
				say("Du hast "..pc.count_item(1000).."x ...")
				say("Wie viele möchtest du abgeben?")
				local count = tonumber(input())
				if count then
					if count >= 1 then
						say("Möchtest du wirklich "..count.."x ... abgeben?")
						if select("Ja", "Nein") == 2 then return end
						if pc.count_item(1000) >= count then
							pc.remove_item(1000, count)
							mysql_query("UPDATE player.player SET item_count = item_count+"..count.." WHERE account_id = "..pc.get_account_id().." LIMIT 1;")
							say(count.."x abgegeben!")
						else
							say("Versuch nicht zu verarschen!")
						end
					else
						say("Keine Minuus-Zahlen eingeben!")
					end
				else
					say("Du kannst nur Zahlen eingeben!")
			else
				say("Du kannst nur das Item ... abgeben!")
			end
		end
	end
end
Code:
alter table player.player add column (item_count int(5) default = 0);
geht leider nicht... rangliste geht garnicht item wird nicht in tabelle eingetragen
03/18/2015 06:16 rollback#2364
Quote:
Originally Posted by fino123 View Post
geht leider nicht... rangliste geht garnicht item wird nicht in tabelle eingetragen
Eine Rangliste habe ich auch garnicht gemacht ...^^
Hast du die Query ausgeführt?
03/18/2015 16:04 fino123#2365
ja tabelle ist da, wenn ich mich mit der hand eintrage kommt auch immer eins dazu, wenn aber der spieler noch nicht in der liste ist und was abgibt kommt er da nicht rein, verstehst ?
da fehlt vll ein isert querry?
03/18/2015 16:30 rollback#2366
Quote:
Originally Posted by fino123 View Post
ja tabelle ist da, wenn ich mich mit der hand eintrage kommt auch immer eins dazu, wenn aber der spieler noch nicht in der liste ist und was abgibt kommt er da nicht rein, verstehst ?
da fehlt vll ein isert querry?
Meine quest macht es nicht über eine extra Tabelle...
03/18/2015 16:32 fino123#2367
Code:
quest rang begin
	state start begin
		when 20020.chat."Item Abgeben" begin
			local a = select("Item Abgeben", "Rangliste", "Abbrechen")
			if a == 3 then 
				return 
			elseif a == 2 then
				local tab = mysql_query("SELECT item_count,player_name FROM player.item_quest ORDER BY item_count ASC,player_name DESC LIMIT 15;")
				for i = 1 ,table.getn(tab) do
					say("Spieler :"..tab[i][2].." "..tab[i][1].."x")
				end
			elseif a == 1 then
				if pc.count_item(19) > 0 then
					local count = tonumber(input())
					if count then
						if count >= 1 then
							say("Möchtest du wirklich "..count.."x ... abgeben?")
							if select("Ja", "Nein") == 2 then 
								return 
							elseif pc.count_item(19) >= count then
								pc.remove_item(19, count)
								mysql_query("UPDATE player.item_quest SET item_count = item_count + "..count.." WHERE player_name = '"..pc.get_name().."';")
								say(count.."x abgegeben!")
							else
								say("Versuch nicht zu verarschen!")
							end
						else
							say("Keine Minuus-Zahlen eingeben!")
						end
					end
				else
					syschat("Keine Items vorhanden")
				end
			end
		end
	end
end
so sieht die nun aus
03/18/2015 16:41 rollback#2368
Nie den spielernamen eintragen... Wofür hat man denn ids?...

Ich machs wenn ich zu hause bin
03/18/2015 17:21 Giftschwert#2369
Regenbogenstein soll nur ein Skill auf P machen.
Bis jetzt habe ich nur das, wo alles auf P geht:

PHP Code:
quest regenbogen begin 
    state start begin 
            when 50512.
use  begin 
                
if get_time() < pc.getqf("pause"then 
                    say
("Versuche es später erneut."
                    return 
                
end 
                pc
.setqf("pause"get_time()+60*10
                
say_title("Regenbogenstein:"
                
say("Du möchtest also deine Skills auf"
                
say("Perfekter-Meister setzen?"
                 
                if 
pc.job ==0 then 
                say
("Wähle deine Lehre aus"
                 
                
local s=select("Körper","Mental"
                 
                if 
s==1 then 
                
--Körper 
                pc
.set_skill_group(1
                
pc.set_skill_level(,59
                
pc.set_skill_level(,59
                
pc.set_skill_level(,59
                
pc.set_skill_level(,59
                
pc.set_skill_level(,59
                
say("Deine Skills sind auf Perfekter Meister"
                
end 
                 
                
if s==2 then 
                
--Mentalo 
                pc
.set_skill_group(2
                
pc.set_skill_level(16 ,59
                
pc.set_skill_level(17 ,59
                
pc.set_skill_level(18 ,59
                
pc.set_skill_level(19 ,59
                
pc.set_skill_level(20 ,59
                
say("Deine Skills sind auf Perfekter Meister"
                
end 
                 
                
elseif pc.job ==1 then 
                say
("Wähle deine Lehre aus"
                 
                
local s=select("Nahkampf","Bogen"
                 
                if 
s==1 then 
                
--Nahkampf 
                pc
.set_skill_group(3
                
pc.set_skill_level(31 ,59
                
pc.set_skill_level(32 ,59
                
pc.set_skill_level(33 ,59
                
pc.set_skill_level(34 ,59
                
pc.set_skill_level(35 ,59
                
say("Deine Skills sind auf Perfekter Meister"
                
end 
                 
                
if s==2 then 
                
--Fernkampf 
                pc
.set_skill_group(4
                
pc.set_skill_level(46 ,59
                
pc.set_skill_level(47 ,59
                
pc.set_skill_level(48 ,59
                
pc.set_skill_level(49 ,59
                
pc.set_skill_level(50 ,59
                
say("Deine Skills sind auf Perfekter Meister"
                
end 
                 
                
elseif pc.job ==2 then 
                say
("Wähle deine Lehre aus"
                
local s=select("Magie","Waffe"
                 
                if 
s==1 then 
                
--Magie 
                pc
.set_skill_group(5
                
pc.set_skill_level(76 ,59
                
pc.set_skill_level(77 ,59
                
pc.set_skill_level(78 ,59
                
pc.set_skill_level(79 ,59
                
pc.set_skill_level(80 ,59
                
pc.set_skill_level(8159
                
say("Deine Skills sind auf Perfekter Meister"
                
end 
                 
                
if s==2 then 
                
--Waffe 
                pc
.set_skill_group(6
                
pc.set_skill_level(61 ,59
                
pc.set_skill_level(62 ,59
                
pc.set_skill_level(63 ,59
                
pc.set_skill_level(64 ,59
                
pc.set_skill_level(65 ,59
                
pc.set_skill_level(66 ,59
                
say("Deine Skills sind auf Perfekter Meister"
                
end 
                 
                
elseif pc.job ==3 then 
                say
("Wähle deine Lehre aus"
                
local s=select("Heil","Drachen"
                 
                if 
s==1 then 
                
--Heil 
                pc
.set_skill_group(7
                
pc.set_skill_level(106 ,59
                
pc.set_skill_level(107 ,59
                
pc.set_skill_level(108 ,59
                
pc.set_skill_level(109 ,59
                
pc.set_skill_level(110 ,59
                
pc.set_skill_level(111 ,59
                
say("Deine Skills sind auf Perfekter Meister"
                
end 
                 
                
if s==2 then 
                
--Drachen 
                pc
.set_skill_group(8
                
pc.set_skill_level(91 ,59
                
pc.set_skill_level(92 ,59
                
pc.set_skill_level(93 ,59
                
pc.set_skill_level(94 ,59
                
pc.set_skill_level(95 ,59
                
pc.set_skill_level(96 ,59
                
say("Deine Skills sind auf Perfekter Meister"
                
end 
            end 
        end 
    end 
end 
03/18/2015 17:33 rollback#2370
Quote:
Originally Posted by fino123 View Post

so sieht die nun aus
Code:
quest rang begin
	state start begin
		when 20020.chat."Item Abgeben" begin
			local a = select("Item Abgeben", "Rangliste", "Abbrechen")
			if a == 3 then 
				return 
			elseif a == 2 then
				local tab = mysql_query("SELECT item_count, name FROM player.player ORDER BY item_count ASC, name DESC LIMIT 15;")
				say_title("Rang | Name | Score")
				for i = 1 ,table.getn(tab.name) do
					say(i.." | "..tab.item_count[i].." | "..tab.name[i])
				end
			elseif a == 1 then
				repeat
					if pc.count_item(19) > 0 then
						local count = tonumber(input())
						if count then
							if count >= 1 then
								say("Möchtest du wirklich "..count.."x ... abgeben?")
								local s = select("Abgeben", "andere Zahl eingeben", "Abbrechen")
								if s == 1 then
									if pc.count_item(19) >= count then
										pc.remove_item(19, count)
										mysql_query("UPDATE player.player SET item_count = item_count+"..count.." WHERE id = "..pc.get_player_id().." LIMIT 1;")
										say("Du hast "..count.."x "..item_name(19).." abgegeben.")
									else
										say("Du hast das Item nicht oft genug.")
										if select("andere Zahl eingeben", "Abbrechen") == 2 then return end
									end
								elseif s == 3 then return end
							else
								say("Keine Minuus-Zahlen eingeben!")
							end
						else
							say("nur zahlen eingeben!")
						end
					else
						syschat("Keine Items vorhanden.")
					end
				until false
			end
		end
	end
end
läuft über die player tabelle ... ist auch eig. besser so. Musst die query ausführen die ich auf der seite davor gepostet habe.