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

Dark_Knight

Me, me and me.
Друг
4,062
2,077
переписал строки, сейчас посмотрим
В итоге все равно не реагирует на результат
Код:
void CreateMapMarker(CVector i){
    if (!mapMarker){
        mapMarker = GAME->GetRadar()->CreateMarker(&i);
    }
    else
    {
        mapMarker->SetPosition(&i);
    }
    mapMarker->SetDisplay(eMarkerDisplay::MARKER_DISPLAY_BLIPONLY);
    mapMarker->SetScale(1);
    mapMarker->SetSprite(eMarkerSprite::MARKER_SPRITE_ENEMYATTACK);
}
Не знаю пригодится ли, но это создает маркер на радаре. У 3д маркеров такой же.
 

Harch

Новичок
40
0
Ребят, ну помогите уже кто-нибудь, неужели дисконнект нельзя нормально сделать? disconnect(100) у меня крашит игру...
 

Woofing Giraffe

Активный
402
49
Код:
bool CALLBACK incomingRPC(stRakNetHookParams *params)
{
    if (params->packetId == ScriptRPCEnumeration::RPC_ScrSetPlayerColor)
    {
        WORD i;
        DWORD Color;
        params->bitStream->ResetReadPointer();
        params->bitStream->Read(i);
        params->bitStream->Read(Color);
        params->bitStream->ResetReadPointer();
        if (Color == 0xFFFFFF01)
        {
            params->bitStream->ResetWritePointer();
            params->bitStream->Write(i);
            params->bitStream->Write(0xFF000001);
        }
    };
    return true;
};
Проблема в том что цвет ника меняет только в табе, а в игре цвет остается тем же.
 

SR_team

like pancake
BH Team
4,719
6,362
Ребят, ну помогите уже кто-нибудь, неужели дисконнект нельзя нормально сделать? disconnect(100) у меня крашит игру...
хех. Помню проснулся в понедельник, потому что мне снилось, что ты вокруг меня ходил и заебывал этой проблемой, и я решил проверить ее и если что пофиксить, написал код, и он оказался рабочим. Понимаешь, из-за того, что ты тут флудишь не существующей проблемой ты заебал меня даже во сне!
Вот кусок кода, он полностью рабочий, но себе ты его все равно не прикрутишь, ибо ему нужна последняя версия !MenuManager, которая еще не залита, и потому что это не весь код плагина.
C++:
struct stConnectInfo
{
    DWORD dwTimer = 0;
    //TODO: прикрутить список серверов
} ConnectInfo;

void RejTimer()
{
    if (ConnectInfo.dwTimer == 0)
        return;
    if (ConnectInfo.dwTimer > GetTickCount())
        return;
    SF->getSAMP()->getInfo()->RestartGame();
    SF->getSAMP()->getInfo()->iGameState = GAMESTATE_WAIT_CONNECT;
    ConnectInfo.dwTimer = 0;
}
void CALLBACK Reconnect(int KeyClicked)
{
    std::string nick = MENU.connects->InputBoxes->GetInputBoxText(0);
    if (nick.length() > 3 && nick.length() < 26)
        SF->getSAMP()->getPlayers()->SetLocalPlayerName(nick.c_str());
    SF->getSAMP()->disconnect(100);
    ConnectInfo.dwTimer = atoi(MENU.connects->InputBoxes->GetInputBoxText(1).c_str()) * 1000 + GetTickCount();
}
void ConnectsInit()
{
    MENU.connects = new Menu("Подключения", -1, -1, 500, 200, 0xDD202040, -1, false);
    MENU.connects->Elements->AddElement("Ник:", 5, 5, NULL);
    MENU.connects->InputBoxes->AddInputBox(45, 5, 450);
    //MENU.connects->InputBoxes->SetInputBoxText(0, SF->getSAMP()->getPlayers()->pszLocalPlayerName);
    MENU.connects->Elements->AddElement("Задержка:", 5, 25, NULL);
    MENU.connects->InputBoxes->AddInputBox(95, 25, 400);
    MENU.connects->InputBoxes->SetInputBoxText(1, "15");
    MENU.connects->Elements->AddElement("{0080FF}Реконнект", 5, 40, Reconnect);
}
 
  • Нравится
Реакции: mac

SR_team

like pancake
BH Team
4,719
6,362
Код:
bool CALLBACK incomingRPC(stRakNetHookParams *params)
{
    if (params->packetId == ScriptRPCEnumeration::RPC_ScrSetPlayerColor)
    {
        WORD i;
        DWORD Color;
        params->bitStream->ResetReadPointer();
        params->bitStream->Read(i);
        params->bitStream->Read(Color);
        params->bitStream->ResetReadPointer();
        if (Color == 0xFFFFFF01)
        {
            params->bitStream->ResetWritePointer();
            params->bitStream->Write(i);
            params->bitStream->Write(0xFF000001);
        }
    };
    return true;
};
Проблема в том что цвет ника меняет только в табе, а в игре цвет остается тем же.
В собе есть функция чтения цвета ника, возьми ее из вместо чтения запиши свой цвет
 

Tray228

Новичок
218
27
Помогите ребят, поставил на ноутбук Visual Studio 2013, а тут выдает 2 ошибки
f23131d651aa.png
9dae5d5b3d12.png
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Код:
bool CALLBACK incomingRPC(stRakNetHookParams *params)
{
    if (params->packetId == ScriptRPCEnumeration::RPC_ScrSetPlayerColor)
    {
        WORD i;
        DWORD Color;
        params->bitStream->ResetReadPointer();
        params->bitStream->Read(i);
        params->bitStream->Read(Color);
        params->bitStream->ResetReadPointer();
        if (Color == 0xFFFFFF01)
        {
            params->bitStream->ResetWritePointer();
            params->bitStream->Write(i);
            params->bitStream->Write(0xFF000001);
        }
    };
    return true;
};
Проблема в том что цвет ника меняет только в табе, а в игре цвет остается тем же.
Ты не передаешь серверу данные о цвете, только он тебе.
 

Enjoy

Новичок
Проверенный
164
11
сделал какую-то парашу, при попытке отправить ID_WEAPONS_UPDATE игра вылетает. Не совсем понимаю почему, объясните.
Код:
    actor_info *self = SF->getGame()->actorInfoGet(-1, ACTOR_ALIVE);
    weapon gun = self->weapon[self->weapon_slot];

    stWeaponsUpdate weapUpd;
    memset(&weapUpd, 0, sizeof(stWeaponsUpdate));

    weapUpd.iTargetID = std::stoi(param);
    weapUpd.slot = self->weapon_slot;
    weapUpd.weapon = gun.id;
    weapUpd.ammo = gun.ammo;

    BitStream bsWeapUpd;
    bsWeapUpd.Write((BYTE)ID_WEAPONS_UPDATE);
    bsWeapUpd.Write((PCHAR)&weapUpd, sizeof(stWeaponsUpdate));
    SF->getRakNet()->SendPacket(&bsWeapUpd);