[SERVICE] Die Questerstellung

10/18/2013 12:38 Skyui#721
Nunja, Fertig bin ich noch nicht geworden, aber es soll eine Quest werden womit man Dinge zählen kann.

Beispiel:
PHP Code:
quest erze begin
    state start begin
        when 20016.chat
."Deine Perlen" with pc.get_level() >= 15 begin
        say_title
("Perlen anzahl")
        
say("Du hast "..item.get_count(27992).." Weise Perlen")    
        
say("Du hast "..item.get_count(27993).." Blaue Perlen")
        
say("Du hast "..item.get_count(27994).." Rote Perlen")
        
end
    end
end 
Bei mir Zeigt er immer die Zahl 0 an..
10/18/2013 13:07 Fear *_*#722
Ersetz einfach des item.get_count durch: pc.count_item(27992) dann müsste es klappen.
10/18/2013 13:11 Skyui#723
Ja es Funktioniert, danke :)

Wie kann man mehrere Items gleichzeitig überprüfen?

So schein es falsch zu sein:

PHP Code:
if pc.count_item(506045060550606506075060850610506115061250613) >= 1 then 
10/18/2013 15:39 Fear *_*#724
Wenn du des mit den ID's haben willst und dann so ein gesamt Count haben willst kannste des so machen:

PHP Code:
local gesamt_count 0
for 110 do
    
gesamt_count gesamt_count pc.count_item(50603+i)
end 
Ansonsten könnteste es noch mit einer table machen.

PHP Code:
local items = {50604506055060650607506085060950610506115061250613}
local gesamt_count 0
for 1table.getn(items) do
    
gesamt_count gesamt_count pc.count_item(items[i])
end 
Denn Count kannste dann so benutzen:

PHP Code:
if gesamt_count 0 then 
10/18/2013 17:01 Skyui#725
Okay besten Dank :)
10/18/2013 18:06 .ProjektX²#726
Quote:
Originally Posted by Skyui View Post
Ja es Funktioniert, danke :)

Wie kann man mehrere Items gleichzeitig überprüfen?

So schein es falsch zu sein:

PHP Code:
if pc.count_item(506045060550606506075060850610506115061250613) >= 1 then 

PHP Code:
function say_count_item(...)
  for 
i=1,table.getn(arg) do
    if 
arg[i] > 0 then
      say
('Du hast '..pc.count_item(arg[i])..' '..item_name(arg[i]))
    
end
  end
end 
In questlib einfuegen und in questfunctions eintragen.

Dann kannste sie so verwenden:
say_count_item(50604, 50605, 50606, 50607, 50608, 50610, 50611, 50612, 50613)

Dann kommt fuer jedes Item:
Du hast ... blablas.
10/18/2013 20:03 Skyui#727
Diese PvP Quest sollte so sein, wenn es möglich ist, das die Spieler die man Tötet ein bestimmtes Level haben müssen, damit der Kill zählt..

PHP Code:
quest pvpquest2 begin
    state start begin
        when login with pc
.level >= 135 begin
            set_state
(pvpquest2)
        
end
    end

    state pvpquest2 begin
        when letter begin
            send_letter
("Töte Gegner aus anderen Reichen 2")
        
end

        when button 
or info begin
            say
("Es wird Zeit dass du zeigst")
            
say("was in dir steckt!")
            
say("Zeige es uns indem du 1000")
            
say("Spieler aus anderen Reichen tötest!")
            
say_reward("Töte 1000 andere Spieler aus anderen Reichen!")
            
say("")
            
pc.setqf("state"1000)
            
q.set_counter("kills"1000)
            
set_state (kill)
        
end
    end
      
        state kill begin
        when letter begin
            send_letter
("Töte Spieler 2")
        
end
        
        when button 
or info begin
            say_title
("Spieler:")
            
say_reward"Du musst noch ".." "..pc.getqf("state").." von 1000 töten")
            
say("")
        
end

        when kill begin
            
if npc.is_pc() and npc.empire != pc.empire then 
            local count 
pc.getqf("state") - 1
            
if count <= 1000 then
                pc
.setqf("state"count)
                
q.set_counter("kills", -count)
            
end
            
if count == 0 then
                say_title
("Du hast es geschafft!")
                
say("100 Spieler aus anderen Reichen zu töten!")
                
say("Du erhälst für deine Mühen:")
                
say_reward("5 Rote Perle")
                
say_reward("5 Blaue Perle")
                
say_reward("5 Weisse Perle")
                
say_reward("200.000.000 Yang")
                
pc.change_money(200000000)
                
pc.give_item2(279925)
                
pc.give_item2(279935)
                
pc.give_item2(279945)
                
notice_all("".. pc.get_name() .." hat soeben die PvP Quest 2 abgeschlossen!")
                
notice_all("Er/Sie hat 1000 Spieler getötet, Glückwunsch!")
                
clear_letter()
                
set_state(__COMPLETE__)
            
end
        end
    end
    end
    state __COMPLETE__ begin
    end
end 
10/19/2013 01:40 .ProjektX²#728
Quote:
Originally Posted by Skyui View Post
Diese PvP Quest sollte so sein, wenn es möglich ist, das die Spieler die man Tötet ein bestimmtes Level haben müssen, damit der Kill zählt..

PHP Code:
quest pvpquest2 begin
    state start begin
        when login with pc
.level >= 135 begin
            set_state
(pvpquest2)
        
end
    end

    state pvpquest2 begin
        when letter begin
            send_letter
("Töte Gegner aus anderen Reichen 2")
        
end

        when button 
or info begin
            say
("Es wird Zeit dass du zeigst")
            
say("was in dir steckt!")
            
say("Zeige es uns indem du 1000")
            
say("Spieler aus anderen Reichen tötest!")
            
say_reward("Töte 1000 andere Spieler aus anderen Reichen!")
            
say("")
            
pc.setqf("state"1000)
            
q.set_counter("kills"1000)
            
set_state (kill)
        
end
    end
      
        state kill begin
        when letter begin
            send_letter
("Töte Spieler 2")
        
end
        
        when button 
or info begin
            say_title
("Spieler:")
            
say_reward"Du musst noch ".." "..pc.getqf("state").." von 1000 töten")
            
say("")
        
end

        when kill begin
            
if npc.is_pc() and npc.empire != pc.empire then 
            local count 
pc.getqf("state") - 1
            
if count <= 1000 then
                pc
.setqf("state"count)
                
q.set_counter("kills", -count)
            
end
            
if count == 0 then
                say_title
("Du hast es geschafft!")
                
say("100 Spieler aus anderen Reichen zu töten!")
                
say("Du erhälst für deine Mühen:")
                
say_reward("5 Rote Perle")
                
say_reward("5 Blaue Perle")
                
say_reward("5 Weisse Perle")
                
say_reward("200.000.000 Yang")
                
pc.change_money(200000000)
                
pc.give_item2(279925)
                
pc.give_item2(279935)
                
pc.give_item2(279945)
                
notice_all("".. pc.get_name() .." hat soeben die PvP Quest 2 abgeschlossen!")
                
notice_all("Er/Sie hat 1000 Spieler getötet, Glückwunsch!")
                
clear_letter()
                
set_state(__COMPLETE__)
            
end
        end
    end
    end
    state __COMPLETE__ begin
    end
end 
Beispiel:
PHP Code:
quest xxx begin
    state start begin
        when kill with npc
.is_pc() begin
            local me 
pc.select(npc.get_vid())  --den gekillten Spieler "auswaehlen" und die eigene vid speichern
            local vidLevel 
pc.get_level()    --das level des Spielers speichern
            pc
.select(me)    --sich selbst wieder "auswaehlen"
            
if vidLevel >= 20 then --schauen ob das level hoeher oder gleich 20 ist.
                
chat'Hoeher als Level 20...'
            
end
        end
    end
end 
Du brauchst dafuer natuerlich die Funktion npc.get_vid().
Dafuer gibt es ne dif auf epvp.

Fuer die game 2089 und 2089m:
[Only registered and activated users can see links. Click Here To Register...]

Die Quest wuerde dann so aussehen:
PHP Code:
quest pvpquest2 begin
    state start begin
        when login with pc
.level >= 135 begin
            set_state
(pvpquest2)
        
end
    end

    state pvpquest2 begin
        when letter begin
            send_letter
("Töte Gegner aus anderen Reichen 2")
        
end

        when button 
or info begin
            say
("Es wird Zeit dass du zeigst")
            
say("was in dir steckt!")
            
say("Zeige es uns indem du 1000")
            
say("Spieler aus anderen Reichen tötest!")
            
say_reward("Töte 1000 andere Spieler aus anderen Reichen!")
            
say("")
            
pc.setqf("state"1000)
            
q.set_counter("kills"1000)
            
set_state (kill)
        
end
    end
      
        state kill begin
        when letter begin
            send_letter
("Töte Spieler 2")
        
end
        
        when button 
or info begin
            say_title
("Spieler:")
            
say_reward"Du musst noch ".." "..pc.getqf("state").." von 1000 töten")
            
say("")
        
end

        when kill begin
            
if npc.is_pc() and npc.empire != pc.empire then 
            local me 
pc.select(npc.get_vid())
            
local vidLevel pc.get_level()
            
pc.select(me)
            if 
vidLevel 20 then return end -- wenns level kleiner wie 20 istwird nichts weiter ausgefuehrt.
            
local count pc.getqf("state") - 1
            
if count <= 1000 then
                pc
.setqf("state"count)
                
q.set_counter("kills", -count)
            
end
            
if count == 0 then
                say_title
("Du hast es geschafft!")
                
say("100 Spieler aus anderen Reichen zu töten!")
                
say("Du erhälst für deine Mühen:")
                
say_reward("5 Rote Perle")
                
say_reward("5 Blaue Perle")
                
say_reward("5 Weisse Perle")
                
say_reward("200.000.000 Yang")
                
pc.change_money(200000000)
                
pc.give_item2(279925)
                
pc.give_item2(279935)
                
pc.give_item2(279945)
                
notice_all("".. pc.get_name() .." hat soeben die PvP Quest 2 abgeschlossen!")
                
notice_all("Er/Sie hat 1000 Spieler getötet, Glückwunsch!")
                
clear_letter()
                
set_state(__COMPLETE__)
            
end
        end
    end
    end
    state __COMPLETE__ begin
    end
end 
10/19/2013 12:34 .Soυzα#729
Moin ich mal wieder.
Bräuchte eine Quest die ich selber nicht hinkriege weil sie failt.

Und zwar:

Mann braucht ein item man klickt den NPC an und der portet zu eine Kordi dann.
Wenn man das Item nicht hat kommt man da nicht rein.
Hoffe ihr wisst wie ich es meine.
10/19/2013 12:53 Mijago#730
Code:
quest warpme begin
    state start begin
        when 1234.chat."Warp mich" begin
            say_title "Warp mich"
            if pc.count_item(4567) == 0 then
                return say "Du benötigst das Item!"
            end
            pc.remove_item(4567,1)
            say "Ich teleportiere dich!"
            wait()
            pc.warp(x,y)
        end
    end
end
10/19/2013 12:55 .ProjektX²#731
Quote:
Originally Posted by .Pumpkin View Post
Moin ich mal wieder.
Bräuchte eine Quest die ich selber nicht hinkriege weil sie failt.

Und zwar:

Mann braucht ein item man klickt den NPC an und der portet zu eine Kordi dann.
Wenn man das Item nicht hat kommt man da nicht rein.
Hoffe ihr wisst wie ich es meine.
PHP Code:
quest port begin
    state start begin
        when npcvnum
.chat.'Auswahl' begin
            say_title
'NPCNAME:'
            
if pc.count_item(itemvnum) >= count then
                say
'[ENTER]Du besitzt das Item BLABLA[ENTER]Willst du teleportieren?[ENTER]'
                
if select('Ja','Nein') == 2 then return end
                pc
.remove_item(itemvnum,count)
                
pc.warp(xcoord,ycoord)
            else
                
say'[ENTER]Du besitzt das Item BLABLA nicht[ENTER]'
            
end
        end
        
--[[
        
npcvnum VNUM des Npc eintragen.
        
itemvnum VNUM des Item eintragen.
        
count wieviele sollen besitzt und dann entfernt werden?
        
x/ycoord coordinate*100
        
]]
    
end
end 
10/19/2013 19:05 Skyui#732
Wie heist die Funktion womit man sein Pferde Rufen Fähigkeit hoch setzen kann?
10/20/2013 01:42 ©Fitchi#733
horse.set_level("DEIN LEVEL")
10/20/2013 02:54 Skyui#734
Nein das habe ich nicht gemeint, ich meine die Fähigkeit wie hoch die Chance ist dein Pferd zu rufen, aber das Problem hat sich mittlerweile gelösst.

Meine nächste Frage:

Wie kann ich es so machen das die Quest immer wieder eingeblendet und wiederholt wird:


PHP Code:
quest horsesearch begin
    state start begin
        when login with pc
.level >= 1 begin
            send_letter
("Pferd Rufen")
        
end
        when info 
or button begin
        
if horse.get_level() >= 1 then
            horse
.summon()
            if 
horse.set_level() == 0 then
                chat
("Du kannst dein Pferd beim Stallburschen kaufen")
                
end
            end
        end
    end
end 
10/21/2013 19:20 Destroyer800#735
Quote:
Originally Posted by Skyui View Post
Nein das habe ich nicht gemeint, ich meine die Fähigkeit wie hoch die Chance ist dein Pferd zu rufen, aber das Problem hat sich mittlerweile gelösst.

Meine nächste Frage:

Wie kann ich es so machen das die Quest immer wieder eingeblendet und wiederholt wird:


PHP Code:
quest horsesearch begin
    state start begin
        when login with pc
.level >= 1 begin
            send_letter
("Pferd Rufen")
        
end
        when info 
or button begin
        
if horse.get_level() >= 1 then
            horse
.summon()
            if 
horse.set_level() == 0 then
                chat
("Du kannst dein Pferd beim Stallburschen kaufen")
                
end
            end
        end
    end
end 
Code:
quest horsesearch begin
	state start begin
		when login with pc.level >= 1 begin
			send_letter("Pferd Rufen")
		end
		when info or button begin
			if horse.get_level() == 0 then
				chat("Du kannst dein Pferd beim Stallburschen kaufen")
			else
				horse.summon()
			end
			send_letter("Pferd Rufen")
		end
	end
end