mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
412 lines
9.2 KiB
Plaintext
412 lines
9.2 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: maps\mp\_popups.gsc
|
|
* Game: Call of Duty: Black Ops 2
|
|
* Platform: PC
|
|
* Function Count: 10
|
|
* Decompile Time: 3 ms
|
|
* Timestamp: 10/28/2023 12:11:00 AM
|
|
*******************************************************************/
|
|
|
|
#include common_scripts/utility;
|
|
#include maps/mp/_medals;
|
|
#include maps/mp/_utility;
|
|
#include maps/mp/gametypes/_hud_message;
|
|
#include maps/mp/gametypes/_persistence;
|
|
#include maps/mp/gametypes/_rank;
|
|
|
|
//Function Number: 1
|
|
init()
|
|
{
|
|
level.contractsettings = spawnstruct();
|
|
level.contractsettings.waittime = 4.2;
|
|
level.killstreaksettings = spawnstruct();
|
|
level.killstreaksettings.waittime = 3;
|
|
level.ranksettings = spawnstruct();
|
|
level.ranksettings.waittime = 3;
|
|
level.startmessage = spawnstruct();
|
|
level.startmessagedefaultduration = 2;
|
|
level.endmessagedefaultduration = 2;
|
|
level.challengesettings = spawnstruct();
|
|
level.challengesettings.waittime = 3;
|
|
level.teammessage = spawnstruct();
|
|
level.teammessage.waittime = 3;
|
|
level.regulargamemessages = spawnstruct();
|
|
level.regulargamemessages.waittime = 6;
|
|
level.wagersettings = spawnstruct();
|
|
level.wagersettings.waittime = 3;
|
|
level.momentumnotifywaittime = 0;
|
|
level.momentumnotifywaitlasttime = 0;
|
|
level.teammessagequeuemax = 8;
|
|
precachestring(&"KILLSTREAK_DESTROYED_UAV");
|
|
precachestring(&"KILLSTREAK_DESTROYED_COUNTERUAV");
|
|
precachestring(&"KILLSTREAK_DESTROYED_REMOTE_MORTAR");
|
|
precachestring(&"KILLSTREAK_MP40_INBOUND");
|
|
precachestring(&"KILLSTREAK_M220_TOW_INBOUND");
|
|
precachestring(&"KILLSTREAK_MINIGUN_INBOUND");
|
|
precachestring(&"KILLSTREAK_M202_FLASH_INBOUND");
|
|
precachestring(&"KILLSTREAK_M32_INBOUND");
|
|
precachestring(&"MP_CAPTURED_THE_FLAG");
|
|
precachestring(&"MP_KILLED_FLAG_CARRIER");
|
|
precachestring(&"MP_FRIENDLY_FLAG_DROPPED");
|
|
precachestring(&"MP_ENEMY_FLAG_DROPPED");
|
|
precachestring(&"MP_FRIENDLY_FLAG_RETURNED");
|
|
precachestring(&"MP_ENEMY_FLAG_RETURNED");
|
|
precachestring(&"MP_FRIENDLY_FLAG_TAKEN");
|
|
precachestring(&"MP_ENEMY_FLAG_TAKEN");
|
|
precachestring(&"MP_ENEMY_FLAG_CAPTURED");
|
|
precachestring(&"MP_FRIENDLY_FLAG_CAPTURED");
|
|
precachestring(&"MP_EXPLOSIVES_BLOWUP_BY");
|
|
precachestring(&"MP_EXPLOSIVES_DEFUSED_BY");
|
|
precachestring(&"MP_EXPLOSIVES_PLANTED_BY");
|
|
precachestring(&"MP_HQ_DESTROYED_BY");
|
|
precachestring(&"KILLSTREAK_DESTROYED_HELICOPTER");
|
|
/#
|
|
level thread popupsfromconsole();
|
|
#/
|
|
level thread onplayerconnect();
|
|
}
|
|
|
|
//Function Number: 2
|
|
popupsfromconsole()
|
|
{
|
|
/#
|
|
while(1)
|
|
{
|
|
timeout = getdvarintdefault("scr_popuptime",1);
|
|
if(timeout == 0)
|
|
{
|
|
timeout = 1;
|
|
}
|
|
|
|
wait(timeout);
|
|
medal = getdvarintdefault("scr_popupmedal",0);
|
|
challenge = getdvarintdefault("scr_popupchallenge",0);
|
|
rank = getdvarintdefault("scr_popuprank",0);
|
|
gun = getdvarintdefault("scr_popupgun",0);
|
|
contractpass = getdvarintdefault("scr_popupcontractpass",0);
|
|
contractfail = getdvarintdefault("scr_popupcontractfail",0);
|
|
gamemodemsg = getdvarintdefault("scr_gamemodeslideout",0);
|
|
teammsg = getdvarintdefault("scr_teamslideout",0);
|
|
challengeindex = getdvarintdefault("scr_challengeIndex",1);
|
|
for(i = 0;i < medal;i++)
|
|
{
|
|
level.players[0] maps/mp/_medals::codecallback_medal(4);
|
|
}
|
|
|
|
for(i = 0;i < challenge;i++)
|
|
{
|
|
level.players[0] maps/mp/gametypes/_persistence::codecallback_challengecomplete(2500,1,84,3,0,0,851);
|
|
level.players[0] maps/mp/gametypes/_persistence::codecallback_challengecomplete(500,1,22,2,0,0,533);
|
|
}
|
|
|
|
for(i = 0;i < rank;i++)
|
|
{
|
|
level.players[0] maps/mp/gametypes/_rank::codecallback_rankup(4,0,0);
|
|
}
|
|
|
|
for(i = 0;i < gun;i++)
|
|
{
|
|
level.players[0] maps/mp/gametypes/_persistence::codecallback_gunchallengecomplete(0,20,25,0);
|
|
}
|
|
|
|
for(i = 0;i < contractpass;i++)
|
|
{
|
|
level.players[0] maps/mp/gametypes/_persistence::addcontracttoqueue(12,1);
|
|
}
|
|
|
|
for(i = 0;i < contractfail;i++)
|
|
{
|
|
level.players[0] maps/mp/gametypes/_persistence::addcontracttoqueue(12,0);
|
|
}
|
|
|
|
for(i = 0;i < teammsg;i++)
|
|
{
|
|
player = level.players[0];
|
|
if(IsDefined(level.players[1]))
|
|
{
|
|
player = level.players[1];
|
|
}
|
|
|
|
level.players[0] displayteammessagetoall(&"KILLSTREAK_DESTROYED_HELICOPTER",player);
|
|
}
|
|
|
|
reset = getdvarintdefault("scr_popupreset",1);
|
|
if(reset)
|
|
{
|
|
if(medal)
|
|
{
|
|
setdvar("scr_popupmedal",0);
|
|
}
|
|
|
|
if(challenge)
|
|
{
|
|
setdvar("scr_popupchallenge",0);
|
|
}
|
|
|
|
if(gun)
|
|
{
|
|
setdvar("scr_popupgun",0);
|
|
}
|
|
|
|
if(rank)
|
|
{
|
|
setdvar("scr_popuprank",0);
|
|
}
|
|
|
|
if(contractpass)
|
|
{
|
|
setdvar("scr_popupcontractpass",0);
|
|
}
|
|
|
|
if(contractfail)
|
|
{
|
|
setdvar("scr_popupcontractfail",0);
|
|
}
|
|
|
|
if(gamemodemsg)
|
|
{
|
|
setdvar("scr_gamemodeslideout",0);
|
|
}
|
|
|
|
if(teammsg)
|
|
{
|
|
setdvar("scr_teamslideout",0);
|
|
}
|
|
}
|
|
}
|
|
#/
|
|
}
|
|
|
|
//Function Number: 3
|
|
displaykillstreakteammessagetoall(killstreak,player)
|
|
{
|
|
if(!(IsDefined(level.killstreaks[killstreak])))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!(IsDefined(level.killstreaks[killstreak].inboundtext)))
|
|
{
|
|
return;
|
|
}
|
|
|
|
message = level.killstreaks[killstreak].inboundtext;
|
|
self displayteammessagetoall(message,player);
|
|
}
|
|
|
|
//Function Number: 4
|
|
shoulddisplayteammessages()
|
|
{
|
|
if(level.hardcoremode == 1 || level.splitscreen == 1)
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
displayteammessagetoall(message,player)
|
|
{
|
|
if(!(shoulddisplayteammessages()))
|
|
{
|
|
return;
|
|
}
|
|
|
|
for(i = 0;i < level.players.size;i++)
|
|
{
|
|
cur_player = level.players[i];
|
|
if(cur_player isempjammed())
|
|
{
|
|
}
|
|
else
|
|
{
|
|
size = cur_player.teammessagequeue.size;
|
|
if(size >= level.teammessagequeuemax)
|
|
{
|
|
}
|
|
else
|
|
{
|
|
cur_player.teammessagequeue[size] = spawnstruct();
|
|
cur_player.teammessagequeue[size].message = message;
|
|
cur_player.teammessagequeue[size].player = player;
|
|
cur_player notify("received teammessage");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
displayteammessagetoteam(message,player,team)
|
|
{
|
|
if(!(shoulddisplayteammessages()))
|
|
{
|
|
return;
|
|
}
|
|
|
|
for(i = 0;i < level.players.size;i++)
|
|
{
|
|
cur_player = level.players[i];
|
|
if(cur_player.team != team)
|
|
{
|
|
}
|
|
else if(cur_player isempjammed())
|
|
{
|
|
}
|
|
else
|
|
{
|
|
size = cur_player.teammessagequeue.size;
|
|
if(size >= level.teammessagequeuemax)
|
|
{
|
|
}
|
|
else
|
|
{
|
|
cur_player.teammessagequeue[size] = spawnstruct();
|
|
cur_player.teammessagequeue[size].message = message;
|
|
cur_player.teammessagequeue[size].player = player;
|
|
cur_player notify("received teammessage");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 7
|
|
displayteammessagewaiter()
|
|
{
|
|
if(!(shoulddisplayteammessages()))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
self.teammessagequeue = [];
|
|
for(;;)
|
|
{
|
|
if(self.teammessagequeue.size == 0)
|
|
{
|
|
self waittill("received teammessage");
|
|
}
|
|
|
|
if(self.teammessagequeue.size > 0)
|
|
{
|
|
nextnotifydata = self.teammessagequeue[0];
|
|
arrayremoveindex(self.teammessagequeue,0,0);
|
|
if(!IsDefined(nextnotifydata.player) || !isplayer(nextnotifydata.player))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(self isempjammed())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
self luinotifyevent(&"player_callout",2,nextnotifydata.message,nextnotifydata.player.entnum);
|
|
}
|
|
|
|
wait(level.teammessage.waittime);
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
displaypopupswaiter()
|
|
{
|
|
self endon("disconnect");
|
|
self.ranknotifyqueue = [];
|
|
if(!(IsDefined(self.pers["challengeNotifyQueue"])))
|
|
{
|
|
self.pers["challengeNotifyQueue"] = [];
|
|
}
|
|
|
|
if(!(IsDefined(self.pers["contractNotifyQueue"])))
|
|
{
|
|
self.pers["contractNotifyQueue"] = [];
|
|
}
|
|
|
|
self.messagenotifyqueue = [];
|
|
self.startmessagenotifyqueue = [];
|
|
self.wagernotifyqueue = [];
|
|
while(!(level.gameended))
|
|
{
|
|
if(self.startmessagenotifyqueue.size == 0 && self.messagenotifyqueue.size == 0)
|
|
{
|
|
self waittill("received award");
|
|
}
|
|
|
|
waittillframeend;
|
|
if(level.gameended)
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(self.startmessagenotifyqueue.size > 0)
|
|
{
|
|
nextnotifydata = self.startmessagenotifyqueue[0];
|
|
arrayremoveindex(self.startmessagenotifyqueue,0,0);
|
|
if(IsDefined(nextnotifydata.duration))
|
|
{
|
|
duration = nextnotifydata.duration;
|
|
}
|
|
else
|
|
{
|
|
duration = level.startmessagedefaultduration;
|
|
}
|
|
|
|
self maps/mp/gametypes/_hud_message::shownotifymessage(nextnotifydata,duration);
|
|
wait(duration);
|
|
continue;
|
|
}
|
|
|
|
if(self.messagenotifyqueue.size > 0)
|
|
{
|
|
nextnotifydata = self.messagenotifyqueue[0];
|
|
arrayremoveindex(self.messagenotifyqueue,0,0);
|
|
if(IsDefined(nextnotifydata.duration))
|
|
{
|
|
duration = nextnotifydata.duration;
|
|
}
|
|
else
|
|
{
|
|
duration = level.regulargamemessages.waittime;
|
|
}
|
|
|
|
self maps/mp/gametypes/_hud_message::shownotifymessage(nextnotifydata,duration);
|
|
continue;
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
onplayerconnect()
|
|
{
|
|
for(;;)
|
|
{
|
|
level waittill("connecting",player);
|
|
player.resetgameoverhudrequired = 0;
|
|
player thread displaypopupswaiter();
|
|
if(!(level.hardcoremode))
|
|
{
|
|
player thread displayteammessagewaiter();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
milestonenotify(index,itemindex,type,tier)
|
|
{
|
|
level.globalchallenges++;
|
|
if(!(IsDefined(type)))
|
|
{
|
|
type = "global";
|
|
}
|
|
|
|
size = self.pers["challengeNotifyQueue"].size;
|
|
self.pers["challengeNotifyQueue"][size] = [];
|
|
self.pers["challengeNotifyQueue"][size]["tier"] = tier;
|
|
self.pers["challengeNotifyQueue"][size]["index"] = index;
|
|
self.pers["challengeNotifyQueue"][size]["itemIndex"] = itemindex;
|
|
self.pers["challengeNotifyQueue"][size]["type"] = type;
|
|
self notify("received award");
|
|
} |