Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 10:37

  • 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 04/19/2020, 18:34   #12631
 
Noa_'s Avatar
 
elite*gold: 0
Join Date: May 2013
Posts: 605
Received Thanks: 580
Quote:
Originally Posted by levita2 View Post
Nächstes problem xD, bei meiner quest (Regenbogenstein) benötigt man 20k rang-punkte, dass mit dem abziehen habe ich schon hin bekommen, aber mann kann das trotzdem nutzen obwohl man -20k rang-punkte hat, ich hätte es gerne so das man wieder auf neutrale rang-punkte kommen muss das man es erst wieder nutzen kann.
DIE QUEST
Versuch es mal hiermit

Noa_ is offline  
Old 04/30/2020, 23:16   #12632
 
elite*gold: 0
Join Date: Feb 2009
Posts: 75
Received Thanks: 27
Moin

Folgendes Problem:

ganz easy, wenn ich den NPC anklicke und daraufhin das Fenster ''Itemshop'' öffne, passiert einfach nichts, wäre dankbar über eure hilfe

Quote:
quest Coins begin
state start begin

function select_from_big_table(big_table)
local max_per_page = 5
local count = table.getn(big_table)
local n = 1

while true do
local table_part = {}
local m = n + max_per_page - 1
local end_reached = false
if m >= count then
m = count
end_reached = true
end

for i = n, m do
table.insert(table_part, big_table[i])
end

if not end_reached then
table.insert(table_part, "Weiter")
end

table.insert(table_part, "Abbrechen")

local s = select_table(table_part)
local count_table_part = table.getn(table_part)

if s == count_table_part then -- Abbrechen
return nil
elseif s == count_table_part - 1 and not end_reached then -- Weiter
n = n + max_per_page
else
return n + s - 1
end
end

return nil
end


when 9004.chat."Itemshop" begin
local coin_vnum = 3
local categories = {"ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE" }
local shop = {
-- ITEM_KATEGORIE
{
{71051, 10},
{71052, 10}
}
}




local categorie = ingame_itemshop.select_from_big_table(categories)

if categorie == nil then
return
end

local item_select = {}

for i = 1, table.getn(shop[categorie]) do
table.insert(item_select, item_name(shop[categorie][i][1]) .. " (" .. shop[categorie][i][2] .. ")")
end

local item = ingame_itemshop.select_from_big_table(item_select)

if item == nil then
return
end

local item_obj = shop[categorie][item]
local item_vnum = item_obj[1]
local item_cost = item_obj[2]
local item_name = item_name(item_vnum)

say_title("Itemshop:")
say("Möchtest du")
say_item(item_name, item_vnum, "")
say("für " .. item_cost .. " Coins kaufen?")
say("")
if select("Kaufen", "Abbrechen") == 1 then
if pc.count_item(coin_vnum) >= item_cost then
pc.give_item2(item_vnum)
pc.remove_item(coin_vnum, item_cost)
say_title("Itemshop:")
say("Du hast " .. item_name .. " erfolgreich gekauft.")
say("")
else
say_title("Itemshop:")
say("Du besitzt nicht genügend Coins.")
say("")
end
end
end

when NPC.chat."IngameCoins bekommen" begin
local coin_vnum = 3
local factor = 1
local sql = mysql_query("SELECT coins FROM account.account WHERE id = "..pc.get_account_id())
if sql == "ERROR" then
say("Fehler beim Auslesen deiner Coins.")
say("")
return
end
local coins = sql.coins[1]
local allowed = math.floor(coins * factor)
local cost = allowed / factor
say_reward("Du besitzt momentan "..coins.." Coins.")
say("")
say("Davon kannst du dir "..allowed.." IG-Coins kaufen.")
say("")
say("")
say_reward("Möchtest du "..allowed.." IG-Coins für "..cost.." Coins kaufen?")
say("")
if select("Kaufen", "Abbrechen") == 1 then
mysql_query("UPDATE account.account SET coins = "..(coins-cost).." WHERE id = "..pc.get_account_id())
while allowed > 0 do
local packet = 200
if packet > allowed then
packet = allowed
end
allowed = allowed - packet
pc.give_item2(coin_vnum, packet)
end
end
end
end
end
akaschikibaba18denis is offline  
Old 05/01/2020, 00:44   #12633
 
Metin2kenner100's Avatar
 
elite*gold: 0
Join Date: Jul 2010
Posts: 254
Received Thanks: 18

:325:syntax error : [string "start"]:278: <eof> expected near `elseif'
Abort (core dumped)

der haut mir immer diesen Fehler rein, verstehe nur nicht warum? alle Ends sollten richtig sein denke ich
Metin2kenner100 is offline  
Old 07/05/2020, 04:24   #12634
 
TommyH99's Avatar
 
elite*gold: 0
Join Date: Jun 2012
Posts: 141
Received Thanks: 12
Kann mir wer bei der GM-Tool Quest helfen?

PHP Code:
quest gmtool begin
    state start begin
        when 36079.
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 
== 1 then
                say
("Willkommen im Team und viel Spaß")
                while 
pc.get_level() < 250 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({505123607436075360763607736078, ({36070360713607236073})[pc.get_job()+1], ({11971119721197311974})[pc.get_job()+1]}) do
                    
pc.give_item2(vnum)
                
end
                
if gmtool.to_mainmenu() then
                    gmtool
.mainmenu()
                
end
                
return
            elseif 
== 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 
== 3 then
                gmtool
.noticemenu()
                return
            elseif 
== 4 then
                local s 
select("Spawn Item-Zerstörer""Spawn Gemi""Spawn OX-Blume""Tag/Nacht""Unsichtbar/Sichtbar""Abbrechen")
                if 
>= and <= 3 then
                    mob
.spawn(({20363900320358})[s], pc.get_local_x(), pc.get_local_y(), 10)
                    if 
gmtool.to_mainmenu() then
                        gmtool
.mainmenu()
                    
end
                    
return
                elseif 
== 4 then
                    local s 
select("Tag""Nacht""Hauptmenue""Abbrechen")
                    if 
== 1 then
                    
--
                    elseif 
== 2 then
                    
--
                    elseif 
== 3 then
                        gmtool
.mainmenu()
                        return
                    else
                        return
                    
end
                
elseif == 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 
== 1 then
                notice_all
(text)
                if 
gmtool.to_mainmenu() then
                    gmtool
.mainmenu()
                
end
                
return
            elseif 
== 2 then
                gmtool
.noticemenu()
                return
            elseif 
== 3 then
                gmtool
.mainmenu()
                return
            else
                return
            
end
        end
        
function to_mainmenu()
            return 
select("Hauptmenue""Abbrechen") == 1
        end
    end
end 
TommyH99 is offline  
Old 08/13/2020, 02:51   #12635

 
G.I Duke's Avatar
 
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
Ich hoffe mal dass hier überhaupt noch wer reinschaut
Keine Ahnung ich checks nicht, habs 200x kontrolliert aber mein Brain macht
bei der Hitze wohl nicht mehr richtig mit xD

Error occured on compile


Vielen Dank im voraus!
G.I Duke is offline  
Old 08/13/2020, 09:22   #12636
 
elite*gold: 0
Join Date: Oct 2012
Posts: 52
Received Thanks: 11
Quote:
Originally Posted by G.I Duke View Post
Ich hoffe mal dass hier überhaupt noch wer reinschaut
Keine Ahnung ich checks nicht, habs 200x kontrolliert aber mein Brain macht
bei der Hitze wohl nicht mehr richtig mit xD

Error occured on compile


Vielen Dank im voraus!
Moin, deine if Anweisungen haben teilwiese kein else/elseif. Muss gestehen, dass ich die Sprache kaum kenne aber aus Interesse quer gelesen habe. Auf der ersten Seite war das einer der Fehler. Vielleicht hilft es ja, schaden wirds auf keinen Fall.
Klugscheißer is offline  
Old 08/13/2020, 09:37   #12637

 
G.I Duke's Avatar
 
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
Quote:
Originally Posted by Klugscheißer View Post
Moin, deine if Anweisungen haben teilwiese kein else/elseif. Muss gestehen, dass ich die Sprache kaum kenne aber aus Interesse quer gelesen habe. Auf der ersten Seite war das einer der Fehler. Vielleicht hilft es ja, schaden wirds auf keinen Fall.
Das brauchen sie auch nicht, ich arbeite viel mit einzelnen if Abfragen, wenn ich
zB diese Standard "Schließen" oder "Okay" Buttons anders nennen will. Hat bisher
immer funktioniert und ein else ist auch nicht nötig, ich starte das if für
ein select. wie viele abfragen danach kommen spielt keine rolle solange die Abfrage
beendet wird. aber trotzdem danke fürs drüber schauen im Normalfall weiß man
bei der Fehlermeldung immer dass es ein fehlendes "end" ist, ich konnte jedoch
keine Stelle finden in der es fehlen sollte.

€: Problem aus meinem Vorpost besteht immernoch

grüzie
G.I Duke is offline  
Old 08/13/2020, 13:39   #12638


 
elite*gold: 1810
Join Date: Jan 2012
Posts: 2,180
Received Thanks: 1,617
Quote:
Originally Posted by G.I Duke View Post
Das brauchen sie auch nicht, ich arbeite viel mit einzelnen if Abfragen, wenn ich
zB diese Standard "Schließen" oder "Okay" Buttons anders nennen will. Hat bisher
immer funktioniert und ein else ist auch nicht nötig, ich starte das if für
ein select. wie viele abfragen danach kommen spielt keine rolle solange die Abfrage
beendet wird. aber trotzdem danke fürs drüber schauen im Normalfall weiß man
bei der Fehlermeldung immer dass es ein fehlendes "end" ist, ich konnte jedoch
keine Stelle finden in der es fehlen sollte.

€: Problem aus meinem Vorpost besteht immernoch

grüzie
Deine Quest hat keine Fehler. Bin eben alles durchgegangen und hab keinerlei Syntax- oder Logikfehler gefunden. Auch beim Kompilieren treten keine error stacks auf.
MaxChri is offline  
Thanks
1 User
Old 08/13/2020, 14:01   #12639

 
G.I Duke's Avatar
 
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
Quote:
Originally Posted by MaxChri View Post
Deine Quest hat keine Fehler. Bin eben alles durchgegangen und hab keinerlei Syntax- oder Logikfehler gefunden. Auch beim Kompilieren treten keine error stacks auf.
Ja ich hab mit ein zwei anderen drüber geschaut und nach dem ich einen Satz
gekürzt hatte. Und die fehlenden Worte im Satz darunter davor hing ging es.
Dann hatte ich auch keine "Error occured on compile xy.quest" fehler..

hier mal der Unterschied:

Alt
PHP Code:
                    say("bitte gut darum. Ich habe sie selbst gezüchtet und groß")
                    
say("gezogen."
Neu
PHP Code:
                    say("bitte gut darum. Ich habe sie selbst gezüchtet")
                    
say("und groß gezogen."
G.I Duke is offline  
Thanks
1 User
Old 08/15/2020, 19:35   #12640


 
danke.'s Avatar
 
elite*gold: 71
The Black Market: 101/0/0
Join Date: Mar 2012
Posts: 921
Received Thanks: 305
Gewöhnt euch mal an bei Texten die Klammern wegzulassen ��
say"text"
reicht vollkommen und spart Ressourcen
danke. is offline  
Old 08/23/2020, 01:31   #12641

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by .Chipp' View Post
Gewöhnt euch mal an bei Texten die Klammern wegzulassen ��
say"text"
reicht vollkommen und spart Ressourcen
Zur Laufzeit komplett irrelevant. Die einzigen "Ressourcen" die du damit sparst sind Speicherverbrauch auf der Festplatte und weniger Zeichen die der Compilerverarbeiten muss (was aber zur LAUFZEIT nur beim einmalig beim ersten Laden der Datei einen Unterschied macht).

Du könntest genauso gut sagen man soll seine ganze Quest in einer Zeile schreiben. Spart die gleiche Art an Ressourcen (Festplattenspeicher und Compileroverhead).
Letztendlich sollte jeder selbst und bewusst entscheiden, wie er es schreiben möchte. Dann aber konsequent über alle Funktionen mit nur einem Argument hinweg und nicht nur bei say.
rollback is offline  
Old 09/02/2020, 16:00   #12642
 
Yoscha's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 195
Received Thanks: 3
Jo moin.
Ich bin dumm und fange erst an mit dem Quest schreiben.
Entsprechend viele Fehler mache ich, daher wende ich mich jetzt mit einem meiner Probleme hier an diese Forumssparte.

Es ist eigentlich eine recht simple Quest, die ich erstellen möchte.
Im Grunde ist es ein debiler Warpring, ich will dass man bei Benutzung des Items direkt in die jeweilig zugehörige Stadt Map1 geportet wird, vorher allerdings noch die Koordinaten des Benutzers Abgefragt und gespeichert werden, damit man sich genau an den Ausgangsort wieder zurückteleportieren kann.

Hab mich bisschen umgeguckt in anderen Quests, aber es will nicht funktionieren.

Yoscha is offline  
Old 09/02/2020, 16:50   #12643


 
elite*gold: 29
The Black Market: 230/0/0
Join Date: Oct 2012
Posts: 4,938
Received Thanks: 764
Quote:
Originally Posted by Yoscha View Post
Jo moin.
Ich bin dumm und fange erst an mit dem Quest schreiben.
Entsprechend viele Fehler mache ich, daher wende ich mich jetzt mit einem meiner Probleme hier an diese Forumssparte.

Es ist eigentlich eine recht simple Quest, die ich erstellen möchte.
Im Grunde ist es ein debiler Warpring, ich will dass man bei Benutzung des Items direkt in die jeweilig zugehörige Stadt Map1 geportet wird, vorher allerdings noch die Koordinaten des Benutzers Abgefragt und gespeichert werden, damit man sich genau an den Ausgangsort wieder zurückteleportieren kann.

Hab mich bisschen umgeguckt in anderen Quests, aber es will nicht funktionieren.

Du kannst die Quest Funktion warp_to_village verwenden, um jeden in sein Reich zu schicken:

Code:
quest teleport begin
	state start begin
		when 2.use begin
			warp_to_village()
		end
	end
end
Beim speichern der Koordinaten bin ich mir tatsächlich gar nicht sicher, wie man das am besten umsetzt. Die Koordinaten müssen ja irgendwo gespeichert werden, so dass man diese wieder abrufen kann. Man könnte das ganze mit der Datenbank "verknüpfen" und die letzte Koordinate in einer Tabelle abspeichern und diese dann abrufen. Ob das allerdings die "beste" Methode ist, weiß ich nicht. Aber falls du es mal versuchen möchtest, kannst du dir dieses Thema mal ansehen: .
ライト is offline  
Thanks
1 User
Old 09/05/2020, 10:44   #12644
 
Yoscha's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 195
Received Thanks: 3
Habs selbst hinbekommen. Wuhu

Danke an .Chipp für die Hilfe bei der anderen Quest! <3
Yoscha is offline  
Old 09/05/2020, 20:51   #12645


 
danke.'s Avatar
 
elite*gold: 71
The Black Market: 101/0/0
Join Date: Mar 2012
Posts: 921
Received Thanks: 305
Quote:
Originally Posted by Yoscha View Post
Quests:



syntax error: [String "start3"]:20: `)´ unexpected symbol near `when´eventpanel.quest:527:Error occured on compile eventpanel.quest

Hab ewig rumprobiert jetzt, aber finde den Fehler nicht :/
Hilfe!
So klappt das:

Das "when" bei Zeile 397 wurde nicht beendet
danke. is offline  
Thanks
1 User
Reply




All times are GMT +2. The time now is 10:37.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.