Compatibility fixes against upstream Nuclide.
Hard-code some known water textures to use `defaultwarp` shader.
This commit is contained in:
parent
f56b72d9b0
commit
6bfda4d419
135 changed files with 1527 additions and 362 deletions
|
@ -14,7 +14,7 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
void NSWeapon_SelectWeapon(NSWeapon nextWeapon);
|
||||
void ncWeapon_SelectWeapon(ncWeapon nextWeapon);
|
||||
|
||||
void
|
||||
HLWeaponSelect::HLWeaponSelect(void)
|
||||
|
@ -32,7 +32,7 @@ HLWeaponSelect::Active(void)
|
|||
void
|
||||
HLWeaponSelect::Trigger(void)
|
||||
{
|
||||
NSWeapon_SelectWeapon(m_selectedWeapon);
|
||||
ncWeapon_SelectWeapon(m_selectedWeapon);
|
||||
Deactivate();
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ HLWeaponSelect::Deactivate(void)
|
|||
void
|
||||
HLWeaponSelect::Draw(void)
|
||||
{
|
||||
NSClientPlayer pl = (NSClientPlayer)pSeat->m_ePlayer;
|
||||
ncPlayer pl = (ncPlayer)pSeat->m_ePlayer;
|
||||
|
||||
if (!pl.m_activeWeapon) {
|
||||
return;
|
||||
|
@ -139,7 +139,7 @@ HLWeaponSelect::SelectSlot(int wantedSlot, bool fastSwitch)
|
|||
void
|
||||
HLWeaponSelect::SelectNext(bool fastSwitch)
|
||||
{
|
||||
NSClient ourPlayer = (NSClient)pSeat->m_ePlayer;
|
||||
ncClient ourPlayer = (ncClient)pSeat->m_ePlayer;
|
||||
|
||||
m_firstWeapon = (HLWeapon)ourPlayer.SortWeaponChain();
|
||||
|
||||
|
@ -162,7 +162,7 @@ HLWeaponSelect::SelectNext(bool fastSwitch)
|
|||
void
|
||||
HLWeaponSelect::SelectPrevious(bool fastSwitch)
|
||||
{
|
||||
NSClient ourPlayer = (NSClient)pSeat->m_ePlayer;
|
||||
ncClient ourPlayer = (ncClient)pSeat->m_ePlayer;
|
||||
|
||||
m_firstWeapon = (HLWeapon)ourPlayer.SortWeaponChain();
|
||||
|
||||
|
|
|
@ -18,11 +18,19 @@ void HUD_DrawWeaponSelect_Back(void);
|
|||
void HUD_DrawWeaponSelect_Forward(void);
|
||||
void HUD_DrawWeaponSelect_Last(void);
|
||||
void HUD_SlotSelect(int);
|
||||
void VGUI_ChooseClass(int);
|
||||
void VGUI_ChooseTeam(void);
|
||||
|
||||
int
|
||||
ClientGame_ConsoleCommand(void)
|
||||
{
|
||||
switch(argv(0)) {
|
||||
case "changeclass":
|
||||
VGUI_ChooseClass(userinfo.GetInteger(pSeat->m_ePlayer, "*team"));
|
||||
break;
|
||||
case "changeteam":
|
||||
VGUI_ChooseTeam();
|
||||
break;
|
||||
case "chooseteam":
|
||||
localcmd(sprintf("cmd %s %s\n", argv(0), argv(1)));
|
||||
break;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*/
|
||||
|
||||
void
|
||||
Player_Flashlight(NSClientPlayer pl)
|
||||
Player_Flashlight(ncPlayer pl)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -58,15 +58,6 @@ ClientGame_EventParse(float fHeader)
|
|||
case EV_VIEWMODEL:
|
||||
View_PlayAnimation(readbyte());
|
||||
break;
|
||||
case EV_WEAPON_PICKUP:
|
||||
int w = readbyte();
|
||||
|
||||
if (autocvar_cl_autoweaponswitch == 1) {
|
||||
sendevent("PlayerSwitchWeapon", "i", w);
|
||||
}
|
||||
|
||||
//HUD_WeaponPickupNotify(w);
|
||||
break;
|
||||
default:
|
||||
return (0);
|
||||
}
|
||||
|
|
|
@ -138,7 +138,7 @@ void
|
|||
HUD_DrawHealth(void)
|
||||
{
|
||||
vector pos;
|
||||
NSClientPlayer pl = (NSClientPlayer)pSeat->m_ePlayer;
|
||||
ncPlayer pl = (ncPlayer)pSeat->m_ePlayer;
|
||||
|
||||
if (pl.health != pSeatLocal->m_iHealthOld) {
|
||||
pSeatLocal->m_flHealthAlpha = 1.0;
|
||||
|
@ -185,7 +185,7 @@ void
|
|||
HUD_DrawArmor(void)
|
||||
{
|
||||
vector pos;
|
||||
NSClientPlayer pl = (NSClientPlayer)pSeat->m_ePlayer;
|
||||
ncPlayer pl = (ncPlayer)pSeat->m_ePlayer;
|
||||
|
||||
pos = g_hudmins + [198, g_hudres[1] - 42];
|
||||
|
||||
|
@ -232,7 +232,7 @@ HUD_DrawArmor(void)
|
|||
void
|
||||
HUD_DrawAmmo1(void)
|
||||
{
|
||||
NSClientPlayer pl = (NSClientPlayer)pSeat->m_ePlayer;
|
||||
ncPlayer pl = (ncPlayer)pSeat->m_ePlayer;
|
||||
vector pos;
|
||||
|
||||
if (pl.a_ammo1 != pSeatLocal->m_iAmmo1Old) {
|
||||
|
@ -255,7 +255,7 @@ HUD_DrawAmmo1(void)
|
|||
void
|
||||
HUD_DrawAmmo2(void)
|
||||
{
|
||||
NSClientPlayer pl = (NSClientPlayer)pSeat->m_ePlayer;
|
||||
ncPlayer pl = (ncPlayer)pSeat->m_ePlayer;
|
||||
vector pos;
|
||||
|
||||
if (pl.a_ammo2 != pSeatLocal->m_iAmmo2Old) {
|
||||
|
@ -277,7 +277,7 @@ HUD_DrawAmmo2(void)
|
|||
void
|
||||
HUD_DrawAmmo3(void)
|
||||
{
|
||||
NSClientPlayer pl = (NSClientPlayer)pSeat->m_ePlayer;
|
||||
ncPlayer pl = (ncPlayer)pSeat->m_ePlayer;
|
||||
vector pos;
|
||||
|
||||
if (pl.a_ammo3 != pSeatLocal->m_iAmmo3Old) {
|
||||
|
@ -314,7 +314,7 @@ void
|
|||
HUD_DrawFlashlight(void)
|
||||
{
|
||||
vector pos;
|
||||
NSClientPlayer pl = (NSClientPlayer)pSeat->m_ePlayer;
|
||||
ncPlayer pl = (ncPlayer)pSeat->m_ePlayer;
|
||||
pos = g_hudmins + [g_hudres[0] - 48, 16];
|
||||
|
||||
/* both on, draw both sprites at full intensity */
|
||||
|
@ -390,7 +390,7 @@ HUD_DrawLogo(void)
|
|||
void
|
||||
HUD_DrawNotify(void)
|
||||
{
|
||||
NSClientPlayer pl = (NSClientPlayer)self;
|
||||
ncPlayer pl = (ncPlayer)self;
|
||||
vector pos;
|
||||
float a;
|
||||
|
||||
|
@ -473,7 +473,7 @@ HUD_TimeRemaining(void)
|
|||
void
|
||||
HUD_Draw(void)
|
||||
{
|
||||
NSClientPlayer pl = (NSClientPlayer)pSeat->m_ePlayer;
|
||||
ncPlayer pl = (ncPlayer)pSeat->m_ePlayer;
|
||||
|
||||
#ifndef TFC
|
||||
#ifndef GEARBOX
|
||||
|
@ -519,7 +519,7 @@ HUD_DrawSpectator(void)
|
|||
{
|
||||
Textmenu_Draw();
|
||||
|
||||
NSClientSpectator spec = (NSClientSpectator)pSeat->m_ePlayer;
|
||||
ncSpectator spec = (ncSpectator)pSeat->m_ePlayer;
|
||||
|
||||
drawfont = Font_GetID(FONT_20);
|
||||
vector vecPos = [0.0f, 0.0f, 0.0f];
|
||||
|
|
|
@ -113,7 +113,7 @@ HUD_AmmoNotify_Insert(int type, int count)
|
|||
|
||||
/* called whenever we should check for pickup updates */
|
||||
void
|
||||
HUD_AmmoNotify_Check(NSClientPlayer pl)
|
||||
HUD_AmmoNotify_Check(ncPlayer pl)
|
||||
{
|
||||
HUD_AmmoNotify_Insert(0, pl.m_iAmmoTypes[1] - pl.m_iAmmoTypes_net[1]);
|
||||
HUD_AmmoNotify_Insert(1, pl.m_iAmmoTypes[2] - pl.m_iAmmoTypes_net[2]);
|
||||
|
|
|
@ -76,7 +76,7 @@ HUD_ItemNotify_Insert(int type, int count)
|
|||
|
||||
/* called whenever we should check for pickup updates */
|
||||
void
|
||||
HUD_ItemNotify_Check(NSClientPlayer pl)
|
||||
HUD_ItemNotify_Check(ncPlayer pl)
|
||||
{
|
||||
#if 0
|
||||
int healthdiff = (int)bound(0, pl.health - pSeatLocal->m_iHealthOld, 100);
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
void View_ForceChange(NSClientPlayer pl, int targetWeapon);
|
||||
void View_ForceChange(ncPlayer pl, int targetWeapon);
|
||||
|
||||
|
||||
vector g_vecHUDNums[6] =
|
||||
|
@ -28,7 +28,7 @@ vector g_vecHUDNums[6] =
|
|||
};
|
||||
|
||||
void
|
||||
HUD_SelectWeapon(NSWeapon nextWeapon)
|
||||
HUD_SelectWeapon(ncWeapon nextWeapon)
|
||||
{
|
||||
if (!nextWeapon) {
|
||||
pSeat->m_iHUDWeaponSelected = 0i;
|
||||
|
@ -78,12 +78,12 @@ void
|
|||
HUD_SlotSelect(int slot)
|
||||
{
|
||||
#if 0
|
||||
NSClientPlayer pl = (NSClientPlayer)pSeat->m_ePlayer;
|
||||
ncPlayer pl = (ncPlayer)pSeat->m_ePlayer;
|
||||
int curslot = g_weapons[pSeat->m_iHUDWeaponSelected].slot;
|
||||
int i;
|
||||
#endif
|
||||
|
||||
if (g_textmenu != "") {
|
||||
if (Textmenu_IsActive() == true) {
|
||||
Textmenu_Input(slot);
|
||||
return;
|
||||
}
|
||||
|
@ -136,7 +136,7 @@ void
|
|||
HUD_DrawWeaponSelect(void)
|
||||
{
|
||||
#if 0
|
||||
NSClientPlayer pl = (NSClientPlayer)pSeat->m_ePlayer;
|
||||
ncPlayer pl = (ncPlayer)pSeat->m_ePlayer;
|
||||
if (!pl.activeweapon) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -25,6 +25,8 @@ void
|
|||
ClientGame_Init(float apilevel, string enginename, float engineversion)
|
||||
{
|
||||
Obituary_Init();
|
||||
registercommand("changeclass");
|
||||
registercommand("changeteam");
|
||||
registercommand("chooseteam");
|
||||
|
||||
registercommand("lastinv");
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#pragma target fte_5768
|
||||
#pragma progs_dat "../../zpak001.pk3dir/csprogs.dat"
|
||||
#pragma forcecrc 54730
|
||||
|
||||
#define CSQC
|
||||
#define CLIENT
|
||||
#define VALVE
|
||||
#define CLASSIC_VGUI
|
||||
|
||||
#includelist
|
||||
../../../src/shared/fteextensions.qc
|
||||
|
@ -34,6 +34,8 @@
|
|||
../../../valve/src/client/hud_weaponselect.qc
|
||||
../../../valve/src/client/scoreboard.qc
|
||||
../../../src/client/include.src
|
||||
../../../valve/src/client/vgui_changeclass.qc
|
||||
../../../valve/src/client/vgui_chooseteam.qc
|
||||
../../../valve/src/client/vgui_motd.qc
|
||||
../../../src/shared/include.src
|
||||
#endlist
|
||||
|
|
|
@ -29,7 +29,7 @@ Scores_Init(void)
|
|||
}
|
||||
|
||||
void
|
||||
Scores_DrawTeam(NSClientPlayer pl, vector pos)
|
||||
Scores_DrawTeam(ncPlayer pl, vector pos)
|
||||
{
|
||||
drawfill(pos, [290, 1], SCORE_LINE_C, 1.0f, DRAWFLAG_ADDITIVE);
|
||||
|
||||
|
@ -135,7 +135,7 @@ Scores_DrawTeam(NSClientPlayer pl, vector pos)
|
|||
}
|
||||
|
||||
void
|
||||
Scores_DrawNormal(NSClientPlayer pl, vector pos)
|
||||
Scores_DrawNormal(ncPlayer pl, vector pos)
|
||||
{
|
||||
drawfill(pos, [290, 1], SCORE_LINE_C, 1.0f, DRAWFLAG_ADDITIVE);
|
||||
|
||||
|
@ -192,9 +192,9 @@ void
|
|||
Scores_Draw(void)
|
||||
{
|
||||
vector pos;
|
||||
NSClientPlayer pl;
|
||||
ncPlayer pl;
|
||||
|
||||
pl = (NSClientPlayer)pSeat->m_ePlayer;
|
||||
pl = (ncPlayer)pSeat->m_ePlayer;
|
||||
|
||||
if (autocvar_cl_centerscores) {
|
||||
int c = 10;
|
||||
|
|
160
src/client/vgui_changeclass.qc
Normal file
160
src/client/vgui_changeclass.qc
Normal file
|
@ -0,0 +1,160 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2020 Marco Cawthorne <marco@icculus.org>
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
static string g_classDescrScout;
|
||||
static string g_classDescrSniper;
|
||||
static string g_classDescrSoldier;
|
||||
static string g_classDescrDemoman;
|
||||
static string g_classDescrMedic;
|
||||
static string g_classDescrHWGuy;
|
||||
static string g_classDescrPyro;
|
||||
static string g_classDescrSpy;
|
||||
static string g_classDescrEngineer;
|
||||
static string g_classDescrRandomPC;
|
||||
|
||||
static void
|
||||
TFCClass_Init(void)
|
||||
{
|
||||
g_classDescrScout = textfile_to_string("classes/short_scout.txt");
|
||||
g_classDescrSniper = textfile_to_string("classes/short_sniper.txt");
|
||||
g_classDescrSoldier = textfile_to_string("classes/short_soldier.txt");
|
||||
g_classDescrDemoman = textfile_to_string("classes/short_demoman.txt");
|
||||
g_classDescrMedic = textfile_to_string("classes/short_medic.txt");
|
||||
g_classDescrHWGuy = textfile_to_string("classes/short_hwguy.txt");
|
||||
g_classDescrPyro = textfile_to_string("classes/short_pyro.txt");
|
||||
g_classDescrSpy = textfile_to_string("classes/short_spy.txt");
|
||||
g_classDescrEngineer = textfile_to_string("classes/short_engineer.txt");
|
||||
g_classDescrRandomPC = textfile_to_string("classes/short_randompc.txt");
|
||||
}
|
||||
|
||||
static vguiWindow winClassSelection;
|
||||
static vguiPic imgClassPreview;
|
||||
static vguiLabel lblClassTitle;
|
||||
static vguiLabel lblClassDescription;
|
||||
static vguiLabel lblClassCounter;
|
||||
|
||||
class VGUIChangeClassButton:vguiButton
|
||||
{
|
||||
void VGUIChangeClassButton(void);
|
||||
|
||||
virtual void OnMouseUp(void);
|
||||
virtual void OnMouseEntered(void);
|
||||
};
|
||||
|
||||
void
|
||||
VGUIChangeClassButton::VGUIChangeClassButton(void)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
VGUIChangeClassButton::OnMouseUp(void)
|
||||
{
|
||||
int classSelection = GetTag();
|
||||
int teamID = player.GetTeam();
|
||||
string classType = teams.ClassForIndex(teamID, classSelection);
|
||||
|
||||
localcmd(sprintf("cmd %s\n", classType));
|
||||
winClassSelection.Hide();
|
||||
}
|
||||
|
||||
void
|
||||
VGUIChangeClassButton::OnMouseEntered(void)
|
||||
{
|
||||
int classSelection = GetTag();
|
||||
int teamID = player.GetTeam();
|
||||
string teamName = teams.Name(teamID);
|
||||
string baseName = teams.ClassForIndex(teamID, classSelection);
|
||||
|
||||
lblClassTitle.SetTitle(baseName);
|
||||
imgClassPreview.SetImage(strcat("gfx/classes/", baseName, "_", teamName));
|
||||
lblClassDescription.SetTitle(g_classDescrRandomPC);
|
||||
}
|
||||
|
||||
void
|
||||
VGUI_ChooseClass(int wishTeam)
|
||||
{
|
||||
static int initialized;
|
||||
static VGUIChangeClassButton *btns;
|
||||
static vguiLabel lblSelectClass;
|
||||
static vguiFrame frmClassInfo;
|
||||
|
||||
if (!initialized) {
|
||||
vector btnpos = [40,80];
|
||||
initialized = TRUE;
|
||||
|
||||
TFCClass_Init();
|
||||
|
||||
winClassSelection = spawn(vguiWindow);
|
||||
winClassSelection.SetSize([640, 480]);
|
||||
winClassSelection.SetStyleMask(vguiWindowBorderless | vguiWindowFullscreen);
|
||||
|
||||
lblSelectClass = spawn(vguiLabel);
|
||||
lblSelectClass.SetTitle(Titles_GetTextBody("Title_SelectYourClass"));
|
||||
lblSelectClass.SetTextSize(19);
|
||||
lblSelectClass.SetPos([40, 38]);
|
||||
lblSelectClass.SetSize([400, 24]);
|
||||
|
||||
frmClassInfo = spawn(vguiFrame);
|
||||
frmClassInfo.SetPos([176, 80]);
|
||||
frmClassInfo.SetSize([424, 312]);
|
||||
|
||||
imgClassPreview = spawn(vguiPic);
|
||||
imgClassPreview.SetPos([190, 90]);
|
||||
|
||||
lblClassTitle = spawn(vguiLabel);
|
||||
lblClassTitle.SetPos([338, 90]);
|
||||
lblClassTitle.SetTextSize(19);
|
||||
lblClassTitle.SetSize([320, 24]);
|
||||
|
||||
lblClassCounter = spawn(vguiLabel);
|
||||
lblClassCounter.SetPos([338, 90 + 32]);
|
||||
lblClassCounter.SetSize([320, 18]);
|
||||
|
||||
lblClassDescription = spawn(vguiLabel);
|
||||
lblClassDescription.SetPos([338, 90 + 32 + 32]);
|
||||
lblClassDescription.SetSize([250, 240]);
|
||||
|
||||
g_uiDesktop.Add(winClassSelection);
|
||||
winClassSelection.Add(lblSelectClass);
|
||||
winClassSelection.Add(frmClassInfo);
|
||||
winClassSelection.Add(imgClassPreview);
|
||||
winClassSelection.Add(lblClassTitle);
|
||||
winClassSelection.Add(lblClassCounter);
|
||||
winClassSelection.Add(lblClassDescription);
|
||||
|
||||
int classCount = teams.TotalClasses(wishTeam);
|
||||
btns = memalloc(sizeof(VGUIChangeClassButton) * classCount);
|
||||
for (int i = 0; i < classCount; i++) {
|
||||
btns[i] = spawn(VGUIChangeClassButton);
|
||||
btns[i].SetTitle(Titles_GetTextBody(teams.ClassForIndex(wishTeam, i)));
|
||||
btns[i].SetSize([124, 24]);
|
||||
btns[i].SetPos(btnpos);
|
||||
btns[i].SetTag(i);
|
||||
|
||||
if (i == 9) {
|
||||
btns[i].SetKeyEquivalent("0");
|
||||
} else {
|
||||
btns[i].SetKeyEquivalent(ftos((float)i+1));
|
||||
}
|
||||
|
||||
winClassSelection.Add(btns[i]);
|
||||
btnpos[1] += 32;
|
||||
}
|
||||
}
|
||||
|
||||
winClassSelection.Show();
|
||||
winClassSelection.SetPos((g_vidsize / 2) - (winClassSelection.GetSize() / 2));
|
||||
}
|
154
src/client/vgui_chooseteam.qc
Normal file
154
src/client/vgui_chooseteam.qc
Normal file
|
@ -0,0 +1,154 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2020 Marco Cawthorne <marco@icculus.org>
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
static vguiWindow winChooseTeam;
|
||||
|
||||
class VGUITeamSelectButton:vguiButton
|
||||
{
|
||||
void VGUITeamSelectButton(void);
|
||||
|
||||
virtual void OnMouseUp(void);
|
||||
};
|
||||
|
||||
void
|
||||
VGUITeamSelectButton::VGUITeamSelectButton(void)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
VGUITeamSelectButton::OnMouseUp(void)
|
||||
{
|
||||
int tag = GetTag();
|
||||
|
||||
if (tag == 0) {
|
||||
tag = teams.BestAutoJoinTeam();
|
||||
}
|
||||
|
||||
localcmd(sprintf("cmd joinTeam %i\n", tag));
|
||||
|
||||
if (teams.TotalClasses(tag) > 0i) {
|
||||
VGUI_ChooseClass(tag);
|
||||
}
|
||||
|
||||
winChooseTeam.Hide();
|
||||
}
|
||||
|
||||
string
|
||||
VGUI_ChooseTeam_MapInfo(void)
|
||||
{
|
||||
static string mapinfo = __NULL__;
|
||||
|
||||
if (mapinfo != __NULL__)
|
||||
return mapinfo;
|
||||
|
||||
filestream fileMap = fopen(strcat("maps/", mapname, ".txt"), FILE_READ);
|
||||
string temp;
|
||||
|
||||
if (fileMap != -1) {
|
||||
while ((temp = fgets(fileMap))) {
|
||||
mapinfo = strcat(mapinfo, temp, "\n");
|
||||
}
|
||||
} else {
|
||||
mapinfo = Titles_GetTextBody("Map_Description_not_available");
|
||||
}
|
||||
|
||||
return mapinfo;
|
||||
}
|
||||
|
||||
void
|
||||
VGUI_ChooseTeam(void)
|
||||
{
|
||||
static int initialized;
|
||||
static vguiButton btnAutoAssign;
|
||||
static vguiButton btnGoSpectator;
|
||||
static vguiFrame frmMapInfo;
|
||||
static vguiLabel lblSelectTeam;
|
||||
static vguiLabel lblMapName;
|
||||
static vguiLabel lblMapInfo;
|
||||
|
||||
if (!initialized) {
|
||||
vector btnpos = [40,80];
|
||||
|
||||
initialized = TRUE;
|
||||
winChooseTeam = spawn(vguiWindow);
|
||||
winChooseTeam.SetSize('640 480');
|
||||
winChooseTeam.SetStyleMask(vguiWindowBorderless | vguiWindowFullscreen);
|
||||
|
||||
lblSelectTeam = spawn(vguiLabel);
|
||||
lblSelectTeam.SetTitle(Titles_GetTextBody("Title_SelectYourTeam"));
|
||||
lblSelectTeam.SetTextSize(19);
|
||||
lblSelectTeam.SetPos([40, 38]);
|
||||
lblSelectTeam.SetSize('400 24');
|
||||
|
||||
frmMapInfo = spawn(vguiFrame);
|
||||
frmMapInfo.SetPos('176 80');
|
||||
frmMapInfo.SetSize('424 312');
|
||||
|
||||
lblMapName = spawn(vguiLabel);
|
||||
lblMapName.SetTitle(mapname);
|
||||
lblMapName.SetTextSize(19);
|
||||
lblMapName.SetPos('194 105');
|
||||
lblMapName.SetSize('250 312');
|
||||
|
||||
lblMapInfo = spawn(vguiLabel);
|
||||
lblMapInfo.SetTitle(VGUI_ChooseTeam_MapInfo());
|
||||
lblMapInfo.SetPos('194 129');
|
||||
lblMapInfo.SetSize('375 250');
|
||||
|
||||
for (int t = 1; t <= teams.TeamCount() ; t++) {
|
||||
VGUITeamSelectButton btnForTeam;
|
||||
string team_name = teams.Name(t);
|
||||
|
||||
btnForTeam = spawn(VGUITeamSelectButton);
|
||||
btnForTeam.SetTitle(strtoupper(team_name));
|
||||
btnForTeam.SetPos(btnpos);
|
||||
btnForTeam.SetKeyEquivalent(ftos((float)t+1));
|
||||
btnForTeam.SetSize('124 24');
|
||||
btnForTeam.SetTag(t);
|
||||
|
||||
winChooseTeam.Add(btnForTeam);
|
||||
btnpos[1] += 32;
|
||||
}
|
||||
|
||||
btnAutoAssign = spawn(VGUITeamSelectButton);
|
||||
btnAutoAssign.SetTitle(Titles_GetTextBody("Team_AutoAssign"));
|
||||
btnAutoAssign.SetPos(btnpos);
|
||||
btnAutoAssign.SetSize('124 24');
|
||||
btnAutoAssign.SetKeyEquivalent("5");
|
||||
btnAutoAssign.SetTag(0);
|
||||
//btnAutoAssign.SetFunc(VGUI_AutoAssign);
|
||||
btnpos[1] += 32;
|
||||
|
||||
btnGoSpectator = spawn(VGUITeamSelectButton);
|
||||
btnGoSpectator.SetTitle(Titles_GetTextBody("Menu_Spectate"));
|
||||
btnGoSpectator.SetPos(btnpos);
|
||||
btnGoSpectator.SetSize('124 24');
|
||||
btnGoSpectator.SetKeyEquivalent("6");
|
||||
btnGoSpectator.SetTag(TEAM_SPECTATOR);
|
||||
//btnGoSpectator.SetFunc(VGUI_GoSpectator);
|
||||
|
||||
g_uiDesktop.Add(winChooseTeam);
|
||||
winChooseTeam.Add(frmMapInfo);
|
||||
winChooseTeam.Add(lblSelectTeam);
|
||||
winChooseTeam.Add(lblMapName);
|
||||
winChooseTeam.Add(lblMapInfo);
|
||||
winChooseTeam.Add(btnAutoAssign);
|
||||
winChooseTeam.Add(btnGoSpectator);
|
||||
}
|
||||
|
||||
winChooseTeam.Show();
|
||||
winChooseTeam.SetPos((g_vidsize / 2) - (winChooseTeam.GetSize() / 2));
|
||||
}
|
|
@ -18,13 +18,26 @@ void
|
|||
VGUI_ShowMOTD(void)
|
||||
{
|
||||
static int initialized;
|
||||
static VGUIButton winMotdClose;
|
||||
static VGUIWindow winMotd;
|
||||
static VGUILabel winMotdHostname;
|
||||
static VGUILabel winMotdBody;
|
||||
static vguiButton winMotdClose;
|
||||
static vguiWindow winMotd;
|
||||
static vguiLabel winMotdHostname;
|
||||
static vguiLabel winMotdBody;
|
||||
|
||||
static void VGUI_ShowMOTD_Close(void)
|
||||
{
|
||||
int playerTeam = player.GetTeam();
|
||||
bool teamSelect = ((playerTeam == TEAM_UNASSIGNED) || (playerTeam == TEAM_SPECTATOR)) ? (true) : (false);
|
||||
|
||||
if (playerTeam == 0) {
|
||||
teamSelect = true;
|
||||
}
|
||||
|
||||
// printf("MOTD opening team? %i %d open teams: %i\n", playerTeam, teamSelect, teams.OpenTeamCount());
|
||||
|
||||
if (teams.OpenTeamCount() > 0i && teamSelect) {
|
||||
VGUI_ChooseTeam();
|
||||
}
|
||||
|
||||
winMotd.Hide();
|
||||
}
|
||||
|
||||
|
@ -33,23 +46,24 @@ VGUI_ShowMOTD(void)
|
|||
|
||||
if (!initialized) {
|
||||
initialized = TRUE;
|
||||
winMotd = spawn(VGUIWindow);
|
||||
winMotd = spawn(vguiWindow);
|
||||
winMotd.SetTitle("Message Of The Day");
|
||||
winMotd.SetStyleMask(vguiWindowBorderless | vguiWindowFullscreen);
|
||||
winMotd.SetSize('424 312');
|
||||
winMotd.SetStyleMask(0);
|
||||
|
||||
winMotdClose = spawn(VGUIButton);
|
||||
winMotdClose = spawn(vguiButton);
|
||||
winMotdClose.SetTitle("OK");
|
||||
winMotdClose.SetPos([16, 266]);
|
||||
winMotdClose.SetSize([160, 30]);
|
||||
winMotdClose.SetFunc(VGUI_ShowMOTD_Close);
|
||||
|
||||
winMotdHostname = spawn(VGUILabel);
|
||||
winMotdHostname = spawn(vguiLabel);
|
||||
winMotdHostname.SetTitle(serverkey("hostname"));
|
||||
winMotdHostname.SetTextSize(19);
|
||||
winMotdHostname.SetPos([16, 20]);
|
||||
|
||||
winMotdBody = spawn(VGUILabel);
|
||||
winMotdBody = spawn(vguiLabel);
|
||||
winMotdBody.SetTitle(MOTD_GetTextBody());
|
||||
winMotdBody.SetPos([16, 48]);
|
||||
winMotdBody.SetSize([392, 210]);
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
#pragma target fte_5768_5768
|
||||
//#pragma flag enable assumeint
|
||||
#pragma progs_dat "../../zpak001.pk3dir/menu.dat"
|
||||
#define MENU
|
||||
#define GAME_DIR "valve"
|
||||
#define MODEL_PREVIEW
|
||||
|
||||
#includelist
|
||||
../../../src/menu-fn/includes.src
|
||||
../../../src/menu-vgui/includes.src
|
||||
#endlist
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ CodeCallback_StartGameType(void)
|
|||
}
|
||||
|
||||
void
|
||||
CodeCallback_PlayerSpawn(entity playerEntity)
|
||||
HLDM_PlayerSpawn(entity playerEntity)
|
||||
{
|
||||
string playerModel;
|
||||
|
||||
|
@ -102,6 +102,18 @@ CodeCallback_PlayerSpawn(entity playerEntity)
|
|||
game.TeleportToSpawn(playerEntity);
|
||||
}
|
||||
|
||||
void
|
||||
CodeCallback_PlayerSpawn(entity playerEntity)
|
||||
{
|
||||
if (IsTeamplay() == false) {
|
||||
HLDM_PlayerSpawn(playerEntity);
|
||||
} else {
|
||||
ents.ChangeToClass(playerEntity, "spectator");
|
||||
game.TeleportToSpawn(playerEntity);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
CodeCallback_PlayerDisconnect(entity playerEntity)
|
||||
{
|
||||
|
@ -121,17 +133,25 @@ CodeCallback_PlayerDamage(entity playerEntity, entity inflictor, entity attacker
|
|||
|
||||
}
|
||||
|
||||
bool
|
||||
CodeCallback_CallRequestTeam(entity playerEntity, int teamNum)
|
||||
{
|
||||
ents.Input(playerEntity, "SetTeam", itos(teamNum), playerEntity);
|
||||
ents.Input(playerEntity, "Damage", "1000", playerEntity);
|
||||
return (true);
|
||||
}
|
||||
|
||||
void
|
||||
CodeCallback_PlayerKilled(entity playerEntity, entity inflictor, entity attacker, string weapon)
|
||||
{
|
||||
combat.Obituary(self.netname, attacker.netname, weapon, "");
|
||||
combat.Obituary(playerEntity.netname, attacker.netname, weapon, "");
|
||||
|
||||
/* death-counter */
|
||||
self.deaths++;
|
||||
playerEntity.deaths++;
|
||||
|
||||
/* update score-counter */
|
||||
if (ents.isPlayer(attacker)) {
|
||||
if (self == attacker) {
|
||||
if (playerEntity == attacker) {
|
||||
attacker.frags--;
|
||||
} else {
|
||||
attacker.frags++;
|
||||
|
@ -163,8 +183,8 @@ CodeCallback_ClientCommand(entity playerEntity, string command)
|
|||
for (float i = 0; i < c; i++) {
|
||||
if (argv(i) == teamName) {
|
||||
string newTeam = ftos(i + 1);
|
||||
ents.Input(self, "SetTeam", newTeam, self);
|
||||
ents.Input(self, "Damage", "1000", self);
|
||||
ents.Input(playerEntity, "SetTeam", newTeam, playerEntity);
|
||||
ents.Input(playerEntity, "Damage", "1000", playerEntity);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -182,7 +202,7 @@ CodeCallback_ImpulseCommand(entity playerEntity, float impulseNum)
|
|||
switch (impulseNum) {
|
||||
case 100:
|
||||
if (AllowFlashlight() == true) {
|
||||
ents.Input(self, "UseItem", "item_suit", self);
|
||||
ents.Input(playerEntity, "UseItem", "item_suit", playerEntity);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -22,7 +22,7 @@ void
|
|||
CodeCallback_PlayerSpawn(entity playerEntity)
|
||||
{
|
||||
ents.ChangeToClass(playerEntity, "player");
|
||||
game.TeleportToSpawn(self);
|
||||
game.TeleportToSpawn(playerEntity);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*/
|
||||
|
||||
class
|
||||
HLScientist:NSTalkMonster
|
||||
HLScientist:ncTalkMonster
|
||||
{
|
||||
void HLScientist(void);
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class
|
||||
HLSuit:NSItem
|
||||
HLSuit:ncItem
|
||||
{
|
||||
void HLSuit(void);
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*/
|
||||
|
||||
class
|
||||
XenDecore:NSSurfacePropEntity
|
||||
XenDecore:ncSurfacePropEntity
|
||||
{
|
||||
public:
|
||||
void XenDecore(void);
|
||||
|
@ -27,7 +27,7 @@ public:
|
|||
private:
|
||||
float m_flDamageTime;
|
||||
float m_flDamageTest;
|
||||
NSDict m_damageDecl;
|
||||
ncDict m_damageDecl;
|
||||
};
|
||||
|
||||
void
|
||||
|
@ -66,7 +66,7 @@ XenDecore::Respawn(void)
|
|||
SetFrame(GetSpawnFloat("frame"));
|
||||
|
||||
if (!m_damageDecl) {
|
||||
m_damageDecl = spawn(NSDict);
|
||||
m_damageDecl = spawn(ncDict);
|
||||
m_damageDecl.AddKey("damage", GetSpawnString("damage"));
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
class item_weaponbox:NSRenderableEntity
|
||||
class item_weaponbox:ncRenderableEntity
|
||||
{
|
||||
int ammo_9mm;
|
||||
int ammo_357;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#pragma target fte_5768
|
||||
//#pragma flag enable assumeint
|
||||
#pragma progs_dat "../../zpak001.pk3dir/progs.dat"
|
||||
#pragma forcecrc 54730
|
||||
|
||||
#define QWSSQC
|
||||
#define SERVER
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2020 Marco Cawthorne <marco@icculus.org>
|
||||
* Copyright (c) 2016-2025 Marco Cawthorne <marco@icculus.org>
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
|
@ -14,24 +14,6 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
void
|
||||
Game_InitRules(void)
|
||||
{
|
||||
string gameType = cvar_string("g_gametype");
|
||||
|
||||
FX_Corpse_Init();
|
||||
|
||||
if (STRING_SET(gameType)) {
|
||||
g_grMode = NSGameRules::InitFromProgs(strcat("progs/", gameType, ".dat"));
|
||||
} else {
|
||||
if (cvar("sv_playerslots") == 1 || cvar("coop") == 1) {
|
||||
g_grMode = NSGameRules::InitFromProgs("progs/singleplayer.dat");
|
||||
} else {
|
||||
g_grMode = NSGameRules::InitFromProgs("progs/deathmatch.dat");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Game_Worldspawn(void)
|
||||
{
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*/
|
||||
|
||||
/* This is one of those leftovers from trying to get a game out in time */
|
||||
class world_items:NSRenderableEntity
|
||||
class world_items:ncRenderableEntity
|
||||
{
|
||||
void(void) world_items;
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#ifdef SERVER
|
||||
class
|
||||
HLGaussBeam:NSProjectile
|
||||
HLGaussBeam:ncProjectile
|
||||
{
|
||||
void HLGaussBeam(void);
|
||||
|
||||
|
@ -29,7 +29,7 @@ HLGaussBeam::Launch(vector startPos, vector launchDir, float fuseOffset, float p
|
|||
void
|
||||
HLGaussBeam::GaussAttack(float fuseOffset)
|
||||
{
|
||||
NSClientPlayer ourOwner = (NSClientPlayer)owner;
|
||||
ncPlayer ourOwner = (ncPlayer)owner;
|
||||
int iLoop = 6i;
|
||||
vector vecCurPlane;
|
||||
vector vecCurPos;
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
/*! \brief Half-Life weapon base class. */
|
||||
/*!QUAKED HLWeapon (0 0.8 0.8) (-16 -16 0) (16 16 72)
|
||||
# OVERVIEW
|
||||
Half-Life specific weapon based on NSWeapon.
|
||||
Half-Life specific weapon based on ncWeapon.
|
||||
|
||||
# NEW KEYS
|
||||
- "ammoIcon" - Which sprites/ image to use. See notes.
|
||||
|
@ -32,7 +32,7 @@ Since the weapon specific files only contain short names like `ammo` and `crossh
|
|||
For example, `ammoIcon` being set to `weapon_foobar.ammo` will look up `ammo` inside `sprites/weapon_foobar.txt`.
|
||||
*/
|
||||
class
|
||||
HLWeapon:NSWeapon
|
||||
HLWeapon:ncWeapon
|
||||
{
|
||||
public:
|
||||
void HLWeapon(void);
|
||||
|
@ -57,7 +57,7 @@ private:
|
|||
string m_crossHair;
|
||||
string m_icon;
|
||||
string m_iconSel;
|
||||
NSWeapon m_nextWeapon;
|
||||
ncWeapon m_nextWeapon;
|
||||
#endif
|
||||
bool m_bAltModeLaser;
|
||||
};
|
|
@ -107,14 +107,14 @@ HLWeapon::AddedToInventory(void)
|
|||
void
|
||||
HLWeapon::UpdateGUI(void)
|
||||
{
|
||||
NSClientPlayer ourOwner = __NULL__;
|
||||
ncPlayer ourOwner = __NULL__;
|
||||
vector ammoPos;
|
||||
|
||||
/* draw crosshair */
|
||||
HLSprite_DrawCrosshair(m_crossHair);
|
||||
|
||||
/* draw ammo icon */
|
||||
if (m_ammoIcon) {
|
||||
if (STRING_SET(m_ammoIcon)) {
|
||||
ammoPos = g_hudmins + [g_hudres[0] - 48, g_hudres[1] - 42];
|
||||
HLSprite_Draw_RGBA(m_ammoIcon, ammoPos, g_hud_color, pSeatLocal->m_flAmmo2Alpha, true);
|
||||
}
|
||||
|
@ -150,10 +150,11 @@ HLWeapon::UpdateGUI(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
if (m_bAmmoRequired == false)
|
||||
if (m_bAmmoRequired == false) {
|
||||
return;
|
||||
}
|
||||
|
||||
ourOwner = (NSClientPlayer)GetOwner();
|
||||
ourOwner = (ncPlayer)GetOwner();
|
||||
|
||||
if (m_iClipSize > 0i) {
|
||||
ourOwner.a_ammo1 = m_iClip;
|
||||
|
@ -163,12 +164,12 @@ HLWeapon::UpdateGUI(void)
|
|||
ourOwner.a_ammo2 = ourOwner.GetReserveAmmo(m_primaryAmmoType);
|
||||
HUD_DrawAmmo2();
|
||||
|
||||
if (m_secondaryAmmoType && m_primaryAmmoType != m_secondaryAmmoType) {
|
||||
if (UsesSecondaryAmmo() && m_primaryAmmoType != m_secondaryAmmoType) {
|
||||
ourOwner.a_ammo3 = ourOwner.GetReserveAmmo(m_secondaryAmmoType);
|
||||
HUD_DrawAmmo3();
|
||||
|
||||
/* draw ammo icon */
|
||||
if (m_ammo2Icon) {
|
||||
if (STRING_SET(m_ammo2Icon)) {
|
||||
ammoPos = g_hudmins + [g_hudres[0] - 48, g_hudres[1] - 74];
|
||||
HLSprite_Draw_RGBA(m_ammo2Icon, ammoPos, g_hud_color, pSeatLocal->m_flAmmo2Alpha, true);
|
||||
}
|
||||
|
@ -178,7 +179,7 @@ HLWeapon::UpdateGUI(void)
|
|||
void
|
||||
HLWeapon::DrawLaser(void)
|
||||
{
|
||||
NSClientPlayer ourOwner = (NSClientPlayer)GetOwner();
|
||||
ncPlayer ourOwner = (ncPlayer)GetOwner();
|
||||
float lerpValue;
|
||||
vector laser_pos = g_vec_null;
|
||||
vector jitter = [0.0f, 0.0f, 0.0f];
|
||||
|
|
|
@ -45,7 +45,7 @@ FX_Blood(vector pos, vector color)
|
|||
#else
|
||||
static void Blood_Touch(void)
|
||||
{
|
||||
if (self.think != NSEntity::Destroy) {
|
||||
if (self.think != ncEntity::Destroy) {
|
||||
if (serverkeyfloat("*bspversion") == BSPVER_HL)
|
||||
Decals_Place(self.origin, sprintf("{blood%d", floor(random(1,9))));
|
||||
else {
|
||||
|
@ -54,12 +54,12 @@ FX_Blood(vector pos, vector color)
|
|||
}
|
||||
}
|
||||
|
||||
self.think = NSEntity::Destroy;
|
||||
self.think = ncEntity::Destroy;
|
||||
self.nextthink = time + 5.0f;
|
||||
}
|
||||
static void ABlood_Touch(void)
|
||||
{
|
||||
if (self.think != NSEntity::Destroy) {
|
||||
if (self.think != ncEntity::Destroy) {
|
||||
if (serverkeyfloat("*bspversion") == BSPVER_HL)
|
||||
Decals_Place(self.origin, sprintf("{yblood%d", floor(random(1,9))));
|
||||
else {
|
||||
|
@ -68,7 +68,7 @@ FX_Blood(vector pos, vector color)
|
|||
}
|
||||
}
|
||||
|
||||
self.think = NSEntity::Destroy;
|
||||
self.think = ncEntity::Destroy;
|
||||
self.nextthink = time + 5.0f;
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,7 @@ FX_Blood(vector pos, vector color)
|
|||
eBlood.nextthink = time + 0.05f;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
NSRenderableEntity ePart = spawn(NSRenderableEntity);
|
||||
ncRenderableEntity ePart = spawn(ncRenderableEntity);
|
||||
ePart.SetOrigin(pos);
|
||||
ePart.SetModel("sprites/blood.spr");
|
||||
ePart.SetMovetype(MOVETYPE_BOUNCE);
|
||||
|
|
|
@ -1,101 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2022 Vera Visions LLC.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifdef SERVER
|
||||
#define CORPSES_MAX 16
|
||||
entity g_bodies;
|
||||
|
||||
var bool autocvar_corpse_ragdolls = true;
|
||||
|
||||
void
|
||||
FX_Corpse_Init(void)
|
||||
{
|
||||
entity next;
|
||||
|
||||
if (autocvar_corpse_ragdolls)
|
||||
next = spawn(NSRagdoll);
|
||||
else
|
||||
next = spawn(NSRenderableEntity);
|
||||
|
||||
g_bodies = next;
|
||||
|
||||
for ( int i = 0; i <= CORPSES_MAX; i++ ) {
|
||||
next.classname = "corpse";
|
||||
|
||||
if (autocvar_corpse_ragdolls)
|
||||
next.owner = spawn(NSRagdoll);
|
||||
else
|
||||
next.owner = spawn(NSRenderableEntity);
|
||||
|
||||
if ( i == CORPSES_MAX ) {
|
||||
next.owner = g_bodies;
|
||||
} else {
|
||||
next = next.owner;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
entity
|
||||
FX_Corpse_Next(void)
|
||||
{
|
||||
entity r = g_bodies;
|
||||
g_bodies = g_bodies.owner;
|
||||
return r;
|
||||
}
|
||||
|
||||
void
|
||||
FX_Corpse_Update(void)
|
||||
{
|
||||
NSEntity meSelf = (NSEntity)self;
|
||||
meSelf.frame1time += frametime;
|
||||
|
||||
if (meSelf.frame1time < 10.0)
|
||||
meSelf.ScheduleThink(FX_Corpse_Update, 0.0f);
|
||||
}
|
||||
|
||||
entity
|
||||
FX_Corpse_Spawn(NSClientPlayer pl, float anim)
|
||||
{
|
||||
NSRagdoll body_next = (NSRagdoll)FX_Corpse_Next();
|
||||
|
||||
if (autocvar_corpse_ragdolls) {
|
||||
body_next.SetMovetype(MOVETYPE_PHYSICS);
|
||||
body_next.SetSolid(SOLID_NOT);
|
||||
} else {
|
||||
body_next.SetMovetype(MOVETYPE_BOUNCE);
|
||||
body_next.SetSolid(SOLID_CORPSE);
|
||||
}
|
||||
|
||||
body_next.SetModelindex(pl.GetModelindex());
|
||||
|
||||
if (pl.IsCrouching()) {
|
||||
body_next.SetOrigin(pl.GetOrigin() + [0,0,32]);
|
||||
} else {
|
||||
body_next.SetOrigin(pl.GetOrigin());
|
||||
}
|
||||
|
||||
body_next.SetSize(pl.GetMins(), pl.GetMaxs());
|
||||
body_next.SetAngles(pl.GetAngles());
|
||||
body_next.SetVelocity(pl.GetVelocity() + [0,0,120]);
|
||||
body_next.SetFrame(anim);
|
||||
body_next.m_iBody = pl.m_iBody;
|
||||
body_next.ScheduleThink(FX_Corpse_Update, 0.0f);
|
||||
body_next.colormap = pl.colormap;
|
||||
body_next.frame1time = 0.0f;
|
||||
|
||||
return (entity)body_next;
|
||||
}
|
||||
#endif
|
|
@ -3,7 +3,6 @@
|
|||
../../../valve/src/shared/events.h
|
||||
../../../valve/src/shared/flags.h
|
||||
../../../valve/src/shared/skeleton.h
|
||||
../../../valve/src/shared/fx_corpse.qc
|
||||
../../../valve/src/shared/player.qc
|
||||
../../../valve/src/shared/animations.qc
|
||||
../../../valve/src/shared/fx_blood.qc
|
||||
|
|
|
@ -23,7 +23,7 @@ enumflags
|
|||
PLAYER_BOTTOMFRAME
|
||||
};
|
||||
|
||||
class HLPlayer:NSClientPlayer
|
||||
class HLPlayer:ncPlayer
|
||||
{
|
||||
void(void) HLPlayer;
|
||||
|
||||
|
@ -45,7 +45,7 @@ class HLPlayer:NSClientPlayer
|
|||
virtual void UpdateAliveCam(void);
|
||||
virtual void ClientInputFrame(void);
|
||||
#else
|
||||
virtual void Death(entity, entity, int, vector, int);
|
||||
virtual void Death(entity, entity, int, vector, vector, int);
|
||||
virtual void EvaluateEntity(void);
|
||||
virtual float SendEntity(entity, float);
|
||||
virtual void Save(float);
|
||||
|
@ -97,7 +97,7 @@ HLPlayer::ClientInputFrame(void)
|
|||
|
||||
void Camera_RunPosBob(vector angles, __inout vector camera_pos);
|
||||
void Camera_StrafeRoll(__inout vector camera_angle);
|
||||
void Shake_Update(NSClientPlayer);
|
||||
void Shake_Update(ncPlayer);
|
||||
|
||||
void
|
||||
HLPlayer::UpdateAliveCam(void)
|
||||
|
@ -110,7 +110,7 @@ HLPlayer::UpdateAliveCam(void)
|
|||
g_view.SetCameraAngle(view_angles);
|
||||
|
||||
if (vehicle) {
|
||||
NSVehicle veh = (NSVehicle)vehicle;
|
||||
ncVehicle veh = (ncVehicle)vehicle;
|
||||
|
||||
if (veh.UpdateView)
|
||||
veh.UpdateView();
|
||||
|
@ -129,7 +129,7 @@ HLPlayer::UpdateAliveCam(void)
|
|||
}
|
||||
|
||||
.string oldmodel;
|
||||
//string Weapons_GetPlayermodel(NSClientPlayer, int);
|
||||
//string Weapons_GetPlayermodel(ncPlayer, int);
|
||||
|
||||
var bool autocvar_cg_flashlightClassic = true;
|
||||
var float autocvar_r_shadow_realtime_dlight;
|
||||
|
@ -161,7 +161,7 @@ HLPlayer::UpdatePlayerAttachments(bool visible)
|
|||
p = dynamiclight_add(trace_endpos + (trace_plane_normal * 48.0f), 96, [1,1,1]);
|
||||
}
|
||||
} else {
|
||||
p = dynamiclight_add(src + (v_forward * 16), 512, [1,1,1], 0, "textures/flashlight");
|
||||
p = dynamiclight_add(src + (v_forward * 16), 512, [1,1,1], 0, "lights/flashlight");
|
||||
dynamiclight_set(p, LFIELD_ANGLES, ang);
|
||||
dynamiclight_set(p, LFIELD_FLAGS, 3);
|
||||
}
|
||||
|
@ -190,7 +190,7 @@ HLPlayer::UpdatePlayerAttachments(bool visible)
|
|||
p_model.skeletonindex = skel_create(p_model.modelindex);
|
||||
|
||||
/* hack this thing in here FIXME: this should be done when popping in/out of a pvs */
|
||||
if (autocvar(cl_himodels, 1, "Use high-quality thisayer models over lower-definition ones"))
|
||||
if (autocvar(cl_himodels, 1, "Use high-quality player models over lower-definition ones"))
|
||||
setcustomskin(this, "", "geomset 0 2\n");
|
||||
else
|
||||
setcustomskin(this, "", "geomset 0 1\n");
|
||||
|
@ -219,8 +219,8 @@ HLPlayer::UpdatePlayerAttachments(bool visible)
|
|||
}
|
||||
}
|
||||
|
||||
void HUD_AmmoNotify_Check(NSClientPlayer pl);
|
||||
void HUD_ItemNotify_Check(NSClientPlayer pl);
|
||||
void HUD_AmmoNotify_Check(ncPlayer pl);
|
||||
void HUD_ItemNotify_Check(ncPlayer pl);
|
||||
/*
|
||||
=================
|
||||
HLPlayer::ReceiveEntity
|
||||
|
@ -340,7 +340,7 @@ void
|
|||
HLPlayer::EvaluateEntity(void)
|
||||
{
|
||||
/* the generic client attributes */
|
||||
NSClientPlayer::EvaluateEntity();
|
||||
ncPlayer::EvaluateEntity();
|
||||
|
||||
EVALUATE_FIELD(anim_top, PLAYER_TOPFRAME)
|
||||
EVALUATE_FIELD(anim_top_time, PLAYER_TOPFRAME)
|
||||
|
@ -350,19 +350,17 @@ HLPlayer::EvaluateEntity(void)
|
|||
|
||||
}
|
||||
|
||||
entity FX_Corpse_Spawn(NSClientPlayer pl, float anim);
|
||||
void
|
||||
HLPlayer::Death(entity inflictor, entity attacker, int damagePoints, vector dir, int location)
|
||||
HLPlayer::Death(entity inflictor, entity attacker, int damagePoints, vector dir, vector absImpactPos, int hitBody)
|
||||
{
|
||||
/* either gib, or make a corpse */
|
||||
if (GetHealth()< -50) {
|
||||
vector gibDir = vectoangles(GetOrigin() - attacker.origin);
|
||||
float gibStrength = damagePoints * 2.0f;
|
||||
BreakModel_Entity(this, gibDir, gibStrength);
|
||||
BreakModel_Entity(this, dir, gibStrength);
|
||||
} else {
|
||||
float deathAnimation = ANIM_DIESIMPLE;
|
||||
|
||||
switch (location) {
|
||||
switch (hitBody) {
|
||||
case BODY_HEAD:
|
||||
deathAnimation = ANIM_DIEHEADSHOT;
|
||||
break;
|
||||
|
@ -373,7 +371,7 @@ HLPlayer::Death(entity inflictor, entity attacker, int damagePoints, vector dir,
|
|||
deathAnimation = ANIM_DIEGUTSHOT;
|
||||
break;
|
||||
default:
|
||||
bool isFacing = IsFacingPosition(GetOrigin() + (dir * 128));
|
||||
bool isFacing = IsFacingPosition(absImpactPos);
|
||||
|
||||
/* we still want a change to play ANIM_DIESIMPLE */
|
||||
if (random() < 0.5)
|
||||
|
@ -386,7 +384,7 @@ HLPlayer::Death(entity inflictor, entity attacker, int damagePoints, vector dir,
|
|||
break;
|
||||
}
|
||||
|
||||
NSEntity newCorpse = (NSEntity)FX_Corpse_Spawn(this, deathAnimation);
|
||||
ncEntity newCorpse = (ncEntity)BodyQue_Spawn(this, deathAnimation);
|
||||
|
||||
/* if we were crouching, adjust the bbox (thx 2 lack of crouch death animation) */
|
||||
if (IsCrouching()) {
|
||||
|
@ -394,7 +392,7 @@ HLPlayer::Death(entity inflictor, entity attacker, int damagePoints, vector dir,
|
|||
}
|
||||
}
|
||||
|
||||
super::Death(inflictor, attacker, damagePoints, dir, location);
|
||||
super::Death(inflictor, attacker, damagePoints, dir, absImpactPos, hitBody);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -418,7 +416,7 @@ HLPlayer::SendEntity(entity ePEnt, float flChanged)
|
|||
flChanged = OptimiseChangedFlags(ePEnt, flChanged);
|
||||
|
||||
/* the generic client attributes */
|
||||
NSClientPlayer::SendEntity(ePEnt, flChanged);
|
||||
ncPlayer::SendEntity(ePEnt, flChanged);
|
||||
|
||||
SENDENTITY_BYTE(anim_top, PLAYER_TOPFRAME)
|
||||
SENDENTITY_FLOAT(anim_top_time, PLAYER_TOPFRAME)
|
||||
|
|
|
@ -32,7 +32,7 @@ enum
|
|||
* Because not being able to place it around levels would be boring.
|
||||
* Some maps, such as subtransit and a few singleplayer chapters have this. */
|
||||
|
||||
class HLTripmine:NSSurfacePropEntity
|
||||
class HLTripmine:ncSurfacePropEntity
|
||||
{
|
||||
void HLTripmine(void);
|
||||
|
||||
|
@ -40,8 +40,8 @@ class HLTripmine:NSSurfacePropEntity
|
|||
virtual void Respawn(void);
|
||||
virtual void Spawned(void);
|
||||
virtual void Ready(void);
|
||||
virtual void Pain(entity, entity, int, vector, int);
|
||||
virtual void Death(entity, entity, int, vector, int);
|
||||
virtual void Pain(entity, entity, int, vector, vector, int);
|
||||
virtual void Death(entity, entity, int, vector, vector, int);
|
||||
virtual float SendEntity(entity, float);
|
||||
#endif
|
||||
|
||||
|
@ -99,7 +99,7 @@ HLTripmine::Spawned(void)
|
|||
}
|
||||
|
||||
void
|
||||
HLTripmine::Death(entity inflictor, entity attacker, int damage, vector dir, int location)
|
||||
HLTripmine::Death(entity inflictor, entity attacker, int damage, vector dir, vector absImpactPos, int hitBody)
|
||||
{
|
||||
vector explosionPos = GetOrigin();
|
||||
float explosionDamage = Skill_GetValue("plr_tripmine", 150);
|
||||
|
@ -116,9 +116,9 @@ HLTripmine::Death(entity inflictor, entity attacker, int damage, vector dir, int
|
|||
}
|
||||
|
||||
void
|
||||
HLTripmine::Pain(entity inflictor, entity attacker, int damage, vector dir, int location)
|
||||
HLTripmine::Pain(entity inflictor, entity attacker, int damage, vector dir, vector absImpactPos, int hitBody)
|
||||
{
|
||||
Death(trace_ent, attacker, 0, g_vec_null, 0);
|
||||
Death(inflictor, attacker, damage, dir, absImpactPos, hitBody);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -139,7 +139,7 @@ HLTripmine::Ready(void)
|
|||
|
||||
/* laser shorter than when calibrated, explode! */
|
||||
if (trace_endpos != m_vecEndPos) {
|
||||
Death(trace_ent, real_owner, 0, g_vec_null, 0);
|
||||
Death(trace_ent, real_owner, 0, g_vec_null, origin, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
exec "skill.cfg"
|
||||
exec "skill_valve.cfg"
|
||||
|
|
7
zpak001.pk3dir/coop.config
Normal file
7
zpak001.pk3dir/coop.config
Normal file
|
@ -0,0 +1,7 @@
|
|||
g_gametype singleplayer
|
||||
fraglimit 0
|
||||
timelimit 20
|
||||
coop 1
|
||||
sv_playerslots 16
|
||||
sv_pure 1
|
||||
map c1a0
|
6
zpak001.pk3dir/deathmatch.config
Normal file
6
zpak001.pk3dir/deathmatch.config
Normal file
|
@ -0,0 +1,6 @@
|
|||
g_gametype deathmatch
|
||||
fraglimit 0
|
||||
timelimit 20
|
||||
sv_playerslots 16
|
||||
sv_pure 1
|
||||
map_restart 0
|
|
@ -1,6 +1,6 @@
|
|||
entityDef ammo_base
|
||||
{
|
||||
"spawnclass" "NSItem"
|
||||
"spawnclass" "ncItem"
|
||||
"snd_acquire" "ammo.pickup"
|
||||
"snd_respawn" "ammo.respawn"
|
||||
"mins" "-16 -16 0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef item_airtank
|
||||
{
|
||||
"spawnclass" "NSItem"
|
||||
"spawnclass" "ncItem"
|
||||
"model" "models/w_oxygen.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef item_antidote
|
||||
{
|
||||
"spawnclass" "NSItem"
|
||||
"spawnclass" "ncItem"
|
||||
"model" "models/w_antidote.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef item_battery
|
||||
{
|
||||
"spawnclass" "NSItem"
|
||||
"spawnclass" "ncItem"
|
||||
"model" "models/w_battery.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef item_healthkit
|
||||
{
|
||||
"spawnclass" "NSItem"
|
||||
"spawnclass" "ncItem"
|
||||
"model" "models/w_medkit.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef item_longjump
|
||||
{
|
||||
"spawnclass" "NSItem"
|
||||
"spawnclass" "ncItem"
|
||||
"model" "models/w_longjump.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef item_security
|
||||
{
|
||||
"spawnclass" "NSItem"
|
||||
"spawnclass" "ncItem"
|
||||
"model" "models/w_security.mdl"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 16"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_alien_controller
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/controller.mdl"
|
||||
"netname" "Alien Controller"
|
||||
"health" "skill:controller_health"
|
||||
|
@ -31,7 +31,7 @@ entityDef monster_alien_controller
|
|||
|
||||
entityDef ranged_controller_ball
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "sprites/xspark4.spr"
|
||||
"mins" "-16 -16 -16"
|
||||
"mins" "16 16 16"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_alien_grunt
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/agrunt.mdl"
|
||||
"netname" "Alien Grunt"
|
||||
"health" "skill:agrunt_health"
|
||||
|
@ -55,7 +55,7 @@ entityDef melee_agrunt_punch
|
|||
|
||||
entityDef ranged_agrunt_shot_red
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "models/hornet.mdl"
|
||||
|
||||
"def_damage" "damage_hornetDirect"
|
||||
|
@ -74,7 +74,7 @@ entityDef ranged_agrunt_shot_red
|
|||
|
||||
entityDef ranged_agrunt_shot_orange
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "models/hornet.mdl"
|
||||
|
||||
"def_damage" "damage_hornetDirect"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_alien_slave
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/islave.mdl"
|
||||
"netname" "Vortigaunt"
|
||||
"health" "skill:islave_health"
|
||||
|
@ -84,7 +84,7 @@ entityDef damage_islave_zap
|
|||
|
||||
entityDef ranged_islave_zap
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"mins" "-16 -16 -32"
|
||||
"maxs" "16 16 32"
|
||||
"def_damage" "damage_islave_zap"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_apache
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/apache.mdl"
|
||||
"netname" "Apache"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_archerfish
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/archer.mdl"
|
||||
"netname" "Archer Fish"
|
||||
"health" "10"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_babycrab
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"inherit" "monster_headcrab"
|
||||
"model" "models/baby_headcrab.mdl"
|
||||
"health" "skill:babycrab_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_barnacle
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/barnacle.mdl"
|
||||
"netname" "Barnacle"
|
||||
"health" "skill:barnacle_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_barney
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/barney.mdl"
|
||||
"netname" "Barney"
|
||||
"health" "skill:barney_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_barney_dead
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/barney.mdl"
|
||||
"netname" "Barney"
|
||||
"health" "skill:barney_heath"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_bigmomma
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/big_mom.mdl"
|
||||
"netname" "Big Momma"
|
||||
"health" "100"
|
||||
|
@ -78,7 +78,7 @@ entityDef melee_bigmomma
|
|||
|
||||
entityDef ranged_bigmomma_spit
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "sprites/mommaspit.spr"
|
||||
"mins" "-16 -16 -16"
|
||||
"mins" "16 16 16"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_bloater
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/floater.mdl"
|
||||
"netname" "Flocking Floater" // wonder if it's the Floater from Cosmos
|
||||
"health" "25"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_bullchicken
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/bullsquid.mdl"
|
||||
"netname" "Bullsquid"
|
||||
"health" "skill:bullsquid_health"
|
||||
|
@ -55,7 +55,7 @@ entityDef melee_bullchicken_tailwhip
|
|||
|
||||
entityDef ranged_bullchicken_spit
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "sprites/bigspit.spr"
|
||||
|
||||
"def_damage" "damage_spitDirect"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_charger
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/charger.mdl"
|
||||
"netname" "Charger"
|
||||
"health" "skill:charger_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_chumtoad
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/chumtoad.mdl"
|
||||
"netname" "Chumtoad"
|
||||
"health" "10"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_cockroach
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/roach.mdl"
|
||||
"netname" "Cockroach"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_flyer
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/aflock.mdl"
|
||||
"netname" "Flyer Flock"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_flyer_flock
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/aflock.mdl"
|
||||
"netname" "Flyer Flock"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_gargantua
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/garg.mdl"
|
||||
"netname" "Gargantua"
|
||||
"health" "skill:gargantua_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_gman
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/gman.mdl"
|
||||
"netname" "G-Man"
|
||||
"health" "" // he can't die, he's the G-Man!
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_headcrab
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/headcrab.mdl"
|
||||
"netname" "Headcrab"
|
||||
"health" "skill:headcrab_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_hevsuit_dead
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/player.mdl"
|
||||
"body1" "1"
|
||||
"netname" "Dead H.E.V. Scientist"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_hgrunt_dead
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/hgrunt.mdl"
|
||||
"netname" "Dead Human Grunt"
|
||||
"health" "skill:hgrunt_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_houndeye
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/houndeye.mdl"
|
||||
"netname" "Houndeye"
|
||||
"health" "skill:houndeye_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_human_assassin
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/hassassin.mdl"
|
||||
"netname" "Human Assassin"
|
||||
"health" "skill:hassassin_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_human_assault
|
||||
{
|
||||
"spawnclass" "NSSquadMonster"
|
||||
"spawnclass" "ncSquadMonster"
|
||||
"model" "models/hassault.mdl"
|
||||
"netname" "Human Assault"
|
||||
"health" "skill:hgrunt_health"
|
||||
|
@ -33,7 +33,7 @@ entityDef monster_human_assault
|
|||
|
||||
entityDef melee_hassault_kick
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"is_bullet" "1"
|
||||
"damage" "skill:hgrunt_kick"
|
||||
"delay" "0.25"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_human_grunt
|
||||
{
|
||||
"spawnclass" "NSSquadMonster"
|
||||
"spawnclass" "ncSquadMonster"
|
||||
"model" "models/hgrunt.mdl"
|
||||
"netname" "Grunt"
|
||||
"health" "skill:hgrunt_health"
|
||||
|
@ -68,7 +68,7 @@ entityDef monster_human_grunt
|
|||
|
||||
entityDef melee_hgrunt_kick
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"is_bullet" "1"
|
||||
"damage" "skill:hgrunt_kick"
|
||||
"delay" "0.25"
|
||||
|
@ -93,7 +93,7 @@ entityDef ranged_hgrunt_shot
|
|||
|
||||
entityDef projectile_hgrunt_ARgrenade
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "models/grenade.mdl"
|
||||
|
||||
"def_splash_damage" "damage_grenadeSplash"
|
||||
|
@ -122,7 +122,7 @@ entityDef projectile_hgrunt_ARgrenade
|
|||
|
||||
entityDef projectile_hgrunt_grenade
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "models/w_grenade.mdl"
|
||||
|
||||
"def_splash_damage" "damage_grenadeSplash"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_ichthyosaur
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/icky.mdl"
|
||||
"netname" "Ichthyosaur"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_kingpin
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/kingpin.mdl"
|
||||
"netname" "Kingpin"
|
||||
"health" "200"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_leech
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/leech.mdl"
|
||||
"netname" "Leech"
|
||||
"health" "skill:leech_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_miniturret
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/miniturret.mdl"
|
||||
"netname" "Mini-Turret"
|
||||
"health" "skill:miniturret_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_mrfriendly
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/friendly.mdl"
|
||||
"netname" "Mr. Friendly"
|
||||
"health" "100"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_nihilanth
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/nihilanth.mdl"
|
||||
"netname" "Nihilanth"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_osprey
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/osprey.mdl"
|
||||
"netname" "Osprey"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_panther
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/panther.mdl"
|
||||
"netname" "Panther Eye"
|
||||
"health" "skill:panther_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_rat
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/bigrat.mdl"
|
||||
"netname" "Rat"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_scientist_dead
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/scientist.mdl"
|
||||
"netname" "Dead Scientist"
|
||||
"health" "skill:scientist_health"
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
entityDef monster_sentry
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/sentry.mdl"
|
||||
"netname" "Sentry"
|
||||
"health" "skill:sentry_health"
|
||||
"mins" "-16 -16 0"
|
||||
"maxs" "16 16 72"
|
||||
"eye_height" "64"
|
||||
"eye_height" "60"
|
||||
"team" "1"
|
||||
"propdata" "actor_robot"
|
||||
|
||||
|
@ -29,6 +29,10 @@ entityDef monster_sentry
|
|||
|
||||
"speed_walk" "0"
|
||||
"speed_run" "0"
|
||||
"turn_rate" "0"
|
||||
"use_nav" "0"
|
||||
"bleed" "0"
|
||||
"fireFromHead" "1"
|
||||
}
|
||||
|
||||
entityDef ranged_sentry_shot
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_sitting_scientist
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/scientist.mdl"
|
||||
"netname" "Seated Scientist"
|
||||
"health" "skill:scientist_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_skeleton_dead
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/skeleton.mdl"
|
||||
"netname" "Skeleton"
|
||||
"health" "50"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_snapbug
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/snapbug.mdl"
|
||||
"netname" "Snapbug"
|
||||
"health" "25"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_snark
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/w_squeak.mdl"
|
||||
"netname" "Snark"
|
||||
"health" "skill:snark_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_sphere
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/sphere.mdl"
|
||||
"netname" "Vortigaunt Control Sphere"
|
||||
"health" "10"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_stukabat
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/stukabat.mdl"
|
||||
"netname" "Stukabat"
|
||||
"health" "25"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_tentacle
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/tentacle2.mdl"
|
||||
"netname" "Tentacle"
|
||||
"health" "25"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_turret
|
||||
{
|
||||
"spawnclass" "NSTalkMonster"
|
||||
"spawnclass" "ncTalkMonster"
|
||||
"model" "models/turret.mdl"
|
||||
"netname" "Turret"
|
||||
"health" "skill:turret_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef xen_hair
|
||||
{
|
||||
"spawnclass" "NSSurfacePropEntity"
|
||||
"spawnclass" "ncSurfacePropEntity"
|
||||
"model" "models/hair.mdl"
|
||||
"netname" "Xen Hair"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef xen_plantlight
|
||||
{
|
||||
"spawnclass" "NSSurfacePropEntity"
|
||||
"spawnclass" "ncSurfacePropEntity"
|
||||
"model" "models/light.mdl"
|
||||
"netname" "Xen Plant Light"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef xen_spore_large
|
||||
{
|
||||
"spawnclass" "NSSurfacePropEntity"
|
||||
"spawnclass" "ncSurfacePropEntity"
|
||||
"model" "models/fungus(large).mdl"
|
||||
"netname" "Xen Spore (Large)"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef xen_spore_medium
|
||||
{
|
||||
"spawnclass" "NSSurfacePropEntity"
|
||||
"spawnclass" "ncSurfacePropEntity"
|
||||
"model" "models/fungus.mdl"
|
||||
"netname" "Xen Spore (Medium)"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef xen_spore_small
|
||||
{
|
||||
"spawnclass" "NSSurfacePropEntity"
|
||||
"spawnclass" "ncSurfacePropEntity"
|
||||
"model" "models/fungus(small).mdl"
|
||||
"netname" "Xen Spore (Small)"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef xen_tree
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/tree.mdl"
|
||||
"netname" "Xen Tree"
|
||||
"health" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef monster_zombie
|
||||
{
|
||||
"spawnclass" "NSMonster"
|
||||
"spawnclass" "ncMonster"
|
||||
"model" "models/zombie.mdl"
|
||||
"netname" "Zombie"
|
||||
"health" "skill:zombie_health"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef projectile_bullet_base
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"is_bullet" "1"
|
||||
"decal_impact" "Impact.BigShot"
|
||||
"detonate_on_world" "1"
|
||||
|
@ -8,7 +8,7 @@ entityDef projectile_bullet_base
|
|||
|
||||
entityDef projectile_egonbeam
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"is_bullet" "1"
|
||||
"damage" "skill:plr_egon"
|
||||
"detonate_on_world" "0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
entityDef info_player_start
|
||||
{
|
||||
"spawnclass" "NSSpawnPoint"
|
||||
"spawnclass" "ncSpawnPoint"
|
||||
"editor_mins" "-16 -16 -36"
|
||||
"editor_maxs" "16 16 36"
|
||||
"editor_description" "Singleplayer Spawn Point"
|
||||
|
@ -9,7 +9,7 @@ entityDef info_player_start
|
|||
|
||||
entityDef info_player_deathmatch
|
||||
{
|
||||
"spawnclass" "NSSpawnPoint"
|
||||
"spawnclass" "ncSpawnPoint"
|
||||
"editor_mins" "-16 -16 -36"
|
||||
"editor_maxs" "16 16 36"
|
||||
"editor_description" "Deathmatch Spawn Point"
|
||||
|
@ -18,7 +18,7 @@ entityDef info_player_deathmatch
|
|||
|
||||
entityDef info_player_coop
|
||||
{
|
||||
"spawnclass" "NSSpawnPoint"
|
||||
"spawnclass" "ncSpawnPoint"
|
||||
"editor_mins" "-16 -16 -36"
|
||||
"editor_maxs" "16 16 36"
|
||||
"editor_description" "Cooperative Spawn Point"
|
||||
|
@ -27,7 +27,7 @@ entityDef info_player_coop
|
|||
|
||||
entityDef info_spectator_start
|
||||
{
|
||||
"spawnclass" "NSSpawnPoint"
|
||||
"spawnclass" "ncSpawnPoint"
|
||||
"editor_mins" "-16 -16 -16"
|
||||
"editor_maxs" "16 16 16"
|
||||
"editor_description" "Spectator Spawn Point"
|
||||
|
|
|
@ -12,7 +12,7 @@ entityDef weapon_9mmAR
|
|||
"snd_acquire" "weapon.pickup"
|
||||
"snd_respawn" "item.respawn"
|
||||
|
||||
// NSWeapon specific
|
||||
// ncWeapon specific
|
||||
"def_fireInfo" "fireInfo_9mmAR"
|
||||
"def_altFireInfo" "fireInfo_ARGrenade"
|
||||
"inv_name" "9mm AR"
|
||||
|
@ -72,7 +72,7 @@ entityDef fireInfo_ARGrenade
|
|||
|
||||
entityDef projectile_ARgrenade
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "models/grenade.mdl"
|
||||
"offset" "16 0 0"
|
||||
"velocity" "800 0 0"
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
#define 9MMHANDGUN_IDLE1 0
|
||||
#define 9MMHANDGUN_IDLE2 1
|
||||
#define 9MMHANDGUN_IDLE3 2
|
||||
#define 9MMHANDGUN_FIRE 3
|
||||
#define 9MMHANDGUN_FIRELAST 4
|
||||
#define 9MMHANDGUN_RELOADEMPTY 5
|
||||
#define 9MMHANDGUN_RELOAD 6
|
||||
#define 9MMHANDGUN_DRAW 7
|
||||
#define 9MMHANDGUN_HOLSTER 8
|
||||
|
||||
entityDef weapon_9mmhandgun
|
||||
{
|
||||
"editor_color" ".3 .3 1"
|
||||
|
@ -22,13 +32,13 @@ entityDef weapon_9mmhandgun
|
|||
"ammoPerShot" "1"
|
||||
"punchAngle" "-2 0 0"
|
||||
|
||||
"act_fire" "3"
|
||||
"act_fireLast" "4"
|
||||
"act_holster" "8"
|
||||
"act_reload" "6"
|
||||
"act_reloadEmpty" "5"
|
||||
"act_draw" "7"
|
||||
"act_idle" "0,1,2"
|
||||
"act_fire" "$9MMHANDGUN_FIRE"
|
||||
"act_fireLast" "$9MMHANDGUN_FIRELAST"
|
||||
"act_holster" "$9MMHANDGUN_HOLSTER"
|
||||
"act_reload" "$9MMHANDGUN_RELOAD"
|
||||
"act_reloadEmpty" "$9MMHANDGUN_RELOADEMPTY"
|
||||
"act_draw" "$9MMHANDGUN_DRAW"
|
||||
"act_idle" "$9MMHANDGUN_IDLE1,$9MMHANDGUN_IDLE2,$9MMHANDGUN_IDLE3"
|
||||
|
||||
"snd_fire" "Weapon_Glock.Single"
|
||||
"snd_altfire" "Weapon_Glock.Single"
|
||||
|
|
|
@ -68,13 +68,13 @@ entityDef fireInfo_crossbowMP
|
|||
|
||||
entityDef debris_arrow
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "models/crossbow_bolt.mdl"
|
||||
}
|
||||
|
||||
entityDef projectile_arrow
|
||||
{
|
||||
"spawnclass" "NSProjectile"
|
||||
"spawnclass" "ncProjectile"
|
||||
"model" "models/crossbow_bolt.mdl"
|
||||
"velocity" "2000 0 0"
|
||||
"angular_velocity" "0 0 20"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue