По скрытию маркера на карте
#9

Quote:
Originally Posted by SoNikMells
Посмотреть сообщение
Это что?


PHP код:
public OnPlayerStreamIn(playeridforplayerid
{
    
Iter_Add(players_streamed[forplayerid], playerid); 
    if(!
_start_tdm_game) return true// Значение устанавливается
    
if(!check_registration_tdm[playerid] || !check_registration_tdm[forplayerid]) return true;
    if(
my_commands[playerid] == my_commands[forplayerid])
    {
        
SetPlayerMarkerForPlayer(playeridforplayerid, (GetPlayerColor(forplayerid) & 0xFFFFFFFF));
        
SetPlayerMarkerForPlayer(forplayeridplayerid, (GetPlayerColor(playerid) & 0xFFFFFFFF));
    }
    else
    {
        
SetPlayerMarkerForPlayer(playeridforplayerid, (GetPlayerColor(forplayerid) & 0xFFFFFF00));
        
SetPlayerMarkerForPlayer(forplayeridplayerid, (GetPlayerColor(playerid) & 0xFFFFFF00));
    }
    return 
true

Для корректной работы прежде нужно установить цвет игрокам каждой команды:
SetPlayerColor(playerid, ... );


Далее:
Если в OnGameModeInit установлена, либо отсутствует функция
PHP код:
ShowPlayerMarkers(PLAYER_MARKERS_MODE_GLOBAL
следует использовать CallBack, чтоб при выходе из зоны прорисовки маркеры так же скрывались
PHP код:
public OnPlayerStreamOut(playeridforplayerid
{
    
Iter_Add(players_streamed[forplayerid], playerid); 
    if(!
_start_tdm_game) return true// Значение устанавливается
    
if(!check_registration_tdm[playerid] || !check_registration_tdm[forplayerid]) return true;
    if(
my_commands[playerid] == my_commands[forplayerid])
    {
        
SetPlayerMarkerForPlayer(playeridforplayerid, (GetPlayerColor(forplayerid) & 0xFFFFFFFF));
        
SetPlayerMarkerForPlayer(forplayeridplayerid, (GetPlayerColor(playerid) & 0xFFFFFFFF));
    }
    else
    {
        
SetPlayerMarkerForPlayer(playeridforplayerid, (GetPlayerColor(forplayerid) & 0xFFFFFF00));
        
SetPlayerMarkerForPlayer(forplayeridplayerid, (GetPlayerColor(playerid) & 0xFFFFFF00));
    }
    return 
true

Не забываем ознакомиться с ShowPlayerMarkers
.
Quote:
Originally Posted by SoNikMells
Посмотреть сообщение
После телепорта всех на координаты
PHP код:
for(new i!= MAX_PLAYERSi++)
{
    if(!
check_registration_tdm[i]) continue;
    for(new 
p!= MAX_PLAYERSp++)
    {
        if(
== || !check_registration_tdm[p]) continue;
        if(
my_commands[i] == my_commands[p]) 
        { 
            
SetPlayerMarkerForPlayer(ip, (GetPlayerColor(p) & 0xFFFFFFFF)); 
            
SetPlayerMarkerForPlayer(pi, (GetPlayerColor(i) & 0xFFFFFFFF)); 
            continue;
        }
        
SetPlayerMarkerForPlayer(ip, (GetPlayerColor(p) & 0xFFFFFF00)); 
        
SetPlayerMarkerForPlayer(pi, (GetPlayerColor(i) & 0xFFFFFF00)); 
    }

После телепорта выделенного игрока
PHP код:
for(new i!= MAX_PLAYERSi++)
{
    if(
== playerid || !check_registration_tdm[i]) continue; // playerid = ID нашего игрока
    
if(my_commands[i] == my_commands[playerid]) 
    { 
        
SetPlayerMarkerForPlayer(iplayerid, (GetPlayerColor(playerid) & 0xFFFFFFFF)); 
        
SetPlayerMarkerForPlayer(playeridi, (GetPlayerColor(i) & 0xFFFFFFFF)); 
        continue;
    }
    
SetPlayerMarkerForPlayer(iplayerid, (GetPlayerColor(playerid) & 0xFFFFFF00)); 
    
SetPlayerMarkerForPlayer(playeridi, (GetPlayerColor(i) & 0xFFFFFF00)); 

Там уже есть цикл, зачем 2 цикл?

Объясните мне дураку
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)