Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!
C++:
GameLib/ActorInstance.cpp
Açılır,
// Arat
BOOL CActorInstance::IsDead()
{
return m_isRealDead;
}
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
BOOL CActorInstance::IsLocked()
{
return m_isLocked;
}
#endif
// Arat:
void CActorInstance::Stun()
{
m_isStun = TRUE;
}
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
void CActorInstance::LockPlayer(BYTE state)
{
m_isLocked = state;
}
#endif
// Arat
m_isResistFallen = FALSE;
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
m_isLocked = FALSE;
#endif
C++:
GameLib/ActorInstanceBattle.cpp
// bunun içinde
bool CActorInstance::CanAct()
// bul
if (IsSleep())
return false;
// altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
if (IsLocked())
return false;
#endif
C++:
GameLib/ActorInstance.h
// Arat
BOOL IsDead();
// altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
BOOL IsLocked();
void LockPlayer(BYTE state);
#endif
// Arat
BOOL m_isRealDead;
// altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
BOOL m_isLocked;
#endif
C++:
UserInterface/Locale_inc.h
// ekle
#define ENABLE_GM_LOCK_PLAYER // Lock Player Move by GM
C++:
UserInterface/InstanceBase.cpp
// Arat
BOOL CInstanceBase::IsSleep()
{
return m_GraphicThingInstance.IsSleep();
}
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
BOOL CInstanceBase::IsLocked()
{
return m_GraphicThingInstance.IsLocked();
}
#endif
C++:
UserInterface/InstanceBaseBattle.cpp
// bunun içinde
bool CInstanceBase::NEW_UseSkill(UINT uSkill, UINT uMot, UINT uMotLoopCount, bool isMovingSkill)
// bul
if (IsStun())
return false;
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
if (IsLocked())
return false;
#endif
// Bunun içinde
void CInstanceBase::NEW_Attack(float fDirRot)
// bul
if (IsUsingSkill())
return;
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
if (IsLocked())
return;
#endif
// Dosyanın sonuna ekle
#ifdef ENABLE_GM_LOCK_PLAYER
void CInstanceBase::SetLockPlayer(BYTE state)
{
m_GraphicThingInstance.LockPlayer(state);
SetLoopMotion(CRaceMotionData::NAME_WAIT);
}
#endif
C++:
UserInterface/InstanceBase.h
// Arat
void Die();
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
void SetLockPlayer(BYTE status);
#endif
// Arat
BOOL IsSleep();
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
BOOL IsLocked();
#endif
C++:
UserInterface/Packet.h
// Arat
HEADER_GC_MAIN_CHARACTER4_BGM_VOL = 138,
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
HEADER_GC_LOCK_PLAYER = 139,
#endif
// Dosya sonundaki bu kodun
#pragma pack(pop)
// üstüne ekle
#ifdef ENABLE_GM_LOCK_PLAYER
typedef struct SPacketGCLockPlayer
{
BYTE bHeader;
BYTE status;
DWORD vid;
} TPacketGCLockPlayer;
#endif
C++:
UserInterface/PythonNetworkStream.cpp
// Arat
Set(HEADER_GC_ACCE, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCAcce), DYNAMIC_SIZE_PACKET));
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
Set(HEADER_GC_LOCK_PLAYER, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCLockPlayer), STATIC_SIZE_PACKET));
#endif
C++:
UserInterface/PythonNetworkStream.h
// Arat
bool RecvFishing();
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
bool RecvLockPlayer();
#endif
C++:
UserInterface/PythonPlayerInputMouse.cpp
// Bunun içinde
void CPythonPlayer::NEW_SetMouseSmartState(int eMBS, bool isAuto)
// bul
if (pkInstMain->IsSleep())
{
return;
}
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
if (pkInstMain->IsLocked())
return;
#endif
C++:
UserInterface/PythonNetworkStreamPhaseGame.cpp
// Arat
default:
ret = RecvDefaultPacket(header);
break;
}
}
if (!ret)
RecvErrorPacket(header);
// Üstüne ekle
#ifdef ENABLE_GM_LOCK_PLAYER
case HEADER_GC_LOCK_PLAYER:
ret = RecvLockPlayer();
break;
#endif
// Dosyanın sonuna ekle
#ifdef ENABLE_GM_LOCK_PLAYER
bool CPythonNetworkStream::RecvLockPlayer()
{
TPacketGCLockPlayer packet;
if (!Recv(sizeof(packet), &packet))
return false;
CPythonCharacterManager& rkChrMgr = CPythonCharacterManager::Instance();
CInstanceBase* pkInstSel = rkChrMgr.GetInstancePtr(packet.vid);
if (pkInstSel)
{
pkInstSel->SetLockPlayer(packet.status);
}
return true;
}
#endif
C++:
common/service.h
// ekle
#define ENABLE_GM_LOCK_PLAYER // Lock Player Move by GM
C++:
game/cmd.cpp
// Arat
struct command_info cmd_info[] =
// Üstüne ekle
#ifdef ENABLE_GM_LOCK_PLAYER
ACMD(do_lock_player);
#endif
// Arat
{ "\n", NULL, 0, POS_DEAD, GM_IMPLEMENTOR }
// Üstüne ekle
#ifdef ENABLE_GM_LOCK_PLAYER
{ "lock_player", do_lock_player, 0, POS_DEAD, GM_IMPLEMENTOR },
#endif
C++:
game/char.h
// dosya sonuna ekle
BEFORE:
};
ESex GET_SEX(LPCHARACTER ch);
this:
#ifdef ENABLE_GM_LOCK_PLAYER
public:
bool isLocked() const;
void LockPlayer(BYTE status);
protected:
BOOL m_isLocked;
#endif
C++:
game/cmd_general.cpp
// Bunun içinde
ACMD(do_user_horse_ride):
// bul
if (ch->IsDead() || ch->IsStun())
// bununla değiştir
if (ch->IsDead() || ch->IsStun()
#ifdef ENABLE_GM_LOCK_PLAYER
|| ch->isLocked()
#endif
)
// Bunun içinde
ACMD(do_ride):
// bul
if (ch->IsDead() || ch->IsStun())
// bunun ile değiştir
if (ch->IsDead() || ch->IsStun()
#ifdef ENABLE_GM_LOCK_PLAYER
|| ch->isLocked()
#endif
)
C++:
game/cmd_gm.cpp
// Dosya sonuna ekle
#ifdef ENABLE_GM_LOCK_PLAYER
ACMD(do_lock_player)
{
char arg1[256];
one_argument(argument, arg1, sizeof(arg1));
const char* name = arg1;
if (!*arg1)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Invalid argument.");
return;
}
LPCHARACTER sas = CHARACTER_MANAGER::instance().FindPC(name);
if (!sas)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Der Spieler ist nicht Online");
return;
}
if (!sas->IsPC())
return;
DWORD vid = sas->GetVID();
LPCHARACTER tch = CHARACTER_MANAGER::instance().Find(vid);
const char* spieler = sas->GetName();
if (!tch)
{
ch->ChatPacket(CHAT_TYPE_INFO, "<Sytem> Der Spieler existiert nicht!");
return;
}
if (!tch->IsPC())
return;
BYTE status;
if (tch->isLocked())
status = 0;
else
status = 1;
if (status == 1)
tch->ChatPacket(CHAT_TYPE_INFO, "You have been locked by a GM");
else
tch->ChatPacket(CHAT_TYPE_INFO, "You have benn unlocked by a GM");
tch->ChatPacket(CHAT_TYPE_INFO, "You was stucked by a GM.");
tch->LockPlayer(status);
TPacketGCLockPlayer packet;
packet.bHeader = HEADER_GC_LOCK_PLAYER;
packet.status = status;
packet.vid = vid;
tch->GetDesc()->Packet(&packet, sizeof(packet));
if (status == 1)
ch->ChatPacket(CHAT_TYPE_INFO, "Locked %s(%d)", spieler, vid);
else
ch->ChatPacket(CHAT_TYPE_INFO, "Unlocked %s(%d)", spieler, vid);
}
#endif
C++:
game/packet.h
// Arat
HEADER_GC_MAIN_CHARACTER4_BGM_VOL = 138,
// altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
HEADER_GC_LOCK_PLAYER = 139,
#endif
// Dosya sonundaki bu kodun
#pragma pack()
// üstüne ekle
#ifdef ENABLE_GM_LOCK_PLAYER
typedef struct SPacketGCLockPlayer
{
BYTE bHeader;
BYTE status;
DWORD vid;
} TPacketGCLockPlayer;
#endif
C++:
game/char.cpp
// Arat
void CHARACTER::Initialize()
{
CEntity::Initialize(ENTITY_CHARACTER);
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
m_isLocked = FALSE;
#endif
// Bunun içinde
bool CHARACTER::CanMove() const
// bul
if (GetMyShop())
return false;
// Altına ekle
#ifdef ENABLE_GM_LOCK_PLAYER
if (isLocked())
return false;
#endif
// Dosya sonuna ekle
#ifdef ENABLE_GM_LOCK_PLAYER
bool CHARACTER::isLocked() const
{
return m_isLocked;
}
void CHARACTER::LockPlayer(BYTE status)
{
m_isLocked = status;
}
#endif
Rica Ederim.Teşekkürler![]()

Başarılı, py taraflı yaparak fısıldamanın yanına bi yere eklenirse daha kullanışlı olur. Ki buna benzer bi sistem var gibi hatırlıyorum ama çıkaramadım 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 9
- Görüntüleme
- 612
Altın Konu
Jinhu- HYBRİD SHAMAN SYSTEM V1
- Cevaplar
- 21
- Görüntüleme
- 1K