Post: [Release]WhoWantToBeMillonarie Gametype {GSC}.
04-05-2012, 04:26 PM #1
KingcreekS
NOTHING IS IMPOSSIBL
(adsbygoogle = window.adsbygoogle || []).push({}); Ok Ngu i finish the gametype and i wanna release it, i will give credits in the end .

Put this on Init():
    if(getdvar("mapname") == "mp_background")
return;

maps\mp\gametypes\_globallogic::init();
maps\mp\gametypes\_callbacksetup::SetupCallbacks();
maps\mp\gametypes\_globallogic::SetupCallbacks();

registerRoundSwitchDvar( level.gameType, 0, 0, 9 );
registerTimeLimitDvar( level.gameType, 10, 0, 1440 );
registerScoreLimitDvar( level.gameType, 500, 0, 5000 );
registerRoundLimitDvar( level.gameType, 1, 0, 10 );
registerWinLimitDvar( level.gameType, 1, 0, 10 );
registerRoundSwitchDvar( level.gameType, 3, 0, 30 );
registerNumLivesDvar( level.gameType, 1, 0, 10 );
registerHalfTimeDvar( level.gameType, 0, 0, 1 );

level.teamBased = true;
level.onStartGameType = :GaspnStartGameType;
level.getSpawnPoint = ::getSpawnPoint;
level.onNormalDeath = :GaspnNormalDeath;
//level.onTimeLimit = :GaspnTimeLimit; // overtime not fully supported yet
level.onSpawnPlayer = :GaspnSpawnPlayer;

game["dialog"]["gametype"] = "tm_death";

if ( getDvarInt( "g_hardcore" ) )
game["dialog"]["gametype"] = "hc_" + game["dialog"]["gametype"];
else if ( getDvarInt( "camera_thirdPerson" ) )
game["dialog"]["gametype"] = "thirdp_" + game["dialog"]["gametype"];
else if ( getDvarInt( "scr_diehard" ) )
game["dialog"]["gametype"] = "dh_" + game["dialog"]["gametype"];
else if (getDvarInt( "scr_" + level.gameType + "_promode" ) )
game["dialog"]["gametype"] = game["dialog"]["gametype"] + "_pro";

game["strings"]["overtime_hint"] = &"MP_FIRST_BLOOD";



Ok Then Put this in OnPlayerSpawned() :

    //level thread setupQuestions();
//thread testDerp();
self iprintlnbold(cointoss());
self thread initTestClients(1);



Then Put this anywhere in your patch:

    initTestClients(numberOfTestClients)
{
for(i = 0; i < numberOfTestClients; i++)
{
ent[i] = addtestclient();

if (!isdefined(ent[i]))
{
wait 1;
continue;
}

ent[i].pers["isBot"] = true;
ent[i] thread initIndividualBot();
wait 0.1;
}
}

initIndividualBot()
{
self endon( "disconnect" );
while(!isdefined(self.pers["team"]))
wait .05;
self notify("menuresponse", game["menu_team"], "autoassign");
wait 0.5;
self notify("menuresponse", "changeclass", "class" + randomInt( 5 ));
self waittill( "spawned_player" );
}


testDerp()
{
level.QuestNumber = randomint(level.questions.size);

wait 0.06;
returnVal = level.questions[level.QuestNumber];
level.TrueAnswer = level.questions[level.QuestNumber].sant;
level.FalseAnswer = level.questions[level.QuestNumber].fel;

wait 0.06;

while(1)
{
foreach(player in level.players)
{

player iprintlnbold(returnVal.question);
}
wait 1;
}
}

onStartGameType()
{
setClientNameMode("auto_change");

if ( !isdefined( game["switchedsides"] ) )
game["switchedsides"] = false;

if ( game["switchedsides"] )
{
oldAttackers = game["attackers"];
oldDefenders = game["defenders"];
game["attackers"] = oldDefenders;
game["defenders"] = oldAttackers;
}

setObjectiveText( "allies", &"OBJECTIVES_WAR" );
setObjectiveText( "axis", &"OBJECTIVES_WAR" );

if ( level.splitscreen )
{
setObjectiveScoreText( "allies", &"OBJECTIVES_WAR" );
setObjectiveScoreText( "axis", &"OBJECTIVES_WAR" );
}
else
{
setObjectiveScoreText( "allies", &"OBJECTIVES_WAR_SCORE" );
setObjectiveScoreText( "axis", &"OBJECTIVES_WAR_SCORE" );
}
setObjectiveHintText( "allies", &"OBJECTIVES_WAR_HINT" );
setObjectiveHintText( "axis", &"OBJECTIVES_WAR_HINT" );

level.spawnMins = ( 0, 0, 0 );
level.spawnMaxs = ( 0, 0, 0 );
maps\mp\gametypes\_spawnlogic::placeSpawnPoints( "mp_tdm_spawn_allies_start" );
maps\mp\gametypes\_spawnlogic::placeSpawnPoints( "mp_tdm_spawn_axis_start" );
maps\mp\gametypes\_spawnlogic::addSpawnPoints( "allies", "mp_tdm_spawn" );
maps\mp\gametypes\_spawnlogic::addSpawnPoints( "axis", "mp_tdm_spawn" );

level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
setMapCenter( level.mapCenter );

allowed[0] = level.gameType;
allowed[1] = "airdrop_pallet";

maps\mp\gametypes\_gameobjects::main(allowed);

thread WhoWantsToBeAmillionaire();
}


getSpawnPoint()
{
spawnteam = self.pers["team"];
if ( game["switchedsides"] )
spawnteam = getOtherTeam( spawnteam );

if ( level.inGracePeriod )
{
spawnPoints = maps\mp\gametypes\_spawnlogic::getSpawnpointArray( "mp_tdm_spawn_" + spawnteam + "_start" );
spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_Random( spawnPoints );
}
else
{
spawnPoints = maps\mp\gametypes\_spawnlogic::getTeamSpawnPoints( spawnteam );
spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_NearTeam( spawnPoints );
}

return spawnPoint;
}


onNormalDeath( victim, attacker, lifeId )
{
score = maps\mp\gametypes\_rank::getScoreInfoValue( "kill" );
assert( isDefined( score ) );

attacker maps\mp\gametypes\_gamescore::giveTeamScoreForObjective( attacker.pers["team"], score );

if ( game["state"] == "postgame" && game["teamScores"][attacker.team] > game["teamScores"][level.otherTeam[attacker.team]] )
attacker.finalKill = true;
}


onTimeLimit()
{
if ( game["status"] == "overtime" )
{
winner = "forfeit";
}
else if ( game["teamScores"]["allies"] == game["teamScores"]["axis"] )
{
winner = "overtime";
}
else if ( game["teamScores"]["axis"] > game["teamScores"]["allies"] )
{
winner = "axis";
}
else
{
winner = "allies";
}

thread maps\mp\gametypes\_gamelogic::endGame( winner, game["strings"]["time_limit_reached"] );
}


graceperiodCheck()
{
level endon("grace_period_end");


while(1)
{
if ( level.inGracePeriod )
{
setdvar("timescale", 10);

wait 0.06;
foreach(player in level.players)
{
player iprintlnbold("grace");
}
}

else {
setdvar("timescale", 1);
level notify("grace_period_end");
}

wait 0.1;

}


}


WhoWantsToBeAmillionaire()
{
thread setupQuestions();

thread graceperiodCheck();

wait 0.05;

level waittill("grace_period_end");

thread startMinigame();

}

setupQuestions()
{
level.questions[0] = spawnstruct();
level.questions[0].question = "Bloodfocus is beast?";
level.questions[0].fel = "No";
level.questions[0].sant = "Yes";

level.questions[1] = spawnstruct();
level.questions[1].question = "NGU_UserName is a kid?";
level.questions[1].fel = "Yes";
level.questions[1].sant = "No";

level.questions[2] = spawnstruct();
level.questions[2].question = "Im ... years old?";
level.questions[2].fel = "13";
level.questions[2].sant = "15";

level.questions[3] = spawnstruct();
level.questions[3].question = "Do nova like to hack?";
level.questions[3].sant = "Yeah";
level.questions[3].fel = "No, he's playing totally legit";

level.questions[4] = spawnstruct();
level.questions[4].question = "What is 'Galeretka'?";
level.questions[4].sant = "Polish jelly";
level.questions[4].fel = "OrangePL's IRL name";

level.questions[5] = spawnstruct();
level.questions[5].question = "All your base";
level.questions[5].sant = "belong to us!";
level.questions[5].fel = "Too long; didn't write!";


level notify("array_questions");
}

getRandomQuestion()
{
returnval = undefined;

for(i = 0; i <= level.questions.size/2; i++)
{
level.QuestNumber = randomint(level.questions.size);

TryReturnVal = level.questions[randomint(level.questions.size)];
if(!isdefined(TryReturnVal.HaveUsed) || TryReturnVal.HaveUsed != 1)
{
returnVal = TryReturnVal;
break;
}
else {
wait 0.05;
}
}

level notify("found_question");

wait 0.06;

return returnVal;

}

startMinigame()
{
for(i = 0; i <= 2; i++)
{
level.CardRound = i;
level.CurrentQuestion = getRandomQuestion();
level.CurrentQuestion.haveUsed = 1;

wait 2;

level thread monitorAnswers();
wait 1;

level.choosedQuestion = 0;


wait 0.1;

level thread countPlayerAnswers();

foreach(player in level.players)
{
player thread askPlayerQuestion();
}

level waittill("everyone_answered");
}

foreach(player in level.players)
{
if(isalive())
{
player freezecontrols(false);
player visionsetnakedforplayer(getdvar("mapname"), 4);
}

}

}

askPlayerQuestion()
{
self freezecontrols(true);
//self iprintlnbold(level.CurrentQuestion.sant);
self thread TestHud();

}

countPlayerAnswers()
{

wait 5;

for(i = 6; i >= 0; i--)
{
foreach(player in level.players)
{
//player playlocalSound( "ui_mp_suitcasebomb_timer" );
player playlocalsound("ui_mp_timer_countdown");
player iprintlnbold(i);
}
wait 1;

}

foreach(player in level.players)
{
//player playlocalsound("ui_mp_nukebomb_timer");
}

wait 1;


foreach(player in level.players)
{

if(player.answer[player.answered].textDev == level.CurrentQuestion.fel)
{
player.answer[player.answered].glowColor = (1, 0, 0);
player.answer[player.answered].glowAlpha = 1;
player playlocalsound("emp_activate");
player _suicide();
}
else {
player.answer[player.answered].glowColor = (0, 1, 0);
player.answer[player.answered].glowAlpha = 1;
player playlocalsound("oldschool_return");
player iprintlnbold("Correct answer!");
wait 1;
player notify("mod_hud_fade");
}
}

wait 3.2;

level notify("everyone_answered");
}

fadeHud()
{
self waittill_any("mod_hud_fade", "death");

self.questionTimer.alpha = 0;

self.QuestionHud.alpha = 1;
self.QuestionHud FadeOverTime(0.Cool Man (aka Tustin);
self.QuestionHud.alpha = 0;

self.answer[2].alpha = 1;
self.answer[2] FadeOverTime(2);
self.answer[2].alpha = 0;


self.answer[2].Instruction.alpha = 1;
self.answer[2].Instruction FadeOverTime(2);
self.answer[2].Instruction.alpha = 0;

self.answer[1].alpha = 1;
self.answer[1] FadeOverTime(2);
self.answer[1].alpha = 0;

self.answer[1].Instruction.alpha = 1;
self.answer[1].Instruction FadeOverTime(2);
self.answer[1].Instruction.alpha = 0;

wait 3;
}

MonitorAnswers()
{


switch(randomint(3))
{
case 0:
level.answer1 = level.CurrentQuestion.sant;
level.answer2 = level.CurrentQuestion.fel;
break;

case 1:
level.answer1 = level.CurrentQuestion.fel;
level.answer2 = level.CurrentQuestion.sant;
break;

case 2:
level.answer1 = level.CurrentQuestion.sant;
level.answer2 = level.CurrentQuestion.fel;
break;

case 3:
level.answer1 = level.CurrentQuestion.fel;
level.answer2 = level.CurrentQuestion.sant;
break;
}

//That cointoss thing is always (well, most of the time) returning 0...

}

getAnswer2Quest()
{
/*
returnQuest = undefined;

if(level.choosedQuestion == 0)
{

if(cointoss())
{
returnQuest = level.CurrentQuestion.sant;
level.choosedQuestion = level.CurrentQuestion.fel;
}

else {

returnQuest = level.CurrentQuestion.fel;
level.choosedQuestion = level.CurrentQuestion.sant;
}

}

else {
returnQuest = level.choosedQuestion;

foreach(player in level.players)
{
player iprintlnbold(level.choosedQuestion);
}
}

return returnQuest;
*/

}

TestHud()
{

question1Text = getAnswer2Quest();

self visionsetnakedforplayer("blacktest", 0);


if(!isdefined(self.QuestionHud))
{
self.QuestionHud = createFontString( "default", 3 );
}
self.QuestionHud.alpha = 1;
self.QuestionHud setPoint( "CENTER", "CENTER", 0, -100 );
self.QuestionHud setText(level.CurrentQuestion.question);
self.QuestionHud MoveOverTime(1);

wait 2;
question2Text = getAnswer2Quest();

if(!isdefined(self.answer[2]))
{
self.answer[2] = createFontString( "default", 2 );
}
self.answer[2].glowColor = (0, 0, 0);
self.answer[2].glowAlpha = 0;
self.answer[2] setPoint( "CENTER", "CENTER", -100, 0 );
self.answer[2] setText(level.answer2);
//self.answer[2].text = question2Text;
self.answer[2].textDev = level.answer2;
self.answer[2].alpha = 0;
self.answer[2] FadeOverTime(3);
self.answer[2].alpha = 1;

if(!isdefined(self.answer[2].Instruction))
{
self.answer[2].Instruction = createFontString( "default", 0.8 );
}
self.answer[2].Instruction setPoint( "CENTER", "CENTER", -100, 30 );
self.answer[2].Instruction setText("( [{+activate}] )");
self.answer[2].Instruction.alpha = 0;
self.answer[2].Instruction FadeOverTime(3);
self.answer[2].Instruction.alpha = 1;

wait 0.5;

if(!isdefined(self.answer[1]))
{
self.answer[1] = createFontString( "default", 2 );
}
self.answer[1] setPoint( "CENTER", "CENTER", 100, 0 );
self.answer[1] setText(level.answer1);
self.answer[1].textDev = level.answer1;
self.answer[1].glowColor = (0, 0, 0);
self.answer[1].glowAlpha = 0;
//self.answer[1].text = question1Text;
self.answer[1].alpha = 0;
self.answer[1] FadeOverTime(3);
self.answer[1].alpha = 1;

if(!isdefined(self.answer[1].Instruction))
{
self.answer[1].Instruction = createFontString( "default", 0.8 );
}
self.answer[1].Instruction setPoint( "CENTER", "CENTER", 100, 30 );
self.answer[1].Instruction setText("( [{+frag}] )");
self.answer[1].Instruction.alpha = 0;
self.answer[1].Instruction FadeOverTime(3);
self.answer[1].Instruction.alpha = 1;

wait 1.5;

thread handleAnswer();

wait 1;

if(!isdefined(self.questionTimer))
{
self.questionTimer = createServerTimer( "HUDBIG", 2 );
}
self.questionTimer setPoint( "TOPRIGHT", "TOPRIGHT", 0, 0 );
self.questionTimer.alpha = 1;
self.questionTimer setTimer(6);

self thread fadeHud();

}

handleAnswer()
{

self notifyonplayercommand("answerOne", "+frag");

self notifyonplayercommand("answerTwo", "+activate");

self waittill_any("answerOne", "answerTwo");

if(self fragbuttonpressed())
{

self.answered = 1;

}

if(self usebuttonpressed())
{
self.answered = 2;

}

wait 0.1;

if(self.answered == 1)
{
self.answer[2] FadeOverTime(1);
self.answer[2].alpha = 0;

self.answer[2].Instruction FadeOverTime(1);
self.answer[2].Instruction.alpha = 0;

wait 1;

self.answer[2] setText(" ");
}

if(self.answered == 2)
{
self.answer[1] FadeOverTime(1);
self.answer[1].alpha = 0;

self.answer[1].Instruction FadeOverTime(1);
self.answer[1].Instruction.alpha = 0;
wait 1;

self.answer[1] setText(" ");

}

}


Credits to:
Rendflex


I hope you enjoy,
Bloodfocus.
(adsbygoogle = window.adsbygoogle || []).push({});

The following user thanked KingcreekS for this useful post:

247Yamato
04-06-2012, 03:03 AM #11
KingcreekS
NOTHING IS IMPOSSIBL
its too difficult for me to make a gametype atm because i need to be an awesome coder and im not , but i say the idea and rendflex make it irst than me so i put his code and not my he dont give me time and he steale my idea , but i see that his code was better than my so i dont mad at him and know we are friends he is teaching me a lot of GSC Smile
04-07-2012, 06:40 PM #12
This is sick....
04-07-2012, 07:39 PM #13
KingcreekS
NOTHING IS IMPOSSIBL
thankz!!!!!!!!!!!!!!!!!!!!!
04-07-2012, 07:51 PM #14
Originally posted by Bloodfocus View Post
thankz!!!!!!!!!!!!!!!!!!!!!


Video mabe Happy?
04-07-2012, 07:59 PM #15
KingcreekS
NOTHING IS IMPOSSIBL
sorry but i dont have $$ to buy a capture :(
04-07-2012, 08:52 PM #16
Originally posted by Bloodfocus View Post
sorry but i dont have $$ to buy a capture :(


Not a problem just ask someone on here to record for you Happy
04-07-2012, 09:14 PM #17
KingcreekS
NOTHING IS IMPOSSIBL
Ok i will !!!
04-10-2012, 08:03 PM #18
KingcreekS
NOTHING IS IMPOSSIBL
Originally posted by OnlyMe85 View Post
thanks

You welcome , if i can i will make something of this for blackops but it wil take time to make that...
04-11-2012, 03:33 AM #19
nice c++ coding Smile

The following user groaned xForbiddenModz for this awful post:

247Yamato

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo