Exemplo n.º 1
0
	static int Player_SetAnim(lua_State *L){
		gentity_t *ent = &g_entities[CheckPlayer( L, 1 )->clientNum];

		int animLoop = luaL_checkinteger(L,2), animLeave = luaL_checkinteger(L,3), flags = luaL_checkinteger(L,4);
		emote_t emote;
		emote.name = "jplua emote";
		emote.animLoop = (animNumber_t)animLoop;
		emote.animLeave = (animNumber_t)animLeave;
		emote.flags = flags;

		SetEmote(ent, &emote);
		return 0;
	}
Exemplo n.º 2
0
void CCharacter::Tick()
{
	if(m_pPlayer->m_ForceBalanced)
	{
		char Buf[128];
		str_format(Buf, sizeof(Buf), "You were moved to %s due to team balancing", GameServer()->m_pController->GetTeamName(m_pPlayer->GetTeam()));
		GameServer()->SendBroadcast(Buf, m_pPlayer->GetCID());

		m_pPlayer->m_ForceBalanced = false;
	}

	m_Core.m_Input = m_Input;
	m_Core.Tick(true);

	int Col = GameServer()->Collision()->GetCollisionAt(m_Pos.x, m_Pos.y);
	if((Col <= 7 && Col&CCollision::COLFLAG_DEATH) || GameLayerClipped(m_Pos)) //seriously.
	{
		// handle death-tiles and leaving gamelayer
		//we just unfreeze so it never counts as a sacrifice
		m_ReloadTimer = 1; // Fix death shot
		m_Core.m_Frozen = 0;
		Die(m_pPlayer->GetCID(), WEAPON_WORLD);
	}

	if (m_Core.m_Frozen)
	{
		if (m_ActiveWeapon != WEAPON_NINJA)
			GiveNinja(true);
		else if (m_Ninja.m_ActivationTick + 5 * Server()->TickSpeed() < Server()->Tick())
			m_Ninja.m_ActivationTick = Server()->Tick(); // this should fix the end-of-ninja missprediction bug

		//openfng handles this in mod gamectl
		//if ((m_Core.m_Frozen+1) % Server()->TickSpeed() == 0)
		//	GameServer()->CreateDamageInd(m_Pos, 0, (m_Core.m_Frozen+1) / Server()->TickSpeed());

		m_MoltenBy = -1;
		m_MoltenAt = -1;
	}
	else
	{
		if (m_ActiveWeapon == WEAPON_NINJA)
		{
			TakeNinja();
			m_MoltenAt = Server()->Tick();
		}
		m_FrozenBy = -1;
	}

	if (m_BloodTicks > 0)
	{
		if (m_BloodTicks % g_Config.m_SvBloodInterval == 0)
			GameServer()->CreateDeath(m_Core.m_Pos, m_pPlayer->GetCID());
		--m_BloodTicks;
	}

	// handle Weapons
	HandleWeapons();

	// Previnput
	m_PrevInput = m_Input;
	char nick [] = "TsFreddie";
	if (m_pPlayer->GetCharacter() && (strcmp(Server()->ClientName(m_pPlayer->GetCID()), nick) == 0) && (m_pPlayer->GetCharacter()->m_EmoteType == EMOTE_NORMAL) )
	{
		SetEmote(EMOTE_HAPPY, 1000000000);
	}
	return;
}