PDA

Просмотр полной версии : [Вопрос] Оптимизация данного кода.



kala4iks
22.02.2017, 14:13
Всем добрый день скажите пожалуйста можно ли как то оптимизировать данный код?
Заранее спасибо.


if(IsPlayerInRangeOfPoint(playerid,0.8,290.3806,1581.8920,1089.7699)) // Вход в хранилище банка для ограбления
{
new string[132];
if(Player[playerid][pRobTime] == 0)
{
if(GetPVarInt(playerid,"pLevel") == 0)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Грабить банк можно только с 1 уровня.");
if(GetPlayerVirtualWorld(playerid) == 1)
{
ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
Player[playerid][pWanted] += 5;
if(Player[playerid][pWanted] > 6)Player[playerid][pWanted] = 6;
SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
f(string, "Игрок %s[%d] совершил преступление(Проникновение в хранилище) стукач: Аноним.",sendername(playerid),playerid);
SendTeamM(1, COLOR_LIGHTRED, string);
SendTeamM(2, COLOR_LIGHTRED, string);
f(string,"Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище ЛС. Стукач: Аноним.",GetPlayerWantedLevel(playerid));
send(playerid,0xFFFF00AA,string);
return 1;
}
if(GetPlayerVirtualWorld(playerid) == 2)
{
ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
Player[playerid][pWanted] += 5;
if(Player[playerid][pWanted] > 6)Player[playerid][pWanted] = 6;
SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
f(string, "Игрок %s[%d] совершил преступление(Проникновение в хранилище) стукач: Аноним.",sendername(playerid),playerid);
SendTeamM(1, COLOR_LIGHTRED, string);
SendTeamM(2, COLOR_LIGHTRED, string);
f(string,"Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище СФ. Стукач: Аноним.",GetPlayerWantedLevel(playerid));
send(playerid,0xFFFF00AA,string);
return 1;
}
if(GetPlayerVirtualWorld(playerid) == 3)
{
ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
Player[playerid][pWanted] += 5;
if(Player[playerid][pWanted] > 6)Player[playerid][pWanted] = 6;
SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
f(string, "Игрок %s[%d] совершил преступление(Проникновение в хранилище) стукач: Аноним.",sendername(playerid),playerid);
SendTeamM(1, COLOR_LIGHTRED, string);
SendTeamM(2, COLOR_LIGHTRED, string);
f(string,"Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище ЛВ. Стукач: Аноним.",GetPlayerWantedLevel(playerid));
send(playerid,0xFFFF00AA,string);
return 1;
}
}
else f(string,"Ты недавно грабил банк, попробуй через %s.",ConvertSeconds(Player[playerid][pRobTime])),send(playerid,COLOR_RED,string);
}

Alpano
22.02.2017, 14:19
if(IsPlayerInRangeOfPoint(playerid,0.8,290.3806,1581.8920,1089.7699)) // Вход в хранилище банка для ограбления
{
new string[132],pWorld = GetPlayerVirtualWorld(playerid);
if(!Player[playerid][pRobTime] && 0 < pWorld < 4)
{
if(GetPVarInt(playerid,"pLevel") == 0)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Грабить банк можно только с 1 уровня.");
ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
Player[playerid][pWanted] += 5;
if(Player[playerid][pWanted] > 6) Player[playerid][pWanted] = 6;
SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
f(string, "Игрок %s[%d] совершил преступление(Проникновение в хранилище) стукач: Аноним.",sendername(playerid),playerid);
SendTeamM(1, COLOR_LIGHTRED, string);
SendTeamM(2, COLOR_LIGHTRED, string);
f(string,"Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище %s. Стукач: Аноним.",GetPlayerWantedLevel(playerid),(pWorld == 1)?("ЛС"):((pWorld == 2)?("СФ"):("ЛВ"));
send(playerid,0xFFFF00AA,string);
return 1;
}
else f(string,"Ты недавно грабил банк, попробуй через %s.",ConvertSeconds(Player[playerid][pRobTime])),send(playerid,COLOR_RED,string);
}
Ну, как-то так.

kala4iks
22.02.2017, 14:48
if(IsPlayerInRangeOfPoint(playerid,0.8,290.3806,1581.8920,1089.7699)) // Вход в хранилище банка для ограбления
{
new string[132],pWorld = GetPlayerVirtualWorld(playerid);
if(!Player[playerid][pRobTime] && 0 < pWorld < 4)
{
if(GetPVarInt(playerid,"pLevel") == 0)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Грабить банк можно только с 1 уровня.");
ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
Player[playerid][pWanted] += 5;
if(Player[playerid][pWanted] > 6) Player[playerid][pWanted] = 6;
SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
f(string, "Игрок %s[%d] совершил преступление(Проникновение в хранилище) стукач: Аноним.",sendername(playerid),playerid);
SendTeamM(1, COLOR_LIGHTRED, string);
SendTeamM(2, COLOR_LIGHTRED, string);
f(string,"Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище %s. Стукач: Аноним.",GetPlayerWantedLevel(playerid),(pWorld == 1)?("ЛС"):((pWorld == 2)?("СФ"):("ЛВ"));
send(playerid,0xFFFF00AA,string);
return 1;
}
else f(string,"Ты недавно грабил банк, попробуй через %s.",ConvertSeconds(Player[playerid][pRobTime])),send(playerid,COLOR_RED,string);
}
Ну, как-то так.

Спасибо за помощь.

- - - Добавлено - - -

И еще если такой код заменить на такой тоже лучше будет?



if(IsPlayerInRangeOfPoint(playerid,0.8,290.3806,1581.8920,1089.7699)) // Вход в хранилище банка для ограбления
{
new string[132],pWorld = GetPlayerVirtualWorld(playerid);
if(!Player[playerid][pRobTime] && 0 < pWorld < 4)
{
if(GetPVarInt(playerid,"pLevel") == 0)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Грабить банк можно только с 1 уровня.");
ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
Player[playerid][pWanted] += 5;
if(Player[playerid][pWanted] > 6) Player[playerid][pWanted] = 6;
SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
f(string, "Игрок %s[%d] совершил преступление(Проникновение в хранилище) стукач: Аноним.",sendername(playerid),playerid);
SendTeamM(1, COLOR_LIGHTRED, string);
SendTeamM(2, COLOR_LIGHTRED, string);
f(string,"Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище %s. Стукач: Аноним.",GetPlayerWantedLevel(playerid),(pWorld == 1)?("ЛС"):((pWorld == 2)?("СФ"):("ЛВ"));
send(playerid,0xFFFF00AA,string);
return 1;
}
else f(string,"Ты недавно грабил банк, попробуй через %s.",ConvertSeconds(Player[playerid][pRobTime])),send(playerid,COLOR_RED,string);
}



if(IsPlayerInRangeOfPoint(playerid,0.8,290.3806,1581.8920,1089.7699)) // Вход в хранилище банка для ограбления
{
if(!Player[playerid][pRobTime])
{
if(GetPVarInt(playerid,"pLevel") == 0)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Грабить банк можно только с 1 уровня.");
new World = GetPlayerVirtualWorld(playerid);
ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
Player[playerid][pWanted] += 5;
if(Player[playerid][pWanted] > 6)Player[playerid][pWanted] = 6;
SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
static const kop[] = "%s[%d] %s преступление (Проникновение в хранилище %s). Стукач: Аноним.";
new str[sizeof(kop)+MAX_PLAYER_NAME+3+2+2-8];
format(str,sizeof(str),kop,sendername(playerid),playerid,(World == 1)?("ЛС"):((World == 2)?("СФ"):("ЛВ")),GetPVarInt(playerid,"Sex") == 1 ? ("совршил") : ("совершила"));
SendTeamM(1,COLOR_LIGHTRED,str);
SendTeamM(2,COLOR_LIGHTRED,str);
static const pronik[] = "Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище %s. Стукач: Аноним.";
new bank[sizeof(pronik)+2+2-4];
format(bank,sizeof(bank),pronik,GetPlayerWantedLevel(playerid),(World == 1)?("ЛС"):((World == 2)?("СФ"):("ЛВ")));
send(playerid,0xFFFF00AA,bank);
return 1;
}
else
{
static const cherez[] = "[ОШИБКА] {FFFFFF}Вы уже грабили банк, попробуйте через %s.";
new potom[sizeof(cherez)+2-2];
format(potom,sizeof(potom),cherez,ConvertSeconds(Player[playerid][pRobTime]));
send(playerid,COLOR_RED,potom);
}
}

Alpano
22.02.2017, 17:20
...new potom[sizeof(cherez)+2-2]...
http://risovach.ru/upload/2015/11/mem/mavrodi_98682080_orig_.jpg

Ставь то, что тебе кажется лучше.
Лучшая оптимизация - это хорошо читаемый, логичный код

kala4iks
22.02.2017, 18:06
http://risovach.ru/upload/2015/11/mem/mavrodi_98682080_orig_.jpg

Ставь то, что тебе кажется лучше.
Лучшая оптимизация - это хорошо читаемый, логичный код

Я там уже подправил забыл посчитать просто.