gewr0798
Ученик
Дело в том что когда обычный игрок пользуется этими пикапом то его кикает анти-чит) Как добавить в античит чтобы не кикало за ити пикапы?
PHP:
#include <a_samp>
#define MAX_PICKUP 100
enum picInfo
{
pCreated,
Float:pOnex,
Float:pOney,
Float:pOnez,
pOneInt,
pOneVirt,
Float:pTwox,
Float:pTwoy,
Float:pTwoz,
pTwoInt,
pTwoVirt
}
new PicInfo[MAX_PICKUP][picInfo];
public OnPlayerCommandText(playerid, cmdtext[])
{
new idx;
new cmd[256];
cmd = strtok(cmdtext, idx);
if(strcmp(cmd,"/createend",true) == 0)
{
if(GetPVarInt(playerid,"CreateVhod") == 1)
{
new Float:TwoX,Float:TwoY,Float:TwoZ;
GetPlayerPos(playerid, TwoX, TwoY, TwoZ);
new i;
for( ; i < MAX_PICKUP; i ++)
{
if(PicInfo[i][pCreated] == 1)
{
PicInfo[i][pCreated] = 2;
PicInfo[i][pTwox] = TwoX;
PicInfo[i][pTwoy] = TwoY;
PicInfo[i][pTwoz] = TwoZ;
PicInfo[i][pTwoInt] = GetPlayerInterior(playerid);
PicInfo[i][pTwoVirt] = GetPlayerVirtualWorld(playerid);
SendClientMessage(playerid,0xFFFF00FF,"Создание пикапа завершено");
SavePickup();
break;
}
}
if( ( i + 1 ) == MAX_PICKUP )
{
SendClientMessage(playerid,0xAFAFAFFF,"Создание пикапа прошло неудачно т.к их уже "#MAX_PICKUP#"");
}
SetPVarInt(playerid, "CreateVhod", 0);
}
}
if(strcmp(cmd,"/createvhod",true) == 0)
{
if(IsPlayerAdmin(playerid))
{
new Float:crX,Float:crY,Float:crZ;
GetPlayerPos(playerid, crX, crY, crZ);
new i;
for( ; i < MAX_PICKUP; i ++)
{
if(!PicInfo[i][pCreated])
{
PicInfo[i][pCreated] = 1;
PicInfo[i][pOnex] = crX;
PicInfo[i][pOney] = crY;
PicInfo[i][pOnez] = crZ;
PicInfo[i][pOneInt] = GetPlayerInterior(playerid);
PicInfo[i][pOneVirt] = GetPlayerVirtualWorld(playerid);
SendClientMessage(playerid, 0xFFFF00FF, "Встаньте к выходу и наберите {FF0000}/createend");
SetPVarInt(playerid, "CreateVhod", 1);
break;
}
}
if( ( i + 1 ) == MAX_PICKUP )
{
SendClientMessage(playerid,0xAFAFAFFF,"Создание пикапа прошло неудачно т.к их уже "#MAX_PICKUP#"");
}
return 1;
}
}
return 0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_SUBMISSION)
{
for(new b; b < MAX_PICKUP; b ++)
{
if(PicInfo[b][pCreated] != 2) continue;
if(IsPlayerInRangeOfPoint(playerid, 2.0, PicInfo[b][pOnex],PicInfo[b][pOney],PicInfo[b][pOnez]))
{
SetPlayerPos(playerid,PicInfo[b][pTwox],PicInfo[b][pTwoy],PicInfo[b][pTwoz]);
SetPlayerInterior(playerid,PicInfo[b][pTwoInt]);
}
else
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, PicInfo[b][pTwox],PicInfo[b][pTwoy],PicInfo[b][pTwoz]))
{
SetPlayerPos(playerid,PicInfo[b][pOnex],PicInfo[b][pOney],PicInfo[b][pOnez]);
SetPlayerInterior(playerid,PicInfo[b][pOneInt]);
}
}
}
}
return true;
}
forward LoadPickup();
public LoadPickup()
{
new arrCoords[11][64];
new strFromFile2[256];
new File: file = fopen("Pickups.cfg", io_read);
if (file)
{
for (new i; i < MAX_PICKUP; i ++)
{
fread(file, strFromFile2);
if(!strlen(strFromFile2)) return true;
split(strFromFile2, arrCoords, ',');
PicInfo[i][pCreated] = strval(arrCoords[0]);
PicInfo[i][pOnex] = floatstr(arrCoords[1]);
PicInfo[i][pOney] = floatstr(arrCoords[2]);
PicInfo[i][pOnez] = floatstr(arrCoords[3]);
PicInfo[i][pOneInt] = strval(arrCoords[4]);
PicInfo[i][pOneVirt] = strval(arrCoords[5]);
PicInfo[i][pTwox] = floatstr(arrCoords[6]);
PicInfo[i][pTwoy] = floatstr(arrCoords[7]);
PicInfo[i][pTwoz] = floatstr(arrCoords[8]);
PicInfo[i][pTwoInt] = strval(arrCoords[9]);
PicInfo[i][pTwoVirt] = strval(arrCoords[10]);
AddStaticPickup(1559, 23, PicInfo[i][pOnex],PicInfo[i][pOney],PicInfo[i][pOnez],PicInfo[i][pOneVirt]);
AddStaticPickup(1559, 23, PicInfo[i][pTwox],PicInfo[i][pTwoy],PicInfo[i][pTwoz],PicInfo[i][pTwoVirt]);
printf("1 пикап: %f, %f, %f, В мире: %d Создан",PicInfo[i][pOnex],PicInfo[i][pOney],PicInfo[i][pOnez],PicInfo[i][pOneVirt]);
printf("2 пикап: %f, %f, %f, В мире: %d Создан",PicInfo[i][pTwox],PicInfo[i][pTwoy],PicInfo[i][pTwoz],PicInfo[i][pTwoVirt]);
}
fclose(file);
}
return 1;
}
stock SavePickup()
{
new File: file2;
for (new i; i < MAX_PICKUP; i ++)
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%d, %f, %f, %f, %d, %d, %f, %f, %f, %d, %d\n",
PicInfo[i][pCreated],
PicInfo[i][pOnex],
PicInfo[i][pOney],
PicInfo[i][pOnez],
PicInfo[i][pOneInt],
PicInfo[i][pOneVirt],
PicInfo[i][pTwox],
PicInfo[i][pTwoy],
PicInfo[i][pTwoz],
PicInfo[i][pTwoVirt],
PicInfo[i][pTwoInt]);
if(i == 0)
{
file2 = fopen("Pickups.cfg", io_write);
}
else
{
file2 = fopen("Pickups.cfg", io_append);
}
fwrite(file2, coordsstring);
fclose(file2);
}
return 1;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
{
result[index - offset] = string[index];
index++;
}
forward split(const strsrc[], strdest[][], delimiter);
public split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc)){
if(strsrc[i]==delimiter || i==strlen(strsrc)){
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
;
}
i++;
}
return 1;
}
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Последнее редактирование:
