Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 14:47

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

Advertisement



[Frage]An die Phytonprofis

Discussion on [Frage]An die Phytonprofis within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
[Frage]An die Phytonprofis

Hallo,

ich bräuchte in Phyton eine funktion die folgendes ausführt

Ist der Skill x auf Stufe <= 19 dann

ist skill x auf stufe <=29 dann

ist skill x auf stufe <=39 dann

ist skill x auf stufe 40 dann
lfcmaus is offline  
Old 07/27/2014, 22:00   #2
 
DasSchwarzeT's Avatar
 
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
Wieso Python und nicht LUA?
DasSchwarzeT is offline  
Old 07/27/2014, 22:10   #3


 
Zander#'s Avatar
 
elite*gold: 14
Join Date: Feb 2011
Posts: 1,450
Received Thanks: 1,044
Mit ner Client-Quest Kommunikation könntest du das ganze schlau lösen
nur mit Python wirds schwer, denke ich


Gruß,

Zander

PS: Und Nein, ich bin kein Profi, jedoch würde ich es rein von der Logik her so angehen
Zander# is offline  
Old 07/27/2014, 22:32   #4
 
elite*gold: 5
Join Date: Mar 2013
Posts: 1,986
Received Thanks: 2,254
[denk wut="luawtf"]
[/denk]

player.GetSkillLevel(Position)

Sollte dir etwas weiterhelfen. Wird unter anderem in der uiCharacter.py benutzt falls du ein Beispiel zum verwenden benötigtst
xGr33n is offline  
Thanks
5 Users
Old 07/27/2014, 22:33   #5
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
ich hab ja es ja nen stückchen schon jedoch gibt er mir falsche werte aus -.-

Code:
	level = str(player.GetStatus(player.LEVEL))
	END_STRING = level
	chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_" + END_STRING + "_sword_loop.mse")
	chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_" + END_STRING + "_spear_loop.mse")
syserr.txt

Quote:
0727 22:30:16212 :: CInstanceBase::RegisterEffect(eEftType=24, c_szEftAttachBone=equip_right_hand, c_szEftName=d:/ymir work/pc/warrior/effect/geom_-415579686_sword_loop.mse, isCache=0) - Error
0727 22:30:16212 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/geom_-415579686_spear_loop.mse) Error
lfcmaus is offline  
Old 07/27/2014, 22:58   #6
 
elite*gold: 726
Join Date: Jul 2010
Posts: 14,233
Received Thanks: 7,915
Beschreibe mal bitte, was du genau vor hast.

Das Skill-Level eine Skills erhält man durch die Formel:

Code:
level = player.GetSkillLevel(SkillSlot) + player.GetSkillGrade(SkillSlot) * 10
noahrmal is offline  
Old 07/27/2014, 23:06   #7
 
DasSchwarzeT's Avatar
 
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
Quote:
Originally Posted by xGr33n View Post
[denk wut="luawtf"]
[/denk]

player.GetSkillLevel(Position)

Sollte dir etwas weiterhelfen. Wird unter anderem in der uiCharacter.py benutzt falls du ein Beispiel zum verwenden benötigtst
Problem ist nur, dass es einem in Python nichts bringt. Ich weiß ja nicht, was der TE damit machen will, wirklich Funktionen dahinter setzten (die nicht missbraucht werden können) macht man nun mal mit LUA.
DasSchwarzeT is offline  
Old 07/27/2014, 23:06   #8
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
Ich möchte das er prüft welches Level der Skill 4 zb hat
ist der zb 1-19 dann soll er effekt 1 laden
ist der level über 19 also 20-29 dann effekt 2
ist der level über 29 also 30-39 dann den dritten und wenn er 40 genau ist dann den vierten effekt

ich hab da jetzt shcon einiges versucht jedoch klappen tut irgendwie nichts so richtig

momentan bin ich dabei das zu testen

Quote:
END_STRING = int(player.GetSkillLevel(4))
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_" + END_STRING + "_sword_loop.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_" + END_STRING + "_spear_loop.mse")
bzw das
Quote:
END_STRING = int(player.GetSkillLevel(4))
END_STRING = level
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_" + END_STRING + "_sword_loop.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_" + END_STRING + "_spear_loop.mse")
beim letzteren sagt er mir erfindet geom_0_spear_loop.mse nicht
der skill ist aber stufe 10 derzeit

alles sehr verwirrend
lfcmaus is offline  
Old 07/28/2014, 00:00   #9
 
elite*gold: 726
Join Date: Jul 2010
Posts: 14,233
Received Thanks: 7,915
player.GetSkillGrade(SkillSlot)

1-19 = returnt dir 0
M1-M10 = returnt dir 1
G1-G10 = returnt dir 2
P = returnt dir 3
noahrmal is offline  
Old 07/28/2014, 00:16   #10
 
elite*gold: 1435
Join Date: Apr 2014
Posts: 362
Received Thanks: 786
Also sollte es so sein ? Oder versteh ich das falsch ?

Also hier mal Bsp will es ja auch mal wissen

Code:
	SkillLevel= player.GetSkillGrade(SkillSlot)
	if SkillLevel == 0:
		chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_sword_loop.mse")
		chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_spear_loop.mse")
	elif SkillLevel 1:
		chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_2_sword_loop.mse")
		chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_2_spear_making.mse")
	elif SkillLevel >= 2:
		chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_3_sword_loop.mse")
		chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_3_spear_making.mse")
	elif SkillLevel == 3:
		chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_4_sword_loop.mse")
		chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_4_spear_making.mse")
.Kori is offline  
Old 07/28/2014, 00:46   #11
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
So funktioniert das einloggen aber immer der selbe effekt

PHP Code:
    SkillLevelplayer.GetSkillGrade(4)
    if 
SkillLevel == 0:
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_sword_loop.mse")
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_spear_loop.mse")
    
elif SkillLevel == 1:
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_2_sword_loop.mse")
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_2_spear_making.mse")
    
elif SkillLevel == 2:
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_3_sword_loop.mse")
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_3_spear_making.mse")
    
elif SkillLevel == 3:
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_4_sword_loop.mse")
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_4_spear_making.mse"
PHP Code:
    SkillSlot 4
    END_STRING 
str(player.GetSkillGrade(SkillSlot))
    
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_" END_STRING "_sword_loop.mse")
    
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_" END_STRING "_spear_loop.mse"
Damit hat es bisher am meisten erfolge gegeben
wenn ich es so einfüe kann ich einlogen und er gibt mir eine 0 aus
aber upgrade ich den skill checkt er es nciht und es wechselt nicht zu 1 2 3 wie auf page 1 beschrieben
lfcmaus is offline  
Old 07/28/2014, 02:46   #12
 
Poccix's Avatar
 
elite*gold: 44
Join Date: Dec 2009
Posts: 1,696
Received Thanks: 3,833
Quote:
Originally Posted by lfcmaus View Post
So funktioniert das einloggen aber immer der selbe effekt

PHP Code:
    SkillLevelplayer.GetSkillGrade(4)
    if 
SkillLevel == 0:
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_sword_loop.mse")
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_spear_loop.mse")
    
elif SkillLevel == 1:
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_2_sword_loop.mse")
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_2_spear_making.mse")
    
elif SkillLevel == 2:
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_3_sword_loop.mse")
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_3_spear_making.mse")
    
elif SkillLevel == 3:
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_4_sword_loop.mse")
        
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_4_spear_making.mse"

PHP Code:
    SkillSlot 4
    END_STRING 
str(player.GetSkillGrade(SkillSlot))
    
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_" END_STRING "_sword_loop.mse")
    
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2"equip_right_hand""d:/ymir work/pc/warrior/effect/geom_" END_STRING "_spear_loop.mse"
Damit hat es bisher am meisten erfolge gegeben
wenn ich es so einfüe kann ich einlogen und er gibt mir eine 0 aus
aber upgrade ich den skill checkt er es nciht und es wechselt nicht zu 1 2 3 wie auf page 1 beschrieben
Könntest deinen Endstring via OnUpdate immer wieder neuladen lassen.
Poccix is offline  
Old 07/28/2014, 03:27   #13
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
Ist ja toll für den vorschlag da abr nichts funktioniert bringt mich da sgerade nicht weiter derzeit versuche ich es wie mit den Ringeffkten zu realisieren.

ich hänge aber an dieser stelle.:
END_STRING = constInfo.aura
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_" + END_STRING + "_sword_loop.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_" + END_STRING + "_spear_loop.mse")

Ich weiß nicht wie ich die Variable aus der Constinfo wieder raushole.

Code:
game.py.:
serverCommandList={
			"auraeffect_1"					: self.auraeffect_1,
			"auraeffect_2"					: self.auraeffect_2,
			"auraeffect_3"					: self.auraeffect_3,
			"auraeffect_4"					: self.auraeffect_4,
}
	def auraeffect_1(self, zahl):
		constInfo.aura = 1

	def auraeffect_2(self, zahl):
		constInfo.aura = 2

	def auraeffect_3(self, zahl):
		constInfo.aura = 3

	def auraeffect_4(self, zahl):
		constInfo.aura = 4
PHP Code:
quest.:

quest aurasystem begin
    state start begin
        when login with pc
.get_job() == and pc.get_skill_group() == 1 begin
            aura 
pc.get_skill_level(4)
            
chat(""..aura.."")
            if 
aura 20 then
                cmdchat
(""..auraeffect_1.."")
                
chat(""..aura.."")
            elseif 
aura >= 20 and aura 30 then
                cmdchat
(""..auraeffect_2.."")
                
chat(""..aura.."")
            elseif 
aura >= 30 and aura 39 then
                cmdchat
(""..auraeffect_3.."")
                
chat(""..aura.."")
            elseif 
aura == 40 then
                cmdchat
(""..auraeffect_4.."")
                
chat(""..aura.."")
            
end
        end
    end
end 
jemand hier ne lösung?
lfcmaus is offline  
Old 07/28/2014, 09:09   #14
 
PDDS™'s Avatar
 
elite*gold: 97
Join Date: May 2014
Posts: 777
Received Thanks: 202
Quote:
Originally Posted by lfcmaus View Post
Ich weiß nicht wie ich die Variable aus der Constinfo wieder raushole.
Neue Variable erstellen und ihr den Wert aus der ConsInfo zuweisen?

Gruß
PDDS™ is offline  
Old 07/28/2014, 11:05   #15
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
Und was mach ich dann hier?

END_STRING = constInfo.aura !?!?!?
lfcmaus is offline  
Reply




All times are GMT +1. The time now is 14:47.


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.