1010 20:14:04181 ::
networkModule.py(line:208) SetSelectCharacterPhase
system.py(line:130) __pack_import
system.py(line:110) _process_result
introSelect.py(line:23) <module>
system.py(line:130) __pack_import
system.py(line:110) _process_result
uiAffectShower.py(line:8) <module>
system.py(line:130) __pack_import
system.py(line:110) _process_result
uiToolTip.py(line:314) <module>
uiToolTip.py(line:373) ItemToolTip
networkModule.SetSelectCharacterPhase - <type 'exceptions.AttributeError'>:'module' object has no attribute 'APPLY_ATTBONUS_STONE'
1010 20:14:04181 :: Abort!!!!
1010 20:14:04181 :: ============================================================================================================
Was ist damit genau gemeint? Bin mit dem Code von M2Dragon gegenagen
- __________
- ClientSrc>GameLib>ItemData.h
- // Search: enum EApplyTypes
- // Add to Enum:
- APPLY_ATTBONUS_NEWATTRTYPE,
- __________
- ClientSrc>UserInterface>PythonPlayerModule.cpp
- // Searcharch:
- PyModule_AddIntConstant(poModule, "APPLY_ANTI_PENETRATE_PCT", CItemData::APPLY_ANTI_PENETRATE_PCT );
- // Add:
- PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_NEWATTRTYPE", CItemData::APPLY_ATTBONUS_NEWATTRTYPE);
- __________
- ClientSrc>UserInterface>Packet.h
- // Search: enum EPointTypes
- // Add to Enum:
- POINT_ATTBONUS_NEWATTRTYPE,
- __________
- GameSrc>common>length.h
- // Search: enum ERaceFlags
- // Add:
- RACE_FLAG_ATT_NEWATTRTYPE = (1 << /*Last number +1*/)
- // Search: enum EApplyTypes
- // Add to Enum:
- APPLY_ATTBONUS_NEWATTRTYPE,
- __________
- GameSrc>game>char.h
- // Search: enum EPointTypes
- // Add to Enum:
- POINT_ATTBONUS_NEWATTRTYPE,
- __________
- GameSrc>game>char.cpp
- // Search: case POINT_RESIST_SHAMAN:
- // Add:
- case POINT_ATTBONUS_NEWATTRTYPE:
- // Search: case APPLY_NORMAL_HIT_DAMAGE_BONUS:
- // Add:
- case APPLY_ATTBONUS_NEWATTRTYPE:
- __________
- GameSrc>game>cmd_general.cpp
- // Search:
- static const char* [...]
- switch (apply_number)
- {
- // ICINDE BUL
- case POINT_RESIST_SHAMAN: return LC_TEXT("¹«´ç°ø°Ý¿¡ %d%% ÀúÇ×");
- // Add:
- case POINT_ATTBONUS_NEWATTRTYPE: return LC_TEXT("POINT_ATTBONUS_NEWATTRTYPE: %d%%");
- __________
- GameSrc>game>cmd_gm.cpp
- // Search: tch->GetPoint(POINT_ATTBONUS_SHAMAN));
- // Add in do_state command:
- ch->ChatPacket(CHAT_TYPE_INFO, " NEWATTRTYPE:%3d%%",
- tch->GetPoint(POINT_ATTBONUS_NEWATTRTYPE));
- __________
- GameSrc>game>constants.cpp
- // Search: const TApplyInfo aApplyInfo[MAX_APPLY_NUM] =
- // Add in function:
- { POINT_ATTBONUS_NEWATTRTYPE, }, // APPLY_ATTBONUS_NEWATTRTYPE,
- // Search: TValueName c_aApplyTypeNames[] =
- // Search in this: { NULL, 0 }
- // Add above:
- { "ATT_NEWATTRTYPE", APPLY_ATTBONUS_NEWATTRTYPE },
- __________
- GameSrc>game>battle.cpp
- pkVictim (It meanings of defendor)
- pkAttacker is attacker
- if we are adding Defence attr type from mobs we will add this func.
- if (pkAttacker->IsNPC() && pkVictim->IsPC())
- or we are adding attack attr type to mobs we will add this func.
- if (pkAttacker->IsPC() && pkVictim->IsNPC())
- Logic is this
- //Search: iAtk+= (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_ANIMAL)) / 100;
- // Add:
- else if (pkVictim->IsRaceFlag(RACE_FLAG_ATT_NEWATTRTYPE))
- iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_NEWATTRTYPE)) / 100;
- __________
- GameSrc>db>protoreader.cpp
- // Search: string arApplyType[]
- // Add to the end:
- "APPLY_ATTBONUS_NEWATTRTYPE",
- // Search: string arRaceFlag[]
- // Add to the end:
- "ATT_NEWATTRTYPE"
- __________
- Tools>DumpProtoSource>ItemCSVReader.cpp
- // Search: string arApplyType[]
- // Add to the end:
- "APPLY_ATTBONUS_NEWATTRTYPE",
- // Search: string arRaceFlag[]
- // Add to the end:
- "ATT_NEWATTRTYPE"
- __________
- Client>root>uitooltip.py
- // Search: item.APPLY_ATTBONUS_DEVIL : localeInfo.TOOLTIP_APPLY_ATTBONUS_DEVIL,
- // Add:
- item.APPLY_ATTBONUS_NEWATTRTYPE : localeInfo.TOOLTIP_APPLY_ATTBONUS_NEWATTRTYPE,
- __________
- Client>locale>xx>locale_game.txt
- // Add:
- TOOLTIP_APPLY_ATTBONUS_NEWATTRTYPE Strong against to attr type you want xd +%d%% SA
Alles anzeigen
und um ihn dann auch richtig zu nutzen, muss er auch in MySQL eingetragen werden.