Achivement

11/16/2014 23:48 IceCreamx3#1
Problem: Egal welches Monster ich kille, es kommt unten rechts
"Achivement erreicht". Zwar werden mir keine Punkte dafür gutgeschrieben, aber es nervt, da es bei jedem Monster kommt.

Wenn ich dann einen Sensi kille, bekomm ich bspw überhaupt keine Punkte.

Das hier habe ich eingefügt: [Only registered and activated users can see links. Click Here To Register...]

PHP Code:
quest achievement begin
    state start begin
        
function get_points()
            return 
tonumber(mysql_query("select achievement from player.player where id = ".. pc.get_player_id() ..";")[1][1]) or 0
        end
        
function GetInput(value)
            
cmdchat("GetInputStart")
            
local ret input(cmdchat(value))
            
cmdchat("GetInputStop")
            return 
ret
        end
        
function set_points(p)
            
mysql_query("update player.player set achievement = ".. .." where id = ".. pc.get_player_id() ..";")
        
end
        
        when 20095.chat
."Achievementshop" begin
            cmdchat
("SetIsNpc")
            
npc.open_shop(49)
            
setskin(NOWINDOW)
            
cmdchat("SetPrice 100|100|100|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0")
        
end
        when login begin
            cmdchat
("SetQuestIndex "..q.getcurrentquestindex())
            
cmdchat("setPP "..pc.getqf("achievement"))
            
loop_timer("update"4)
            if 
pc.getqf("first") == 0 then
                pc
.setqf("achievement"pc.getqf("achievement")+10)
                
cmdchat("achievement Dein_erster_Login%".. pc.getqf("achievement"))
                
pc.setqf("first",1)
            
end
        end
        when update
.timer begin
            cmdchat
("setPP "..pc.getqf("achievement"))
        
end
        when button 
or info begin
            local items 
= {
                [
1]={191100},
                [
2]={291100},
                [
3]={391100},
            }
            
local slot tonumber(achievement.GetInput("GetInput"))+1
            
if pc.getqf("achievement") >= items[slot][3then
                pc
.setqf("achievement"pc.getqf("achievement")-items[slot][3])
                
cmdchat("setPP "..pc.getqf("achievement"))
                
pc.give_item2(items[slot][1], items[slot][2])
            else
                
cmdchat("NieMamPP")
            
end
        end
        
        when kill with not npc
.is_pc() and pc.getqf(npc.get_race()) == 0 begin
            local data 
= {
                [
1093] = 3,
                [
591] = 1,
                [
691] = 1,
                [
2191] = 2,
                [
1304] = 2,
                [
2206] = 2,
                [
1901] = 2,
                [
2091] = 2,
                [
1191] = 3,
                [
2307] = 2,
                [
2493] = 4,
                [
2598] = 4,
                [
8027] = 1,
                [
8051] = 1,
                [
8052] = 1,
                [
8053] = 1,
            }
            
local v npc.get_race()
            
local killcount pc.getqf(.."_kill")
            
local p data[v] or 1000            
            cmdchat
("setachieve ".. pc.getqf("achievement") + p)
            
cmdchat("achievement ".. mob_name(v) .."_getötet#".. killcount .."%".. pc.getqf("achievement") + .."")
            
pc.setqf("achievement"pc.getqf("achievement") + data[v])
        
end
    end
end 
E:

Syserr:

Code:
1124 15:00:23420 :: Unknown Server Command setachieve 1026 | setachieve
1124 15:00:31823 :: GRANNY: r:/granny/rt/granny_file_info.cpp(145): File has run-time type tag of 0x8000000f, which doesn't match this version of Granny (0x80000010).  Automatic conversion will be attempted.
1124 15:01:46532 :: Unknown Server Command setachieve 27 | setachieve
1124 15:01:52848 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\project\metin2\main\assets\npc\lion\lion.psd
1124 15:01:52907 :: CInstanceBase::PushTCPState Ç÷¹À̾î Àڽſ¡°Ô À̵¿ÆÐŶÀº ¿À¸é ¾ÈµÈ´Ù!
1124 15:01:26099 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:27155 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:27188 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:27485 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:27584 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:27617 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:27931 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:27997 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:28195 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:37898 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:40736 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:41824 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:41923 :: Unknown Server Command setachieve 1027 | setachieve
1124 15:01:41989 :: Unknown Server Command setachieve 1027 | setachieve
Heute spuckt die Syserr (endlich) was aus.
Trz weiß ich nicht, wie ich das fixxe.

Bitte Post Nr. 12 beachten!
11/18/2014 22:20 IceCreamx3#2
Weiß jemand, woran der Fehler liegt/liegen kann?

Bin für jede Antwort dankbar!
11/24/2014 15:11 IceCreamx3#3
up
11/24/2014 16:13 DerForenLeser#4
cmdchat("achievement ".. mob_name(v) .."_getötet#".. killcount + 1 .."%".. pc.getqf("achievement") + p .."")
Ist die Zeile nicht dafür ausschlaggebend, dass es jedes Mal angezeigt wird?

Warum es beim Sensi so ist, kann ich mir gerade nicht erklären. Du tötest den nicht immer nur im DT oder? Könnte eine eventuelle Fehlerquelle sein.
11/25/2014 09:39 IceCreamx3#5
Hm, dachte die Zeile bezieht sich auf die unten angeführten Mobs.

Nein, nein.
Den Sensi kille ich immer nur Map1 - dafür lasse ich ihn spawnen.

Danke
11/25/2014 12:41 Zaturix#6
PHP Code:
Unknown Server Command setachieve 1027 setachieve 
Das ist dein Fehler.
setachieve wird nirgends in deinem Client definiert.

Mach mal in deiner Quest aus "setachieve" "setachievment"

Wenn es immer noch nicht geht machst du drauß "achievment"


Mit freundlichen Grüßen

€: Sehe gerade du hast hier
PHP Code:
when kill with not npc.is_pc() and pc.getqf(npc.get_race()) == 0 begin
            local data 
= {
                [
1093] = 3,
                [
591] = 1,
                [
691] = 1,
                [
2191] = 2,
                [
1304] = 2,
                [
2206] = 2,
                [
1901] = 2,
                [
2091] = 2,
                [
1191] = 3,
                [
2307] = 2,
                [
2493] = 4,
                [
2598] = 4,
                [
8027] = 1,
                [
8051] = 1,
                [
8052] = 1,
                [
8053] = 1
1027 eingetragen..Ob es daran liegt weiss ich nicht bin kein Quester :)
11/25/2014 15:35 IceCreamx3#7
Danke, werde ich später gleich mal versuchen.

Wo siehst du die Vnum 1027? Bin ich blind, oder ?

E:
Alle drei Möglichkeiten bringen leider nichts.
Bin weiterhin ratlos.
11/26/2014 19:27 IceCreamx3#8
up
11/26/2014 19:32 .Despero™#9
Hast du auch das Achievment gui usw von real freak eingefügt nur client reicht schon server musste nichts machen
11/26/2014 20:27 IceCreamx3#10
Ich habe das HowTo befolgt:

11/26/2014 20:38 .yorliK#11
Code:
quest achievement begin
	state start begin
		function get_points()
			return tonumber(mysql_query("select achievement from player.player where id = ".. pc.get_player_id() ..";")[1][1]) or 0
		end
		function GetInput(value)
			cmdchat("GetInputStart")
			local ret = input(cmdchat(value))
			cmdchat("GetInputStop")
			return ret
		end
		function set_points(p)
			mysql_query("update player.player set achievement = ".. p .." where id = ".. pc.get_player_id() ..";")
		end
		when 20095.chat."Achievementshop" begin
			cmdchat("SetIsNpc")
			npc.open_shop(49)
			setskin(NOWINDOW)
			cmdchat("SetPrice 100|100|100|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0")
		end
		when login begin
			cmdchat("SetQuestIndex "..q.getcurrentquestindex())
			cmdchat("setPP "..pc.getqf("achievement"))
			loop_timer("update", 4)
			if pc.getqf("first") == 0 then
				pc.setqf("achievement", pc.getqf("achievement")+10)
				cmdchat("achievement Dein_erster_Login%".. pc.getqf("achievement"))
				pc.setqf("first",1)
			end
		end
		when update.timer begin
			cmdchat("setPP "..pc.getqf("achievement"))
		end
		when button or info begin
			local items = {
				[1]={19, 1, 100},
				[2]={29, 1, 100},
				[3]={39, 1, 100},
			}
			local slot = tonumber(achievement.GetInput("GetInput"))+1
			if pc.getqf("achievement") >= items[slot][3] then
				pc.setqf("achievement", pc.getqf("achievement")-items[slot][3])
				cmdchat("setPP "..pc.getqf("achievement"))
				pc.give_item2(items[slot][1], items[slot][2])
			else
				cmdchat("NieMamPP")
			end
		end
		when kill with not npc.is_pc() and pc.getqf(npc.get_race()) == 0 begin
			local data = {
				[1093] = 3,
				[591] = 1,
				[691] = 1,
				[2191] = 2,
				[1304] = 2,
				[2206] = 2,
				[1901] = 2,
				[2091] = 2,
				[1191] = 3,
				[2307] = 2,
				[2493] = 4,
				[2598] = 4,
				[8027] = 1,
				[8051] = 1,
				[8052] = 1,
				[8053] = 1,
			}
			local v = npc.get_race()
			local killcount = pc.getqf(v .."_kill")
			local p = data[v] or 0
			if p == 0 then return end
			cmdchat("achievement ".. mob_name(v) .."_getötet#".. killcount + 1 .."%".. pc.getqf("achievement") + p .."")
			pc.setqf("achievement", pc.getqf("achievement") + p)
		end
	end
end
11/26/2014 22:13 IceCreamx3#12
Quote:
Originally Posted by Kilroy. View Post
Code:
quest achievement begin
	state start begin
		function get_points()
			return tonumber(mysql_query("select achievement from player.player where id = ".. pc.get_player_id() ..";")[1][1]) or 0
		end
		function GetInput(value)
			cmdchat("GetInputStart")
			local ret = input(cmdchat(value))
			cmdchat("GetInputStop")
			return ret
		end
		function set_points(p)
			mysql_query("update player.player set achievement = ".. p .." where id = ".. pc.get_player_id() ..";")
		end
		when 20095.chat."Achievementshop" begin
			cmdchat("SetIsNpc")
			npc.open_shop(49)
			setskin(NOWINDOW)
			cmdchat("SetPrice 100|100|100|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0")
		end
		when login begin
			cmdchat("SetQuestIndex "..q.getcurrentquestindex())
			cmdchat("setPP "..pc.getqf("achievement"))
			loop_timer("update", 4)
			if pc.getqf("first") == 0 then
				pc.setqf("achievement", pc.getqf("achievement")+10)
				cmdchat("achievement Dein_erster_Login%".. pc.getqf("achievement"))
				pc.setqf("first",1)
			end
		end
		when update.timer begin
			cmdchat("setPP "..pc.getqf("achievement"))
		end
		when button or info begin
			local items = {
				[1]={19, 1, 100},
				[2]={29, 1, 100},
				[3]={39, 1, 100},
			}
			local slot = tonumber(achievement.GetInput("GetInput"))+1
			if pc.getqf("achievement") >= items[slot][3] then
				pc.setqf("achievement", pc.getqf("achievement")-items[slot][3])
				cmdchat("setPP "..pc.getqf("achievement"))
				pc.give_item2(items[slot][1], items[slot][2])
			else
				cmdchat("NieMamPP")
			end
		end
		when kill with not npc.is_pc() and pc.getqf(npc.get_race()) == 0 begin
			local data = {
				[1093] = 3,
				[591] = 1,
				[691] = 1,
				[2191] = 2,
				[1304] = 2,
				[2206] = 2,
				[1901] = 2,
				[2091] = 2,
				[1191] = 3,
				[2307] = 2,
				[2493] = 4,
				[2598] = 4,
				[8027] = 1,
				[8051] = 1,
				[8052] = 1,
				[8053] = 1,
			}
			local v = npc.get_race()
			local killcount = pc.getqf(v .."_kill")
			local p = data[v] or 0
			if p == 0 then return end
			cmdchat("achievement ".. mob_name(v) .."_getötet#".. killcount + 1 .."%".. pc.getqf("achievement") + p .."")
			pc.setqf("achievement", pc.getqf("achievement") + p)
		end
	end
end
Hast du was an der Quest geändert, oder?
Bin grad am Handy online, weshalb ich die zwei Quest's nicht miteinander vergleichen kann.
Könntest du vielleicht dazuschreiben, was du geändert hast?
Möchte es nämlich selbst wissen bzw. aus Fehlern lernen :)

Danke

E:

Funktioniert jetzt in Großen und Ganzen!
Danke für die (neue) Quest.
Allerdings bekomme ich gar keine AP, wenn ich den Sensi kille (VNUM 1093).
Bei den restlichen Mobs gehts - auch spinnt der AP Counter ein wenig - im Invi werden die AP richtig dazugezählt bzw. angezeigt, beim Counter allerdings nicht.
Hier ein Bild:

[Only registered and activated users can see links. Click Here To Register...]
11/27/2014 22:51 IceCreamx3#13
Up

Vielleicht weiß jemand die Lösung auf die letzte Frage!
11/28/2014 06:26 Samael#14
Welche binary bzw welchen client nutzt du? Mich würds interessieren wie das mit den AP Punkten unter dem Yang geht im Invi xD
11/28/2014 11:02 IceCreamx3#15
Quote:
Originally Posted by xSaito View Post
Welche binary bzw welchen client nutzt du? Mich würds interessieren wie das mit den AP Punkten unter dem Yang geht im Invi xD
Nutze den 2013er v2 Clienten von Invoice.
[Only registered and activated users can see links. Click Here To Register...]