client/bin/pack/root/constinfo.py

349 lines
13 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import item
########Anti Exp Button by Sanii##########
#ANTI_EXP = 0
#ANTI_EXP_STATE = 0
##########################################
##########################################
## BONISWITCHER ENTRIES
##########################################
#SWITCHER_COUNT = 5
#OPTION_FILE_NAME = "config.inf"
#ATTR_BONI_LIST = ["Keiner", "Max. TP", "Max. MP", "Vitalität", "Intelligenz", "Stärke", "Beweglichkeit", "Angriffsgeschwindigkeit", "Bewegungsgeschwindigkeit",
#"Zaubergeschwindigkeit", "Lebensregeneration", "Manaregeneration", "Vergiftungschance", "Ohnmachtschance", "Verlangsamungschance",
#"Chance auf krit. Treffer", "Chance auf durchbohrenden Treffer", "Schaden gegen Halbmenschen", "Schaden gegen Tiere", "Schaden gegen Orks",
#"Schaden gegen Esoterische", "Schaden gegen Untote", "Schaden gegen Teufel", "Schaden wird von TP absorbiert", "Schaden wird von MP absorbiert",
#"Chance auf Manaraub", "Chance, MP bei Treffer zurückzuerhalten", "Chance, Nahkampf-Angriff abzublocken", "Chance, Pfeilangriff auszuweichen",
#"Schwertverteidigung", "Zweihänderverteidigung", "Dolchverteidigung", "Glockenverteidigung", "Fächerverteidigung", "Pfeilwiderstand",
#"Feuerwiderstand", "Blitzwiderstand", "Magiewiderstand", "Windwiderstand", "Chance, Nahkampftreffer zu reflektieren",
#"Chance, Fluch zu reflektieren", "Giftwiderstand", "Chance, MP wiederherzustellen", "Chance auf EXP-Bonus",
#"Chance, eine doppelte Menge Yang fallen zu lassen", "Chance, eine doppelte Menge von Gegenständen fallen zu lassen", "Trank Effektzuwachs",
#"Chance, TP wiederherzustellen", "Abwehr gegen Ohnmacht", "Abwehr gegen Verlangsamung", "Immun gegen Stürzen", "SKILL", "Bogenreichweite",
#"Angriffswert", "Verteidigung", "Magieangriffswert", "Magieverteidigung", "-", "Max. Ausdauer", "Schaden gegen Krieger",
#"Schaden gegen Ninjas", "Schaden gegen Suras", "Schaden gegen Schamanen", "Schaden gegen Monster", "-", "-", "-", "-", "-", "-", "-",
#"Fertigkeitsschaden", "Durchschn. Schaden"]
#ITEM_LIST_WEAPON_ADDON = [189, 199, 299, 3169, 3219, 5119, 5129, 7169, 2159, 2179, 1139, 1179, 469, 479, 9919, 5349, 7379, 1349, 2379]
#BONI_LIST_NO_PLUS = [0, 48, 49, 50]
#BONI_LIST_NO_PERCENT = [0, 1, 2, 3, 4, 5, 6, 48, 49, 50, 52, 53, 54, 55, 56]
#BONI_LIST_NO_VALUE = [0, 48, 49, 50]
#def GetAttrText(attrtyp, attrval):
#attrtyp = int(attrtyp)
#attrval = int(attrval)
#attrtext = ""
#if BONI_LIST_NO_PLUS.count(attrtyp) == 0 and int(attrval) >= 0:
#attrtext = "+"
#if BONI_LIST_NO_VALUE.count(attrtyp) == 0:
#attrtext = attrtext + str(attrval)
#if BONI_LIST_NO_PERCENT.count(attrtyp) == 0:
#attrtext = attrtext + "%"
#if BONI_LIST_NO_VALUE.count(attrtyp) == 0:
#attrtext = attrtext + " "
#attrtext = attrtext + ATTR_BONI_LIST[attrtyp]
#return attrtext
#ATTR_BONI_LIST = ["Keiner", "Max. TP", "Max. MP", "Vitalität", "Intelligenz", "Stärke", "Beweglichkeit", "Angriffsgeschwindigkeit", "Bewegungsgeschwindigkeit",
#"Zaubergeschwindigkeit", "Lebensregeneration", "Manaregeneration", "Vergiftungschance", "Ohnmachtschance", "Verlangsamungschance",
#"Chance auf krit. Treffer", "Chance auf durchbohrenden Treffer", "Schaden gegen Halbmenschen", "Schaden gegen Tiere", "Schaden gegen Orks",
#"Schaden gegen Esoterische", "Schaden gegen Untote", "Schaden gegen Teufel", "Schaden wird von TP absorbiert", "Schaden wird von MP absorbiert",
#"Chance auf Manaraub", "Chance, MP bei Treffer zurückzuerhalten", "Chance, Nahkampf-Angriff abzublocken", "Chance, Pfeilangriff auszuweichen",
#"Schwertverteidigung", "Zweihänderverteidigung", "Dolchverteidigung", "Glockenverteidigung", "Fächerverteidigung", "Pfeilwiderstand",
#"Feuerwiderstand", "Blitzwiderstand", "Magiewiderstand", "Windwiderstand", "Chance, Nahkampftreffer zu reflektieren",
#"Chance, Fluch zu reflektieren", "Giftwiderstand", "Chance, MP wiederherzustellen", "Chance auf EXP-Bonus",
#"Chance, eine doppelte Menge Yang fallen zu lassen", "Chance, eine doppelte Menge von Gegenständen fallen zu lassen", "Trank Effektzuwachs",
#"Chance, TP wiederherzustellen", "Abwehr gegen Ohnmacht", "Abwehr gegen Verlangsamung", "Immun gegen Stürzen", "SKILL", "Bogenreichweite",
#"Angriffswert", "Verteidigung", "Magieangriffswert", "Magieverteidigung", "-", "Max. Ausdauer", "Schaden gegen Krieger",
#"Schaden gegen Ninjas", "Schaden gegen Suras", "Schaden gegen Schamanen", "Schaden gegen Monster", "-", "-", "-", "-", "-", "-", "-",
#"Fertigkeitsschaden", "Durchschn. Schaden"]
#BONI_LIST_MAX_VALUE = {1:2500, 2:80, 3:12, 4:12, 5:12, 6:12, 7:8, 8:20, 9:20, 10:30, 11:30, 12:8, 13:8, 14:8, 15:10, 16:10, 17:10, 18:20, 19:20, 20:20, 21:20, 22:20, 23:10, 24:10, 25:10, 27:15, 28:15, 29:15, 30:15, 31:15, 32:15, 33:15, 34:15, 35:15, 36:15, 37:15, 38:15, 39:10, 41:5, 43:20, 44:20, 45:20, 48:1, 49:1, 53:50, 59:10, 60:10, 61:10, 62:10, 78:10, 79:10, 80:10, 81:10}
#BONI_LIST_ARMOR = [1, 9, 23, 24, 29, 30, 31, 32, 33, 34, 37, 39, 53]
#BONI_LIST_SHIELD = [3, 4, 5, 6, 17, 18, 19, 20, 21, 22, 27, 39, 48, 49, 66, 68]
#BONI_LIST_BOOTS = [1, 7, 8, 13, 14, 15, 28, 29, 30, 31, 32, 33, 34, 66, 68]
#BONI_LIST_BRACELET = [1, 16, 17, 18, 19, 20, 21, 22, 23, 25, 37, 67]
#BONI_LIST_HELMET = [7, 10, 11, 12, 17, 18, 19, 20, 21, 22, 24, 28, 37]
#BONI_LIST_EARRINGS = [8, 17, 18, 19, 20, 21, 22, 25, 29, 30, 31, 32, 33, 34, 41, 67]
#BONI_LIST_WEAPON = [3, 4, 5, 6, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
#BONI_LIST_NECKLACE = [1, 10, 11, 13, 15, 16, 24, 29, 30, 31, 32, 33, 34, 66, 68]
#BONI_LIST_WEAPON_ADDON = [3, 4, 5, 6, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 71, 72]
#BONI_SWITCHER_LOAD = TRUE
#BONI_SWITCHER_ACTIVE = [FALSE, FALSE, FALSE, FALSE, FALSE]
##########################################
## BONISWITCHER ENTRIES [END]
##########################################
# option
IN_GAME_SHOP_ENABLE = 1
CONSOLE_ENABLE = 0
PVPMODE_ENABLE = 1
PVPMODE_TEST_ENABLE = 0
PVPMODE_ACCELKEY_ENABLE = 1
PVPMODE_ACCELKEY_DELAY = 0.5
PVPMODE_PROTECTED_LEVEL = 30
FOG_LEVEL0 = 4800.0
FOG_LEVEL1 = 9600.0
FOG_LEVEL2 = 12800.0
FOG_LEVEL = FOG_LEVEL0
FOG_LEVEL_LIST=[FOG_LEVEL0, FOG_LEVEL1, FOG_LEVEL2]
CAMERA_MAX_DISTANCE_SHORT = 2500.0
CAMERA_MAX_DISTANCE_LONG = 3500.0
CAMERA_MAX_DISTANCE_LIST=[CAMERA_MAX_DISTANCE_SHORT, CAMERA_MAX_DISTANCE_LONG]
CAMERA_MAX_DISTANCE = CAMERA_MAX_DISTANCE_SHORT
CHRNAME_COLOR_INDEX = 0
ENVIRONMENT_NIGHT="d:/ymir work/environment/moonlight04.msenv"
# constant
HIGH_PRICE = 500000
MIDDLE_PRICE = 50000
ERROR_METIN_STONE = 28960
SUB2_LOADING_ENABLE = 1
EXPANDED_COMBO_ENABLE = 1
CONVERT_EMPIRE_LANGUAGE_ENABLE = 1
USE_ITEM_WEAPON_TABLE_ATTACK_BONUS = 0
ADD_DEF_BONUS_ENABLE = 1
LOGIN_COUNT_LIMIT_ENABLE = 0
USE_SKILL_EFFECT_UPGRADE_ENABLE = 1
VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD = 1
GUILD_MONEY_PER_GSP = 100
GUILD_WAR_TYPE_SELECT_ENABLE = 1
TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE = 0
HAIR_COLOR_ENABLE = 1
ARMOR_SPECULAR_ENABLE = 1
WEAPON_SPECULAR_ENABLE = 1
SEQUENCE_PACKET_ENABLE = 1
KEEP_ACCOUNT_CONNETION_ENABLE = 1
MINIMAP_POSITIONINFO_ENABLE = 0
CONVERT_EMPIRE_LANGUAGE_ENABLE = 0
USE_ITEM_WEAPON_TABLE_ATTACK_BONUS = 0
ADD_DEF_BONUS_ENABLE = 0
LOGIN_COUNT_LIMIT_ENABLE = 0
PVPMODE_PROTECTED_LEVEL = 15
TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE = 10
isItemDropQuestionDialog = 0
def GET_ITEM_DROP_QUESTION_DIALOG_STATUS():
global isItemDropQuestionDialog
return isItemDropQuestionDialog
def SET_ITEM_DROP_QUESTION_DIALOG_STATUS(flag):
global isItemDropQuestionDialog
isItemDropQuestionDialog = flag
import app
import net
########################
def SET_DEFAULT_FOG_LEVEL():
global FOG_LEVEL
app.SetMinFog(FOG_LEVEL)
def SET_FOG_LEVEL_INDEX(index):
global FOG_LEVEL
global FOG_LEVEL_LIST
try:
FOG_LEVEL=FOG_LEVEL_LIST[index]
except IndexError:
FOG_LEVEL=FOG_LEVEL_LIST[0]
app.SetMinFog(FOG_LEVEL)
def GET_FOG_LEVEL_INDEX():
global FOG_LEVEL
global FOG_LEVEL_LIST
return FOG_LEVEL_LIST.index(FOG_LEVEL)
########################
def SET_DEFAULT_CAMERA_MAX_DISTANCE():
global CAMERA_MAX_DISTANCE
app.SetCameraMaxDistance(CAMERA_MAX_DISTANCE)
def SET_CAMERA_MAX_DISTANCE_INDEX(index):
global CAMERA_MAX_DISTANCE
global CAMERA_MAX_DISTANCE_LIST
try:
CAMERA_MAX_DISTANCE=CAMERA_MAX_DISTANCE_LIST[index]
except:
CAMERA_MAX_DISTANCE=CAMERA_MAX_DISTANCE_LIST[0]
app.SetCameraMaxDistance(CAMERA_MAX_DISTANCE)
def GET_CAMERA_MAX_DISTANCE_INDEX():
global CAMERA_MAX_DISTANCE
global CAMERA_MAX_DISTANCE_LIST
return CAMERA_MAX_DISTANCE_LIST.index(CAMERA_MAX_DISTANCE)
########################
import chrmgr
import player
import app
def SET_DEFAULT_CHRNAME_COLOR():
global CHRNAME_COLOR_INDEX
chrmgr.SetEmpireNameMode(CHRNAME_COLOR_INDEX)
def SET_CHRNAME_COLOR_INDEX(index):
global CHRNAME_COLOR_INDEX
CHRNAME_COLOR_INDEX=index
chrmgr.SetEmpireNameMode(index)
def GET_CHRNAME_COLOR_INDEX():
global CHRNAME_COLOR_INDEX
return CHRNAME_COLOR_INDEX
def SET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD(index):
global VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD
VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD = index
def GET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD():
global VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD
return VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD
def SET_DEFAULT_CONVERT_EMPIRE_LANGUAGE_ENABLE():
global CONVERT_EMPIRE_LANGUAGE_ENABLE
net.SetEmpireLanguageMode(CONVERT_EMPIRE_LANGUAGE_ENABLE)
def SET_DEFAULT_USE_ITEM_WEAPON_TABLE_ATTACK_BONUS():
global USE_ITEM_WEAPON_TABLE_ATTACK_BONUS
player.SetWeaponAttackBonusFlag(USE_ITEM_WEAPON_TABLE_ATTACK_BONUS)
def SET_DEFAULT_USE_SKILL_EFFECT_ENABLE():
global USE_SKILL_EFFECT_UPGRADE_ENABLE
app.SetSkillEffectUpgradeEnable(USE_SKILL_EFFECT_UPGRADE_ENABLE)
def SET_TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE():
global TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE
app.SetTwoHandedWeaponAttSpeedDecreaseValue(TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE)
########################
import item
ACCESSORY_MATERIAL_LIST = [50623, 50624, 50625, 50626, 50627, 50628, 50629, 50630, 50631, 50632, 50633, 50634, 50635, 50636, 50637, 50638]
#ACCESSORY_MATERIAL_LIST = [50623, 50623, 50624, 50624, 50625, 50625, 50626, 50627, 50628, 50629, 50630, 50631, 50632, 50633,
# 50623, 50623, 50624, 50624, ]
JewelAccessoryInfos = [
# jewel wrist neck ear
[ 50634, 14420, 16220, 17220 ],
[ 50635, 14500, 16500, 17500 ],
[ 50636, 14520, 16520, 17520 ],
[ 50637, 14540, 16540, 17540 ],
[ 50638, 14560, 16560, 17560 ],
]
def GET_ACCESSORY_MATERIAL_VNUM(vnum, subType):
ret = vnum
item_base = (vnum / 10) * 10
for info in JewelAccessoryInfos:
if item.ARMOR_WRIST == subType:
if info[1] == item_base:
return info[0]
elif item.ARMOR_NECK == subType:
if info[2] == item_base:
return info[0]
elif item.ARMOR_EAR == subType:
if info[3] == item_base:
return info[0]
if vnum >= 16210 and vnum <= 16219:
return 50625
if item.ARMOR_WRIST == subType:
WRIST_ITEM_VNUM_BASE = 14000
ret -= WRIST_ITEM_VNUM_BASE
elif item.ARMOR_NECK == subType:
NECK_ITEM_VNUM_BASE = 16000
ret -= NECK_ITEM_VNUM_BASE
elif item.ARMOR_EAR == subType:
EAR_ITEM_VNUM_BASE = 17000
ret -= EAR_ITEM_VNUM_BASE
type = ret/20
if type<0 or type>=len(ACCESSORY_MATERIAL_LIST):
type = (ret-170) / 20
if type<0 or type>=len(ACCESSORY_MATERIAL_LIST):
return 0
return ACCESSORY_MATERIAL_LIST[type]
##################################################################
## »õ·Î Ãß°¡µÈ 'º§Æ®' ¾ÆÀÌÅÛ Å¸ÀÔ°ú, º§Æ®ÀÇ ¼ÒÄÏ¿¡ ²ÈÀ» ¾ÆÀÌÅÛ °ü·Ã..
## º§Æ®ÀÇ ¼ÒÄϽýºÅÛÀº ¾Ç¼¼¼­¸®¿Í µ¿ÀÏÇϱ⠶§¹®¿¡, À§ ¾Ç¼¼¼­¸® °ü·Ã ÇϵåÄÚµùó·³ ÀÌ·±½ÄÀ¸·Î ÇÒ ¼ö¹Û¿¡ ¾ø´Ù..
def GET_BELT_MATERIAL_VNUM(vnum, subType = 0):
# ÇöÀç´Â ¸ðµç º§Æ®¿¡´Â ÇϳªÀÇ ¾ÆÀÌÅÛ(#18900)¸¸ »ðÀÔ °¡´É
return 18900
## ÀÚµ¿¹°¾à (HP: #72723 ~ #72726, SP: #72727 ~ #72730)
# ÇØ´ç vnumÀÌ ÀÚµ¿¹°¾àÀΰ¡?
def IS_AUTO_POTION(itemVnum):
return IS_AUTO_POTION_HP(itemVnum) or IS_AUTO_POTION_SP(itemVnum)
# ÇØ´ç vnumÀÌ HP ÀÚµ¿¹°¾àÀΰ¡?
def IS_AUTO_POTION_HP(itemVnum):
if 72723 <= itemVnum and 72726 >= itemVnum:
return 1
elif itemVnum >= 76021 and itemVnum <= 76022: ## »õ·Î µé¾î°£ ¼±¹°¿ë È­·æÀÇ Ãູ
return 1
elif itemVnum == 79012:
return 1
return 0
# ÇØ´ç vnumÀÌ SP ÀÚµ¿¹°¾àÀΰ¡?
def IS_AUTO_POTION_SP(itemVnum):
if 72727 <= itemVnum and 72730 >= itemVnum:
return 1
elif itemVnum >= 76004 and itemVnum <= 76005: ## »õ·Î µé¾î°£ ¼±¹°¿ë ¼ö·æÀÇ Ãູ
return 1
elif itemVnum == 79013:
return 1
return 0
def WriteLineInFile(fname, linenum, s):
import os
farr = []
if os.path.exists(fname):
f = open(fname, "r")
for line in f:
farr.append(line)
f.close()
while len(farr) < int(linenum):
farr.append("")
farr[int(linenum)-1] = str(s)
f = open(fname, "w")
for line in farr:
f.write(line)
if (len(line) > 0 and line[-1:] != "\n") or len(line) == 0:
f.write("\n")
f.close()
def ReadLineInFile(fname, linenum):
import os
if not os.path.exists(fname):
return ""
f = open(fname, "r")
farr = []
for line in f:
farr.append(line)
f.close()
if len(farr) >= int(linenum):
ret = farr[int(linenum)-1]
if ret[-1:] == "\n":
return ret[:-1]
else:
return ret
else:
return ""