Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Пикап

Статус
В этой теме нельзя размещать новые ответы.

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;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу