[SERVICE] Die Questkontrolle

12/09/2014 16:23 Skyui#10711
Hallo,

ich habe das Problem das keine Namen angezeigt wird. Mysql Daten sind richtig.

PHP Code:
quest rangliste begin
    state start begin
        when 20095.chat
."Rangliste" begin
            local rangliste 
= mysql_query("SELECT * FROM player.player WHERE player.name NOT LIKE '[%]%' ORDER BY player.level DESC, player.exp DESC","root","...","player","...")
            
say_title("Die Top 10")
            
say("Platz 1:     Name: "..rangliste.name[1].."    Level: "..rangliste.level[1].." ")
            
say("Platz 2:     Name: "..rangliste.name[2].."    Level: "..rangliste.level[2].." ")
            
say("Platz 3:     Name: "..rangliste.name[3].."    Level: "..rangliste.level[3].." ")
            
say("Platz 4:     Name: "..rangliste.name[4].."    Level: "..rangliste.level[4].." ")
            
say("Platz 5:     Name: "..rangliste.name[5].."    Level: "..rangliste.level[5].." ")
            
say("Platz 6:     Name: "..rangliste.name[6].."    Level: "..rangliste.level[6].." ")
            
say("Platz 7:     Name: "..rangliste.name[7].."    Level: "..rangliste.level[7].." ")
            
say("Platz 8:     Name: "..rangliste.name[8].."    Level: "..rangliste.level[8].." ")
            
say("Platz 9:     Name: "..rangliste.name[9].."    Level: "..rangliste.level[9].." ")
            
say("Platz 10:     Name: "..rangliste.name[10].."    Level: "..rangliste.level[10].." ")
        
end
    end
end 
Bild:
[Only registered and activated users can see links. Click Here To Register...]
12/09/2014 18:41 rollback#10712
Komme nicht weiter x.x

Link entfernt.
12/11/2014 13:58 Tuora#10713
Hab da ein Problem mit meiner Quest,ich erhalte leider die Bonis nicht,
Wenn ich die Kills in der angegebenen Zeit mache.

12/11/2014 16:07 timiich12#10714
Ich habe Folgendes Problem der Dmg Bouns Stapelt sich so das man sich ganz easy seine AW hoch push kann.
Ich brauche eine Lösung das die Dmg verschwindet so bald er wieder vom Reittier geht.

PHP Code:
quest loewe begin 
    state start begin 
        when 52040.
use begin 
            
if pc.get_level() >= 35 then 
                chat
("Du hast einen Loewen als Reittier!") 
                
affect.remove_collect()  
                
pc.mount(20114, 999) 
                
affect.add_collect(apply.ATT_GRADE_BONUS,200,300)  
            else 
                
chat("Versuch es mit lvl 35 wieder!") 
            
end 
        end 
    end 
end 
12/11/2014 16:20 .yorliK#10715
Quote:
Originally Posted by [Sensenmann] View Post
Komme nicht weiter x.x

#link has been removed
Sieht sehr interessant aus. Ich würde mich gerne mit dir an Vereinfachung und/evtler Erweiterung der Quest setzen. Schreib mir ne PN, falls Interesse besteht.


Quote:
Originally Posted by ImTweet View Post
Hab da ein Problem mit meiner Quest,ich erhalte leider die Bonis nicht,
Wenn ich die Kills in der angegebenen Zeit mache.
Ehm ja.. apply.MAX_HP spricht für eine Variable in der apply Tabelle. Ich hoffe doch, dass du das weißt..

Durch deinen jetzigen Code sieht dein Stellenangabe von der Tabelle so aus:
Code:
apply."MAX_HP"
Das funktioniert so nicht.

Du hast jetzt zwei Möglichkeiten:
1. Du schreibst den vollen Namen der Stelle von der apply Tabelle rein. z.B.
Code:
[3] = {apply.MAX_HP, 3500, 30, "für 30 Sekunden 3500 Lebenspunkte."},
2. Du rufst den Wert der apply Tabelle mittels: [ ] auf. z.B.
Code:
affect.add_collect(apply[ra[pc.getqf("rage")]][1], ra[pc.getqf("rage")][2], ra[pc.getqf("rage")][3])
12/12/2014 09:25 Tuora#10716
Quote:
Originally Posted by Kilroy. View Post
Sieht sehr interessant aus. Ich würde mich gerne mit dir an Vereinfachung und/evtler Erweiterung der Quest setzen. Schreib mir ne PN, falls Interesse besteht.




Ehm ja.. apply.MAX_HP spricht für eine Variable in der apply Tabelle. Ich hoffe doch, dass du das weißt..

Durch deinen jetzigen Code sieht dein Stellenangabe von der Tabelle so aus:
Code:
apply."MAX_HP"
Das funktioniert so nicht.

Du hast jetzt zwei Möglichkeiten:
1. Du schreibst den vollen Namen der Stelle von der apply Tabelle rein. z.B.
Code:
[3] = {apply.MAX_HP, 3500, 30, "für 30 Sekunden 3500 Lebenspunkte."},
2. Du rufst den Wert der apply Tabelle mittels: [ ] auf. z.B.
Code:
affect.add_collect(apply[ra[pc.getqf("rage")]][1], ra[pc.getqf("rage")][2], ra[pc.getqf("rage")][3])
Nice danke :)
12/12/2014 21:51 Offical-Break#10717
PHP Code:
quest Adventskalender begin
    state start begin
        when login with os
.date("%d") == "11" and os.date("%m") == "12" and os.date("%Y") == "2014" begin
            local TODAY 
= tonumber(os.date("%d"))
            
local MY_PACK = pc.getqf("tuerchen")
            
local REST = TODAY - MY_PACK
            local PRESENTS 
= {50035, 50036, 50031, 50025, 50024, 50031, 50032}
            
local ITEMS
            local ZWISCHEN
            
if REST>0 and TODAY<=24 then
                repeat
                    ITEMS 
= PRESENTS[number(1, table.getn(PRESENTS))]
                    
pc.give_item2(ITEMS, 1)
                    
ZWISCHEN = tonumber(TODAY-REST) +1
                    chat
("In deinen "..ZWISCHEN..". Türchen war ein(e) "..item_name(ITEMS).." drinne!")
                    
REST = REST -1
                until REST 
== 0    
                pc
.setqf("tuerchen", TODAY)
                if 
TODAY==24 then
                    pc
.setqf("tuerchen", 0)
                
end
            end
        end
    end
end 
12/12/2014 21:55 OliviaIchLiebeDichx3#10718
Kann mir jemand bitte den Fehler von der Quest sagen & fixen ?

Ich bekomme keine Truhe und er nimmt auch keine Socken an..


12/12/2014 23:17 .Delta#10719
PHP Code:
quest socken begin
    state start begin
        when 20031.chat
."Die Weihnachtstruhe" begin
            say_title
("Weihnachtsmann:")
            
say("Hohw Hohw Hohw, du willst also einer meiner begehrten Weihnachts Truhen ergattern?")
            
say("Ich werde dir diesen Wunsch erfüllen da schliesslich Weihnachtszeit ist")
            
say("Es wird dich allerdings etwas Kosten, ich brauche noch Socken für meine geliebten Rentiere.")
            
say("Ich wäre mit 5Stück zufrieden da wir ja alte bekannte sind.")
            
say("Bist du einverstanden?")
            
local s = select("Ja", "Nein")
            if 
s == 1 then
                
if pc.count_item(71144) < 5 then
                    say
("Wir hatten 5 Socken ausgemacht, los hol den Rest!")
                    
say_item_vnum("50010")
                    
say("Bring mir 5 Stück!")
                else
                    
say_title("Nimm nun deine Weihnachtstruhe entgegen:")
                    if 
select ("Weihnachtstruhe") == 1 then
                        pc
.remove_item(50010, 5)
                        
pc.give_item2(71144, 1)
                    
end
                end
            end
        end
    end
end 
12/13/2014 00:36 Rofelmau#10720
Quote:
Originally Posted by .Delta View Post
PHP Code:
quest socken begin
    state start begin
        when 20031.chat
."Die Weihnachtstruhe" begin
            say_title
("Weihnachtsmann:")
            
say("Hohw Hohw Hohw, du willst also einer meiner begehrten Weihnachts Truhen ergattern?")
            
say("Ich werde dir diesen Wunsch erfüllen da schliesslich Weihnachtszeit ist")
            
say("Es wird dich allerdings etwas Kosten, ich brauche noch Socken für meine geliebten Rentiere.")
            
say("Ich wäre mit 5Stück zufrieden da wir ja alte bekannte sind.")
            
say("Bist du einverstanden?")
            
local s = select("Ja", "Nein")
            if 
s == 1 then
                
if pc.count_item(71144) < 5 then
                    say
("Wir hatten 5 Socken ausgemacht, los hol den Rest!")
                    
say_item_vnum("50010")
                    
say("Bring mir 5 Stück!")
                else
                    
say_title("Nimm nun deine Weihnachtstruhe entgegen:")
                    if 
select ("Weihnachtstruhe") == 1 then
                        pc
.remove_item(50010, 5)
                        
pc.give_item2(71144, 1)
                    
end
                end
            end
        end
    end
end 
PHP Code:
quest socken begin
    state start begin
        when 20031.chat
."Die Weihnachtstruhe" begin
            say_title
("Weihnachtsmann:")
            
say("Hohw Hohw Hohw, du willst also einer meiner begehrten Weihnachts Truhen ergattern?")
            
say("Ich werde dir diesen Wunsch erfüllen da schliesslich Weihnachtszeit ist")
            
say("Es wird dich allerdings etwas Kosten, ich brauche noch Socken für meine geliebten Rentiere.")
            
say("Ich wäre mit 5Stück zufrieden da wir ja alte bekannte sind.")
            
say("Bist du einverstanden?")
            
local s = select("Ja", "Nein")
            if 
s == 1 then
                
if pc.count_item(50010) < 5 then
                    say
("Wir hatten 5 Socken ausgemacht, los hol den Rest!")
                    
say_item_vnum("50010")
                    
say("Bring mir 5 Stück!")
                else
                    
say_title("Nimm nun deine Weihnachtstruhe entgegen:")
                    if 
select ("Weihnachtstruhe") == 1 then
                        pc
.remove_item(50010, 5)
                        
pc.give_item2(71144, 1)
                    
end
                end
            end
        end
    end
end 
DU zählst die truhen und nicht die socken, denke so wolltest du das nicht, da ja auch socken entfernt werden. Habe das mal geändert
12/13/2014 14:11 i'm HNSY#10721
PHP Code:
quest Dunklefanatikerr begin
  state start begin
      when login 
or levelup with pc.get_level() >= 75 begin
            set_state
(information)
    
end
    end

   state information begin
        when letter begin
        send_letter
("Töte Gelben Tigergeist!")
        
end

      when info 
or button begin
           say
("Der Herrscher des Reichs möchte")
           
say("das du 1 Gelben Tigergeist vor dem")
           
say("Dämonenturm")
           
say("natürlich erhälst du eine Belohnung!")
           
say_reward("Töte 1 Gelben Tigergeist")
           
say("")
           
pc.setqf("state", 1)
           
q.set_counter("Gelber Tigergeist")
           
end

            when kill with npc
.get_race()==1304 begin
            local count 
= pc.getqf("state") - 1
            
if count <= 1 then
            pc
.setqf("state", count)
            
q.set_counter("Gelber Tigergeist", count)
            
end
            
if count == 0 then
                    say_title
("Aufgabe abgeschlossen!")
                    
say("Ohh, du hast es geschafft!")
                    
say("Herzlichen Glückwunsch :)!")
                    
say("der gelbe Tigergeist wurde vernichtet.")
                    
say("hier deine Belohnung:")
                    
say_reward("Schlachten Löwen-Siegel")
                    
say_reward("1 Weisse, 1 Blaue & 1 Rote Perle!")
                    
pc.give_item2(71128,1)
                    
pc.give_item2(27992,1)
                    
pc.give_item2(27993,1)
                    
pc.give_item2(27994,1)
                    
set_state( __COMPLETE__ )

            
end
        end
    end
    state __COMPLETE__ begin
   end
end 
Der kill wird nicht gezählt, egal wieviele man getötet hat..

Bei erfolgreicher Hilfe gibts 20e*g :)
12/13/2014 17:21 Rofelmau#10722
Quote:
Originally Posted by i'm HNSY View Post
PHP Code:
quest Dunklefanatikerr begin
  state start begin
      when login 
or levelup with pc.get_level() >= 75 begin
            set_state
(information)
    
end
    end

   state information begin
        when letter begin
        send_letter
("Töte Gelben Tigergeist!")
        
end

      when info 
or button begin
           say
("Der Herrscher des Reichs möchte")
           
say("das du 1 Gelben Tigergeist vor dem")
           
say("Dämonenturm")
           
say("natürlich erhälst du eine Belohnung!")
           
say_reward("Töte 1 Gelben Tigergeist")
           
say("")
           
pc.setqf("state", 1)
           
q.set_counter("Gelber Tigergeist")
           
end

            when kill with npc
.get_race()==1304 begin
            local count 
= pc.getqf("state") - 1
            
if count <= 1 then
            pc
.setqf("state", count)
            
q.set_counter("Gelber Tigergeist", count)
            
end
            
if count == 0 then
                    say_title
("Aufgabe abgeschlossen!")
                    
say("Ohh, du hast es geschafft!")
                    
say("Herzlichen Glückwunsch :)!")
                    
say("der gelbe Tigergeist wurde vernichtet.")
                    
say("hier deine Belohnung:")
                    
say_reward("Schlachten Löwen-Siegel")
                    
say_reward("1 Weisse, 1 Blaue & 1 Rote Perle!")
                    
pc.give_item2(71128,1)
                    
pc.give_item2(27992,1)
                    
pc.give_item2(27993,1)
                    
pc.give_item2(27994,1)
                    
set_state( __COMPLETE__ )

            
end
        end
    end
    state __COMPLETE__ begin
   end
end 
Der kill wird nicht gezählt, egal wieviele man getötet hat..

Bei erfolgreicher Hilfe gibts 20e*g :)
winziger fehler <= statt >=
PHP Code:
quest Dunklefanatikerr begin
  state start begin
      when login 
or levelup with pc.get_level() >= 75 begin
            set_state
(information)
    
end
    end

   state information begin
        when letter begin
            send_letter
("Töte Gelben Tigergeist!")
        
end

        when info 
or button begin
           say
("Der Herrscher des Reichs möchte")
           
say("das du 1 Gelben Tigergeist vor dem")
           
say("Dämonenturm")
           
say("natürlich erhälst du eine Belohnung!")
           
say_reward("Töte 1 Gelben Tigergeist")
           
say("")
           
pc.setqf("state", 1)
           
q.set_counter("Gelber Tigergeist")
        
end

        when kill with npc
.get_race()==1304 begin
            local count 
= pc.getqf("state") - 1
            
if count >= 1 then
                pc
.setqf("state", count)
                
q.set_counter("Gelber Tigergeist", count)
            
end
            
if count == 0 then
                    say_title
("Aufgabe abgeschlossen!")
                    
say("Ohh, du hast es geschafft!")
                    
say("Herzlichen Glückwunsch :)!")
                    
say("der gelbe Tigergeist wurde vernichtet.")
                    
say("hier deine Belohnung:")
                    
say_reward("Schlachten Löwen-Siegel")
                    
say_reward("1 Weisse, 1 Blaue & 1 Rote Perle!")
                    
pc.give_item2(71128,1)
                    
pc.give_item2(27992,1)
                    
pc.give_item2(27993,1)
                    
pc.give_item2(27994,1)
                    
set_state( __COMPLETE__ )

            
end
        end
    end
    state __COMPLETE__ begin
   end
end 
12/13/2014 18:35 IceCreamx3#10723
Brauche Hilfe bei meiner Achivementquest.
Der Counter funktioniert nicht richtig, es zeigt mir immer Count: 1 an, egal wie oft ich das Monster töte.

Hoffe auf Hilfe.

PHP Code:
quest achievement begin
    state start begin
        
function get_points()
            return 
tonumber(mysql_query("select achievement from player.player where id = ".. pc.get_player_id() ..";")[1][1]) or 0
        end
        
function GetInput(value)
            
cmdchat("GetInputStart")
            
local ret = input(cmdchat(value))
            
cmdchat("GetInputStop")
            return 
ret
        end
        
function set_points(p)
            
mysql_query("update player.player set achievement = ".. p .." where id = ".. pc.get_player_id() ..";")
        
end
        when 20095.chat
."Achievementshop" begin
            cmdchat
("SetIsNpc")
            
npc.open_shop(49)
            
setskin(NOWINDOW)
            
cmdchat("SetPrice 50|20|20|20|40|400|400|400|100|100|100|100|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0")
        
end
        when login begin
            cmdchat
("SetQuestIndex "..q.getcurrentquestindex())
            
cmdchat("setPP "..pc.getqf("achievement"))
            
loop_timer("update", 4)
            if 
pc.getqf("first") == 0 then
                pc
.setqf("achievement", pc.getqf("achievement")+1)
                
cmdchat("achievement Dein_erster_Login%".. pc.getqf("achievement"))
                
pc.setqf("first",1)
            
end
        end
        when update
.timer begin
            cmdchat
("setPP "..pc.getqf("achievement"))
        
end
        when button 
or info begin
            local items 
= {
                [
1]={27991, 1, 50},
                [
2]={27992, 1, 20},
                [
3]={27993, 1, 20},
                [
4]={27994, 1, 20},
                [
5]={38056, 1, 40},
                [
6]={50113, 1, 400},
                [
7]={50114, 1, 400},
                [
8]={50115, 1, 400},
                [
9]={50636, 1, 100},
                [
10]={60003, 1, 100},
                [
11]={71123, 1, 100},
                [
12]={71129, 1, 100}
            }
            
local slot = tonumber(achievement.GetInput("GetInput"))+1
            
if pc.getqf("achievement") >= items[slot][3] then
                pc
.setqf("achievement", pc.getqf("achievement")-items[slot][3])
                
cmdchat("setPP "..pc.getqf("achievement"))
                
pc.give_item2(items[slot][1], items[slot][2])
            else
                
cmdchat("NieMamPP")
            
end
        end
        when kill with not npc
.is_pc() begin
            local data 
= {
                [
1093] = 3,
                [
591] = 1,
                [
691] = 1,
                [
2191] = 2,
                [
1304] = 2,
                [
2206] = 2,
                [
1901] = 2,
                [
2091] = 2,
                [
1191] = 3,
                [
2307] = 2,
                [
2493] = 4,
                [
2598] = 4,
                [
8027] = 1,
                [
8051] = 1,
                [
8052] = 1,
                [
8053] = 1,
                [
8054] = 1,
                [
8055] = 1,
                [
8056] = 1 -- Letzter Eintrag erhält kein Komma!
            }
            
local v = npc.get_race()
            
local killcount = pc.getqf(v .."_kill")
            
local p = data[v] or 0
            
if p == 0 then return end
            cmdchat
("achievementpoints "..pc.getqf("achievement") + p )
            
cmdchat("achievement ".. mob_name(v) .."_getötet#".. killcount + 1 .."%".. pc.getqf("achievement") + p)
            
pc.setqf("achievement", pc.getqf("achievement") + p)
        
end
    end
end 
12/13/2014 19:51 .yorliK#10724
Quote:
Originally Posted by IceCreamx3 View Post
Brauche Hilfe bei meiner Achivementquest.
Der Counter funktioniert nicht richtig, es zeigt mir immer Count: 1 an, egal wie oft ich das Monster töte.

Hoffe auf Hilfe.

Was falsch war, habe ich kommentiert.
Code:
quest achievement begin
	state start begin
		function get_points()
			return tonumber(mysql_query("select achievement from player.player where id = ".. pc.get_player_id() ..";")[1][1]) or 0
		end
		function GetInput(value)
			cmdchat("GetInputStart")
			local ret = input(cmdchat(value))
			cmdchat("GetInputStop")
			return ret
		end
		function set_points(p)
			mysql_query("update player.player set achievement = ".. p .." where id = ".. pc.get_player_id() ..";")
		end
		when 20095.chat."Achievementshop" begin
			cmdchat("SetIsNpc")
			npc.open_shop(49)
			setskin(NOWINDOW)
			cmdchat("SetPrice 50|20|20|20|40|400|400|400|100|100|100|100|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0")
		end
		when login begin
			cmdchat("SetQuestIndex "..q.getcurrentquestindex())
			cmdchat("setPP "..pc.getqf("achievement"))
			loop_timer("update", 4)
			if pc.getqf("first") == 0 then
				pc.setqf("achievement", pc.getqf("achievement")+1)
				cmdchat("achievement Dein_erster_Login%".. pc.getqf("achievement"))
				pc.setqf("first",1)
			end
		end
		when update.timer begin
			cmdchat("setPP "..pc.getqf("achievement"))
		end
		when button or info begin
			local items = {
				[1]={27991, 1, 50},
				[2]={27992, 1, 20},
				[3]={27993, 1, 20},
				[4]={27994, 1, 20},
				[5]={38056, 1, 40},
				[6]={50113, 1, 400},
				[7]={50114, 1, 400},
				[8]={50115, 1, 400},
				[9]={50636, 1, 100},
				[10]={60003, 1, 100},
				[11]={71123, 1, 100},
				[12]={71129, 1, 100}
			}
			local slot = tonumber(achievement.GetInput("GetInput"))+1
			if pc.getqf("achievement") >= items[slot][3] then
				pc.setqf("achievement", pc.getqf("achievement")-items[slot][3])
				cmdchat("setPP "..pc.getqf("achievement"))
				pc.give_item2(items[slot][1], items[slot][2])
			else
				cmdchat("NieMamPP")
			end
		end
		when kill with not npc.is_pc() begin
			local data = {
				[1093] = 3,
				[591] = 1,
				[691] = 1,
				[2191] = 2,
				[1304] = 2,
				[2206] = 2,
				[1901] = 2,
				[2091] = 2,
				[1191] = 3,
				[2307] = 2,
				[2493] = 4,
				[2598] = 4,
				[8027] = 1,
				[8051] = 1,
				[8052] = 1,
				[8053] = 1,
				[8054] = 1,
				[8055] = 1,
				[8056] = 1 -- Letzter Eintrag erhält kein Komma!
			}
			local v = npc.get_race()
			local killcount = pc.getqf(v .."_kill")
			pc.setqf(v.."_kill", killcount+1) -- Das Count erhöhen hat gefehlt.
			local p = data[v] or 0
			if p == 0 then return end
			cmdchat("achievementpoints "..pc.getqf("achievement") + p )
			cmdchat("achievement ".. mob_name(v) .."_getötet#".. killcount + 1 .."%".. pc.getqf("achievement") + p)
			pc.setqf("achievement", pc.getqf("achievement") + p)
		end
	end
end
12/13/2014 20:42 i'm HNSY#10725
Quote:
Originally Posted by Rofelmau View Post
winziger fehler <= statt >=
PHP Code:
quest Dunklefanatikerr begin
  state start begin
      when login 
or levelup with pc.get_level() >= 75 begin
            set_state
(information)
    
end
    end

   state information begin
        when letter begin
            send_letter
("Töte Gelben Tigergeist!")
        
end

        when info 
or button begin
           say
("Der Herrscher des Reichs möchte")
           
say("das du 1 Gelben Tigergeist vor dem")
           
say("Dämonenturm")
           
say("natürlich erhälst du eine Belohnung!")
           
say_reward("Töte 1 Gelben Tigergeist")
           
say("")
           
pc.setqf("state", 1)
           
q.set_counter("Gelber Tigergeist")
        
end

        when kill with npc
.get_race()==1304 begin
            local count 
= pc.getqf("state") - 1
            
if count >= 1 then
                pc
.setqf("state", count)
                
q.set_counter("Gelber Tigergeist", count)
            
end
            
if count == 0 then
                    say_title
("Aufgabe abgeschlossen!")
                    
say("Ohh, du hast es geschafft!")
                    
say("Herzlichen Glückwunsch :)!")
                    
say("der gelbe Tigergeist wurde vernichtet.")
                    
say("hier deine Belohnung:")
                    
say_reward("Schlachten Löwen-Siegel")
                    
say_reward("1 Weisse, 1 Blaue & 1 Rote Perle!")
                    
pc.give_item2(71128,1)
                    
pc.give_item2(27992,1)
                    
pc.give_item2(27993,1)
                    
pc.give_item2(27994,1)
                    
set_state( __COMPLETE__ )

            
end
        end
    end
    state __COMPLETE__ begin
   end
end 
Klappt nicht..