Перейти к содержимому



Добро пожаловать на пользовательский форум CR-MP.RU
Зарегистрируйтесь или авторизуйтесь на нашем форуме, чтобы получить доступ ко всем функциям.
Если у Вас уже имеется аккаунт, нажмите, чтобы войти.
Если у Вас нет аккаунта на нашем форуме, нажмите, чтобы перейти к регистрации. Возникли проблемы с регистрацией ? Обратитесь на почту admin@cr-mp.ru с вашей проблемой.
Фотография

Spec menu

- - - - - Вопрос

Лучший Ответ Илья_Марков , 13 Январь 2018 - 07:43

vlad7388184, нет я говорю про песню на тексдраве. Примеру мышкой кликнул по slap играка слапает. Перейти к сообщению »


  • Закрытая тема Тема закрыта
Сообщений в теме: 3

#1
Илья_Марков

Житель


Репутация: 2

Здравствуйте, я хочу изменить spec панель но не нашел примеры. Можете предложить несколько?



#2
vlad7388184

Гражданин


Репутация: 0

Ты про команду /spec?


 К new'ам вставляете...

PHP код:
new Spectate[MAX_PLAYERS]; 
new 
Menu:specmenu
new 
Toogle[MAX_PLAYERS];

Spectate - Игрок за которым будем наблюдать.
specmenu - Менюшка действий над игроком, которая будет появлятся в правой стороне.
Toogle - Заморозка игрока (Freeze/UnFreeze).
Если у вас есть команда /re, то её заменяете, если нету то в public OnPlayerCommandText вставляете

PHP код:
if(strcmp(cmd"/spec"true) == 0
   { 
   if(
IsPlayerConnected(playerid)) 
          { 
           new 
specid
    
tmp strtok(cmdtextidx); 
    if(!
strlen(tmp)) return SendClientMessage(playeridCOLOR_WHITE"» {00a8ff}Используйте команду: {FFFFFF} /spec [PlayerID]"); 
    
specid ReturnUser(tmp); 
    if(
specid == playerid) return SendClientMessage(playeridCOLOR_GREY"[ERROR] - Вы указали свой PlayerID, наблюдение за самим собой не возможно"); 
    if(
PlayerInfo[specid][pAdmin] >= 6) return SendClientMessage(playerid,COLOR_GREY,"[ERROR] - Вы не можете наблюдать за администрацией сервера"); 
    if (
PlayerInfo[playerid][pAdmin] >= 1
    { 
         if(
IsPlayerConnected(specid)) 
         { 
          if(
GetPlayerState(specid) == PLAYER_STATE_SPECTATING && gSpectateID[specid] != INVALID_PLAYER_ID
          { 
           
GetPlayerName(gSpectateID[specid], sendernamesizeof(sendername)); 
                  
format(stringsizeof(string), "[Adm] Этот игрок наблюдает за {00a8ff}%s{ffffff} [PlayerID: {00a8ff}%d{ffffff}]"sendername,gSpectateID[specid]); 
                  
SendClientMessage(playeridCOLOR_BLUEstring); 
                  return 
1
          } 
          if(
GetPlayerState(specid) != && GetPlayerState(specid) != && GetPlayerState(specid) != 3) return SendClientMessage(playeridCOLOR_GREY" Ea?ie ia anooiee a ea?o!"); 
          
StartSpectate(playeridspecid); 
          
Spectate[playerid] = specid
          
ShowMenuForPlayer(specmenu,playerid); 
         } 
    } 
   } 
   return 
1
  }  

В public OnPlayerSelectedMenuRow вставляете

PHP код:
if(Current == specmenu
  { 
    new 
giveplayer[24],sendername[24],string[150]; 
    
GetPlayerName(Spectate[playerid], giveplayersizeof(giveplayer)); 
   
GetPlayerName(playeridsendernamesizeof(sendername)); 
    switch(
row
    { 
        case 
0
          { 
         
StartSpectate(playeridSpectate[playerid]); 
         
ShowMenuForPlayer(specmenu,playerid); 
            } 
            case 
1
            { 
                  new 
spechp Spectate[playerid]; 
                
AnRepairVehicle(GetPlayerVehicleID(playerid)); 
                
Fuell[GetPlayerVehicleID(spechp)] = 100
                  
format(stringsizeof(string), "Игрок %s получил hp в кол-ве: 100 от администратора %s",giveplayer ,sendername); 
                  
ABroadCast(COLOR_GREY,string,1); 
                
SetPlayerHealthAC(spechp100.0); 
                
SetPlayerHealthAC(spechp100.0); 
                
PlayerInfo[spechp][p HP] = 100
                   
ShowMenuForPlayer(specmenu,playerid); 
                } 
        case 
2
          { 
                  if(
Toogle[Spectate[playerid]] == 0
                  { 
          
TogglePlayerControllable(Spectate[playerid], 0); 
          
format(stringsizeof(string), "Игрок %s был заморожен администратором %s",giveplayer ,sendername); 
          
ABroadCast(COLOR_GREY,string,1); 
           
ShowMenuForPlayer(specmenu,playerid); 
           
Toogle[Spectate[playerid]] = 1
          } 
          else 
          { 
                 
TogglePlayerControllable(Spectate[playerid], 1); 
          
format(stringsizeof(string), "Игрок %s был разморожен администратором %s",giveplayer ,sendername); 
          
ABroadCast(COLOR_GREY,string,1); 
           
ShowMenuForPlayer(specmenu,playerid); 
           
Toogle[Spectate[playerid]] = 0
          } 
    } 
    case 
3
          { 
          
format(stringsizeof(string), "GMtest проведен на игроке %s администратором %s",giveplayersendername); 
         
ABroadCast(COLOR_GREY,string,1); 
         new 
Float:boomxFloat:boomyFloat:boomz
         
GetPlayerPos(Spectate[playerid],boomxboomyboomz); 
         
CreateExplosion(boomxboomy boomz52); 
         
ShowMenuForPlayer(specmenu,playerid); 
    } 
    case 
4
          { 
           new 
Float:shealth
         new 
Float:slxFloat:slyFloat:slz
         
GetPlayerHealth(Spectate[playerid], shealth); 
         
SetPlayerHealth(Spectate[playerid], shealth-5); 
         
GetPlayerPos(Spectate[playerid], slxslyslz); 
         
SetPlayerPos(Spectate[playerid], slxslyslz+5); 
         
PlayerPlaySound(Spectate[playerid], 1130slxslyslz+5); 
         
format(stringsizeof(string), "Игрок %s получил срач от администратора %s",giveplayer ,sendername); 
         
ABroadCast(COLOR_GREY,string,1); 
         
ShowMenuForPlayer(specmenu,playerid); 
    } 
    case 
5
    { 
                   new 
Float:slxFloat:slyFloat:slz
                   
GetPlayerName(Spectate[playerid], giveplayersizeof(giveplayer)); 
         
GetPlayerName(playeridsendernamesizeof(sendername)); 
         
SetPlayerHealth(Spectate[playerid], 130); 
         
GetVehiclePos(GetPlayerVehicleID(Spectate[playerid]), slxslyslz); 
         
SetVehiclePos(GetPlayerVehicleID(Spectate[playerid]), slxslyslz+100); 
         
PlayerPlaySound(Spectate[playerid], 1130slxslyslz+5); 
         
format(stringsizeof(string), "Транспорт игрока %s проверен администратором %s",giveplayer ,sendername); 
         
ABroadCast(COLOR_GREY,string,1); 
         
ShowMenuForPlayer(specmenu,playerid); 
    } 
    case 
6
         { 
         new 
playersip[150]; 
         
GetPlayerIp(Spectate[playerid],playersip,sizeof(playersip)); 
         new 
bablonarykah PlayerInfo[playerid][pCash]; 
         new 
bablovbanke PlayerInfo[playerid][pBank]; 
         
format(string,sizeof(string), "{ffffff} Nick - %s\n IP: %s\n Money: %d\n BankMoney: %d ",giveplayer,playersip,bablonarykah,bablovbanke);
         
ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"{bbbbbb}Информация о игроке",string,"Okay",""); 
         
ShowMenuForPlayer(specmenu,playerid); 
    } 
    case 
7
          { 
         
ShowStats(playerid,Spectate[playerid]); 
         
ShowMenuForPlayer(specmenu,playerid); 
    } 
    case 
8
          { 
          if (
PlayerInfo[playerid][pAdmin] >= 2
          { 
          
format(stringsizeof(string), "sKick - Игрок %s отсоеденен от сервера администратором %s",giveplayer ,sendername); 
         
ABroadCast(COLOR_GREY,string,1); 
           
Kick(Spectate[playerid]); 
           } 
            else 
            { 
               
SendClientMessage(playeridCOLOR_YELLOW"Функция доступна администраторам 2 ADM LEVEL и выше"); 
               
ShowMenuForPlayer(specmenu,playerid); 
                return 
1
            } 
        } 
    case 
9
 { 
          if (
PlayerInfo[playerid][pAdmin] >= 3
          { 
          new 
banplayer Spectate[playerid]; 
          
format(stringsizeof(string), "sBan - Игрок %s заблокирован на неопределенный срок администратором %s",giveplayer ,sendername); 
         
ABroadCast(COLOR_GREY,string,1); 
         
PlayerInfo[banplayer][pLocked] = 1
           
Kick(banplayer); 
           } 
            else 
            { 
               
SendClientMessage(playeridCOLOR_YELLOW"Функция доступна администраторам 3 ADM LEVEL и выше"); 
               
ShowMenuForPlayer(specmenu,playerid); 
                return 
1
            } 
        } 
    case 
10
    { 
         
StopSpectate(playerid); 
         
Spectate[playerid] = 255
         
PlayerPlaySound(playerid11450.00.00.0); 
    } 
   } 
  }  

Это действия меню.
Примечание: Найдите строку PlayerInfo[spechp][p HP] = 100; и замените её на PlayerInfo[spechp][pHP] = 100; так как форум распознает это как начало кода [ P H P ].
В public Menu() вставляете

PHP код:
  specmenu CreateMenu(" "1500.0150.0100.0 ); 
  
AddMenuItem(specmenu,0,"Update"); 
  
AddMenuItem(specmenu,0,"HP = 100"); 
  
AddMenuItem(specmenu,0,"Freeze"); 
  
AddMenuItem(specmenu,0,"GMtest"); 
  
AddMenuItem(specmenu,0,"Slap"); 
  
AddMenuItem(specmenu,0,"VehSlap"); 
  
AddMenuItem(specmenu,0,"Info"); 
  
AddMenuItem(specmenu,0,"Stats"); 
  
AddMenuItem(specmenu,0,"sKick"); 
  
AddMenuItem(specmenu,0,"sBan"); 
  
AddMenuItem(specmenu,0,"Spec Off"); 
  
DisableMenuRow(specmenu0);  

У вас должен быть stock StartSpectate и stock StopSpectate, если есть, то замените его, если нету то в public OnVehicleDamageStatusUpdate вставте

PHP код:
stock StartSpectate(playeridspecid

    for(new 
x=0x<GetMaxPlayers(); x++) 
    { 
        if(
GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] == playerid
        { 
           
AdvanceSpectate(x); 
        } 
    } 
    if(
IsPlayerInAnyVehicle(specid)) 
    { 
        
SetPlayerInterior(playerid,GetPlayerInterior(specid)); 
        
SetPlayerVirtualWorld(playeridGetPlayerVirtualWorld(specid)); 
        
TogglePlayerSpectating(playerid1); 
        
PlayerSpectateVehicle(playeridGetPlayerVehicleID(specid)); 
        
gSpectateID[playerid] = specid
        
gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE
    } 
    else 
    { 
        
SetPlayerInterior(playerid,GetPlayerInterior(specid)); 
        
SetPlayerVirtualWorld(playeridGetPlayerVirtualWorld(specid)); 
        
TogglePlayerSpectating(playerid1); 
        
PlayerSpectatePlayer(playeridspecid); 
        
gSpectateID[playerid] = specid
        
gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER
    } 
    new 
ping GetPlayerPing(specid); 
    new 
Float:health
    new 
Float:armour
    
GetPlayerHealth(specidhealth); 
    new 
string[100], name[24]; 
    
GetPlayerName(specid,name,sizeof(name)); 
    
SetTimer("SpectatorOb"10000); 
    
format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~NICK: %s - ID: %d~n~HP: %.0f - AP: %.1f - PING: %d"name,specid,health,armour,ping); 
    
GameTextForPlayer(playerid,string,10000,3); 
    return 
1

stock StopSpectate(playerid

    
TogglePlayerSpectating(playerid0); 
    
gSpectateID[playerid] = INVALID_PLAYER_ID
    
gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE
    
GameTextForPlayer(playerid,"~n~~n~~n~~n~~n~~n~~n~~n~~w~Spectator Mode Off",3000,3); 
    return 
1
}  

Держи,если это!



#3
Илья_Марков

Житель


Репутация: 2
✓  Лучший Ответ
vlad7388184, нет я говорю про песню на тексдраве. Примеру мышкой кликнул по slap играка слапает.

#4
Vestorn

Разработчик LORE ROLEPLAY


Репутация: 39
Илья_Марков,в самой команде вставляте функцию (парень сверху скинул) и привязываете к текстдраву





Темы с аналогичным тегами Вопрос

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных