Илья_Марков 3 Опубликовано 12 января, 2018 Здравствуйте, я хочу изменить spec панель но не нашел примеры. Можете предложить несколько? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DREZZ 45 Опубликовано 12 января, 2018 Ты про команду /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(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "» {00a8ff}Используйте команду: {FFFFFF} /spec [PlayerID]"); specid = ReturnUser(tmp); if(specid == playerid) return SendClientMessage(playerid, COLOR_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], sendername, sizeof(sendername)); format(string, sizeof(string), "[Adm] Этот игрок наблюдает за {00a8ff}%s{ffffff} [PlayerID: {00a8ff}%d{ffffff}]", sendername,gSpectateID[specid]); SendClientMessage(playerid, COLOR_BLUE, string); return 1; } if(GetPlayerState(specid) != 1 && GetPlayerState(specid) != 2 && GetPlayerState(specid) != 3) return SendClientMessage(playerid, COLOR_GREY, " Ea?ie ia anooiee a ea?o!"); StartSpectate(playerid, specid); Spectate[playerid] = specid; ShowMenuForPlayer(specmenu,playerid); } } } return 1; } В public OnPlayerSelectedMenuRow вставляете PHP код: if(Current == specmenu) { new giveplayer[24],sendername[24],string[150]; GetPlayerName(Spectate[playerid], giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); switch(row) { case 0: { StartSpectate(playerid, Spectate[playerid]); ShowMenuForPlayer(specmenu,playerid); } case 1: { new spechp = Spectate[playerid]; AnRepairVehicle(GetPlayerVehicleID(playerid)); Fuell[GetPlayerVehicleID(spechp)] = 100; format(string, sizeof(string), "Игрок %s получил hp в кол-ве: 100 от администратора %s",giveplayer ,sendername); ABroadCast(COLOR_GREY,string,1); SetPlayerHealthAC(spechp, 100.0); SetPlayerHealthAC(spechp, 100.0); PlayerInfo[spechp][p HP] = 100; ShowMenuForPlayer(specmenu,playerid); } case 2: { if(Toogle[Spectate[playerid]] == 0) { TogglePlayerControllable(Spectate[playerid], 0); format(string, sizeof(string), "Игрок %s был заморожен администратором %s",giveplayer ,sendername); ABroadCast(COLOR_GREY,string,1); ShowMenuForPlayer(specmenu,playerid); Toogle[Spectate[playerid]] = 1; } else { TogglePlayerControllable(Spectate[playerid], 1); format(string, sizeof(string), "Игрок %s был разморожен администратором %s",giveplayer ,sendername); ABroadCast(COLOR_GREY,string,1); ShowMenuForPlayer(specmenu,playerid); Toogle[Spectate[playerid]] = 0; } } case 3: { format(string, sizeof(string), "GMtest проведен на игроке %s администратором %s",giveplayer, sendername); ABroadCast(COLOR_GREY,string,1); new Float:boomx, Float:boomy, Float:boomz; GetPlayerPos(Spectate[playerid],boomx, boomy, boomz); CreateExplosion(boomx, boomy , boomz, 5, 2); ShowMenuForPlayer(specmenu,playerid); } case 4: { new Float:shealth; new Float:slx, Float:sly, Float:slz; GetPlayerHealth(Spectate[playerid], shealth); SetPlayerHealth(Spectate[playerid], shealth-5); GetPlayerPos(Spectate[playerid], slx, sly, slz); SetPlayerPos(Spectate[playerid], slx, sly, slz+5); PlayerPlaySound(Spectate[playerid], 1130, slx, sly, slz+5); format(string, sizeof(string), "Игрок %s получил срач от администратора %s",giveplayer ,sendername); ABroadCast(COLOR_GREY,string,1); ShowMenuForPlayer(specmenu,playerid); } case 5: { new Float:slx, Float:sly, Float:slz; GetPlayerName(Spectate[playerid], giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); SetPlayerHealth(Spectate[playerid], 130); GetVehiclePos(GetPlayerVehicleID(Spectate[playerid]), slx, sly, slz); SetVehiclePos(GetPlayerVehicleID(Spectate[playerid]), slx, sly, slz+100); PlayerPlaySound(Spectate[playerid], 1130, slx, sly, slz+5); format(string, sizeof(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(string, sizeof(string), "sKick - Игрок %s отсоеденен от сервера администратором %s",giveplayer ,sendername); ABroadCast(COLOR_GREY,string,1); Kick(Spectate[playerid]); } else { SendClientMessage(playerid, COLOR_YELLOW, "Функция доступна администраторам 2 ADM LEVEL и выше"); ShowMenuForPlayer(specmenu,playerid); return 1; } } case 9: { if (PlayerInfo[playerid][pAdmin] >= 3) { new banplayer = Spectate[playerid]; format(string, sizeof(string), "sBan - Игрок %s заблокирован на неопределенный срок администратором %s",giveplayer ,sendername); ABroadCast(COLOR_GREY,string,1); PlayerInfo[banplayer][pLocked] = 1; Kick(banplayer); } else { SendClientMessage(playerid, COLOR_YELLOW, "Функция доступна администраторам 3 ADM LEVEL и выше"); ShowMenuForPlayer(specmenu,playerid); return 1; } } case 10: { StopSpectate(playerid); Spectate[playerid] = 255; PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0); } } } Это действия меню.Примечание: Найдите строку PlayerInfo[spechp][p HP] = 100; и замените её на PlayerInfo[spechp] = 100; так как форум распознает это как начало кода [ P H P ].В public Menu() вставляете PHP код: specmenu = CreateMenu(" ", 1, 500.0, 150.0, 100.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(specmenu, 0); У вас должен быть stock StartSpectate и stock StopSpectate, если есть, то замените его, если нету то в public OnVehicleDamageStatusUpdate вставте PHP код: stock StartSpectate(playerid, specid) { for(new x=0; xGetMaxPlayers(); x++) { if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] == playerid) { AdvanceSpectate(x); } } if(IsPlayerInAnyVehicle(specid)) { SetPlayerInterior(playerid,GetPlayerInterior(specid)); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(specid)); TogglePlayerSpectating(playerid, 1); PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specid)); gSpectateID[playerid] = specid; gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE; } else { SetPlayerInterior(playerid,GetPlayerInterior(specid)); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(specid)); TogglePlayerSpectating(playerid, 1); PlayerSpectatePlayer(playerid, specid); gSpectateID[playerid] = specid; gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER; } new ping = GetPlayerPing(specid); new Float:health; new Float:armour; GetPlayerHealth(specid, health); new string[100], name[24]; GetPlayerName(specid,name,sizeof(name)); SetTimer("SpectatorOb", 1000, 0); 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(playerid, 0); 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 Опубликовано 13 января, 2018 , нет я говорю про песню на тексдраве. Примеру мышкой кликнул по slap играка слапает. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Eduard Vestornович 165 Опубликовано 13 января, 2018 @Илья_Марков,в самой команде вставляте функцию (парень сверху скинул) и привязываете к текстдраву Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты