-
Posts
196 -
Joined
-
Last visited
-
Days Won
14 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Everything posted by Abel(Tiger)
-
The name of that sword (name from item_proto.txt) might start with a number. The method that loads the mob_drop_item.txt search first for the item name not vnum. Example: 50028 24k 금반지 ITEM_SPECIAL If I try to add an item with vnum 24 to mob_drop_item.txt I will drop item with vnum 50028 Easy fix for this is to add it like 0024 Also check the file ori_to_new_table.txt.
-
Make monsters and players die immediately
Abel(Tiger) replied to ReFresh's topic in Community Support - Questions & Answers
Yeah, I see what you talking about. The Dead method is called so fast now and it removes the stun flag so the check for the skill is not working anymore. Try this: // char_skill.cpp // Replace: if (!pkChrVictim->Damage(m_pkChr, iDam, dt) && !pkChrVictim->IsStun()) // With: if (!pkChrVictim->Damage(m_pkChr, iDam, dt) && !pkChrVictim->IsStun() && !pkChrVictim->IsDead()) -
I don't see you having some exp bonus so there are three posibilities (or maybe more) : 1. You have a premium exp (those columns from account table) 2. You have double exp directly from the source (I saw some people doing that) 3. You have priv but the messages are not shown somehow
-
Use /state on the character you get double exp and post a screenshot of the output.
-
Make monsters and players die immediately
Abel(Tiger) replied to ReFresh's topic in Community Support - Questions & Answers
They (ymir) used Stun because it does more stuff beside locking the character. Also they checked some stuff with the IsStun so I recommend you keep using it. Try this and tell me if it's ok: // char.h // Replace: void Stun(); // With: void Stun(bool bJustDie = false); // char_battle.cpp // Replace: void CHARACTER::Stun() { ... } // With: void CHARACTER::Stun(bool bJustDie) { if (IsStun()) return; if (IsDead()) return; if (!IsPC() && m_pkParty) { m_pkParty->SendMessage(this, PM_ATTACKED_BY, 0, 0); } sys_log(1, "%s: Stun %p", GetName(), this); PointChange(POINT_HP_RECOVERY, -GetPoint(POINT_HP_RECOVERY)); PointChange(POINT_SP_RECOVERY, -GetPoint(POINT_SP_RECOVERY)); CloseMyShop(); event_cancel(&m_pkRecoveryEvent); // 회복 이벤트를 죽인다. if(bJustDie) { SET_BIT(m_pointsInstant.instant_flag, INSTANT_FLAG_STUN); Dead(); } else { TPacketGCStun pack; pack.header = HEADER_GC_STUN; pack.vid = m_vid; PacketAround(&pack, sizeof(pack)); SET_BIT(m_pointsInstant.instant_flag, INSTANT_FLAG_STUN); if (m_pkStunEvent) return; char_event_info* info = AllocEventInfo<char_event_info>(); info->ch = this; m_pkStunEvent = event_create(StunEvent, info, PASSES_PER_SEC(3)); } } // Inside: bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type) // Replace: if (GetHP() <= 0) { Stun(); if (pAttacker && !pAttacker->IsNPC()) m_dwKillerPID = pAttacker->GetPlayerID(); else m_dwKillerPID = 0; } // With: if (GetHP() <= 0) { if (pAttacker && !pAttacker->IsNPC()) m_dwKillerPID = pAttacker->GetPlayerID(); else m_dwKillerPID = 0; Stun(true); } -
The entire fix is just to add that line
-
The tutorial is very old New tutorial: // PythonApplicationProcedure.cpp // After: if (m_isWindowFullScreenEnable) { __MinimizeFullScreenWindow(hWnd, m_dwWidth, m_dwHeight); } // Just add: OnMouseMiddleButtonUp(0, 0); That's all!
-
Check GameLib/ActorInstanceMotion.cpp function : void CActorInstance::__MotionEventProcess(BOOL isPC) On else it shoud not be a loop.
-
Edit
-
// SoundManager.cpp // Search: void CSoundManager::StopAllSound3D() { for (int i = 0; i < CSoundManager3D::INSTANCE_MAX_COUNT; ++i) { StopSound3D(i); } } // Replace with: void CSoundManager::StopAllSound3D() { for (int i = 0; i < CSoundManager3D::INSTANCE_MAX_COUNT; ++i) { StopSound3D(i); } m_PlaySoundHistoryMap.clear(); } // Search: ms_SoundManager2D.Destroy(); // Add after: m_PlaySoundHistoryMap.clear();
-
Search new function
Abel(Tiger) replied to Masakra's topic in Community Support - Questions & Answers
-
Switch statement ?
Abel(Tiger) replied to Metin2 Dev's topic in Community Support - Questions & Answers
No need for { }. Case actually tell the program where to start code execution and is executed until the end of the switch or break; If you make a new case and place all the code you want inside { } and in the end you don't write break, the code will be executed after { } even if it is another case. -
Attack percent applyValue
Abel(Tiger) replied to Hust's topic in Community Support - Questions & Answers
APPLY_MALL_ATTBONUS- 1 reply
-
- 1
-
ani_image it doesn't work, pls help
Abel(Tiger) replied to colcrt's topic in Community Support - Questions & Answers
When you use "version 2.0" in .sub the image must be in the same folder like the sub . When you use "version 1.0" in .sub the image must be in d:/ymir work/ui . -
How to change ores position
Abel(Tiger) replied to ReFresh's topic in Community Support - Questions & Answers
Nice ideea. If I have time I will do it and send to you.- 1 reply
-
- 1
-
Error Db source offline shop
Abel(Tiger) replied to SussyFlore's topic in Community Support - Questions & Answers
#include "service.h" in tables.h -
Dump_proto For Official Metin2
Abel(Tiger) replied to Traceur3RUN's topic in Community Support - Questions & Answers
[Hidden Content] -
serverinfo.py how i can achieve it?
Abel(Tiger) replied to Traceur3RUN's topic in Community Support - Questions & Answers
Here =: [Hidden Content] -
Dump_proto For Official Metin2
Abel(Tiger) replied to Traceur3RUN's topic in Community Support - Questions & Answers
Never work when you upload here. [Hidden Content] -
Small Problem Sash System item_scale.txt
Abel(Tiger) replied to Marchewa™'s topic in Community Support - Questions & Answers
Problem from position. (SetScalePosition) -
serverinfo.py how i can achieve it?
Abel(Tiger) replied to Traceur3RUN's topic in Community Support - Questions & Answers
Official root with those changes is public. -
Dump_proto For Official Metin2
Abel(Tiger) replied to Traceur3RUN's topic in Community Support - Questions & Answers
Upload the files on cloud .