Другое SAMPFUNCS | API C++

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,447
Их нужно составлять по примеру ввода.
 

FordeD

Участник
98
11
Их нужно составлять по примеру ввода.

/coord [Буква] [цифра]

C++:
void CALLBACK cmd_get_player_square(std::string param)
{
    char buf[128];
    std::string buk;
    int chisl;
    int bukn;
    int square;
    FLOAT FxPos;
    FLOAT FyPos;
    if (param.empty())
    {
        SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "[COORDINATOR]\t\tВы не указали квадрат поиска! (( /coord [Буква] [число] ))");
        return;
    }
    int    i = std::stoi(param);
    //sscanf(param.c_str(), "%d %d", &buk, &chisl);
    if (buk == "А") bukn = 1;
    if (buk == "Б") bukn = 2;
    if (buk == "В") bukn = 3;
    if (buk == "Г") bukn = 4;
    if (buk == "Д") bukn = 5;
    if (buk == "Ж") bukn = 6;
    if (buk == "З") bukn = 7;
    if (buk == "И") bukn = 8;
    if (buk == "К") bukn = 9;
    if (buk == "Л") bukn = 10;
    if (buk == "М") bukn = 11;
    if (buk == "Н") bukn = 12;
    if (buk == "О") bukn = 13;
    if (buk == "П") bukn = 14;
    if (buk == "Р") bukn = 15;
    if (buk == "С") bukn = 16;
    if (buk == "Т") bukn = 17;
    if (buk == "У") bukn = 18;
    if (buk == "Ф") bukn = 19;
    if (buk == "Х") bukn = 20;
    if (buk == "Ц") bukn = 21;
    if (buk == "Ч") bukn = 22;
    if (buk == "Ш") bukn = 23;
    if (buk == "Я") bukn = 24;

    switch (bukn)
    {
    case 1: FyPos = 200.0; break;
    case 2: FyPos = 400.0; break;
    case 3: FyPos = 600.0; break;
    case 4: FyPos = 800.0; break;
    case 5: FyPos = 1000.0; break;
    case 6: FyPos = 1200.0; break;
    case 7: FyPos = 1400.0; break;
    case 8: FyPos = 1600.0; break;
    case 9: FyPos = 1800.0; break;
    case 10: FyPos = 2000.0; break;
    case 11: FyPos = 2200.0; break;
    case 12: FyPos = 2400.0; break;
    case 13: FyPos = 2600.0; break;
    case 14: FyPos = 2800.0; break;
    case 15: FyPos = 3000.0; break;
    case 16: FyPos = 3200.0; break;
    case 17: FyPos = 3400.0; break;
    case 18: FyPos = 3600.0; break;
    case 19: FyPos = 3800.0; break;
    case 20: FyPos = 4000.0; break;
    case 21: FyPos = 4200.0; break;
    case 22: FyPos = 4400.0; break;
    case 23: FyPos = 4600.0; break;
    case 24: FyPos = 4800.0; break;
    default: FyPos = 0.0;
    }
    switch (chisl)
    {
    case 1: FxPos = 200.0; break;
    case 2: FxPos = 400.0; break;
    case 3: FxPos = 600.0; break;
    case 4: FxPos = 800.0; break;
    case 5: FxPos = 1000.0; break;
    case 6: FxPos = 1200.0; break;
    case 7: FxPos = 1400.0; break;
    case 8: FxPos = 1600.0; break;
    case 9: FxPos = 1800.0; break;
    case 10: FxPos = 2000.0; break;
    case 11: FxPos = 2200.0; break;
    case 12: FxPos = 2400.0; break;
    case 13: FxPos = 2600.0; break;
    case 14: FxPos = 2800.0; break;
    case 15: FxPos = 3000.0; break;
    case 16: FxPos = 3200.0; break;
    case 17: FxPos = 3400.0; break;
    case 18: FxPos = 3600.0; break;
    case 19: FxPos = 3800.0; break;
    case 20: FxPos = 4000.0; break;
    case 21: FxPos = 4200.0; break;
    case 22: FxPos = 4400.0; break;
    case 23: FxPos = 4600.0; break;
    case 24: FxPos = 4800.0; break;
    default: FxPos = 0.0;
    }

    if (FxPos != 0.0 || FyPos != 0.0)
    {
        SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "[COORDINATOR]\t\tКвадрат поиска [%d-%d] указан на вашем GPS", buk, chisl);
        CVector fPos = { FxPos, FyPos , 0.0 };
        GAME->Get3DMarkers()->CreateMarker(square, MARKER3D_TUBE, &fPos, 40.0, 1.0, 3, 52, 227, 255);
    }
    else
    {
        sprintf(buf, "[COORDINATOR]\t\tКвадрат поиска [%s-%d] не находится в базе", buk, chisl);
        SF->getSAMP()->getChat()->AddChatMessage(-1, buf);
    }
}
 

Tray228

Новичок
218
27
как называется рпц которые показывает от кого пришел дамаг и по кому я нанес
 

Dark_Knight

Me, me and me.
Друг
4,056
2,075
#include <regex> и почитай уроки по регуляркам. http://regexr.com довольно удобный сайт для тестирования регулярок. Так же советую по началу регулярки брать в try catch. По началу будешь часто ловить ошибки.
 

Gabriel__

Известный
Проверенный
411
181
Ребят сделал функцию которая делает задержку. И из-за нее игра жутко виснет.
Код:
void wait(unsigned int ms)
{
    unsigned int time = GetTickCount();
    time += ms;
    while (GetTickCount() < time)
    {

    }
}