[SERVICE] Die Questkontrolle

10/19/2015 22:45 Chaosnightx3#11941
Quote:
Originally Posted by Naverwy View Post
Code:
		when 20011.chat."Die Gegenstände" begin
			if pc.get_level() >= 95 then
				say("Du bist leider zu hoch für diese Aufgabe.")
				say("Du bist Level "..pc.get_level().."")
				say("und darfst maximal Level 94 sein.")
				say("Versuch doch nicht zu betrügen!")
			else
				if pc.count_item(71051) >124 and pc.count_item(50513) >49 and pc.count_item(11032) >34 then
					say("Welch tolle Gegenstände, ich werde")
					say("diese sofort anwenden und daraus euren")
					say("lang ersehnten Regenbogenstein herstellen.")
					say("Jedoch müsst ihr eine Stunde warten, bis ich")
					say("mit der Herstellung fertig bin.")
					set_state(regenbogenstein)
					pc.remove_item(71051, 125)
					pc.remove_item(50513. 50)
					pc.remove_item(11032, 35)
					pc.setqf("__regenbogen",get_global_time())
				else
					say("Ihr habt die Items nicht!")
				end
			end
		end
Den Code an sich lasse ich jetzt mal unberührt. Es ist zwar Auslegungssache, dennoch würde ich dir Folgendes ans Herz legen:

Code:
>   94 	statt 	>=  95 
>= 125 	statt 	>  124 
>=  50 	statt 	>   49 
>=  35 	statt 	>   34
€:

Code:
					pc.remove_item(50513. 50)
Da hat sich wohl ein Tippfehler eingeschlichen.

lg

jetzt sehe ich ihn... gut, hätte Funktion ansich so funktioniert?
Danke für den tipp :) Habe das bisher immer so gemacht; Gab nie Probleme ^^
10/20/2015 10:09 rollback#11942
Quote:
Originally Posted by Chaosnightx3 View Post
jetzt sehe ich ihn... gut, hätte Funktion ansich so funktioniert?
Danke für den tipp :) Habe das bisher immer so gemacht; Gab nie Probleme ^^
Probleme gibt es bei den abfragen nicht, allerdings ist es immer sinnvoll sie so zu schreiben wie man es auch sagen würde.

Beispiel:

Wenn der Spieler über dem maxlvl ist, dann...

vs.

Wenn der Spieler über oder gleich dem maxlvl+1 ist, dann...


Und jetzt überleg dir, was mehr Sinn macht ;)
10/21/2015 18:06 Chaosnightx3#11943
Hab meine Code Varainte.. das passt scho erstmal.^^

Jetzt mal was anderes:


was ich jetzt net kapiere...

PHP Code:
SYSERR: Oct 21 18:03:27 :: RunState: LUA_ERROR: attempt to call a string value
SYSERR
: Oct 21 18:03:27 :: WriteRunningStateToSyserr: LUA_ERROR: quest rainbowstonecreate.stonerainbow click 
hat bisher in jeder Quest funktioniert, außer bei der...
da closed sich das quest fenster einfach wieder...
10/24/2015 03:49 [Flash]#11944
PHP Code:
                local prank = 1
                local color_r 
= 1
                local color_b 
= 1
                local color_g 
= 1
                mysql_query
("UPDATE player.player SET prank = "..prank..", color_r = "..color_r..", color_b = "..color_b..", color_g = "..color_g.."  WHERE id = "..pc.get_player_id().." LIMIT 1;") 
Kann mir jemand diesen Code ergänzen ?
Ich möchte prank nicht auf 1 setzen sonder die spalte des spieler leeren
10/24/2015 09:54 rollback#11945
Set prank = null
10/26/2015 01:26 Resqu#11946
Hallo Habe Ein problemm mit Eis Run Quest Wenn ich in gruppe bin Klick ich denn Npc an und drücke ja ich will beitretten und dann tut sich nicht er portet mich nicht rein wo liegt das Problemm

EIS RUN Quest


2te Quest GK-Manager

in Server Syserr Sagt er mir

PHP Code:
SYSERR: Oct 26 00:12:57.905552 :: RunState: LUA_ERROR: [string "gkmanager"]:1: attempt to concatenate field `get_player_id' (a function value)
SYSERR: Oct 26 00:12:57.905581 :: WriteRunningStateToSyserr: LUA_ERROR: quest gkmanager.start click 
Hab auch mit .lua und .quest gemacht und PC.get_player_id ist in Quest Funktion drine

GK-Manager Quest

10/26/2015 14:43 Lefloyd#11947
@Resqu: GK-Manager-Quest: Du musst bei Funktionen ein () hinten dran setzen... also pc.get_player_id() und auch pc.get_guild(). Hast du bei Nemeres auch nen Ninja und Schami und so dabei und Level passen?

Kind Regards
10/26/2015 17:13 Resqu#11948
@Lefloyd: ja Habe mit Passenden lv und Ninja schami etc alles dabei
und GK manager geht immer noch net -.-
10/27/2015 12:06 Kenny36#11949
PHP Code:
quest adventskalender begin
    state start begin
        when login begin
            
if os.date("%m")=="12" then
                
if not adventskalender.file_exists("/usr/home/game/share/locale/germany/quest/Adventskalender/"..pc.get_account_id()) then
                    adventskalender
.create_txt()
                
end
                MY_PACK 
= adventskalender.get_txt() -- 1#2#3#4#5
                
cmdchat("Adventskalender index/"..q.getcurrentquestindex())
                
cmdchat("Adventskalender opened/"..MY_PACK)
            
end
            
if os.date("%m")!="12" and MY_PACK!="0" then
                adventskalender
.empty_txt()
                for 
i=1, 24, 1 do
                    
pc.setqf(tostring(i), 0)
                
end
            end
        end
        when button begin
            local TODAY 
= tonumber(os.date("%d"))
            
local INPUT = tonumber(getinput("Adventskalender input/"))
            if 
INPUT == pc.getqf(tostring(INPUT)) then return end
            pc
.setqf(tostring(INPUT), INPUT)
            if 
INPUT > TODAY then
                syschat
("Dieses Türchen kannst du noch nicht öffnen!")
                return
            
end
            local MY_PACK 
= adventskalender.get_txt()
            
            
local PRESENTS = 
                            {
                                [
1] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
2] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
3] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
4] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
5] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
6] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
7] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
8] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
9] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
10] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
11] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
12] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
13] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
14] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
15] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
16] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
17] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
18] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
19] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
20] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
21] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
22] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
23] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                                [
24] = {50035, 50036, 50031, 50025, 50024, 50031, 50032},
                            }
            
local ITEMS = PRESENTS[INPUT][number(1, table.getn(PRESENTS[INPUT]))]
            
pc.give_item2(ITEMS, 1)
            
syschat("In deinem "..INPUT.." Türchen war ein(e) "..item_name(ITEMS).." drinne!")
            if 
MY_PACK=="0" then
                
new = INPUT
                adventskalender
.set_txt(new)
            else
                new = (
MY_PACK.."#"..INPUT)
                
adventskalender.set_txt(new)
            
end
            cmdchat
("Adventskalender opened/"..new)
        
end
        
function set_txt(v)
            
local advent = io.open("/usr/home/game/share/locale/germany/quest/Adventskalender/"..pc.get_account_id().."/adventskalender.txt", "w+")
            
advent:write(v)
            
advent:flush()
            
advent:close()
        
end
        
function get_txt()
            
local advent= io.open("/usr/home/game/share/locale/germany/quest/Adventskalender/"..pc.get_account_id().."/adventskalender.txt", "r")
            for 
line in advent:lines() do
                return 
line
            end
        end
        
function create_txt()
            if 
not adventskalender.file_exists("/usr/home/game/share/locale/germany/quest/Adventskalender") then
                os
.execute("mkdir /usr/home/game/share/locale/germany/quest/Adventskalender")
            
end
            os
.execute("mkdir /usr/home/game/share/locale/germany/quest/Adventskalender/"..pc.get_account_id())
            
local advent = io.open("/usr/home/game/share/locale/germany/quest/Adventskalender/"..pc.get_account_id().."/adventskalender.txt", "w+")
            
advent:write("0")
            
advent:flush()
            
advent:close()
        
end
        
function empty_txt()
            
local advent = io.open("/usr/home/game/share/locale/germany/quest/Adventskalender/"..pc.get_account_id().."/adventskalender.txt", "w+")
            
advent:write("0")
            
advent:flush()
            
advent:close()
        
end
        
function file_exists(ort)
            if 
type(ort)!="string" then return false end
            
return os.rename(ort,ort) and true or false
        end
    end
end 
Kann mir einer vielleicht dazu helfen? wo die Fehler in den 2 Quest ist ?


PHP Code:
 quest spongecreatic begin
    state start begin
        when 9006.chat
."Der Boss" begin
            spongecreatic
.menu()
        
end
        
function menu()
            
say('Bitte Wählen Sie eine Option aus')
            
local a = select("Yang spenden", "Vorhandenes Geld ansehen","Abbrechen")
            if 
a == 2 then spongecreatic.ansehen() end
            
if a == 3 then return end
            
if a == 1 then
                say
('Gebe hier deinen Betrag an')
                
local inp = tonumber(input())
                if 
inp < 0 or inp == "" then
                    say
('Eingabe ungültig!')
                    return
                
end
                
if inp > pc.get_money() then return end
                
if (game.get_event_flag('geld') + inp) > 1000000000 then
                    game
.set_event_flag('mil',game.get_event_flag('mil')+1)
                    
game.set_event_flag('geld', game.get_event_flag('geld') + inp - 1000000000)
                else    
                    
game.set_event_flag('geld',game.get_event_flag('geld')+inp)
                
end    
                pc
.change_money(-inp)
                
say('Geld wurde erfolgreich gespendet!')
                if 
game.get_event_flag('mil') >= 5 then
                    game
.set_event_flag('mil', 0)
                    
spongecreatic.spawn()
                
end    
            end    
        end
        
function ansehen()
            
local text = 'Derzeit sind '..game.get_event_flag('geld')..' Yang vorhanden'
            
if game.get_event_flag('mil') > 0 then
                text 
= 'Derzeit sind '..game.get_event_flag('mil')..' Milliarden & '..game.get_event_flag('geld')..' Yang vorhanden'
            
end    
            say
(text)
        
end
        
function spawn()
            
local t,u = {1,2,3,4,5,6,7,8,9},{[1] = {x,y,index},[2] = {x,y,index},[3] = {x,y,index},}
            
local z,a = number(1,table.getn(t)),'m'
            
local o = io.open('locale/germany/monster.txt','w')
            for 
i = 1, 3 do
                
a = a..' '..u[i][1]..' '..u[i][2]..' 0 0 0 0 '..(z*100)..'s 100 1 '..t[z]
                
o:write(a)
                
o:close()
                
a = 'm'
                
regen_in_map(u[i][3], 'locale/germany/monster.txt')
            
end
        end    
    end
end 
10/30/2015 22:40 TommyH99#11950
Kann mir bitte einer den Fehler rausbauen? komme nicht dahinter was da falsch ist. Danke

Quote:

quest gm_tool begin
state start begin
when 80002.use begin
if not pc.is_gm() then
say("Du hast nicht die dazu nötige Berechtigung")
item.remove()
return
end
gmtool.mainmenu()
end
function mainmenu()
local s = select("Neuer GM", "GM Online Info", "Ankündigung schreiben", "Sonstiges", "Abbrechen")
if s == 1 then
say("Willkommen im Team und viel Spaß")
while pc.get_level() < 150 do
pc.give_exp2(pc.get_next_exp()-pc.get_exp())
end
pc.change_alignment(20000)
pc.change_gold(1999888777-pc.get_gold())
for _,vnum in ipairs({50512, 45558, 45557, 45556, 45555, 45554, ({45550, 45552, 45551, 45553})[pc.get_job()+1], ({11971, 11972, 11973, 11974})[pc.get_job()+1]}) do
pc.give_item2(vnum)
end
if gmtool.to_mainmenu() then
gmtool.mainmenu()
end
return
elseif s == 2 then
notice_all(pc.get_name().." ist Online! Er/Sie ist nun für Eure Fragen verfügbar.")
if gmtool.to_mainmenu() then
gmtool.mainmenu()
end
return
elseif s == 3 then
gmtool.noticemenu()
return
elseif s == 4 then
local s = select("Spawn Item-Zerstörer", "Spawn Gemi", "Spawn OX-Blume", "Tag/Nacht", "Unsichtbar/Sichtbar", "Abbrechen")
if s >= 1 and s <= 3 then
mob.spawn(({20363, 9003, 20358})[s], pc.get_local_x(), pc.get_local_y(), 10)
if gmtool.to_mainmenu() then
gmtool.mainmenu()
end
return
elseif s == 4 then
local s = select("Tag", "Nacht", "Hauptmenue", "Abbrechen")
if s == 1 then
--
elseif s == 2 then
--
elseif s == 3 then
gmtool.mainmenu()
return
else
return
end
elseif s == 5 then
--
if gmtool.to_mainmenu() then
gmtool.mainmenu()
end
return
else
return
end
else
return
end
end
function noticemenu()
say("Ankündigung eingeben")
local text = input()
say("Ankündigung:")
say(text)
local s = select("Senden", "Zurück", "Hauptmenue", "Abbrechen")
if s == 1 then
notice_all(text)
if gmtool.to_mainmenu() then
gmtool.mainmenu()
end
return
elseif s == 2 then
gmtool.noticemenu()
return
elseif s == 3 then
gmtool.mainmenu()
return
else
return
end
end
function to_mainmenu()
return select("Hauptmenue", "Abbrechen") == 1
end
end
end
10/31/2015 14:09 Salep#11951
Hab bei dieser Quest hier :
Code:
quest gluehwein begin
	state start begin
		when 50216.use begin
		pc.give_item2(50216 , 10)
		affect.add_collect(apply.MAX_TP, 2500, 60*60*24*365*60)
		pc.remove_item(50216 , 1)
		end
	end
end
dass Problem das er den Boni nicht gibt.
Syserr: affect_add_collect: invalid argument
Obwohl es affect.add_collect gibt.
10/31/2015 20:17 Insanity​#11952
Quote:
Originally Posted by Salep View Post
Hab bei dieser Quest hier :
Code:
quest gluehwein begin
	state start begin
		when 50216.use begin
		pc.give_item2(50216 , 10)
		affect.add_collect(apply.MAX_TP, 2500, 60*60*24*365*60)
		pc.remove_item(50216 , 1)
		end
	end
end
dass Problem das er den Boni nicht gibt.
Syserr: affect_add_collect: invalid argument
Obwohl es affect.add_collect gibt.
Alternativ kannst du auch einfach das untere dafür nutzen.
Quote:
affect.add_collect(1,1000,60*60*24*365*60)
11/01/2015 00:55 Rofelmau#11953
musst mal in deine quest_lib.lua rein schauen da stehen die alle, glaube apply.MAX_TP gibt es nicht, müsste MAX-HP oder so heißen
11/01/2015 01:32 Salep#11954
Quote:
Originally Posted by Insanity​ View Post
Alternativ kannst du auch einfach das untere dafür nutzen.
Quote:
Originally Posted by Rofelmau View Post
musst mal in deine quest_lib.lua rein schauen da stehen die alle, glaube apply.MAX_TP gibt es nicht, müsste MAX-HP oder so heißen
Insanity, deine Variante würde funktionieren , danke.
Rofelmau , danke das war mein Fehler :o

Wäre es noch Möglich so anzupassen, das man das Item nur alle 10h verwenden kann? So weit war ich beim questen noch nicht :o
11/01/2015 14:05 Rofelmau#11955
Quote:
Originally Posted by Salep View Post
Insanity, deine Variante würde funktionieren , danke.
Rofelmau , danke das war mein Fehler :o

Wäre es noch Möglich so anzupassen, das man das Item nur alle 10h verwenden kann? So weit war ich beim questen noch nicht :o
Ja kann man
PHP Code:
quest gluehwein begin
    state start begin
        when 50216.
use begin
            
if pc.getqf("use") <= get_time() then
                pc
.give_item2(50216 , 10)
                
affect.add_collect(apply.MAX_TP, 2500, 60*60*24*365*60)
                
pc.remove_item(50216 , 1)
                
pc.setqf("use",get_time()+60*60*10)
            else
                
chat("dieses item kann nur alle 10 stunden genutzt werden")
            
end
        end
    end
end