コード例 #1
0
ファイル: GameView.cpp プロジェクト: Daivuk/ggj16
void GameView::UpdateMonsterSpawning()
{
    if (GetTimeOfDay() != TimeOfDay::Night) return;

    float spawnRate = GetMonsterSpawnRate();
    m_monsterSpawnTime -= ODT;
    if (m_monsterSpawnTime <= 0.f)
    {
        m_monsterSpawnTime = spawnRate;
        SpawnMonster();
    }
}
コード例 #2
0
ファイル: GameMaster.cpp プロジェクト: CarlosX/DarkEmu
void GameSocket::OnSpawnMonster() 
{
	unsigned int id = Reader.ReadDWord();
	
	/* Temporary: */
	_Position* x = new _Position;
	x->XSector = Player.Position.XSector;
	x->YSector = Player.Position.YSector;
	x->X = Player.Position.X + 5;
	x->Y = Player.Position.Y + 5;
	x->Z = Player.Position.Z;

	SpawnMonster(x, id);

	delete x;
	//printf(" primera \n");
}
コード例 #3
0
ファイル: MonsterEvents.cpp プロジェクト: osROSE/osrose
// called when a enemy is on sight 
bool CMonster::OnEnemyOnSight( CPlayer* Enemy )
{
    clock_t etime = clock() - lastSighCheck;
    if(etime<5000) return true;
    if(!IsOnBattle( ))
    {
        if(thisnpc->aggresive>1)
        {
            UINT aggro = GServer->RandNumber(2,15);
            if(thisnpc->aggresive>=aggro && !IsGhostSeed( ))
            {
                Enemy->ClearObject( this->clientid );
				SpawnMonster(Enemy, this );
                StartAction( (CCharacter*) Enemy, NORMAL_ATTACK, 0 );
            }
            else
            if(IsGhostSeed( ) || thisnpc->aggresive>5)
                MoveTo( Enemy->Position->current, true );
        }
        lastSighCheck = clock();
    }
    return true;    
}