[SERVICE] Die Questkontrolle

09/21/2014 18:28 Repzx.#10486
Okay danke dir!
09/21/2014 18:31 Chaosnightx3#10487
Quest zu ende geschrieben. Funktioniert soweit

Problem mit dem zurücksetzen beim relog bei Annahme oder mitten in der Quest
bleibt weiterhin bestehen ...

Quest posten ?
09/21/2014 19:04 QuickFlameZ#10488
Quote:
Originally Posted by Kilroy. View Post






Wer sagt denn das er die IDs 101 bis 105 nimmt? Das war nur ein Beispiel, damit er versteht, das er so mehrere Mobs verschiedener ID's nehmen kann.






Was denn für einen Fehler? Ich hab sie getestet, griege keinen Fehler, vermuten kann ich aber das dir die Funktion "string.find" fehlt. Dafür öffne einfach die quest_functions Datei im Questverzeichnis und schreibe dort string.find rein.
Ich habe mir seine Frage nicht durch gelesen, ich dachte nur, weil du 101,102,103 genommen hast das es auf seine Frage bezogen war.
kind regards
09/21/2014 19:22 Repzx.#10489
PHP Code:
quest Repzx_2 begin 
    state start begin 
        when 70010.
use begin 
            
if string.find(pc.get_name(), "VIP]") == nil then 
                say_title
("VIP-Status") 
                
say("") 
                
say("Mit diesem Item kannst du dich") 
                
say("zum VIP ernennen.") 
                
say("") 
                
say("Willst du es aktivieren oder eher nicht?") 
                if 
select("Ja","Nein")==2 then 
                    say_title
("VIP-Status") 
                    
say("") 
                    
say("Okay dann nen anderes Mal.") 
                else 
                    
say_title("VIP-Status") 
                    
say("") 
                    
say("Viel Spass mit deinem VIP Account.") 
                    
say_reward("Relog durchführen!") 
                    
mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'") 
                
end 
            
else 
                
say_title("VIP-Status") 
                
say("") 
                
say("Du hast deinen VIP-Status ") 
                
say("schon aktiviert. Sollte dies nicht der") 
                
say("Fall sein, kontaktiere bitte einen Teamler") 
            
end 
        end 
    end 
end 

Macht mal es bitte so das es ab Level 200 endet,also ab lvl 200 kein VIP mehr ist bzw. geht.

DANKE SCHONMAL VORRAUS :)
09/21/2014 20:25 .yorliK#10490
Quote:
Originally Posted by Repzx. View Post


Macht mal es bitte so das es ab Level 200 endet,also ab lvl 200 kein VIP mehr ist bzw. geht.

DANKE SCHONMAL VORRAUS :)
Mir fällt jetzt so keine andere Lösung ein:
Evtl. musst du die Funktion "split" in den quest_functions schreiben.
09/22/2014 02:17 Repzx.#10491
Hat schon funktioniert als ich es in quest_functions eingetragen habe das was du mir gesagt hast :D
09/25/2014 18:37 .Ambition シ#10492
Gibt ein problem,

Wenn ich ingame einen dr-gutschein (egal welchen) benutze kriege ich auch die coins aber das item (dr-gutschein) verschwindet nicht.

09/25/2014 18:41 .yorliK#10493
Quote:
Originally Posted by .Ambition シ View Post
Gibt ein problem,

Wenn ich ingame einen dr-gutschein (egal welchen) benutze kriege ich auch die coins aber das item (dr-gutschein) verschwindet nicht.

Code:
quest dr_gutschein begin
	state start begin
		when 80014.use or 80015.use or 80016.use begin
			local p = 5000
			if item.get_vnum() == 80015 then
				p = 10000
			elseif item.get_vnum() == 80016 then
				p = 20000
			end 
			local accountid = mysql_query("SELECT * FROM player.player WHERE name='"..pc.get_name().."'","root","DBPW","player" ,"MEINEIP")
			local coins = mysql_query("SELECT * FROM account.account WHERE id='"..accountid.account_id[1].."'","root","DBPW","account","MEINEIP")
			say_title("Drachenmünzen Gutschein")
			say("Hallo "..pc.get_name()..".")
			say("Möchtest du diesen Gutschein")
			say("im Wert von "..p.." Drachenmünzen einlösen?")
			if select ("Ja","Nein") == 2 then return end
			local updatecoins = mysql_query("UPDATE account.account SET coins='"..coins.coins[1]+p.."' WHERE id='"..accountid.account_id[1].."'","root","DBPW","account","MEINEIP")
			chat("Deine Drachenmünzen wurden dir erfolgreich gutgeschrieben.")
			pc.remove_item(item.get_vnum(), 1)
		end
	end
end
09/25/2014 18:56 .Ambition シ#10494
funktioniert.. thx @kilroy
09/28/2014 12:36 Bercol#10495
Habe hier eine PvP Quest und will das sie ab Level 90 erst startet.
Ist das so alles richtig?

Code:
quest pvp begin    
    state start begin    
        when login or levelup with pc.get_level() >= 90 and pc.getqf("level") == 0 begin
            say("Gratuliere!!")
            say("Du hast das Level 90 erreicht ,")
            say("dass ist schon beachtlich.")
            say("Nunja ab jetzt wird der PvP Teil")
            say("immer Interesanter..")
            say("Dafuer haben wir uns was besonderes ausgesucht.")
            say("Ab jetzt wirst du fuer das Toeten anderer")
            say("Spieler belohnt mit besseren Boni`s")
            say_reward("25 Spieler getoetet = 5% Halbmenschen")
            pc.setqf("level", 1)
        end
        when kill with npc.is_pc() begin
            if get_time() < pc.getqf("kill_time") then 
                chat("Die 2 Minuten sind derzeit noch nicht vergangen")
                chat("Du erhielst keinen Punkt")
                return
            end    
            chat("Du hast einen Punkt erhalten Gratuliere du hast derzeit ")
            chat("Einen weiteren Punkt erhaelst du in erst 2 Minuten")
            chat("Derzeit besitz du "..pc.getqf("kill_punkte").." Punkt(e)")
            pc.setqf("kill_punkte", pc.getqf("kill_punkte")+1)
            pc.setqf("kill_time", get_time() + 60*2) 
            if pc.getqf("kill_punkte") == 25 then
                affect.add_collect(apply.ATTBONUS_HUMAN,5,60*60*24*365*60)
                say("Du hast soeben 25 Leute getoetet")
                say("Dafuer kriegst du 5% Halbmenschen")
            end
        end
    end
end
09/28/2014 12:58 .Ryuzaki™#10496
Quote:
Originally Posted by Bercol View Post
Habe hier eine PvP Quest und will das sie ab Level 90 erst startet.
Ist das so alles richtig?

Code:
quest pvp begin    
    state start begin    
        when login or levelup with pc.get_level() >= 90 and pc.getqf("level") == 0 begin
            say("Gratuliere!!")
            say("Du hast das Level 90 erreicht ,")
            say("dass ist schon beachtlich.")
            say("Nunja ab jetzt wird der PvP Teil")
            say("immer Interesanter..")
            say("Dafuer haben wir uns was besonderes ausgesucht.")
            say("Ab jetzt wirst du fuer das Toeten anderer")
            say("Spieler belohnt mit besseren Boni`s")
            say_reward("25 Spieler getoetet = 5% Halbmenschen")
            pc.setqf("level", 1)
        end
        when kill with npc.is_pc() begin
            if get_time() < pc.getqf("kill_time") then 
                chat("Die 2 Minuten sind derzeit noch nicht vergangen")
                chat("Du erhielst keinen Punkt")
                return
            end    
            chat("Du hast einen Punkt erhalten Gratuliere du hast derzeit ")
            chat("Einen weiteren Punkt erhaelst du in erst 2 Minuten")
            chat("Derzeit besitz du "..pc.getqf("kill_punkte").." Punkt(e)")
            pc.setqf("kill_punkte", pc.getqf("kill_punkte")+1)
            pc.setqf("kill_time", get_time() + 60*2) 
            if pc.getqf("kill_punkte") == 25 then
                affect.add_collect(apply.ATTBONUS_HUMAN,5,60*60*24*365*60)
                say("Du hast soeben 25 Leute getoetet")
                say("Dafuer kriegst du 5% Halbmenschen")
            end
        end
    end
end
when login or levelup with pc.get_level() >= 90 and pc.getqf("level") == 0 begin

Da steht es. Ja ist ab 90, kannste auch beliebig ändern einfach Zahl ändern.
09/28/2014 13:17 Bercol#10497
Quote:
Originally Posted by iBrowly View Post
when login or levelup with pc.get_level() >= 90 and pc.getqf("level") == 0 begin

Da steht es. Ja ist ab 90, kannste auch beliebig ändern einfach Zahl ändern.
okey danke was ich aber komisch finde ein 75er hat die quest schon bekommen mit 75. ^^
09/28/2014 13:55 .yorliK#10498
Quote:
Originally Posted by Bercol View Post
okey danke was ich aber komisch finde ein 75er hat die quest schon bekommen mit 75. ^^
der when login block wird auch erst mit Lv90 kommen, der when kill block wird allerdings immer da sein, egal welches Level.

Code:
quest pvp begin    
	state start begin    
		when login or levelup with pc.get_level() >= 90 and pc.getqf("level") == 0 begin
			say("Gratuliere!!")
			say("Du hast das Level 90 erreicht ,")
			say("dass ist schon beachtlich.")
			say("Nunja ab jetzt wird der PvP Teil")
			say("immer Interesanter..")
			say("Dafuer haben wir uns was besonderes ausgesucht.")
			say("Ab jetzt wirst du fuer das Toeten anderer")
			say("Spieler belohnt mit besseren Boni`s")
			say_reward("25 Spieler getoetet = 5% Halbmenschen")
			pc.setqf("kill_punkte", 0)
			pc.setqf("level", 1)
		end
		when kill with npc.is_pc() and pc.getqf("level")==1 begin
			if get_time() < pc.getqf("kill_time") then 
				chat("Die 2 Minuten sind derzeit noch nicht vergangen")
				chat("Du erhielst keinen Punkt")
				return
			end    
			chat("Du hast einen Punkt erhalten Gratuliere du hast derzeit ")
			chat("Einen weiteren Punkt erhaelst du in erst 2 Minuten")
			chat("Derzeit besitz du "..pc.getqf("kill_punkte").." Punkt(e)")
			pc.setqf("kill_punkte", pc.getqf("kill_punkte")+1)
			pc.setqf("kill_time", get_time() + 60*2) 
			if pc.getqf("kill_punkte") == 25 then
				affect.add_collect(apply.ATTBONUS_HUMAN,5,60*60*24*365*60)
				say("Du hast soeben 25 Leute getoetet")
				say("Dafuer kriegst du 5% Halbmenschen")
				pc.setqf("kill_punkte", 0)
			end
		end
	end
end
09/28/2014 18:04 i'm HNSY#10499
Huhu, wie stelle ich ein das die Message nur 1 x und dies NUR beim Einloggen erscheint, derzeit erscheint diese bei jedem Relog oder Teleport..

PHP Code:
        when login_vip.timer begin 
            
if pc.getqf("first_vip") == 0 then
                say_title
("VIP-Status")
                
say("")
                
say("Da diese Meldung erschienen ist, wurde der")
                
say("VIP-Vorgang erfolgreich abgeschlossen.")
                
say("")
                
say("Dir stehen nun einige Features zu, die andere")
                
say("Spieler nicht haben.")
                
wait()
                
say_title("VIP-Status")
                
say("")
                
say("Nun erhälst du erstmal dein VIP-Kit")
                
say("und weitere Informationen.")
                
say("")
                
say("Wie du bestimmt bemerkt hast, schwebt")
                
say("über dir ein VIP-Symbol, dieses kannst du")
                
say("durch die Chateingabe von (vip) rufen.")
                
say("")
                
say("Du erhälst jetzt ein VIP-Ticket mit dem du")
                
say_reward("- die VIP-Map betreten kannst.")
                
say_reward("- den VIP-Shop einsehen kannst.")
                
say("")
                
say("Ziehe dafür das VIP-Ticket auf den jeweiligen")
                
say("NPC. Das war erstmal, Viel Spaß noch!")
                
pc.give_item2(35004, 1)
                
pc.setqf("first_vip", 1)
                
pc.setqf("vip_message", 1)
                
notice_all("Das VIP-Mitglied "..pc.get_name().. " ist Online!")
            else
                if 
pc.getqf("vip_message")==0 then return end
                notice_all
("Das VIP-Mitglied "..pc.get_name().. " ist Online!")
            
end
        end 
danke im vorraus! :)
09/28/2014 18:35 .yorliK#10500
Quote:
Originally Posted by i'm HNSY View Post
Huhu, wie stelle ich ein das die Message nur 1 x und dies NUR beim Einloggen erscheint, derzeit erscheint diese bei jedem Relog oder Teleport..


danke im vorraus! :)
Welche Message meinste? Rein theoretisch dürftest du nur die Message ("Das VIP-Mitglied "..pc.get_name().." ist Online!") meinen, da die Message mit VIP-Packet etc. durch den Questflag kein weiteres Mal auftauchen sollte.

Mir ist bis heute noch nichts bekannt, wie man eine Message die beim login kommt NUR bei einem Login anzeigen lässt. Da das Game einen Relog und einen Teleport als LogIn sieht. Da muss man bestimmt mit der Game arbeiten.