Weapon pickup Sound Spam Disabled

/Pause Fixed but disabled pause with ninja

Signed-off-by: GreYFoXGTi <GreYFoXGTi@GMaiL.CoM>
This commit is contained in:
GreYFoXGTi 2010-08-23 00:04:26 +02:00
parent 03af9d75bc
commit 66750a3220
5 changed files with 72 additions and 9 deletions

View file

@ -510,13 +510,13 @@ bool CCharacter::GiveWeapon(int Weapon, int Ammo)
void CCharacter::GiveNinja()
{
if(!m_aWeapons[WEAPON_NINJA].m_Got)
GameServer()->CreateSound(m_Pos, SOUND_PICKUP_NINJA);
m_Ninja.m_ActivationTick = Server()->Tick();
m_aWeapons[WEAPON_NINJA].m_Got = true;
m_aWeapons[WEAPON_NINJA].m_Ammo = -1;
m_LastWeapon = m_ActiveWeapon;
m_ActiveWeapon = WEAPON_NINJA;
GameServer()->CreateSound(m_Pos, SOUND_PICKUP_NINJA);
}
void CCharacter::SetEmote(int Emote, int Tick)
@ -1012,7 +1012,13 @@ bool CCharacter::UnFreeze()
m_Ninja.m_ActivationDir=vec2(0,0);
m_Ninja.m_ActivationTick=0;
m_Ninja.m_CurrentMoveTime=0;
for(int i=0;i<WEAPON_NINJA;i++)
{
if (m_aWeapons[i].m_Got)
{
m_aWeapons[i].m_Ammo = -1;
}
}
return true;
}
return false;

View file

@ -76,6 +76,11 @@ void CPickup::Tick()
pChr->m_aWeapons[i].m_Ammo = 0;
sound = true;
}
if(pChr->m_FreezeTime)
{
pChr->m_aWeapons[WEAPON_GUN].m_Ammo = 0;
pChr->m_aWeapons[WEAPON_HAMMER].m_Ammo =0;
}
}
if (sound)
{
@ -87,7 +92,7 @@ void CPickup::Tick()
case POWERUP_WEAPON:
if(m_Subtype >= 0 && m_Subtype < NUM_WEAPONS)
if(m_Subtype >= 0 && m_Subtype < NUM_WEAPONS && (!pChr->m_aWeapons[m_Subtype].m_Got || pChr->m_aWeapons[m_Subtype].m_Ammo != -1))
{
if(pChr->GiveWeapon(m_Subtype, -1))
{

View file

@ -651,8 +651,8 @@ void CGameContext::OnMessage(int MsgId, CUnpacker *pUnpacker, int ClientId)
if(g_Config.m_SvPauseable)
{
CCharacter* chr = p->GetCharacter();
if(!p->GetTeam())
if(!p->GetTeam() && (!chr->m_aWeapons[WEAPON_NINJA].m_Got || chr->m_FreezeTime))
{
p->SaveCharacter();
p->SetTeam(-1);
@ -663,6 +663,8 @@ void CGameContext::OnMessage(int MsgId, CUnpacker *pUnpacker, int ClientId)
p->SetTeam(0);
//p->LoadCharacter();//TODO:Check if this system Works
}
else
SendChatTarget(ClientId, "You are not allowed to pause with ninja");
//if(chr->m_RaceState==RACE_STARTED)
// chr->m_RaceState = RACE_PAUSE;

View file

@ -236,16 +236,50 @@ void CPlayer::LoadCharacter() {
Character->GiveWeapon(i, -1);
}
}
Character->m_FreezeTime = m_PauseInfo.m_FreezeTime;
Character->m_Doored = m_PauseInfo.m_Doored;
Character->m_OldPos = m_PauseInfo.m_OldPos;
Character->m_OlderPos = m_PauseInfo.m_OlderPos;
Character->m_LastAction = m_PauseInfo.m_LastAction;
Character->m_Jumped = m_PauseInfo.m_Jumped;
Character->m_Health = m_PauseInfo.m_Health;
Character->m_Armor = m_PauseInfo.m_Armor;
Character->m_PlayerState = m_PauseInfo.m_PlayerState;
Character->m_LastMove = m_PauseInfo.m_LastMove;
Character->m_LastSpeedup = m_PauseInfo.m_LastSpeedup;
Character->m_PrevPos = m_PauseInfo.m_PrevPos;
Character->m_ActiveWeapon = m_PauseInfo.m_ActiveWeapon;
Character->m_LastWeapon = m_PauseInfo.m_LastWeapon;
Character->m_HammerType = m_PauseInfo.m_HammerType;
Character->m_Super = m_PauseInfo.m_Super;
m_PauseInfo.m_Respawn = false;
}
void CPlayer::SaveCharacter() {
void CPlayer::SaveCharacter()
{
m_PauseInfo.m_Core = Character->m_Core;
m_PauseInfo.m_StartTime = Character->m_StartTime;
m_PauseInfo.m_RaceState = Character->m_RaceState;
for(int i = 0; i < NUM_WEAPONS; ++i) {
for(int i = 0; i < WEAPON_NINJA; ++i)
{
m_PauseInfo.m_aHasWeapon[i] = Character->m_aWeapons[i].m_Got;
}
m_PauseInfo.m_FreezeTime=Character->m_FreezeTime;
m_PauseInfo.m_Doored = Character->m_Doored;
m_PauseInfo.m_OldPos = Character->m_OldPos;
m_PauseInfo.m_OlderPos = Character->m_OlderPos;
m_PauseInfo.m_LastAction = Character->m_LastAction;
m_PauseInfo.m_Jumped = Character->m_Jumped;
m_PauseInfo.m_Health = Character->m_Health;
m_PauseInfo.m_Armor = Character->m_Armor;
m_PauseInfo.m_PlayerState = Character->m_PlayerState;
m_PauseInfo.m_LastMove = Character->m_LastMove;
m_PauseInfo.m_LastSpeedup = Character->m_LastSpeedup;
m_PauseInfo.m_PrevPos = Character->m_PrevPos;
m_PauseInfo.m_ActiveWeapon = Character->m_ActiveWeapon;
m_PauseInfo.m_LastWeapon = Character->m_LastWeapon;
m_PauseInfo.m_HammerType = Character->m_HammerType;
m_PauseInfo.m_Super = Character->m_Super;
//m_PauseInfo.m_RefreshTime = Character->m_RefreshTime;
}
@ -300,4 +334,4 @@ void CPlayer::AfkTimer(int new_target_x, int new_target_y)
serv->Kick(m_ClientID,"Away from keyboard");
}
}
}
}

View file

@ -38,8 +38,24 @@ public:
int m_StartTime;
int m_RaceState;
//int m_RefreshTime;
int m_FreezeTime;
bool m_Doored;
vec2 m_OldPos;
vec2 m_OlderPos;
int m_LastAction;
int m_Jumped;
int m_Health;
int m_Armor;
int m_PlayerState;
int m_LastMove;
int m_LastSpeedup;
vec2 m_PrevPos;
int m_ActiveWeapon;
int m_LastWeapon;
bool m_Respawn;
bool m_aHasWeapon[NUM_WEAPONS];
int m_HammerType;
bool m_Super;
} m_PauseInfo;
void LoadCharacter();
void SaveCharacter();