- Mesaj
- 596
- Çözümler
- 18
- Beğeni
- 618
- Puan
- 829
- Ticaret Puanı
- 0
Sistem basittir, canı belirli bir yüzdenin altında ki mobları infaz eder. Sadece PvE etkilidir (yaratıklar ve metin taşları).
common\length.h içerisinde aratılır
C++:
enum EApplyTypes
C++:
MAX_APPLY_NUM
C++:
APPLY_EXECUTION,
DB/ProtoReader.cpp içerisinde aratılır
C++:
string arApplyType[]
C++:
"APPLY_ANTI_PENETRATE_PCT",
C++:
"APPLY_EXECUTION"
GAME/skill.cpp içinde ki
C++:
kPointOnTypes[]
C++:
{ "EXECUTION", POINT_EXECUTION },
GAME/char.cpp içinde aratılır
C++:
case POINT_RESIST_SHAMAN:
C++:
case POINT_EXECUTION:
C++:
case APPLY_RESIST_SHAMAN:
C++:
case APPLY_EXECUTION:
---------------------------- bu kısım metinlerden +0 olanının düşmesini istiyorsanız -----------------------------------
aynı dosya içerisinde aratılır:
C++:
CHARACTER::DetermineDropMetinStone
C++:
METIN_STONE_NUM
C++:
static DWORD c_adwMetin[METIN_STONE_NUM]
C++:
28044,
GAME/char.h içerisinde ki
C++:
enum EPointTypes
C++:
POINT_RESIST_PENETRATE = 137,
C++:
POINT_EXECUTION = 138,
GAME/constants.cpp içinde ki
C++:
TApplyInfo aApplyInfo[MAX_APPLY_NUM]
C++:
{ POINT_EXECUTION, },
aynı dosya içinde ki
C++:
TValueName c_aApplyTypeNames[]
C++:
{ "APPLY_EXECUTION", APPLY_EXECUTION },
GAME/char_battle.cpp içerisinde aratılır:
C++:
m_dwKillerPID = pAttacker->GetPlayerID();
C++:
if (GetHP() <= 0)
C++:
if (0 >= GetHP() || (((pAttacker && pAttacker->IsPC()) && (IsMonster() || IsStone())) && (dam >= (GetHP() - ((GetMaxHP() * (static_cast<float>(pAttacker->GetPoint(POINT_EXECUTION) / 100.0f))) / 100)))))
{
Stun(true);
if (pAttacker && !pAttacker->IsNPC())
{
m_dwKillerPID = pAttacker->GetPlayerID();
}
else
{
m_dwKillerPID = 0;
}
}
DUMP_PROTO/ItemCSVReader.cpp içerisinde aratılır
C++:
arApplyType[]
C++:
arApplyType[]
C++:
"APPLY_EXECUTION"
ROOT(pack içerisinde ki)/uitooltip.py içerisinde aratılır
Python:
AFFECT_DICT = {
Python:
item.APPLY_EXECUTION : localeInfo.TOOLTIP_APPLY_EXECUTION,
tekrar aratılır
Python:
def __GetAffectString(self, affectType, affectValue):
Python:
def __GetAffectString(self, affectType, affectValue):
if 0 == affectType:
return None
if 0 == affectValue:
return None
try:
if affectType == item.APPLY_EXECUTION:
return self.AFFECT_DICT[affectType](float(affectValue) / 100.0)
else:
return self.AFFECT_DICT[affectType](affectValue)
except TypeError:
return "UNKNOWN_VALUE[%s] %s" % (affectType, affectValue)
except KeyError:
return "UNKNOWN_TYPE[%s] %s" % (affectType, affectValue)
CLIENT/PythonPlayerModule.cpp içerisinde aratılır:
C++:
PyModule_AddIntConstant(poModule, "MAX_NUM", POINT_MAX_NUM);
PyModule_AddIntConstant(poModule, "EXECUTION", POINT_EXECUTION);
CLIENT/PythonItemModule.cpp içerisinde aratılır:
C++:
PyModule_AddIntConstant(poModule, "APPLY_COSTUME_ATTR_BONUS", CItemData::APPLY_COSTUME_ATTR_BONUS);
C++:
PyModule_AddIntConstant(poModule, "APPLY_EXECUTION", CItemData::APPLY_EXECUTION);
tekrar aratılır:
C++:
case CItemData::EApplyTypes::APPLY_RESIST_WARRIOR: return EPointTypes::POINT_RESIST_WARRIOR;
C++:
case CItemData::EApplyTypes::APPLY_EXECUTION: return EPointTypes::POINT_EXECUTION;
GameLib/itemdata.h içerisinde ki
C++:
enum EApplyTypes
C++:
MAX_APPLY_NUM,
C++:
APPLY_EXECUTION,
item_names.txt içerisine eklenir:
Kod:
28044 İnfaz Taşı+0
28144 İnfaz Taşı+1
28244 İnfaz Taşı+2
28344 İnfaz Taşı+3
28444 İnfaz Taşı+4
item_proto.txt içerisine eklenir:
Kod:
28044 »ì¿µ¼®+0 ITEM_METIN METIN_NORMAL 1 NONE NONE WEAR_WEAPON 2500 2500 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_EXECUTION 250 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 31 0 0 0
28144 »ì¿µ¼®+1 ITEM_METIN METIN_NORMAL 1 NONE NONE WEAR_WEAPON 5000 5000 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_EXECUTION 500 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 31 0 0 0
28244 »ì¿µ¼®+2 ITEM_METIN METIN_NORMAL 1 NONE NONE WEAR_WEAPON 10000 10000 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_EXECUTION 750 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 31 0 0 0
28344 »ì¿µ¼®+2 ITEM_METIN METIN_NORMAL 1 NONE NONE WEAR_WEAPON 10000 10000 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_EXECUTION 1000 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 31 0 0 0
28444 »ì¿µ¼®+4 ITEM_METIN METIN_NORMAL 1 NONE NONE WEAR_WEAPON 40000 40000 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_EXECUTION 1500 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 31 0 0 0
pack/locale/locale_game.txt içerisine eklenir:
Kod:
TOOLTIP_APPLY_EXECUTION İnfaz Gücü +%.1f%% SA
NOTLAR
item_proto içerisine ekledikten sonra server içine atmayı ve ayrıca dump_proto ile çıktı alıp pack/locale içine atmayı unutmayın (dump_proto da derlenmeli)
taşların kodları: { 28044, 28144, 28244, 28344, 28444 }
bu taşlar için packta icon tanımlamayı unutmayın yoksa taşlar oyun içi gözükmez (item_list.txt).
Son düzenleme: