- Mesaj
- 33
- Beğeni
- 3
- Puan
- 46
- Ticaret Puanı
- 0
// USERINTERFACE // PYTHONPLAYERSETTİNGSMODULE.CPP ARAT
{ pkBase.EFFECT_AFFECT + 37, "", "d:/ymir work/effect/etc/guild_war_flag/flag_yellow.mse" },
// ALTINA EKLE KANAT EFEKT YOLUNU KENDİNE GÖRE VE SIRALAMAYI KENDİNE GÖRE DÜZENLE
#if defined MAVIRUH_WING_EFFECT
{ pkBase.EFFECT_AFFECT + 45, "Bip01", "d:/ymir work/item/wing/plechito/astral_wings/astral_gold.mse"},
{ pkBase.EFFECT_AFFECT + 46, "Bip01", "d:/ymir work/item/wing/plechito/astral_wings/astral_crystal.mse"},
{ pkBase.EFFECT_AFFECT + 47, "Bip01", "d:/ymir work/item/wing/plechito/astral_wings/astral_black.mse"},
{ pkBase.EFFECT_AFFECT + 48, "Bip01", "d:/ymir work/item/wing/plechito/astral_wings/astral_wings.mse"},
#endif
Merhaba bu videodaki kanatları kurmaya çalışıyorum ancak root playersettingmodulede arat dediği kısım bende yok nasıl yapabilirim
sadece baş kısmını arat mutlaka vardır olmaması imkansız.
böyle var vipicon altına mı eklicemsadece baş kısmını arat mutlaka vardır olmaması imkansız.
effect affect olarak attığın resimdeki gibi arat onların en altına ekleböyle var vipicon altına mı eklicem
effect affect kısmı yok bendeeffect affect olarak attığın resimdeki gibi arat onların en altına ekle
playersettingmoduleni kod editörüne yükleyebilir misin mobildeyim şuan beneffect affect kısmı yok bende
playersettingmoduleni kod editörüne yükleyebilir misin mobildeyim şuan ben
import chr
import chrmgr
import skill
import net
import item
import player
import effect
import constInfo
import localeInfo
import app
import emotion
if app.ENABLE_CPP_PSM:
import cpsm
JOB_WARRIOR = 0
JOB_ASSASSIN = 1
JOB_SURA = 2
JOB_SHAMAN = 3
if app.ENABLE_WOLFMAN_CHARACTER:
JOB_WOLFMAN = 4
RACE_WARRIOR_M = 0
RACE_ASSASSIN_W = 1
RACE_SURA_M = 2
RACE_SHAMAN_W = 3
RACE_WARRIOR_W = 4
RACE_ASSASSIN_M = 5
RACE_SURA_W = 6
RACE_SHAMAN_M = 7
# if app.ENABLE_WOLFMAN_CHARACTER:
# RACE_WOLFMAN_M = 8
PASSIVE_GUILD_SKILL_INDEX_LIST = ( 151, )
ACTIVE_GUILD_SKILL_INDEX_LIST = ( 152, 153, 154, 155, 156, 157, )
NEW_678TH_SKILL_ENABLE = constInfo.NEW_678TH_SKILL_ENABLE
SKILL_INDEX_DICT = []
def DefineSkillIndexDict():
global NEW_678TH_SKILL_ENABLE
global SKILL_INDEX_DICT
if NEW_678TH_SKILL_ENABLE:
SKILL_INDEX_DICT = {
JOB_WARRIOR : {
1 : (1, 2, 3, 4, 5, 6, 0, 0, 137, 0, 138, 0, 139, 0,),
2 : (16, 17, 18, 19, 20, 21, 0, 0, 137, 0, 138, 0, 139, 0,),
"SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 0, 0,),
},
JOB_ASSASSIN : {
1 : (31, 32, 33, 34, 35, 36, 0, 0, 137, 0, 138, 0, 139, 0, 140,),
2 : (46, 47, 48, 49, 50, 51, 0, 0, 137, 0, 138, 0, 139, 0, 140,),
"SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 0, 0,),
},
JOB_SURA : {
1 : (61, 62, 63, 64, 65, 66, 0, 0, 137, 0, 138, 0, 139, 0,),
2 : (76, 77, 78, 79, 80, 81, 0, 0, 137, 0, 138, 0, 139, 0,),
"SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 0, 0,),
},
JOB_SHAMAN : {
1 : (91, 92, 93, 94, 95, 96, 0, 0, 137, 0, 138, 0, 139, 0,),
2 : (106, 107, 108, 109, 110, 111, 0, 0, 137, 0, 138, 0, 139, 0,),
"SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 0, 0,),
},
}
else:
SKILL_INDEX_DICT = {
JOB_WARRIOR : {
1 : (1, 2, 3, 4, 5, 0, 0, 0, 137, 0, 138, 0, 139, 0,),
2 : (16, 17, 18, 19, 20, 0, 0, 0, 137, 0, 138, 0, 139, 0,),
"SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),
},
JOB_ASSASSIN : {
1 : (31, 32, 33, 34, 35, 0, 0, 0, 137, 0, 138, 0, 139, 0, 140,),
2 : (46, 47, 48, 49, 50, 0, 0, 0, 137, 0, 138, 0, 139, 0, 140,),
"SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),
},
JOB_SURA : {
1 : (61, 62, 63, 64, 65, 66, 0, 0, 137, 0, 138, 0, 139, 0,),
2 : (76, 77, 78, 79, 80, 81, 0, 0, 137, 0, 138, 0, 139, 0,),
"SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),
},
JOB_SHAMAN : {
1 : (91, 92, 93, 94, 95, 96, 0, 0, 137, 0, 138, 0, 139, 0,),
2 : (106, 107, 108, 109, 110, 111, 0, 0, 137, 0, 138, 0, 139, 0,),
"SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),
},
}
if app.ENABLE_WOLFMAN_CHARACTER:
SKILL_INDEX_DICT.update({
JOB_WOLFMAN : {
1 : (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0,),
"SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),
},
})
def RegisterSkill(race, group, empire=0):
DefineSkillIndexDict()
job = chr.RaceToJob(race)
## Character Skill
if SKILL_INDEX_DICT.has_key(job):
if SKILL_INDEX_DICT[job].has_key(group):
activeSkillList = SKILL_INDEX_DICT[job][group]
for i in xrange(len(activeSkillList)):
skillIndex = activeSkillList[i]
if i != 6 and i != 7:
player.SetSkill(i+1, skillIndex)
supportSkillList = SKILL_INDEX_DICT[job]["SUPPORT"]
for i in xrange(len(supportSkillList)):
player.SetSkill(i+100+1, supportSkillList[i])
## Language Skill
if 0 != empire:
languageSkillList = []
for i in xrange(3):
if (i+1) != empire:
languageSkillList.append(player.SKILL_INDEX_LANGUAGE1+i)
for i in xrange(len(languageSkillList)):
player.SetSkill(107+i, languageSkillList[i])
## Guild Skill
for i in xrange(len(PASSIVE_GUILD_SKILL_INDEX_LIST)):
player.SetSkill(200+i, PASSIVE_GUILD_SKILL_INDEX_LIST[i])
for i in xrange(len(ACTIVE_GUILD_SKILL_INDEX_LIST)):
player.SetSkill(210+i, ACTIVE_GUILD_SKILL_INDEX_LIST[i])
def RegisterSkillAt(race, group, pos, num):
DefineSkillIndexDict()
job = chr.RaceToJob(race)
tmp = list(SKILL_INDEX_DICT[job][group])
tmp[pos] = num
SKILL_INDEX_DICT[job][group] = tuple(tmp)
player.SetSkill(pos+1, num)
FACE_IMAGE_DICT = {
RACE_WARRIOR_M : "d:/ymir work/ui/game/windows/face_warrior.sub",
RACE_ASSASSIN_W : "d:/ymir work/ui/game/windows/face_assassin.sub",
RACE_SURA_M : "d:/ymir work/ui/game/windows/face_sura.sub",
RACE_SHAMAN_W : "d:/ymir work/ui/game/windows/face_shaman.sub",
}
def __InitData():
if app.ENABLE_CPP_PSM:
cpsm.InitData()
else:
## paste your code here
pass
def __LoadGameSound():
if app.ENABLE_CPP_PSM:
cpsm.LoadGameSound()
else:
## paste your code here
pass
def __LoadGameEffect():
if app.ENABLE_CPP_PSM:
cpsm.LoadGameEffect()
else:
## paste your code here
pass
def __LoadGameWarrior():
if app.ENABLE_CPP_PSM:
cpsm.LoadGameWarrior()
else:
## paste your code here
pass
def __LoadGameAssassin():
if app.ENABLE_CPP_PSM:
cpsm.LoadGameAssassin()
else:
## paste your code here
pass
def __LoadGameSura():
if app.ENABLE_CPP_PSM:
cpsm.LoadGameSura()
else:
## paste your code here
pass
def __LoadGameShaman():
if app.ENABLE_CPP_PSM:
cpsm.LoadGameShaman()
else:
## paste your code here
pass
# if app.ENABLE_WOLFMAN_CHARACTER:
# def __LoadGameWolfman():
# if app.ENABLE_CPP_PSM:
# cpsm.LoadGameWolfman()
# else:
# paste your code here
# pass
def __LoadGameSkill():
if app.ENABLE_CPP_PSM:
cpsm.LoadGameSkill()
else:
## paste your code here
pass
def __LoadGameNPC():
try:
lines = open("npclist.txt", "r").readlines()
except IOError:
import dbg
dbg.LogBox("LoadLocaleError(%(srcFileName)s)" % locals())
app.Abort()
for line in lines:
tokens = line[:-1].split("\t")
if len(tokens) == 0 or not tokens[0]:
continue
try:
vnum = int(tokens[0])
except ValueError:
import dbg
dbg.LogBox("LoadGameNPC() - %s - line #%d: %s" % (tokens, lines.index(line), line))
app.Abort()
try:
if vnum:
chrmgr.RegisterRaceName(vnum, tokens[1].strip())
else:
chrmgr.RegisterRaceSrcName(tokens[1].strip(), tokens[2].strip())
except IndexError:
import dbg
dbg.LogBox("LoadGameNPC() - %d, %s - line #%d: %s " % (vnum, tokens, lines.index(line), line))
app.Abort()
if app.ENABLE_RACE_HEIGHT_RENEWAL:
def __LoadRaceHeight():
directory = "race_height.txt"
try:
lines = open(directory,"r").readlines()
except IOError:
return
for line in lines:
try:
tokens = line[:-1].split("\t")
if len(tokens) <= 1 or not tokens[0]:
continue
if tokens[0].find("#") != -1:
continue
if tokens[1].find("#") != -1:
tokens[1] = tokens[1].split("#")[0].replace("\s","")
if tokens[1].find("#") != -1:
continue
vnum = int(tokens[0])
height = float(tokens[1])
chrmgr.SetRaceHeight(vnum, height)
except:
import dbg
dbg.TraceError("I could not read the lines of %s" % directory)
## Emoticon
EmoticonStr = "d:/ymir work/effect/etc/emoticon/"
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+0, "", EmoticonStr+"sweat.mse")
net.RegisterEmoticonString("(황당)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+1, "", EmoticonStr+"money.mse")
net.RegisterEmoticonString("(돈)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+2, "", EmoticonStr+"happy.mse")
net.RegisterEmoticonString("(기쁨)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+3, "", EmoticonStr+"love_s.mse")
net.RegisterEmoticonString("(좋아)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+4, "", EmoticonStr+"love_l.mse")
net.RegisterEmoticonString("(사랑)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+5, "", EmoticonStr+"angry.mse")
net.RegisterEmoticonString("(분노)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+6, "", EmoticonStr+"aha.mse")
net.RegisterEmoticonString("(아하)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+7, "", EmoticonStr+"gloom.mse")
net.RegisterEmoticonString("(우울)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+8, "", EmoticonStr+"sorry.mse")
net.RegisterEmoticonString("(죄송)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+9, "", EmoticonStr+"!_mix_back.mse")
net.RegisterEmoticonString("(!)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+10, "", EmoticonStr+"question.mse")
net.RegisterEmoticonString("(?)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+11, "", EmoticonStr+"fish.mse")
net.RegisterEmoticonString("(fish)")
## Emoticon
#########################################################################################
## KRAL LONCA OYUNCU - VIP SYSTEM
#########################################################################################
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+12, "", "d:/ymir work/taglar/klicon.mse")
net.RegisterEmoticonString("(klicon)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+13, "", "d:/ymir work/taglar/kralicon.mse")
net.RegisterEmoticonString("(kralicon)")
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+14, "", "d:/ymir work/taglar/vip.mse")
net.RegisterEmoticonString("(vipicon)")
## KRAL LONCA OYUNCU - VIP SYSTEM
#########################################################################################
# GUILD_BUILDING
def LoadGuildBuildingList(filename):
import uiGuild
uiGuild.BUILDING_DATA_LIST = []
handle = app.OpenTextFile(filename)
count = app.GetTextFileLineCount(handle)
for i in xrange(count):
line = app.GetTextFileLine(handle, i)
tokens = line.split("\t")
TOKEN_VNUM = 0
TOKEN_TYPE = 1
TOKEN_NAME = 2
TOKEN_LOCAL_NAME = 3
NO_USE_TOKEN_SIZE_1 = 4
NO_USE_TOKEN_SIZE_2 = 5
NO_USE_TOKEN_SIZE_3 = 6
NO_USE_TOKEN_SIZE_4 = 7
TOKEN_X_ROT_LIMIT = 8
TOKEN_Y_ROT_LIMIT = 9
TOKEN_Z_ROT_LIMIT = 10
TOKEN_PRICE = 11
TOKEN_MATERIAL = 12
TOKEN_NPC = 13
TOKEN_GROUP = 14
TOKEN_DEPEND_GROUP = 15
TOKEN_ENABLE_FLAG = 16
LIMIT_TOKEN_COUNT = 17
if not tokens[TOKEN_VNUM].isdigit():
continue
if len(tokens) < LIMIT_TOKEN_COUNT:
import dbg
dbg.TraceError("Strange token count [%d/%d] [%s]" % (len(tokens), LIMIT_TOKEN_COUNT, line))
continue
ENABLE_FLAG_TYPE_NOT_USE = False
ENABLE_FLAG_TYPE_USE = True
ENABLE_FLAG_TYPE_USE_BUT_HIDE = 2
if ENABLE_FLAG_TYPE_NOT_USE == int(tokens[TOKEN_ENABLE_FLAG]):
continue
vnum = int(tokens[TOKEN_VNUM])
type = tokens[TOKEN_TYPE]
name = tokens[TOKEN_NAME]
localName = tokens[TOKEN_LOCAL_NAME]
xRotLimit = int(tokens[TOKEN_X_ROT_LIMIT])
yRotLimit = int(tokens[TOKEN_Y_ROT_LIMIT])
zRotLimit = int(tokens[TOKEN_Z_ROT_LIMIT])
price = tokens[TOKEN_PRICE]
material = tokens[TOKEN_MATERIAL]
folderName = ""
if "HEADQUARTER" == type:
folderName = "headquarter"
elif "FACILITY" == type:
folderName = "facility"
elif "OBJECT" == type:
folderName = "object"
elif "WALL" == type:
folderName = "fence"
materialList = ["0", "0", "0"]
if material:
if material[0] == "\"":
material = material[1:]
if material[-1] == "\"":
material = material[:-1]
for one in material.split("/"):
data = one.split(",")
if 2 != len(data):
continue
itemID = int(data[0])
count = data[1]
if itemID == uiGuild.MATERIAL_STONE_ID:
materialList[uiGuild.MATERIAL_STONE_INDEX] = count
elif itemID == uiGuild.MATERIAL_LOG_ID:
materialList[uiGuild.MATERIAL_LOG_INDEX] = count
elif itemID == uiGuild.MATERIAL_PLYWOOD_ID:
materialList[uiGuild.MATERIAL_PLYWOOD_INDEX] = count
import chrmgr
chrmgr.RegisterRaceSrcName(name, folderName)
chrmgr.RegisterRaceName(vnum, name)
appendingData = { "VNUM":vnum,
"TYPE":type,
"NAME":name,
"LOCAL_NAME":localName,
"X_ROT_LIMIT":xRotLimit,
"Y_ROT_LIMIT":yRotLimit,
"Z_ROT_LIMIT":zRotLimit,
"PRICE":price,
"MATERIAL":materialList,
"SHOW" : True }
if ENABLE_FLAG_TYPE_USE_BUT_HIDE == int(tokens[TOKEN_ENABLE_FLAG]):
appendingData["SHOW"] = False
uiGuild.BUILDING_DATA_LIST.append(appendingData)
app.CloseTextFile(handle)
# END_OF_GUILD_BUILDING
loadGameDataDict={
"INIT" : __InitData,
"SOUND" : __LoadGameSound,
"EFFECT" : __LoadGameEffect,
"WARRIOR" : __LoadGameWarrior,
"ASSASSIN" : __LoadGameAssassin,
"SURA" : __LoadGameSura,
"SHAMAN" : __LoadGameShaman,
# "WOLFMAN": __LoadGameWolfman,
"SKILL" : __LoadGameSkill,
"NPC" : __LoadGameNPC,
}
if app.ENABLE_RACE_HEIGHT_RENEWAL:
loadGameDataDict.update({"RACE_HEIGHT": __LoadRaceHeight,})
def LoadGameData(name):
global loadGameDataDict
load=loadGameDataDict.get(name, 0)
if load:
loadGameDataDict[name]=0
try:
load()
except:
print name
import exception
exception.Abort("LoadGameData")
raise
Sizde PSM sistemi kurulu, yani bahsedilen kodlar Client kaynak kodlarının içinde. Client kaynak kodlarında aramalısınız ilgili kısmı.playersettingmodule:import chr import chrmgr import skill import net import item import player import effect import constInfo import localeInfo import app import emotion if app.ENABLE_CPP_PSM: import cpsm JOB_WARRIOR = 0 JOB_ASSASSIN = 1 JOB_SURA = 2 JOB_SHAMAN = 3 if app.ENABLE_WOLFMAN_CHARACTER: JOB_WOLFMAN = 4 RACE_WARRIOR_M = 0 RACE_ASSASSIN_W = 1 RACE_SURA_M = 2 RACE_SHAMAN_W = 3 RACE_WARRIOR_W = 4 RACE_ASSASSIN_M = 5 RACE_SURA_W = 6 RACE_SHAMAN_M = 7 # if app.ENABLE_WOLFMAN_CHARACTER: # RACE_WOLFMAN_M = 8 PASSIVE_GUILD_SKILL_INDEX_LIST = ( 151, ) ACTIVE_GUILD_SKILL_INDEX_LIST = ( 152, 153, 154, 155, 156, 157, ) NEW_678TH_SKILL_ENABLE = constInfo.NEW_678TH_SKILL_ENABLE SKILL_INDEX_DICT = [] def DefineSkillIndexDict(): global NEW_678TH_SKILL_ENABLE global SKILL_INDEX_DICT if NEW_678TH_SKILL_ENABLE: SKILL_INDEX_DICT = { JOB_WARRIOR : { 1 : (1, 2, 3, 4, 5, 6, 0, 0, 137, 0, 138, 0, 139, 0,), 2 : (16, 17, 18, 19, 20, 21, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 0, 0,), }, JOB_ASSASSIN : { 1 : (31, 32, 33, 34, 35, 36, 0, 0, 137, 0, 138, 0, 139, 0, 140,), 2 : (46, 47, 48, 49, 50, 51, 0, 0, 137, 0, 138, 0, 139, 0, 140,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 0, 0,), }, JOB_SURA : { 1 : (61, 62, 63, 64, 65, 66, 0, 0, 137, 0, 138, 0, 139, 0,), 2 : (76, 77, 78, 79, 80, 81, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 0, 0,), }, JOB_SHAMAN : { 1 : (91, 92, 93, 94, 95, 96, 0, 0, 137, 0, 138, 0, 139, 0,), 2 : (106, 107, 108, 109, 110, 111, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 0, 0,), }, } else: SKILL_INDEX_DICT = { JOB_WARRIOR : { 1 : (1, 2, 3, 4, 5, 0, 0, 0, 137, 0, 138, 0, 139, 0,), 2 : (16, 17, 18, 19, 20, 0, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,), }, JOB_ASSASSIN : { 1 : (31, 32, 33, 34, 35, 0, 0, 0, 137, 0, 138, 0, 139, 0, 140,), 2 : (46, 47, 48, 49, 50, 0, 0, 0, 137, 0, 138, 0, 139, 0, 140,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,), }, JOB_SURA : { 1 : (61, 62, 63, 64, 65, 66, 0, 0, 137, 0, 138, 0, 139, 0,), 2 : (76, 77, 78, 79, 80, 81, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,), }, JOB_SHAMAN : { 1 : (91, 92, 93, 94, 95, 96, 0, 0, 137, 0, 138, 0, 139, 0,), 2 : (106, 107, 108, 109, 110, 111, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,), }, } if app.ENABLE_WOLFMAN_CHARACTER: SKILL_INDEX_DICT.update({ JOB_WOLFMAN : { 1 : (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,), }, }) def RegisterSkill(race, group, empire=0): DefineSkillIndexDict() job = chr.RaceToJob(race) ## Character Skill if SKILL_INDEX_DICT.has_key(job): if SKILL_INDEX_DICT[job].has_key(group): activeSkillList = SKILL_INDEX_DICT[job][group] for i in xrange(len(activeSkillList)): skillIndex = activeSkillList[i] if i != 6 and i != 7: player.SetSkill(i+1, skillIndex) supportSkillList = SKILL_INDEX_DICT[job]["SUPPORT"] for i in xrange(len(supportSkillList)): player.SetSkill(i+100+1, supportSkillList[i]) ## Language Skill if 0 != empire: languageSkillList = [] for i in xrange(3): if (i+1) != empire: languageSkillList.append(player.SKILL_INDEX_LANGUAGE1+i) for i in xrange(len(languageSkillList)): player.SetSkill(107+i, languageSkillList[i]) ## Guild Skill for i in xrange(len(PASSIVE_GUILD_SKILL_INDEX_LIST)): player.SetSkill(200+i, PASSIVE_GUILD_SKILL_INDEX_LIST[i]) for i in xrange(len(ACTIVE_GUILD_SKILL_INDEX_LIST)): player.SetSkill(210+i, ACTIVE_GUILD_SKILL_INDEX_LIST[i]) def RegisterSkillAt(race, group, pos, num): DefineSkillIndexDict() job = chr.RaceToJob(race) tmp = list(SKILL_INDEX_DICT[job][group]) tmp[pos] = num SKILL_INDEX_DICT[job][group] = tuple(tmp) player.SetSkill(pos+1, num) FACE_IMAGE_DICT = { RACE_WARRIOR_M : "d:/ymir work/ui/game/windows/face_warrior.sub", RACE_ASSASSIN_W : "d:/ymir work/ui/game/windows/face_assassin.sub", RACE_SURA_M : "d:/ymir work/ui/game/windows/face_sura.sub", RACE_SHAMAN_W : "d:/ymir work/ui/game/windows/face_shaman.sub", } def __InitData(): if app.ENABLE_CPP_PSM: cpsm.InitData() else: ## paste your code here pass def __LoadGameSound(): if app.ENABLE_CPP_PSM: cpsm.LoadGameSound() else: ## paste your code here pass def __LoadGameEffect(): if app.ENABLE_CPP_PSM: cpsm.LoadGameEffect() else: ## paste your code here pass def __LoadGameWarrior(): if app.ENABLE_CPP_PSM: cpsm.LoadGameWarrior() else: ## paste your code here pass def __LoadGameAssassin(): if app.ENABLE_CPP_PSM: cpsm.LoadGameAssassin() else: ## paste your code here pass def __LoadGameSura(): if app.ENABLE_CPP_PSM: cpsm.LoadGameSura() else: ## paste your code here pass def __LoadGameShaman(): if app.ENABLE_CPP_PSM: cpsm.LoadGameShaman() else: ## paste your code here pass # if app.ENABLE_WOLFMAN_CHARACTER: # def __LoadGameWolfman(): # if app.ENABLE_CPP_PSM: # cpsm.LoadGameWolfman() # else: # paste your code here # pass def __LoadGameSkill(): if app.ENABLE_CPP_PSM: cpsm.LoadGameSkill() else: ## paste your code here pass def __LoadGameNPC(): try: lines = open("npclist.txt", "r").readlines() except IOError: import dbg dbg.LogBox("LoadLocaleError(%(srcFileName)s)" % locals()) app.Abort() for line in lines: tokens = line[:-1].split("\t") if len(tokens) == 0 or not tokens[0]: continue try: vnum = int(tokens[0]) except ValueError: import dbg dbg.LogBox("LoadGameNPC() - %s - line #%d: %s" % (tokens, lines.index(line), line)) app.Abort() try: if vnum: chrmgr.RegisterRaceName(vnum, tokens[1].strip()) else: chrmgr.RegisterRaceSrcName(tokens[1].strip(), tokens[2].strip()) except IndexError: import dbg dbg.LogBox("LoadGameNPC() - %d, %s - line #%d: %s " % (vnum, tokens, lines.index(line), line)) app.Abort() if app.ENABLE_RACE_HEIGHT_RENEWAL: def __LoadRaceHeight(): directory = "race_height.txt" try: lines = open(directory,"r").readlines() except IOError: return for line in lines: try: tokens = line[:-1].split("\t") if len(tokens) <= 1 or not tokens[0]: continue if tokens[0].find("#") != -1: continue if tokens[1].find("#") != -1: tokens[1] = tokens[1].split("#")[0].replace("\s","") if tokens[1].find("#") != -1: continue vnum = int(tokens[0]) height = float(tokens[1]) chrmgr.SetRaceHeight(vnum, height) except: import dbg dbg.TraceError("I could not read the lines of %s" % directory) ## Emoticon EmoticonStr = "d:/ymir work/effect/etc/emoticon/" chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+0, "", EmoticonStr+"sweat.mse") net.RegisterEmoticonString("(황당)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+1, "", EmoticonStr+"money.mse") net.RegisterEmoticonString("(돈)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+2, "", EmoticonStr+"happy.mse") net.RegisterEmoticonString("(기쁨)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+3, "", EmoticonStr+"love_s.mse") net.RegisterEmoticonString("(좋아)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+4, "", EmoticonStr+"love_l.mse") net.RegisterEmoticonString("(사랑)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+5, "", EmoticonStr+"angry.mse") net.RegisterEmoticonString("(분노)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+6, "", EmoticonStr+"aha.mse") net.RegisterEmoticonString("(아하)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+7, "", EmoticonStr+"gloom.mse") net.RegisterEmoticonString("(우울)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+8, "", EmoticonStr+"sorry.mse") net.RegisterEmoticonString("(죄송)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+9, "", EmoticonStr+"!_mix_back.mse") net.RegisterEmoticonString("(!)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+10, "", EmoticonStr+"question.mse") net.RegisterEmoticonString("(?)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+11, "", EmoticonStr+"fish.mse") net.RegisterEmoticonString("(fish)") ## Emoticon ######################################################################################### ## KRAL LONCA OYUNCU - VIP SYSTEM ######################################################################################### chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+12, "", "d:/ymir work/taglar/klicon.mse") net.RegisterEmoticonString("(klicon)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+13, "", "d:/ymir work/taglar/kralicon.mse") net.RegisterEmoticonString("(kralicon)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+14, "", "d:/ymir work/taglar/vip.mse") net.RegisterEmoticonString("(vipicon)") ## KRAL LONCA OYUNCU - VIP SYSTEM ######################################################################################### # GUILD_BUILDING def LoadGuildBuildingList(filename): import uiGuild uiGuild.BUILDING_DATA_LIST = [] handle = app.OpenTextFile(filename) count = app.GetTextFileLineCount(handle) for i in xrange(count): line = app.GetTextFileLine(handle, i) tokens = line.split("\t") TOKEN_VNUM = 0 TOKEN_TYPE = 1 TOKEN_NAME = 2 TOKEN_LOCAL_NAME = 3 NO_USE_TOKEN_SIZE_1 = 4 NO_USE_TOKEN_SIZE_2 = 5 NO_USE_TOKEN_SIZE_3 = 6 NO_USE_TOKEN_SIZE_4 = 7 TOKEN_X_ROT_LIMIT = 8 TOKEN_Y_ROT_LIMIT = 9 TOKEN_Z_ROT_LIMIT = 10 TOKEN_PRICE = 11 TOKEN_MATERIAL = 12 TOKEN_NPC = 13 TOKEN_GROUP = 14 TOKEN_DEPEND_GROUP = 15 TOKEN_ENABLE_FLAG = 16 LIMIT_TOKEN_COUNT = 17 if not tokens[TOKEN_VNUM].isdigit(): continue if len(tokens) < LIMIT_TOKEN_COUNT: import dbg dbg.TraceError("Strange token count [%d/%d] [%s]" % (len(tokens), LIMIT_TOKEN_COUNT, line)) continue ENABLE_FLAG_TYPE_NOT_USE = False ENABLE_FLAG_TYPE_USE = True ENABLE_FLAG_TYPE_USE_BUT_HIDE = 2 if ENABLE_FLAG_TYPE_NOT_USE == int(tokens[TOKEN_ENABLE_FLAG]): continue vnum = int(tokens[TOKEN_VNUM]) type = tokens[TOKEN_TYPE] name = tokens[TOKEN_NAME] localName = tokens[TOKEN_LOCAL_NAME] xRotLimit = int(tokens[TOKEN_X_ROT_LIMIT]) yRotLimit = int(tokens[TOKEN_Y_ROT_LIMIT]) zRotLimit = int(tokens[TOKEN_Z_ROT_LIMIT]) price = tokens[TOKEN_PRICE] material = tokens[TOKEN_MATERIAL] folderName = "" if "HEADQUARTER" == type: folderName = "headquarter" elif "FACILITY" == type: folderName = "facility" elif "OBJECT" == type: folderName = "object" elif "WALL" == type: folderName = "fence" materialList = ["0", "0", "0"] if material: if material[0] == "\"": material = material[1:] if material[-1] == "\"": material = material[:-1] for one in material.split("/"): data = one.split(",") if 2 != len(data): continue itemID = int(data[0]) count = data[1] if itemID == uiGuild.MATERIAL_STONE_ID: materialList[uiGuild.MATERIAL_STONE_INDEX] = count elif itemID == uiGuild.MATERIAL_LOG_ID: materialList[uiGuild.MATERIAL_LOG_INDEX] = count elif itemID == uiGuild.MATERIAL_PLYWOOD_ID: materialList[uiGuild.MATERIAL_PLYWOOD_INDEX] = count import chrmgr chrmgr.RegisterRaceSrcName(name, folderName) chrmgr.RegisterRaceName(vnum, name) appendingData = { "VNUM":vnum, "TYPE":type, "NAME":name, "LOCAL_NAME":localName, "X_ROT_LIMIT":xRotLimit, "Y_ROT_LIMIT":yRotLimit, "Z_ROT_LIMIT":zRotLimit, "PRICE":price, "MATERIAL":materialList, "SHOW" : True } if ENABLE_FLAG_TYPE_USE_BUT_HIDE == int(tokens[TOKEN_ENABLE_FLAG]): appendingData["SHOW"] = False uiGuild.BUILDING_DATA_LIST.append(appendingData) app.CloseTextFile(handle) # END_OF_GUILD_BUILDING loadGameDataDict={ "INIT" : __InitData, "SOUND" : __LoadGameSound, "EFFECT" : __LoadGameEffect, "WARRIOR" : __LoadGameWarrior, "ASSASSIN" : __LoadGameAssassin, "SURA" : __LoadGameSura, "SHAMAN" : __LoadGameShaman, # "WOLFMAN": __LoadGameWolfman, "SKILL" : __LoadGameSkill, "NPC" : __LoadGameNPC, } if app.ENABLE_RACE_HEIGHT_RENEWAL: loadGameDataDict.update({"RACE_HEIGHT": __LoadRaceHeight,}) def LoadGameData(name): global loadGameDataDict load=loadGameDataDict.get(name, 0) if load: loadGameDataDict[name]=0 try: load() except: print name import exception exception.Abort("LoadGameData") raise
Client kaynak kodlarında da yok.Sizde PSM sistemi kurulu, yani bahsedilen kodlar Client kaynak kodlarının içinde. Client kaynak kodlarında aramalısınız ilgili kısmı.
PSM sisteminde bu kodlarda değişiklikler olur. Yeni kanat kodlarını da uyarlamanız gerekir. Kopyala yapıştır şeklinde eklerseniz hata alırsınız. Sadece EFFECT_REFINED+1 şeklinde arayın, veya ilgili dosyada gözle arama yapın.client kaynak kodlarındada yok
// USERINTERFACE // PYTHONPLAYERSETTİNGSMODULE.CPP ARAT
{ pkBase.EFFECT_AFFECT + 37, "", "d:/ymir work/effect/etc/guild_war_flag/flag_yellow.mse" },
// ALTINA EKLE KANAT EFEKT YOLUNU KENDİNE GÖRE VE SIRALAMAYI KENDİNE GÖRE DÜZENLE
#if defined MAVIRUH_WING_EFFECT
{ pkBase.EFFECT_AFFECT + 45, "Bip01", "d:/ymir work/item/wing/plechito/astral_wings/astral_gold.mse"},
{ pkBase.EFFECT_AFFECT + 46, "Bip01", "d:/ymir work/item/wing/plechito/astral_wings/astral_crystal.mse"},
{ pkBase.EFFECT_AFFECT + 47, "Bip01", "d:/ymir work/item/wing/plechito/astral_wings/astral_black.mse"},
{ pkBase.EFFECT_AFFECT + 48, "Bip01", "d:/ymir work/item/wing/plechito/astral_wings/astral_wings.mse"},
#endif
Şu an doğru mu bir de sayılarda karışıklık var sıralamayı kaç kaç yapmam lazım?C++:// USERINTERFACE // PYTHONPLAYERSETTİNGSMODULE.CPP ARAT { pkBase.EFFECT_AFFECT + 37, "", "d:/ymir work/effect/etc/guild_war_flag/flag_yellow.mse" }, // ALTINA EKLE KANAT EFEKT YOLUNU KENDİNE GÖRE VE SIRALAMAYI KENDİNE GÖRE DÜZENLE #if defined MAVIRUH_WING_EFFECT { pkBase.EFFECT_AFFECT + 45, "Bip01", "d:/ymir work/item/wing/plechito/astral_wings/astral_gold.mse"}, { pkBase.EFFECT_AFFECT + 46, "Bip01", "d:/ymir work/item/wing/plechito/astral_wings/astral_crystal.mse"}, { pkBase.EFFECT_AFFECT + 47, "Bip01", "d:/ymir work/item/wing/plechito/astral_wings/astral_black.mse"}, { pkBase.EFFECT_AFFECT + 48, "Bip01", "d:/ymir work/item/wing/plechito/astral_wings/astral_wings.mse"}, #endif
49 dan başlat 50-51-52 diye devam et bak bakalım çalışıyor muŞu an doğru mu bir de sayılarda karışıklık var sıralamayı kaç kaç yapmam lazım?
Ve o ronark sistemi sıralaması doğru değil onuda düzelt ilk önce kanatı aradan çıkarŞu an doğru mu bir de sayılarda karışıklık var sıralamayı kaç kaç yapmam lazım?
lycan karakteri oyunda kaldırılmış o yüzden sıralama böyle olabilir miVe o ronark sistemi sıralaması doğru değil onuda düzelt ilk önce kanatı aradan çıkar
Eğer bir sorun olursa düzeltirsin sıralamayı kanat çözüldüğüne göre kolay gelsin.lycan karakteri oyunda kaldırılmış o yüzden sıralama böyle olabilir mi
kanatı daha ekleyemedim client build de hata veriyor çözmeyi bilmiyorumEğer bir sorun olursa düzeltirsin sıralamayı kanat çözüldüğüne göre kolay gelsin.
Çözümü paylaş çözelimkanatı daha ekleyemedim client build de hata veriyor çözmeyi bilmiyorum
client build hatası için konu açtımÇözümü paylaş çözelim