Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 20:43

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[SERVICE] Die Questkontrolle

Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old 06/23/2015, 21:39   #11701

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by [TEC]Tigrex View Post
Hay ich bräuchte mal Hilfe bei einer kurzen quest

Code:
quest start_bonus begin
	state start begin
		when login begin
			if tonumber(mysql_query("SELECT count(*) FROM account.account where Bonus = 0;")[1][1]) >=1 then
				mysql_query("UPDATE account.account SET Bonus = 1 WHERE id='"..pc.get_account_id()..;")
				end
				mysql_query("UPDATE account.account SET gold_expire = gold_expire +55 WHERE id='"..pc.get_account_id().."' LIMIT 1;")
			end
		end
	end
und zwar lieg der fehler darinne, dass ich möchte sobald man sich einloggt bekommt man für einen tag gold oder exp bonus ist egal aber das nur pro account 1 mal, das Set Bonus ist in meiner Datenbank ein Feld namens Bonus wenn er die zahl 0 trägt besitzt der account den Bonus nicht und wenn es die Zahl 1 trägt besitzt er den Bonus.
Kannst du bitte einmal klar und deutlich aufschreiben was du möchtest? Aus deiner Quest aktuell folgendes hervor:
Wenn ein Spieler sich einloggt und in der Datenbank mindestens 1 Account (egal Welcher) das Feld "Bonus" auf 0 stehen hat, bekommt der Account es eingeloggten Spielers das Feld "Bonus" auf 1 gesetzt und der Wert von gold_expire wird um 55 erhöht.

Dein Text ist mMn sehr unverständlich und verwirrend ...
rollback is offline  
Thanks
1 User
Old 06/24/2015, 00:04   #11702
 
elite*gold: 81
Join Date: Jan 2015
Posts: 186
Received Thanks: 34
genau so wie du es wiederholt hast ^^ ich möchte das wenn man sich einloggt und das feld Bonus auf 0 ist zu Bonus 1 geändert wird und das der account dann für einen Tag exp bonus bekommt der exp bonus in der mysql sieht ja so aus : 0000-00-00 00:00:00 , und ich weis nicht wie ich es in die quest eintragen soll das ein tag dazuvaddiert wird.
[TEC]Tigrex is offline  
Old 06/24/2015, 00:11   #11703

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Code:
quest start_bonus begin
	state start begin
		when login with tonumber(mysql_query(string.format("SELECT bonus FROM account.account WHERE id = %s LIMIT 1;", pc.get_account_id()))[1][1]) == 0 begin
			mysql_query(string.format("UPDATE account.account SET bonus = 1, gold_expire = gold_expire+55 WHERE id = %s LIMIT 1;", pc.get_account_id()))
		end
	end
end
rollback is offline  
Thanks
1 User
Old 06/24/2015, 00:22   #11704
 
elite*gold: 81
Join Date: Jan 2015
Posts: 186
Received Thanks: 34
super teste ich sofort aus, aber es ist ja so aufgeteilt: in der datenbank account.account soll die tabellen spalte: "gold_expire" um einen tag verlängert werden. Als standart steht bei gold_expire das drinnen : 0000-00-00 00:00:00 muss ich es dann so einfügen :
Code:
quest start_bonus begin
	state start begin
		when login with tonumber(mysql_query(string.format("SELECT bonus FROM account.account WHERE id = %s LIMIT 1;", pc.get_account_id()))[1][1]) == 0 begin
			mysql_query(string.format("UPDATE account.account SET bonus = 1, gold_expire = gold_expire+0000-00-00 24:00:00 WHERE id = %s LIMIT 1;", pc.get_account_id()))
		end
	end
end
weil diese 0000-00-00 00:00:00 ist ja aufgeteilt in jahre-monate-tage hh-mm-ss
[TEC]Tigrex is offline  
Old 06/24/2015, 09:03   #11705

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by [TEC]Tigrex View Post
super teste ich sofort aus, aber es ist ja so aufgeteilt: in der datenbank account.account soll die tabellen spalte: "gold_expire" um einen tag verlängert werden. Als standart steht bei gold_expire das drinnen : 0000-00-00 00:00:00 muss ich es dann so einfügen :
Code:
quest start_bonus begin
	state start begin
		when login with tonumber(mysql_query(string.format("SELECT bonus FROM account.account WHERE id = %s LIMIT 1;", pc.get_account_id()))[1][1]) == 0 begin
			mysql_query(string.format("UPDATE account.account SET bonus = 1, gold_expire = gold_expire+0000-00-00 24:00:00 WHERE id = %s LIMIT 1;", pc.get_account_id()))
		end
	end
end
weil diese 0000-00-00 00:00:00 ist ja aufgeteilt in jahre-monate-tage hh-mm-ss
Nein, du musst mit der kleinsten angegeben Einheit rechnen, also Sekunden

gold_expire = gold_expire +60*60*24
rollback is offline  
Thanks
1 User
Old 06/24/2015, 11:32   #11706
 
elite*gold: 81
Join Date: Jan 2015
Posts: 186
Received Thanks: 34
Danke dir funktioniert super <3
[TEC]Tigrex is offline  
Old 06/27/2015, 14:03   #11707
 
Chaosnightx3's Avatar
 
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
Kann mir jemand Fix helfen?

Ich kriegen diesen Block nicht fertig, er gibt mir ein Syntax-Error
zurück. (Müsste eig alle Ifs beendet haben, usw.)

Bitte jemand bei Zeit drüber schauen

Bereich:

Chaosnightx3 is offline  
Old 06/27/2015, 14:05   #11708

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by Chaosnightx3 View Post
Kann mir jemand Fix helfen?

Ich kriegen diesen Block nicht fertig, er gibt mir ein Syntax-Error
zurück. (Müsste eig alle Ifs beendet haben, usw.)

Bitte jemand bei Zeit drüber schauen

Bereich:

Du hast 1x "pc,give_item2(2850, 1) " geschrieben.
Für so eine Quest sollte man allerdings Tables benutzen, ist damit deutlich übersichtlicher^^
rollback is offline  
Old 06/27/2015, 14:42   #11709
 
Chaosnightx3's Avatar
 
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
Klappt, danke.

Morgens um 3 Quest schreiben, ist nicht gut.

Ich nutz in NP++ immer die Sprachfunktion LUA.^^
Chaosnightx3 is offline  
Old 06/27/2015, 17:46   #11710
 
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
Quote:
Originally Posted by Chaosnightx
Ich nutz in NP++ immer die Sprachfunktion LUA.^^
Code:
tab = {"ich bin ein tab genannt auch array"}
KΛIƬӨ is offline  
Old 06/27/2015, 22:17   #11711
 
elite*gold: 0
Join Date: Mar 2013
Posts: 58
Received Thanks: 10
Seelenstein 100% Quest

Ja, jedesmal wenn ich auf den Seeli klicke, passiert nix. Type 18 ist eingestellt. In Quest_list eingetragen, sowie funktionen dazu in quest_function

PHP Code:
quest traning_grandmaster_skill begin  
    state start begin  
        
function BuildPerfectMasterSkillList(jobgroup)  
        
GRAND_MASTER_SKILL_LEVEL 30  
        PERFECT_MASTER_SKILL_LEVEL 
40  

        local skill_list 
special.active_skill_list[job+1][group]  
        
local ret_vnum_list = {}  
        
local ret_name_list = {}  

        -- 
test_chat(string.format("job=%d, group=%d"jobgroup))  

        
table.foreach(skill_list,   
        function(
iskill_vnum)   
        
local skill_level pc.get_skill_level(skill_vnum)  

        -- 
test_chat(string.format("[%d]=%d"skill_vnumskill_level))  
        if 
skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level PERFECT_MASTER_SKILL_LEVEL then  

            table
.insert(ret_vnum_listskill_vnum)  
            
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]  
            if 
name == nil then name=skill_vnum end  
            table
.insert(ret_name_listname)  
        
end  
        end
)  
        return {
ret_vnum_listret_name_list}  


        --return {
ret_vnum_listret_name_list}  
        
end  
        when 50513.
use begin  
            local count 
pc.count_item(50513)  
            
pc.setqf("regen_count"count)  
            if 
pc.get_skill_group() == 0 then  
                say
("Du hast noch keine Fertigkeiten!")  
                return  
            
end  
            local result 
regenbogenstein.BuildPerfectMasterSkillList(pc.get_job(), pc.get_skill_group())  
            
local vnum_list result[1]  
            
local name_list result[2]  
            if 
table.getn(vnum_list) == 0 then  
                say
("Du hast keine Fertigkeiten!")  
                return  
            
end  
            local menu_list 
= {}  
            
table.foreach(name_list, function(inametable.insert(menu_listnameend)  
            
table.insert(menu_list"Abbrechen")   
            
local s=select_table(menu_list)  
            if 
table.getn(menu_list) == s then  
                
return  
            
end  
            local skill_name
=name_list[s]  
            
local skill_vnum=vnum_list[s]  
            
say("Möchtest du "..skill_name.." wirklich erhöhen?")  
            
local wahl select("Ja""Nein")  
            if 
wahl == 1 then  
                
if pc.count_item(50513) == pc.getqf("regen_count"then  
                    pc
.set_skill_level(skill_vnumpc.get_skill_level(skill_vnum)+1)   
                    
say(skill_name.." erfolgreich gelesen")  
                else  
                    
say("Buguser bekommen keine P-Skills !")  
                
end  
            
elseif wahl == 2 then  
                
return  
            
end  
            pc
.remove_item(505131)  
        
end  
    end  
end 
synthou1234 is offline  
Old 06/28/2015, 12:01   #11712
 
komplett Lost.'s Avatar
 
elite*gold: 0
Join Date: Jun 2015
Posts: 637
Received Thanks: 183
kann die Warpring quest nicht compilen. (soll per Button aufgehen):

MFG
komplett Lost. is offline  
Old 06/28/2015, 12:54   #11713
wild wild son




 
Nick's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 5,994
Received Thanks: 3,389
Quote:
Originally Posted by #Desert Eagle View Post
kann die Warpring quest nicht compilen. (soll per Button aufgehen):

MFG

Sollte funktionieren, ansonsten schiebe ich es auf meine Müdigkeit.

lg
Nick is offline  
Old 06/29/2015, 03:27   #11714
 
QualKwappe's Avatar
 
elite*gold: 165
Join Date: Mar 2015
Posts: 2,293
Received Thanks: 595
PHP Code:
quest umtausch begin
    state start begin
        when 20086.chat
."Eintauschen" begin 
            say_title
("Eintauschen")
            
say("Hallo " ..pc.get_name(),")
            say("
bei mir kannst du Energiesplitter gegen")
            say("
wertvolle Items ertauschen!")
            say("
Hinter den Items siehst du in Klammern")
            say("
Zahlendas ist die Anzahl wieviel ein Item")
            say("
kostet.")
            say("")
            say("")
            say("
Also was möchtest du eintauschen ?")
            local v = select ("
Pets", "Ringe", "Reittiere", "Uppitems", "Abbrechen")
            elseif v == 1 then
            local a = select ("
>PvPKnuud-Siegel (600)", ">PvMPolarPorkie-Siegel (350)") 
            if v == 1 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 600)
                    pc.give_item2(53008, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast ein Knuud-Siegel erhalten!")
                else
                    return
                end                    
            elseif v == 2 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 350)
                    pc.give_item2(53020, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast ein PolarPorkie-Siegel erhalten!")
                else
                    return
                end                    
            elseif v == 2 then
            local a = select ("
>PvPHalbmondring (PvP) (600)", ">PvMLolli (450)") 
            if v == 1 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 600)
                    pc.give_item2(71135, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast einen Halbmondring erhalten!")
                else
                    return
                end                    
            elseif v == 2 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 350)
                    pc.give_item2(71136, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast einen Lolli erhalten!")
                else
                    return
                end                       
            elseif v == 3 then
            local a = select ("
Panther-Siegel (350)") 
            if v == 1 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 600)
                    pc.give_item2(71176, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast ein Panther-Siegel erhalten!")
                else
                    return
                end                    
              elseif v == 4 then
            local a = select ("
Glyphenstein (300)", "Versteinerte Träne (50)") 
            if v == 1 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 600)
                    pc.give_item2(53008, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast einen Glyphenstein erhalten!")
                else
                    return
                end                    
            elseif v == 2 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 350)
                    pc.give_item2(30186, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast eine Versteinerte Träne erhalten!")
                else
                    return
                end                    
                elseif a == 5 then
                    return
                end
            end
        end
    end
end 
Bekomme jedesmal ein Fehler beim Compilen, weiß jemand weiter?
QualKwappe is offline  
Old 06/29/2015, 14:03   #11715
 
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
Quote:
Originally Posted by faca6 View Post
PHP Code:
quest umtausch begin
    state start begin
        when 20086.chat
."Eintauschen" begin 
            say_title
("Eintauschen")
            
say("Hallo " ..pc.get_name(),")
            say("
bei mir kannst du Energiesplitter gegen")
            say("
wertvolle Items ertauschen!")
            say("
Hinter den Items siehst du in Klammern")
            say("
Zahlendas ist die Anzahl wieviel ein Item")
            say("
kostet.")
            say("")
            say("")
            say("
Also was möchtest du eintauschen ?")
            local v = select ("
Pets", "Ringe", "Reittiere", "Uppitems", "Abbrechen")
            elseif v == 1 then
            local a = select ("
>PvPKnuud-Siegel (600)", ">PvMPolarPorkie-Siegel (350)") 
            if v == 1 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 600)
                    pc.give_item2(53008, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast ein Knuud-Siegel erhalten!")
                else
                    return
                end                    
            elseif v == 2 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 350)
                    pc.give_item2(53020, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast ein PolarPorkie-Siegel erhalten!")
                else
                    return
                end                    
            elseif v == 2 then
            local a = select ("
>PvPHalbmondring (PvP) (600)", ">PvMLolli (450)") 
            if v == 1 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 600)
                    pc.give_item2(71135, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast einen Halbmondring erhalten!")
                else
                    return
                end                    
            elseif v == 2 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 350)
                    pc.give_item2(71136, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast einen Lolli erhalten!")
                else
                    return
                end                       
            elseif v == 3 then
            local a = select ("
Panther-Siegel (350)") 
            if v == 1 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 600)
                    pc.give_item2(71176, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast ein Panther-Siegel erhalten!")
                else
                    return
                end                    
              elseif v == 4 then
            local a = select ("
Glyphenstein (300)", "Versteinerte Träne (50)") 
            if v == 1 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 600)
                    pc.give_item2(53008, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast einen Glyphenstein erhalten!")
                else
                    return
                end                    
            elseif v == 2 then
                if pc.count_item(51001) >= 1 then
                    pc.remove_item(51001, 350)
                    pc.give_item2(30186, 1)
                    say("
Ich danke dirschau doch bald wieder vorbei!")
                    say("")
                    say_reward("
Du hast eine Versteinerte Träne erhalten!")
                else
                    return
                end                    
                elseif a == 5 then
                    return
                end
            end
        end
    end
end 
Bekomme jedesmal ein Fehler beim Compilen, weiß jemand weiter?
PHP Code:
quest umtausch begin
    state start begin
        when 20086.chat
."Eintauschen" begin 
            say_title
("Eintauschen")
            
say("Hallo " ..pc.get_name()..",")
            
say("bei mir kannst du Energiesplitter gegen")
            
say("wertvolle Items ertauschen!")
            
say("Hinter den Items siehst du in Klammern")
            
say("Zahlen, das ist die Anzahl wieviel ein Item")
            
say("kostet.")
            
say("")
            
say("")
            
say("Also was möchtest du eintauschen ?")
            
local v select ("Pets""Ringe""Reittiere""Uppitems""Abbrechen")
            if 
== 1 then
                local a 
select (">PvP< Knuud-Siegel (600)"">PvM< PolarPorkie-Siegel (350)"
                if 
== 1 then
                    
if pc.count_item(51001) >= 1 then
                        pc
.remove_item(51001600)
                        
pc.give_item2(530081)
                        
say("Ich danke dir, schau doch bald wieder vorbei!")
                        
say("")
                        
say_reward("Du hast ein Knuud-Siegel erhalten!")
                    else
                        return
                    
end                    
                
elseif == 2 then
                    
if pc.count_item(51001) >= 1 then
                        pc
.remove_item(51001350)
                        
pc.give_item2(530201)
                        
say("Ich danke dir, schau doch bald wieder vorbei!")
                        
say("")
                        
say_reward("Du hast ein PolarPorkie-Siegel erhalten!")
                    else
                        return
                    
end
                end
            
elseif == 2 then
                local a 
select (">PvP< Halbmondring (PvP) (600)"">PvM< Lolli (450)"
                if 
== 1 then 
                    
if pc.count_item(51001) >= 1 then
                        pc
.remove_item(51001600)
                        
pc.give_item2(711351)
                        
say("Ich danke dir, schau doch bald wieder vorbei!")
                        
say("")
                        
say_reward("Du hast einen Halbmondring erhalten!")
                    else
                        return
                    
end                    
                
elseif == 2 then
                    pc
.remove_item(51001350)
                    
pc.give_item2(711361)
                    
say("Ich danke dir, schau doch bald wieder vorbei!")
                    
say("")
                    
say_reward("Du hast einen Lolli erhalten!")
                else
                    return
                
end                       
            
elseif == 3 then
                local a 
select ("Panther-Siegel (350)"
                if 
== 1 then
                    
if pc.count_item(51001) >= 1 then
                        pc
.remove_item(51001600)
                        
pc.give_item2(711761)
                        
say("Ich danke dir, schau doch bald wieder vorbei!")
                        
say("")
                        
say_reward("Du hast ein Panther-Siegel erhalten!")
                    
end
                end
            
elseif == 4 then
                local a 
select ("Glyphenstein (300)""Versteinerte Träne (50)"
                if 
== 1 then
                    
if pc.count_item(51001) >= 1 then
                        pc
.remove_item(51001600)
                        
pc.give_item2(530081)
                        
say("Ich danke dir, schau doch bald wieder vorbei!")
                        
say("")
                        
say_reward("Du hast einen Glyphenstein erhalten!")
                    else
                        return
                    
end                    
                
elseif == 2 then
                    
if pc.count_item(51001) >= 1 then
                        pc
.remove_item(51001350)
                        
pc.give_item2(301861)
                        
say("Ich danke dir, schau doch bald wieder vorbei!")
                        
say("")
                        
say_reward("Du hast eine Versteinerte Träne erhalten!")
                    else
                        return
                    
end
                end
            
elseif == 5 then return end
        end
    end
end 
Könntest auch einfach

anstatt
Code:
if a == 1 then if pc.count_item(51001) >= 1 then
einfach
Code:
 if a == 1 and pc.count_item(51001) >= 1 then
machen,weil du eh nix returnst.
KΛIƬӨ is offline  
Thanks
1 User
Reply




All times are GMT +1. The time now is 20:43.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.