Doker052
Умник
Всем привет пользователи P-I помогите мне оптимизоровать вот эту команду.
PHP:
COMMAND:t(playerid, params[])
{
new param[12],string[200], num;
sscanf(params, "s[12]d", param, num);
if(GetString(param,"lock"))
{
for(new c = 1; c < ADD_VEHICLES; c ++)
{
if(!IsACar(c)) continue;
new Float:X,Float:Y,Float:Z;
GetVehicleShiftPos(c,1,X,Y,Z,3.0);
if(IsPlayerInRangeOfPoint(playerid,3,X,Y,Z))
{
new Float:angle = GetPlayerAngleToPoint(playerid, X, Y);
if(angle >= -45 && angle <= 45)
{
if(!TrunkInfo[c][tOpen])
{
if(!IsAOwnableCar(c) || IsPlayerHaveCar(playerid,c))
{
TrunkInfo[c][tOpen] = 1;
SendClientMessage(playerid,-1,"Áàãàæíèê îòêðûò");
SetBootStatus(c,1);
}
else SendClientMessage(playerid,COLOR_GREY,"Ó âàñ íåò êëþ÷åé îò ýòîãî òðàíñïîðòà");
}
else
{
TrunkInfo[c][tOpen] = 0;
SendClientMessage(playerid,-1,"Áàãàæíèê çàêðûò");
SetBootStatus(c,0);
}
break;
}
}
}
}
else if(GetString(param,"info"))
{
for(new c = 1; c < ADD_VEHICLES; c ++)
{
if(!IsACar(c)) continue;
new Float:X,Float:Y,Float:Z;
GetVehicleShiftPos(c,1,X,Y,Z,3.0);
if(IsPlayerInRangeOfPoint(playerid,1,X,Y,Z))
{
new Float:angle = GetPlayerAngleToPoint(playerid, X, Y);
if(angle >= -45 && angle <= 45)
{
if(TrunkInfo[c][tOpen] == 1)
{
new str[500] = "{FFFFFF}";
for(new i;i < 10;i ++)
{
if(TrunkInfo[c][tGun][i] != 0)
{
format(string,sizeof(string),"Îðóæèå[%d]: %s | Ïàòðîíû: %d\n",i+1,GunName(TrunkInfo[c][tGun][i]),TrunkInfo[c][tAmmo][i]);
strcat(str,string);
}
}
format(string,sizeof(string),"Ìàòåðèàëû: %d\n",TrunkInfo[c][tMats]);
strcat(str,string);
format(string,sizeof(string),"Íàðêîòèêè: %dã\n",TrunkInfo[c][tDrugs]);
strcat(str,string);
format(string,sizeof(string),"Áðîíåæèëåòû: %døò\n",TrunkInfo[c][tArmours]);
strcat(str,string);
format(string,sizeof(string),"Èíãðèäèåíòû: %døò\n",TrunkInfo[c][tPackets]);
strcat(str,string);
ShowPlayerDialogEx(playerid,INVALID_DIALOG_ID,0,"Áàãàæíèê",str,"ÎÊ","");
}
else SendClientMessage(playerid,COLOR_GREY,"Áàãàæíèê çàêðûò.Îòêðîéòå åãî (( /t lock ))");
break;
}
}
}
}
else if(GetString(param,"putarmour"))
{
if(PI[playerid][pArmours])
{
for(new c = 1; c < ADD_VEHICLES; c ++)
{
if(!IsACar(c)) continue;
new Float:X,Float:Y,Float:Z;
GetVehicleShiftPos(c,1,X,Y,Z,3.0);
if(IsPlayerInRangeOfPoint(playerid,1,X,Y,Z))
{
new Float:angle = GetPlayerAngleToPoint(playerid, X, Y);
if(angle >= -45 && angle <= 45)
{
if(TrunkInfo[c][tOpen] == 1)
{
if(TrunkInfo[c][tArmours] < 5)
{
TrunkInfo[c][tArmours] ++;
PI[playerid][pArmours] --;
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Âû ïîëîæèëè áðîíåæèëåò â áàãàæíèê");
}
else SendClientMessage(playerid,COLOR_GREY,"Â áàãàæíèêå óæå ëåæèò 5 áðîíåæèëåòîâ");
}
else SendClientMessage(playerid,COLOR_GREY,"Áàãàæíèê çàêðûò. Îòêðîéòå åãî (( /t lock ))");
break;
}
}
}
}
else SendClientMessage(playerid,COLOR_GREY,"Ó âàñ íåò áðîíåæèëåòà");
}
else if(GetString(param,"takearmour"))
{
if(!PI[playerid][pArmours])
{
for(new c = 1; c < ADD_VEHICLES; c ++)
{
if(!IsACar(c)) continue;
new Float:X,Float:Y,Float:Z;
GetVehicleShiftPos(c,1,X,Y,Z,3.0);
if(IsPlayerInRangeOfPoint(playerid,1,X,Y,Z))
{
new Float:angle = GetPlayerAngleToPoint(playerid, X, Y);
if(angle >= -45 && angle <= 45)
{
if(TrunkInfo[c][tOpen] == 1)
{
if(TrunkInfo[c][tArmours] > 0)
{
TrunkInfo[c][tArmours] --;
PI[playerid][pArmours] ++;
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Âû äîñòàëè áðîíåæèëåò ñ áàãàæíèêà");
}
else SendClientMessage(playerid,COLOR_GREY,"Â áàãàæíèêå íåò áðîíåæèëåòîâ");
}
else SendClientMessage(playerid,COLOR_GREY,"Áàãàæíèê çàêðûò. Îòêðîéòå åãî (( /t lock ))");
break;
}
}
}
}
else SendClientMessage(playerid,COLOR_GREY,"Ó âàñ óæå åñòü áðîíåæèëåò");
}
else if(GetString(param,"putdrugs"))
{
if(num < 1) return SendClientMessage(playerid, COLOR_GREY, "Èñïîëüçóéòå: /t putdrugs [Êîë-âî]");
for(new c = 1; c < ADD_VEHICLES; c ++)
{
if(!IsACar(c)) continue;
new Float:X,Float:Y,Float:Z;
GetVehicleShiftPos(c,1,X,Y,Z,3.0);
if(IsPlayerInRangeOfPoint(playerid,1,X,Y,Z))
{
new Float:angle = GetPlayerAngleToPoint(playerid, X, Y);
if(angle >= -45 && angle <= 45)
{
if(TrunkInfo[c][tOpen])
{
if(num <= PI[playerid][pDrugs])
{
format(string,sizeof(string),"Âû ïîëîæèëè â áàãàæíèê %dã íàðêîòèêîâ",num);
SendClientMessage(playerid,COLOR_WHITE,string);
TrunkInfo[c][tDrugs] += num;
PI[playerid][pDrugs] -= num;
}
else SendClientMessage(playerid,COLOR_GREY,"Ó âàñ íåò ñòîëüêî íàðêîòèêîâ");
}
else SendClientMessage(playerid,COLOR_GREY,"Áàãàæíèê çàêðûò. Îòêðîéòå åãî (( /t lock ))");
break;
}
}
}
}
else if(GetString(param,"takedrugs"))
{
if(num < 1) return SendClientMessage(playerid, COLOR_GREY, "Èñïîëüçóéòå: /t takedrugs [Êîë-âî]");
for(new c = 1; c < ADD_VEHICLES; c ++)
{
if(!IsACar(c)) continue;
new Float:X,Float:Y,Float:Z;
GetVehicleShiftPos(c,1,X,Y,Z,3.0);
if(IsPlayerInRangeOfPoint(playerid,1,X,Y,Z))
{
new Float:angle = GetPlayerAngleToPoint(playerid, X, Y);
if(angle >= -45 && angle <= 45)
{
if(TrunkInfo[c][tOpen])
{
if(num <= TrunkInfo[c][tDrugs])
{
format(string,sizeof(string),"Âû äîñòàëè èç áàãàæíèêà %dã íàðêîòèêîâ",num);
SendClientMessage(playerid,COLOR_WHITE,string);
TrunkInfo[c][tDrugs] -= num;
PI[playerid][pDrugs] += num;
}
else SendClientMessage(playerid,COLOR_GREY,"Â áàãàæíèêå íåò ñòîëüêî íàðêîòèêîâ");
}
else SendClientMessage(playerid,COLOR_GREY,"Áàãàæíèê çàêðûò. Îòêðîéòå åãî (( /t lock ))");
break;
}
}
}
}
else if(GetString(param,"putmats"))
{
if(num < 1) return SendClientMessage(playerid, COLOR_GREY, "Èñïîëüçóéòå: /t putmats [Êîë-âî]");
for(new c = 1; c < ADD_VEHICLES; c ++)
{
if(!IsACar(c)) continue;
new Float:X,Float:Y,Float:Z;
GetVehicleShiftPos(c,1,X,Y,Z,3.0);
if(IsPlayerInRangeOfPoint(playerid,1,X,Y,Z))
{
new Float:angle = GetPlayerAngleToPoint(playerid, X, Y);
if(angle >= -45 && angle <= 45)
{
if(TrunkInfo[c][tOpen])
{
if(num <= PI[playerid][pMats])
{
format(string,sizeof(string),"Âû ïîëîæèëè â áàãàæíèê %d ìàòåðèàëîâ",num);
SendClientMessage(playerid,COLOR_WHITE,string);
TrunkInfo[c][tMats] += num;
PI[playerid][pMats] -= num;
}
else SendClientMessage(playerid,COLOR_GREY,"Ó âàñ íåò ñòîëüêî ìàòåðèàëîâ");
}
else SendClientMessage(playerid,COLOR_GREY,"Áàãàæíèê çàêðûò. Îòêðîéòå åãî (( /t lock ))");
break;
}
}
}
}
else if(GetString(param,"takemats"))
{
if(num < 1) return SendClientMessage(playerid, COLOR_GREY, "Èñïîëüçóéòå: /t takemats [Êîë-âî]");
for(new c = 1; c < ADD_VEHICLES; c ++)
{
if(!IsACar(c)) continue;
new Float:X,Float:Y,Float:Z;
GetVehicleShiftPos(c,1,X,Y,Z,3.0);
if(IsPlayerInRangeOfPoint(playerid,1,X,Y,Z))
{
new Float:angle = GetPlayerAngleToPoint(playerid, X, Y);
if(angle >= -45 && angle <= 45)
{
if(TrunkInfo[c][tOpen])
{
if(num <= TrunkInfo[c][tMats])
{
if(PI[playerid][pMats] + num > 2000) return SendClientMessage(playerid, COLOR_GREY, "Âû íå ñìîæåòå óíåñòè ñ ñîáîé áîëåå 2000 ìàòåðèàëîâ");
format(string,sizeof(string),"Âû äîñòàëè èç áàãàæíèêà %d ìàòåðèàëîâ",num);
SendClientMessage(playerid,COLOR_WHITE,string);
TrunkInfo[c][tMats] -= num;
PI[playerid][pMats] += num;
}
else SendClientMessage(playerid,COLOR_GREY,"Â áàãàæíèêå íåò ñòîëüêî ìàòåðèàëîâ");
}
else SendClientMessage(playerid,COLOR_GREY,"Áàãàæíèê çàêðûò. Îòêðîéòå åãî (( /t lock ))");
break;
}
}
}
}
else if(GetString(param,"puting"))
{
if(num < 1) return SendClientMessage(playerid, COLOR_GREY, "Èñïîëüçóéòå: /t puting [Êîë-âî]");
for(new c = 1; c < ADD_VEHICLES; c ++)
{
if(!IsACar(c)) continue;
new Float:X,Float:Y,Float:Z;
GetVehicleShiftPos(c,1,X,Y,Z,3.0);
if(IsPlayerInRangeOfPoint(playerid,1,X,Y,Z))
{
new Float:angle = GetPlayerAngleToPoint(playerid, X, Y);
if(angle >= -45 && angle <= 45)
{
if(TrunkInfo[c][tOpen])
{
if(num <= PI[playerid][pPackets])
{
format(string,sizeof(string),"Âû ïîëîæèëè â áàãàæíèê %d èíãðèäèåíòîâ",num);
SendClientMessage(playerid,COLOR_WHITE,string);
TrunkInfo[c][tPackets] += num;
PI[playerid][pPackets] -= num;
}
else SendClientMessage(playerid,COLOR_GREY,"Ó âàñ íåò ñòîëüêî èíãðèäèåíòîâ");
}
else SendClientMessage(playerid,COLOR_GREY,"Áàãàæíèê çàêðûò. Îòêðîéòå åãî (( /t lock ))");
break;
}
}
}
}
else if(GetString(param,"takeing"))
{
if(num < 1) return SendClientMessage(playerid, COLOR_GREY, "Èñïîëüçóéòå: /t takeing [Êîë-âî]");
for(new c = 1; c < ADD_VEHICLES; c ++)
{
if(!IsACar(c)) continue;
new Float:X,Float:Y,Float:Z;
GetVehicleShiftPos(c,1,X,Y,Z,3.0);
if(IsPlayerInRangeOfPoint(playerid,1,X,Y,Z))
{
new Float:angle = GetPlayerAngleToPoint(playerid, X, Y);
if(angle >= -45 && angle <= 45)
{
if(TrunkInfo[c][tOpen])
{
if(num <= TrunkInfo[c][tPackets])
{
if(PI[playerid][pPackets] + num > 30) return SendClientMessage(playerid, COLOR_GREY, "Âû íå ñìîæåòå óíåñòè ñ ñîáîé áîëåå 30 èíãðèäèåíòîâ");
format(string,sizeof(string),"Âû äîñòàëè èç áàãàæíèêà %d èíãðèäèåíòîâ",num);
SendClientMessage(playerid,COLOR_WHITE,string);
TrunkInfo[c][tPackets] -= num;
PI[playerid][pPackets] += num;
}
else SendClientMessage(playerid,COLOR_GREY,"Â áàãàæíèêå íåò ñòîëüêî èíãðèäèåíòîâ");
}
else SendClientMessage(playerid,COLOR_GREY,"Áàãàæíèê çàêðûò. Îòêðîéòå åãî (( /t lock ))");
break;
}
}
}
}
else ShowTrunkHelp(playerid, INVALID_DIALOG_ID);
return true;
}
