コード例 #1
0
void PlayerJoinEvent::Execute(vector<PlayerThread*>& rvPlayers,PlayerPool* pPlayerPool) {
    if (rvPlayers.empty()) {
        return;
    }

    //Write join message to chat
    pPlayerPool->sendMessageToAll( _pSourcePlayer->getUsername() + " joined game" );
    EntityPlayer NewPlayer(_pSourcePlayer);

    for (int x=0; x<=rvPlayers.size()-1; x++) {
        if (!(rvPlayers[x]->isAssigned() && rvPlayers[x]->isSpawned())) {
            continue;   /* Not spawned */
        }
        if (rvPlayers[x] == _pSourcePlayer) {
            continue;   /* dont spawn yourself to yourself */
        }

        rvPlayers[x]->PlayerInfoList(true,_pSourcePlayer->getUsername()); /* spawn name to playerlist */

        if (MathHelper::distance2D(rvPlayers[x]->getCoordinates(),_pSourcePlayer->getCoordinates()) > 100.0) {
            continue;   /* You're too distant */
        }
        rvPlayers[x]->spawnEntity(&NewPlayer); /* Spawn entity */

        /* Spawn other players to new player */
        EntityPlayer otherPlayer(rvPlayers[x]);
        _pSourcePlayer->spawnEntity(&otherPlayer);
    }
}
コード例 #2
0
ファイル: main.c プロジェクト: Exawyll/RPG_project_v2.0
//Starting story after new game
void startNewGame()
{
    system("cls");

    printf("Here start a great adventure.\n\n");
    Sleep(2000);
    printf("...Hello young Hero\n\n");
    Sleep(1000);
    printf("you have been sent by gods to help us\n\n");
    Sleep(1000);
    printf("all our caves are now full of evil creatures\n\n");
    Sleep(1000);
    printf("they infested our cities and take all our needs\n\n");
    Sleep(1000);
    printf("we don't have anything left and our sons and wifes\n\n");
    Sleep(1000);
    printf("need food and drugs to survive\n\n");
    Sleep(1000);
    printf("you are our only hope\n\n");
    Sleep(1000);
    printf("so tell me more about you...\n\n");
    Sleep(3000);

    Player *Hero = NewPlayer();

    displayMainMenu(Hero);
}
コード例 #3
0
ファイル: SPAnalyst.cpp プロジェクト: pl4/CryGame
void CSPAnalyst::ProcessPlayerEvent(IEntity *pEntity, const GameplayEvent &event)
{
    assert(pEntity != 0);
    const EntityId entityId = pEntity->GetId();

    switch(event.event)
    {
    case eGE_Connected:
    {
        NewPlayer(pEntity);
        const float t = gEnv->pTimer->GetCurrTime();
        // CryLogAlways("[CSPAnalyst]: Connected at %f", t);
    }
    break;

    case eGE_Kill:
        if(PlayerAnalysis *pA = GetPlayer(entityId))
            ++pA->kills;

        break;

    case eGE_Death:
        if(PlayerAnalysis *pA = GetPlayer(entityId))
            ++pA->deaths;

    default:
        break;
    }
}
コード例 #4
0
ファイル: game.cpp プロジェクト: klimoqu/Arawn
Game::Game(uchar playersnumber,int bombtimeout,ArawnSettings *settings,bool survive)
{
	activegame=false;
	this->cup=0;
	this->survive=survive;
	this->settings=settings;
	this->playersnumber=playersnumber;
	this->bombtimeout=bombtimeout;
	this->playerid=0;
	gametimer=new QTimer(this);
	destroymap=new QTimer(this);
	map=new Map(playersnumber,settings);
	map->Upload(1);
	clientconnection=0;
	serverconnection=new Servernet();
	serverconnection->SetSurviveCup(survive);
	serverconnection->SetPlayerNumber(playersnumber);
	serverconnection->SetLocalPlayername(settings->defaultPlayer1Name);
	connect(map,SIGNAL(ServerCommand(Command)),this,SIGNAL(ServerValidate(Command)));
	connect(this,SIGNAL(ClientValidate(Command)),this,SLOT(ClientExecute(Command)));
	connect(this,SIGNAL(ServerValidate(Command)),serverconnection,SLOT(SendCommandToClients(Command)));
	connect(this,SIGNAL(ServerValidate(Command)),this,SLOT(ServerExecute(Command)));
	connect(serverconnection,SIGNAL(CommandReceivedFromClients(Command)),this,SLOT(ClientExecute(Command)));
	connect(serverconnection,SIGNAL(ServerIsRunning()),this,SIGNAL(ServerIsRunning()));
	connect(serverconnection,SIGNAL(NewPlayerConnected()),this,SIGNAL(NewPlayer()));
	connect(serverconnection,SIGNAL(ServerNetworkError()),this,SIGNAL(ConnectionFailed()));
	connect(serverconnection,SIGNAL(AllPlayersConnected()),this,SLOT(AllReady()));
	connect(this,SIGNAL(FieldDestroyedByMap(uchar,uchar)),map,SIGNAL(FieldDestroyed(uchar,uchar)));
	connect(serverconnection,SIGNAL(PlayerDisconnected()),this,SIGNAL(Disconnected()));
}
コード例 #5
0
int main(int argc, char **argv)
{
    StreamPlayer *player;
    int i;

    /* Print out usage if no file was specified */
    if(argc < 2)
    {
        fprintf(stderr, "Usage: %s <filenames...>\n", argv[0]);
        return 1;
    }

    if(InitAL() != 0)
        return 1;

    if(alIsExtensionPresent("AL_SOFT_buffer_samples"))
    {
        printf("AL_SOFT_buffer_samples supported!\n");
        alBufferSamplesSOFT = alGetProcAddress("alBufferSamplesSOFT");
        alIsBufferFormatSupportedSOFT = alGetProcAddress("alIsBufferFormatSupportedSOFT");
    }
    else
        printf("AL_SOFT_buffer_samples not supported\n");

    player = NewPlayer();

    /* Play each file listed on the command line */
    for(i = 1;i < argc;i++)
    {
        if(!OpenPlayerFile(player, argv[i]))
            continue;

        printf("Playing %s (%s, %s, %dhz)\n", argv[i],
               TypeName(player->type), ChannelsName(player->channels),
               player->rate);
        fflush(stdout);

        if(!StartPlayer(player))
        {
            ClosePlayerFile(player);
            continue;
        }

        while(UpdatePlayer(player))
            Sleep(10);

        /* All done with this file. Close it and go to the next */
        ClosePlayerFile(player);
    }
    printf("Done.\n");

    /* All files done. Delete the player, and close OpenAL */
    DeletePlayer(player);
    player = NULL;

    CloseAL();

    return 0;
}
コード例 #6
0
ファイル: WorldSession.cpp プロジェクト: benny5609/tra_test
/// WorldSession constructor
WorldSession::WorldSession(uint32 id, WorldSocket *sock) :
	_player(NULL), m_Socket(sock),_accountId(id),m_playerLoading(false),m_playerLogout(false)
{
    if (sock)
    {
        m_Address = sock->GetRemoteAddress ();
        sock->AddReference ();
    }

	NewPlayer();
}
コード例 #7
0
ファイル: trackDlg.cpp プロジェクト: AntonioModer/xray-16
void CTrackDlg::ReportStats(DWORD time)
{
	char response[33];

	NewGame(1);
	BucketStringOp(NULL, "hostname", bo_set, (char *)(LPCSTR)m_loginDlg.m_nick, bl_server, 0);
	BucketIntOp(NULL, "event", bo_set, m_event, bl_server, 0);

	NewPlayer(NULL, 0, (char *)(LPCSTR)m_loginDlg.m_nick);
	BucketIntOp(NULL, "time", bo_set, time, bl_player, 0);
	BucketIntOp(NULL, "pid", bo_set, m_loginDlg.m_profile, bl_player, 0);
	GenerateAuth(GetChallenge(NULL), (char *)(LPCSTR)m_loginDlg.m_password, response);
	BucketStringOp(NULL, "auth", bo_set, response, bl_player, 0);

	SendGameSnapShot(NULL, NULL, SNAP_FINAL);
	FreeGame(NULL);
}
コード例 #8
0
ファイル: main.c プロジェクト: maschaff/The-Scott-Adventures
int main(int argc, char *argv[]){
  initscr();
  cbreak();
  keypad(stdscr, TRUE);
  noecho();
  curs_set(0);
  start_color();
  refresh();

  player *Scott = NewPlayer(SCOTT, "Scott", 1);

  start();


  levelOne(Scott);
  endwin();

  return 0;
}
コード例 #9
0
ファイル: GameStats.cpp プロジェクト: amrhead/eaascode
void CGameStats::OnGameplayEvent(IEntity *pEntity, const GameplayEvent &event)
{
/*	for(int i=0;i<gEventNamesNum;++i)
	{
		if(gEventNames[i].key == event.event)
		{
			CryLog("GameStats : Event %s",gEventNames[i].name);
		}
	}*/

	int e_id = pEntity ? (int) pEntity->GetId() : 0;
	switch(event.event)
	{
	case eGE_GameStarted:
		StartGame(event.value!=0);
		break;
	case eGE_GameEnd:
		EndGame(event.value!=0);
		break;
	case eGE_SuddenDeath:
		SuddenDeath(event.value!=0);
		break;
	case eGE_RoundEnd:
		EndRound(event.value!=0, atoi(event.description));
		break;
	case eGE_Renamed:
		SetName(e_id, event.description);
		break;
	case eGE_Scored:
		SetScore(e_id, event.description, (int)event.value);
		break;
	case eGE_Kill:
		OnKill(e_id, (EntityId*)event.extra);
		if(pEntity)
			ProcessPlayerStat(pEntity,event);
		break;
	case eGE_Death:
		OnDeath(e_id, (int)(TRUNCATE_PTR)event.extra);
		if(pEntity)
			ProcessPlayerStat(pEntity,event);
		break;
  case eGE_WeaponShot:
	case eGE_WeaponHit:
	case eGE_SuitModeChanged:
	case eGE_WeaponMelee:
	case eGE_LeftVehicle:
	case eGE_EnteredVehicle:
	case eGE_ItemSelected:
	case eGE_WeaponReload:
	case eGE_Damage:
	case eGE_Revive:
	case eGE_WeaponFireModeChanged:
	case eGE_ZoomedIn:
	case eGE_ZoomedOut:
		if(pEntity)
			ProcessPlayerStat(pEntity,event);
		break;
	case eGE_Connected:
		{
			bool restored = event.value!=0.0f;

			struct SExtraData
			{
					int status[2];
			};

			SExtraData* pExtra = static_cast<SExtraData*>(event.extra);
			NewPlayer(e_id, pExtra->status[0], pExtra->status[1]!=0, restored);
		}
		break;
  case eGE_ChangedTeam:
    SetTeam(e_id,(int)event.value);
    break;
  case eGE_Spectator:
    SetSpectator(e_id,(int)event.value);
		if(pEntity)
			ProcessPlayerStat(pEntity,event);
    break;
	case eGE_Disconnected:
		RemovePlayer(e_id, event.value!=0);
		break;
	case eGE_ScoreReset:
		ResetScore(e_id);
		break;
  case eGE_Rank:
    SetRank(e_id,(int)event.value);
    break;
	case eGE_GameReset:
		GameReset();
		break;
	default:
		break;
	}
}
コード例 #10
0
ファイル: PlayerManager.cpp プロジェクト: mobinsheng/RPG_01
void PlayerManager::Init()
{
	NewPlayer(Game()->GetConfig()->GetRandomID());
}
コード例 #11
0
ファイル: PlayerManager.cpp プロジェクト: mastrayer/CSM
void CPlayerManager::SetMyPlayerId(int id)
{
	mMyPlayerId = id;
	mMyPlayer = NewPlayer(id);	
}