Другое С/С++ Вопрос - Ответ

Harryss

Участник
233
26
Существует ли список функций для SF? Как в случае с Lua, список опкодов переминованных под функции для SF.
 

jenekbueno

Известный
157
69
я перепробовал много вариантов, %MS в том числе не подходит, и пришёл к выводу что такого формата вообще не существует или он слишком мудрёный
 

-raymond-

Известный
110
9
sf api

выражение должно иметь тип класса

info->pedFlags.bIsStanding = true;
info->pedFlags.bWasStanding = true;
info->pedFlags.bStayInSamePlace = true;
C++:
void cheatActor_AIRBRK(actor_info *info)
{
    static float    orig_pos[3];

    float *matrix = info->base.matrix;

    if (!(info->weapon_slot == 11 && info->weapon[11].id == 46))
    {
        vect3_copy(orig_pos, &info->base.matrix[4 * 3]);
        vect3_zero(info->speed);

        info->pedFlags.bIsStanding = true;
        info->pedFlags.bWasStanding = true;
        info->pedFlags.bStayInSamePlace = true;
    }
}

void actorCheat()
{
    actor_info *info_actor = SF->getSAMP()->getPlayers()->pLocalPlayer->pSAMP_Actor->pGTA_Ped;
    cheatActor_AIRBRK(info_actor);
}
 

ALF

Известный
Проверенный
320
537
sf api

выражение должно иметь тип класса

info->pedFlags.bIsStanding = true;
info->pedFlags.bWasStanding = true;
info->pedFlags.bStayInSamePlace = true;
C++:
void cheatActor_AIRBRK(actor_info *info)
{
    static float    orig_pos[3];

    float *matrix = info->base.matrix;

    if (!(info->weapon_slot == 11 && info->weapon[11].id == 46))
    {
        vect3_copy(orig_pos, &info->base.matrix[4 * 3]);
        vect3_zero(info->speed);

        info->pedFlags.bIsStanding = true;
        info->pedFlags.bWasStanding = true;
        info->pedFlags.bStayInSamePlace = true;
    }
}

void actorCheat()
{
    actor_info *info_actor = SF->getSAMP()->getPlayers()->pLocalPlayer->pSAMP_Actor->pGTA_Ped;
    cheatActor_AIRBRK(info_actor);
}
в sf api нет этих флагов.
там чуть другая система, но она не для тебя
можешь вырезать из соба, так будет проще
 

_=Gigant=_

Известный
134
191
какой формат у миллисекунд? немогу найти нигде
%Y - год
%m - месяц
%d - день
%H - часы
%M - минуты
%S - секунды

minwinbase.h
sysinfoapy.h

SYSTEMTIME time;
GetLocalTime (&time);

time.wMilliseconds

snprintf("%02d",time.wMilliseconds);

it should work
 
Последнее редактирование модератором:

-raymond-

Известный
110
9
SF->getRakNet()->SendRPC(RPC_DialogResponse, &bs);

как правильно заполнить для отправки?
 

Romelo

dev.
Проверенный
540
624
SF->getRakNet()->SendRPC(RPC_DialogResponse, &bs);

как правильно заполнить для отправки?
C++:
void sendDialog(short id, char button, short listitem, const char *input)
{
    BitStream bs;
    bs.ResetWritePointer();
    bs.Write(id);
    bs.Write(button);
    bs.Write(listitem);
    bs.Write((BYTE)strlen(input));
    bs.Write(input, strlen(input));
    SF->getRakNet()->SendRPC(RPCEnumeration::RPC_DialogResponse, &bs);
}

//Использование
sendDialog(DialogID, Button, ListItem, Input);
 
Последнее редактирование:

-raymond-

Известный
110
9
аргумент типа char * несовместим с char
C++:
void sendDialog(short id, char button, short listitem, char input)
{
    BitStream bs;
    bs.ResetWritePointer();
    bs.Write(id);
    bs.Write(button);
    bs.Write(listitem);
    bs.Write(input);
    SF->getRakNet()->SendRPC(RPCEnumeration::RPC_DialogResponse, &bs);
}

void CALLBACK log(std::string param)
{
    char logStr[20];
    sscanf(param.c_str(), "%s", &logStr);

    sendDialog(SF->getSAMP()->getDialog()->DialogID, 1, 0, logStr);

    //SF->getSAMP()->getDialog()->Close(0);
}
 

Romelo

dev.
Проверенный
540
624
аргумент типа char * несовместим с char
C++:
void sendDialog(short id, char button, short listitem, char input)
{
    BitStream bs;
    bs.ResetWritePointer();
    bs.Write(id);
    bs.Write(button);
    bs.Write(listitem);
    bs.Write(input);
    SF->getRakNet()->SendRPC(RPCEnumeration::RPC_DialogResponse, &bs);
}

void CALLBACK log(std::string param)
{
    char logStr[20];
    sscanf(param.c_str(), "%s", &logStr);

    sendDialog(SF->getSAMP()->getDialog()->DialogID, 1, 0, logStr);

    //SF->getSAMP()->getDialog()->Close(0);
}
void sendDialog(short id, char button, short listitem, const char *input)
 
Последнее редактирование:

LUCHARE

Известный
Друг
545
688
C:
void sendDialog(short id, char button, short listitem, const char *input)
{
    BitStream bs;
    bs.ResetWritePointer();
    bs.Write(id);
    bs.Write(button);
    bs.Write(listitem);
    bs.Write(input);
    SF->getRakNet()->SendRPC(RPCEnumeration::RPC_DialogResponse, &bs);
}

//Использование
sendDialog(DialogID, Button, ListItem, Input);
перед строкой нужно записать её длину (1 байт)