Exemplo n.º 1
0
void Game::SetCup(Cup *cup)
{
	if(this->cup)delete this->cup;
	this->cup=cup;
	if(survive)
	{
		connect(this,SIGNAL(PlayerSurvived(uchar)),this->cup,SLOT(PlayerSurvive(uchar)));
	}
	else
	{
		connect(this,SIGNAL(PlayerDied(uchar,uchar)),this->cup,SLOT(PlayerDie(uchar,uchar)));
	}
	connect(cup,SIGNAL(PlayerPointChanged(uchar,int)),this,SLOT(ChangePlayerPoint(uchar,int)));
	connect(cup,SIGNAL(PlayerWonTheCup(uchar,QString)),this,SLOT(PlayerWinTheCup(uchar,QString)));
}
Exemplo n.º 2
0
/*
============
Killed
============
*/
void Killed (edict_t *targ, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
	if (targ->health < -999)
		targ->health = -999;

	targ->enemy = attacker;

	if ((targ->svflags & SVF_MONSTER) && (targ->deadflag != DEAD_DEAD))
	{
//		targ->svflags |= SVF_DEADMONSTER;	// now treat as a different content type
		if (!(targ->monsterinfo.aiflags & AI_GOOD_GUY))
		{
			level.killed_monsters++;
			if (coop->value && attacker->client)
				attacker->client->resp.score++;
			// medics won't heal monsters that they kill themselves
			if (strcmp(attacker->classname, "monster_medic") == 0)
				targ->owner = attacker;
		}
	}

	if (targ->movetype == MOVETYPE_PUSH || targ->movetype == MOVETYPE_STOP || targ->movetype == MOVETYPE_NONE)
	{	// doors, triggers, etc
		targ->die (targ, inflictor, attacker, damage, point);
		return;
	}

	if ((targ->svflags & SVF_MONSTER) && (targ->deadflag != DEAD_DEAD))
	{
		targ->touch = NULL;
		monster_death_use (targ);
	}

///Q2 Camera Begin
	PlayerDied(targ);
///Q2 Camera End

	targ->die (targ, inflictor, attacker, damage, point);
}
Exemplo n.º 3
0
void Game::clientsync(Command c)
{
	switch(c.GetMessageType())
	{
	case 0:
		{
			emit PlayerPointChanged(c.GetPlayerId(),c.GetMessage());
			break;
		}
	case 1://move
		{
			emit PlayerMoved(c.GetPlayerId(),c.GetMessage());
			break;
		}
	case 2://plant
		{
			emit BombPlanted((c.GetMessage()/256)%256,c.GetMessage()%256,c.GetPlayerId());
			break;
		}
	case 3://boom
		{
			if((c.GetMessage()/(256*256))%256==255)emit DeleteBomb((c.GetMessage()/256)%256,c.GetMessage()%256);
			emit FieldBlasted((c.GetMessage()/256)%256,c.GetMessage()%256,c.GetPlayerId(),(c.GetMessage()/(256*256))%256);
			break;
		}
	case 4://kioltas
		{
			emit FieldExcinted((c.GetMessage()/256)%256,c.GetMessage()%256);
			break;
		}
	case 5://die/blast
		{
			if(c.GetMessage()!=256){emit PlayerDied(c.GetPlayerId(),c.GetMessage());}
			else{emit PlayerBlasted(c.GetPlayerId());}
			break;
		}
	case 6://mezőváltozás
		{
			fields[(c.GetMessage()/256)%256][c.GetMessage()%256]=(c.GetMessage()/(256*256))%256;
			emit FieldChanged((c.GetMessage()/256)%256,c.GetMessage()%256,(c.GetMessage()/(256*256))%256);
			break;
		}
	case 7://bónuszok
		{
			switch(c.GetMessage()/(256*256*256))
			{
			case 1:
				emit BonusTurnVisible((c.GetMessage()/256)%256,c.GetMessage()%256,(c.GetMessage()/(256*256))%256);
				break;
			case 2:
				emit BonusTurnInvisible((c.GetMessage()/256)%256,c.GetMessage()%256,(c.GetMessage()/(256*256))%256);
				break;
			case 3:
				emit PlayerTurnVisible(c.GetPlayerId());
				break;
			case 4:
				emit PlayerTurnInvisible(c.GetPlayerId());
				break;
			default:
				break;
			}
			break;
		}
	case 248:
		{
			emit Disconnected();
		}
	case 249:
		{
			emit DeleteBomb((c.GetMessage()/256)%256,c.GetMessage()%256);
			break;
		}
	case 250://pályaszinkron
		{
			fields[(c.GetMessage()/256)%256][c.GetMessage()%256]=(c.GetMessage()/(256*256))%256;
			break;
		}
	case 251://játék kezdete
		{
			emit GameStarted(c.GetMessage());
			if(clientconnection && cup->GetPlayerName(1)=="")
			{
				for(uchar i=0;i<clientconnection->GetPlayers().size();i++)cup->AddPlayer(clientconnection->GetPlayers().at(i));
			}
			break;
		}
	case 252://játék vége
		{
			emit GameOver();
			break;
		}
	case 253://a győztes
		{
			switch(c.GetMessage())
			{
			case 0:
				emit PlayerWonTheCup(GetPlayers()[c.GetPlayerId()]);
				break;
			case 1:
				emit PlayerWonTheRound(GetPlayers()[c.GetPlayerId()]);
				if(map){destroymap->stop();QTimer::singleShot(2000,this,SLOT(StopTheGame()));}
				break;
			}
			break;
		}
	case 254://alaphelyzetbe állítás
		{
			emit SetPlayerStartPosition(c.GetPlayerId(),(c.GetMessage()/256)%256,c.GetMessage()%256);
			break;
		}
	case 255://azonosítás
		{
			playerid=c.GetPlayerId();
			survive=c.GetMessage()==0?true:false;
			break;
		}
	default:
		{
			break;
		}
	}
}