[SERVICE] Die Questkontrolle

06/23/2015 21:39 rollback#11701
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 ...
06/24/2015 00:04 [TEC]Tigrex#11702
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.
06/24/2015 00:11 rollback#11703
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
06/24/2015 00:22 [TEC]Tigrex#11704
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
06/24/2015 09:03 rollback#11705
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
06/24/2015 11:32 [TEC]Tigrex#11706
Danke dir funktioniert super <3
06/27/2015 14:03 Chaosnightx3#11707
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:

06/27/2015 14:05 rollback#11708
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^^
06/27/2015 14:42 Chaosnightx3#11709
Klappt, danke.

Morgens um 3 Quest schreiben, ist nicht gut.:D

Ich nutz in NP++ immer die Sprachfunktion LUA.^^
06/27/2015 17:46 KΛIƬӨ#11710
Quote:
Originally Posted by Chaosnightx
Ich nutz in NP++ immer die Sprachfunktion LUA.^^
Code:
tab = {"ich bin ein tab genannt auch array"}
06/27/2015 22:17 synthou1234#11711
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 
06/28/2015 12:01 komplett Lost.#11712
kann die Warpring quest nicht compilen. (soll per Button aufgehen):

MFG
06/28/2015 12:54 Nick#11713
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
06/29/2015 03:27 QualKwappe#11714
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?
06/29/2015 14:03 KΛIƬӨ#11715
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.