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; }
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; }