-
Posts
94 -
Joined
-
Last visited
-
Days Won
4 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by Nirray
-
-
15 minutes ago, drew20 said:
I have to mix the tabs or replace them because I do not know what to do
https://www.python.org/about/gettingstarted/
https://wiki.python.org/moin/BeginnersGuide/Programmers
https://www.python.org/dev/peps/pep-0008/#tabs-or-spaces
"Tabs should be used solely to remain consistent with code that is already indented with tabs."
Replace spaces with TABs
Line: 401 (two TABs instead of x spaces)
Line: 491 (one TAB instead of x spaces) -
2 hours ago, drew20 said:
I did it but I still have the same mistake look:
1002 13:14:18381 :: GRANNY: r:/granny/rt/granny_file_info.cpp(145): File has run-time type tag of 0x8000000f, which doesn't match this version of Granny (0x80000010). Automatic conversion will be attempted.
1002 13:14:29667 :: Traceback (most recent call last):1002 13:14:29667 :: File "networkModule.py", line 228, in SetGamePhase
1002 13:14:29668 :: File "system.py", line 130, in __pack_import
1002 13:14:29668 :: File "
1002 13:14:29668 :: game.py
1002 13:14:29668 :: ", line
1002 13:14:29668 :: 407
1002 13:14:29668 ::1002 13:14:29668 ::
1002 13:14:29668 :: self.onPressKeyDict = onPressKeyDict1002 13:14:29668 ::
1002 13:14:29668 :: ^1002 13:14:29668 :: IndentationError
1002 13:14:29668 :: :
1002 13:14:29668 :: unexpected indent
1002 13:14:29668 ::game.py:
decryption key:-Cy3ICxcfC4kmL6WUYXnTjnY_ipNrf-GJzURdryNjSU
-
Quote
how to make tabs please
@pollux
Please, Rules update:
§2 Topics
(2.5) Questions & Answers specific rules- Don't modify your thread (or reply to it) to mark it solved, and not explain the solution to the issue.
- Please use our tag system and vote good/bad answers so everyone can clearly see what matters!
- You need at least basic knowledge of programming.
- 1
-
Seriously? Change it to TABs XD -
You mean dmg hack svside check from clientside .mse file?
Or waithack from SendAttackPacket?If waithack - it is still working (hidden for example)
Also, because of first check "GetLastAttackTime" there's a input "lag" (you need to attack twice new mob to deal damage [even visible in your gyazo gif with metin stone @Rakancito])
It's more like workaround
To fix it correctly we should change the
CalcMeleeDamage CalcArrowDamage
iDam = 0;
like char_battle.cpp does with bow
if (IS_SPEED_HACK(m_me, pkVictim, dwCurrentTime)) iDam = 0;
I didn't want to be rude I also want to fix it and I'm here to help
input lag:
https://metin2.download/picture/aEms6DYU1h5Z4jY0qutm2jZdy1NbkQL7/.gif
dmghack after second hit:
https://metin2.download/picture/lRF61Ykk8p2uT2kywncvys7cE67gm4KE/.gif- 9
- 1
- 1
- 1
- 1
- 1
-
-
locale_*/locale/*/insult.txt in client pack
-
1 minute ago, bogdan1809 said:
I just compared with the old file and doesn't miss anything. maybe i bought the sf with this problem and now is pretty late to give up it. I need to try to resolve this problem
IDs are working fine so it's something about 'import player' defines for python from c++.
-
20 minutes ago, bogdan1809 said:
replace whole
PyObject* poModule = Py_InitModule("player", s_methods);
with:
https://pastebin.com/gchD2pMe
And add all new defines from your new added systems (ifdef etc.) [you need to find missing ones from your old PythonPlayerModule]
Why -> your client source~python defines are broken.
Or workaround if you're to lazy:
just change:
def __GetTotalAtkText(self): minAtk=player.GetStatus(player.ATT_MIN) maxAtk=player.GetStatus(player.ATT_MAX) atkBonus=player.GetStatus(player.ATT_BONUS) attackerBonus=player.GetStatus(player.ATTACKER_BONUS) if minAtk==maxAtk: return "%d" % (minAtk+atkBonus+attackerBonus) else: return "%d-%d" % (minAtk+atkBonus+attackerBonus, maxAtk+atkBonus+attackerBonus)
to:
def __GetTotalAtkText(self): minAtk=player.GetStatus(29) maxAtk=player.GetStatus(30) atkBonus=player.GetStatus(95) attackerBonus=player.GetStatus(91) if minAtk==maxAtk: return "%d" % (minAtk+atkBonus+attackerBonus) else: return "%d-%d" % (minAtk+atkBonus+attackerBonus, maxAtk+atkBonus+attackerBonus)
(IT'S NOT A FIX, YOUR .cpp part is still wrong.)
-
4 minutes ago, bogdan1809 said:
Okay, we've found our enemy -> packet.h and PythonPlayerModule.cpp
May I see your UserInterface\PythonPlayerModule.cpp?
By the way: have you added a wolfman recently? -
Just now, bogdan1809 said:
import chat
-
1 hour ago, bogdan1809 said:
enum EPointTypes
{
POINT_NONE, // 0
POINT_LEVEL, // 1
POINT_VOICE, // 2
POINT_EXP, // 3
POINT_NEXT_EXP, // 4
POINT_HP, // 5
POINT_MAX_HP, // 6
POINT_SP, // 7
POINT_MAX_SP, // 8
POINT_STAMINA, // 9 스테미너
POINT_MAX_STAMINA, // 10 최대 스테미너
POINT_GOLD, // 11
POINT_ST, // 12 근력
POINT_HT, // 13 체력
POINT_DX, // 14 민첩성
POINT_IQ, // 15 정신력
POINT_ATT_POWER, // 16 공격력
POINT_ATT_SPEED, // 17 공격속도
POINT_EVADE_RATE, // 18 회피율
POINT_MOV_SPEED, // 19 이동속도
POINT_DEF_GRADE, // 20 방어등급
POINT_CASTING_SPEED, // 21 주문속도 (쿨다운타임*100) / (100 + 이값) = 최종 쿨다운 타임
POINT_MAGIC_ATT_GRADE, // 22 마법공격력
POINT_MAGIC_DEF_GRADE, // 23 마법방어력
POINT_EMPIRE_POINT, // 24 제국점수
POINT_LEVEL_STEP, // 25 한 레벨에서의 단계.. (1 2 3 될 때 보상, 4 되면 레벨 업)
POINT_STAT, // 26 능력치 올릴 수 있는 개수
POINT_SUB_SKILL, // 27 보조 스킬 포인트
POINT_SKILL, // 28 액티브 스킬 포인트
// POINT_SKILL_PASV, // 27 패시브 기술 올릴 수 있는 개수
// POINT_SKILL_ACTIVE, // 28 액티브 스킬 포인트
POINT_MIN_ATK, // 29 최소 파괴력
POINT_MAX_ATK, // 30 최대 파괴력
POINT_PLAYTIME, // 31 플레이시간
POINT_HP_REGEN, // 32 HP 회복률
POINT_SP_REGEN, // 33 SP 회복률
POINT_BOW_DISTANCE, // 34 활 사정거리 증가치 (meter)
POINT_HP_RECOVERY, // 35 체력 회복 증가량
POINT_SP_RECOVERY, // 36 정신력 회복 증가량
POINT_POISON_PCT, // 37 독 확률
POINT_STUN_PCT, // 38 기절 확률
POINT_SLOW_PCT, // 39 슬로우 확률
POINT_CRITICAL_PCT, // 40 크리티컬 확률
POINT_PENETRATE_PCT, // 41 관통타격 확률
POINT_CURSE_PCT, // 42 저주 확률
POINT_ATTBONUS_HUMAN, // 43 인간에게 강함
POINT_ATTBONUS_ANIMAL, // 44 동물에게 데미지 % 증가
POINT_ATTBONUS_ORC, // 45 웅귀에게 데미지 % 증가
POINT_ATTBONUS_MILGYO, // 46 밀교에게 데미지 % 증가
POINT_ATTBONUS_UNDEAD, // 47 시체에게 데미지 % 증가
POINT_ATTBONUS_DEVIL, // 48 마귀(악마)에게 데미지 % 증가
POINT_ATTBONUS_INSECT, // 49 벌레족
POINT_ATTBONUS_FIRE, // 50 화염족
POINT_ATTBONUS_ICE, // 51 빙설족
POINT_ATTBONUS_DESERT, // 52 사막족
POINT_ATTBONUS_UNUSED0, // 53 UNUSED0
POINT_ATTBONUS_UNUSED1, // 54 UNUSED1
POINT_ATTBONUS_UNUSED2, // 55 UNUSED2
POINT_ATTBONUS_UNUSED3, // 56 UNUSED3
POINT_ATTBONUS_UNUSED4, // 57 UNUSED4
POINT_ATTBONUS_UNUSED5, // 58 UNUSED5
POINT_ATTBONUS_UNUSED6, // 59 UNUSED6
POINT_ATTBONUS_UNUSED7, // 60 UNUSED7
POINT_ATTBONUS_UNUSED8, // 61 UNUSED8
POINT_ATTBONUS_UNUSED9, // 62 UNUSED9POINT_STEAL_HP, // 63 생명력 흡수
POINT_STEAL_SP, // 64 정신력 흡수POINT_MANA_BURN_PCT, // 65 마나 번
/// 피해시 보너스 ///
POINT_DAMAGE_SP_RECOVER, // 66 공격당할 시 정신력 회복 확률
POINT_BLOCK, // 67 블럭율
POINT_DODGE, // 68 회피율POINT_RESIST_SWORD, // 69
POINT_RESIST_TWOHAND, // 70
POINT_RESIST_DAGGER, // 71
POINT_RESIST_BELL, // 72
POINT_RESIST_FAN, // 73
POINT_RESIST_BOW, // 74 화살 저항 : 대미지 감소
POINT_RESIST_CLAW,
POINT_RESIST_FIRE, // 75 화염 저항 : 화염공격에 대한 대미지 감소
POINT_RESIST_ELEC, // 76 전기 저항 : 전기공격에 대한 대미지 감소
POINT_RESIST_MAGIC, // 77 술법 저항 : 모든술법에 대한 대미지 감소
POINT_RESIST_WIND, // 78 바람 저항 : 바람공격에 대한 대미지 감소POINT_REFLECT_MELEE, // 79 공격 반사
/// 특수 피해시 ///
POINT_REFLECT_CURSE, // 80 저주 반사
POINT_POISON_REDUCE, // 81 독데미지 감소/// 적 소멸시 ///
POINT_KILL_SP_RECOVER, // 82 적 소멸시 MP 회복
POINT_EXP_DOUBLE_BONUS, // 83
POINT_GOLD_DOUBLE_BONUS, // 84
POINT_ITEM_DROP_BONUS, // 85/// 회복 관련 ///
POINT_POTION_BONUS, // 86
POINT_KILL_HP_RECOVER, // 87POINT_IMMUNE_STUN, // 88
POINT_IMMUNE_SLOW, // 89
POINT_IMMUNE_FALL, // 90
//////////////////POINT_PARTY_ATT_GRADE, // 91
POINT_PARTY_DEF_GRADE, // 92POINT_ATT_BONUS, // 93
POINT_DEF_BONUS, // 94POINT_ATT_GRADE_BONUS, // 95
POINT_DEF_GRADE_BONUS, // 96
POINT_MAGIC_ATT_GRADE_BONUS, // 97
POINT_MAGIC_DEF_GRADE_BONUS, // 98POINT_RESIST_NORMAL_DAMAGE, // 99
POINT_STAT_RESET_COUNT = 112,
POINT_HORSE_SKILL = 113,POINT_MALL_ATTBONUS, // 114 공격력 +x%
POINT_MALL_DEFBONUS, // 115 방어력 +x%
POINT_MALL_EXPBONUS, // 116 경험치 +x%
POINT_MALL_ITEMBONUS, // 117 아이템 드롭율 x/10배
POINT_MALL_GOLDBONUS, // 118 돈 드롭율 x/10배
POINT_MAX_HP_PCT, // 119 최대생명력 +x%
POINT_MAX_SP_PCT, // 120 최대정신력 +x%POINT_SKILL_DAMAGE_BONUS, // 121 스킬 데미지 *(100+x)%
POINT_NORMAL_HIT_DAMAGE_BONUS, // 122 평타 데미지 *(100+x)%
POINT_SKILL_DEFEND_BONUS, // 123 스킬 방어 데미지
POINT_NORMAL_HIT_DEFEND_BONUS, // 124 평타 방어 데미지
POINT_PC_BANG_EXP_BONUS,
POINT_PC_BANG_DROP_BONUS,
POINT_ENERGY = 128, // 128 기력// 기력 ui 용.
// 이렇게 하고 싶지 않았지만,
// uiTaskBar에서는 affect에 접근할 수 없고,
// 더구나 클라리언트에서는 blend_affect는 관리하지 않아,
// 임시로 이렇게 둔다.
POINT_ENERGY_END_TIME = 129, // 129 기력 종료 시간// 클라이언트 포인트
POINT_MIN_WEP = 200,
POINT_MAX_WEP,
POINT_MIN_MAGIC_WEP,
POINT_MAX_MAGIC_WEP,
POINT_HIT_RATE,
POINT_BLEEDING_PCT,
POINT_BLEEDING_REDUCE,
//POINT_MAX_NUM = 255,=>stdafx.h 로/
};0915 23:01:03873 ::
networkModule.py(line:208) SetSelectCharacterPhase
system.py(line:130) __pack_import
system.py(line:110) _process_result
introSelect.py(line:17) <module>
system.py(line:130) __pack_importnetworkModule.SetSelectCharacterPhase - <type 'exceptions.SyntaxError'>:invalid syntax (uiCharacter.py, line 457)
0915 23:01:03873 :: ============================================================================================================
0915 23:01:03873 :: Abort!!!!https://metin2.download/picture/9C94s7tiPwIgUn5ntkJ6KW6GB0xKUYQM/.png
metin2dev encoding is bugged
https://pastebin.com/raw/0embgkTT
(@pollux->edit: I forgot about https://metin2.dev/bin/ XD) -
10 minutes ago, bogdan1809 said:
Same to you.
Syserr
0915 22:00:36642 :: CRaceManager::RegisterRacePath : RACE[20421] LOAD MSMFILE[d:/ymir work/npc/old_magic_M2/old_magic_M2.msm] ERROR. Will Find Another Path.
0915 22:00:36642 :: CRaceManager::RegisterRacePath : RACE[20421] LOAD MSMFILE[d:/ymir work/npc_mount/old_magic_M2/old_magic_M2.msm] ERROR. Will Find Another Path.
0915 22:00:36642 :: CRaceManager::RegisterRacePath : RACE[20421] LOAD MSMFILE[d:/ymir work/npc2/old_magic_M2/old_magic_M2.msm] ERROR. Will Find Another Path.
0915 22:00:36642 :: CRaceManager::RegisterRacePath : RACE[20421] LOAD MSMFILE[d:/ymir work/monster/old_magic_M2/old_magic_M2.msm] ERROR. Will Find Another Path.
0915 22:00:36642 :: CRaceManager::RegisterRacePath : RACE[20421] LOAD MSMFILE[d:/ymir work/monster2/old_magic_M2/old_magic_M2.msm] ERROR. Will Find Another Path.
0915 22:00:36642 :: CRaceManager::RegisterRacePath : RACE[20421] LOAD MSMFILE[d:/ymir work/guild/old_magic_M2/old_magic_M2.msm] ERROR
0915 22:00:36643 :: CRaceManager::GetRaceDataPointer: cannot load data by dwRaceIndex 20421
0915 22:00:36643 :: CPythonCharacterManager::CreateInstance VID[13813] Race[20421]
UserInterface/packet.h
enum EPointTypes
may I see it?
also, could you debug your uicharacter for me?
May you replace this in uicharacter.py def?def __GetTotalAtkText(self): minAtk=player.GetStatus(player.ATT_MIN) maxAtk=player.GetStatus(player.ATT_MAX) atkBonus=player.GetStatus(player.ATT_BONUS) attackerBonus=player.GetStatus(player.ATTACKER_BONUS) chat.AppendChat(7, "packet.h : min %d max %d bonus %d" % (player.GetStatus(player.ATT_MIN), player.GetStatus(player.ATT_MAX), player.GetStatus(player.ATT_BONUS))) chat.AppendChat(7, "without packet.h : min %d max %d bonus %d" % (player.GetStatus(29), player.GetStatus(30), player.GetStatus(95))) if minAtk==maxAtk: return "%d" % (minAtk+atkBonus+attackerBonus) else: return "%d-%d" % (minAtk+atkBonus+attackerBonus, maxAtk+atkBonus+attackerBonus)
my aura gives 625 attack -
Just now, bogdan1809 said:
No...
Check your interfacemodule.py
def RefreshCharacter(self): ## Character ĆäŔĚÁöŔÇ ľó±Ľ, Inventory ĆäŔĚÁöŔÇ Ŕü˝Ĺ ±×¸˛ µîŔÇ Refresh self.wndCharacter.RefreshCharacter() self.wndTaskBar.RefreshQuickSlot()
and game.py
def RefreshCharacter(self): if self.interface: self.interface.RefreshCharacter()
any client syserr.txt errors/warnings or is it empty?
-
-
1 minute ago, bogdan1809 said:
Show
https://metin2.download/picture/w7eLD7EFN5Rc89U6Ne33V2WFhrXSTir4/.gif
it's a visual bug, I think
This attachment is not available. It may have been removed or the person who shared it may not have permission to share it to this location.
I need only uicharacter.py then -
It might be: mysql skill_proto bug, uicharacter.py bug, serverside player_skill.cpp bug or affect bug
Show us those 4 files -
Maybe it will help you a little bit
LPCHARACTER CHARACTER_MANAGER::SpawnMob(DWORD dwVnum, long lMapIndex, long x, long y, long z, bool bSpawnMotion, int iRot, bool bShow)
and
LPCHARACTER CHARACTER_MANAGER::SpawnMobRandomPosition(DWORD dwVnum, long lMapIndex)
in char_manager.cpp in source game- 1
-
Remember to add collision in npc .msm file
Group AttachingData00 { AttachingDataType 1 isAttaching 1 AttachingModelIndex 0 AttachingBoneName "BONE_NAME" CollisionType 1 SphereDataCount 1 Group SphereData00 { Radius 100.000000 Position 0.000000 0.000000 0.000000 } }
-
2 minutes ago, VegaS™ said:
- PythonNetworkStreamPhaseGame.cpp
You've to remove these lines.
rkPlayer.SetSkill(7, 0); rkPlayer.SetSkill(8, 0);
"The hero we need, but don't deserve"
THANKS
-
Hi, I'm trying to add 7/8 skill (not passive).
I've done the server source (game + lua, mysql) part.
Now I'm fighting with clientside.
7/8th skills just disappear from skill page (they are working if not /skillup ~ only dissapearing).Problem with chat "debug":
https://metin2.download/picture/378iJF9XjR04d845roAr1Xk1GAbDNp51/.gif
chat.AppendChat(7, str(skillIndex) + " : " + str(slotNumber))
uicharacter.py:
ACTIVE_PAGE_SLOT_COUNT = 8
0906 16:02:37356 :: File "game.py", line 602, in RefreshSkill 0906 16:02:37356 :: File "interfaceModule.py", line 558, in RefreshSkill 0906 16:02:37356 :: File "uiCharacter.py", line 888, in RefreshSkill 0906 16:02:37356 :: File "uiCharacter.py", line 814, in __RefreshSkillPage 0906 16:02:37356 :: File "uiCharacter.py", line 1274, in __GetRealSkillSlot 0906 16:02:37357 :: RuntimeError 0906 16:02:37357 :: : 0906 16:02:37357 :: skill.GetSkillType - Failed to find skill by 0 0906 16:02:37357 ::
Thanks for help
-
UPDATE2:
Fixed:https://metin2.download/picture/P9kTCV5D0Vsun2584iLcmlK1c8sx2b5V/.gif
Reason: extern const DWORD c_iSkillIndex_Combo from PythonPlayerModule.cpp was with wrong ID (my old edit - error)
@VegaS™ thank you for your time!- 1
-
22 minutes ago, VegaS™ said:
Did you check what level he sent from packet?
bool CPythonNetworkStream::RecvSkillLevelNew() { TPacketGCSkillLevelNew packet; if (!Recv(sizeof(TPacketGCSkillLevelNew), &packet)) { Tracen("CPythonNetworkStream::RecvSkillLevelNew - RecvError"); return false; } const CPythonPlayer & rkPlayer = CPythonPlayer::Instance(); rkPlayer.SetSkill(7, 0); rkPlayer.SetSkill(8, 0); for (int i = 0; i < SKILL_MAX_NUM; ++i) { const TPlayerSkill & rPlayerSkill = packet.skills[i]; if (i >= 112 && i <= 115 && rPlayerSkill.bLevel) rkPlayer.SetSkill(7, i); if (i >= 116 && i <= 119 && rPlayerSkill.bLevel) rkPlayer.SetSkill(8, i); if (i == 122) TraceError("Combo skill level: %d", rPlayerSkill.bLevel); rkPlayer.SetSkillLevel_(i, rPlayerSkill.bMasterType, rPlayerSkill.bLevel); } __RefreshSkillWindow(); __RefreshStatus(); return true; }
- 0903 00:56:53064 :: Combo skill level: 0
- 0903 00:56:59268 :: Combo skill level: 1
-
0903 00:56:00242 :: Combo skill level: 2
0903 00:05:25663 :: Combo level: 0
0903 00:05:26868 :: Combo level: 1
0903 00:05:27627 :: Combo level: 2
(/setsk 122 0,1,2)
Update:
I guess the problem lies somewhere here -
32 minutes ago, VegaS™ said:
By default, you can increase the skill level of combo with book, not by point up.
Check for DISABLE_BY_POINT_UP from skill index 122:
- skill_proto (server)
- skilltable.txt (client)
void CPythonPlayer::SetComboSkillFlag(BOOL bFlag), you could check here what happen.
Neither of them work: skillup, skill book, setksk 122 1/2, pc.set_skill_level(122, 2) [quest], DISABLE_BY_POINT_UP (on/off) [skill_proto] in clientside Interface - I've already tried
https://metin2.download/picture/HJx2t6WaeY3gPdF454fV1Hhf099fE7tc/.gif
50304 ID = The Art Of Combo skill book
LUA-> "Powodzeniem" = Successful
Result: still cannot use it (Debug: skill id: 122 is set to 1 from 0)
@VegaS™ It's more like client can't set skill level on combo icon [skill index/skill slot] -> Leadership and Mining works fine and other support-passives too
Update: On my old RAW client combo is working like a charm
So it's a python bug/client sourcehttps://metin2.download/picture/0o93FQmh931VEZRmUL2tKoasE560ZRX1/.gif
Update2: it's not skilldesc.txt, skilltable.txt problem [checked with default Metin2 ones] and uicharacter.py (checked with original one)
the problem of implementing a fast equipment
in Community Support - Questions & Answers
Posted
Remove all spaces from those two lines and place TWO TABs (line 401) and ONE TAB (line 491).