Вопросы по CLEO-скриптингу

Rom_Black

Новичок
44
0
Возможно ли перевести данный код в CLEO:
Код:
void cheat_handle_bike_crasher()
{
    traceLastFunc( "cheat_handle_bike_crasher()" );

    if(cheat_state->_generic.bikecrasher == 0)
        return;

    if(cheat_state->state != CHEAT_STATE_VEHICLE)
        return;

    if(g_SAMP == NULL || g_SAMP->iGameState != GAMESTATE_CONNECTED)
        return;

    if(g_Players == NULL && g_Vehicles == NULL)
        return;

    struct actor_info *pSelfActor = actor_info_get( ACTOR_SELF, 0 );
    struct vehicle_info *pSelfVehicle = vehicle_info_get( VEHICLE_SELF, NULL );

    float *coord = ( cheat_state->state == CHEAT_STATE_VEHICLE ) ? cheat_state->vehicle.coords : cheat_state->actor.coords;

    static bool bBikeCrasherState = 0;
    static bool bTrainSpeedState = 0;
    static DWORD dwBikeCrasherTimerTick = GetTickCount();

    uint16_t sCurrentVehicleID = g_Players->pLocalPlayer->sCurrentVehicleID;

    BYTE byteCurrentWeapon;

    if ( cheat_state->state == CHEAT_STATE_VEHICLE )
        byteCurrentWeapon = g_Players->pLocalPlayer->inCarData.byteCurrentWeapon;

    else if ( cheat_state->state == CHEAT_STATE_ACTOR )
        byteCurrentWeapon = g_Players->pLocalPlayer->onFootData.byteCurrentWeapon;

    else byteCurrentWeapon = 0;

    if(dwBikeCrasherTimerTick < GetTickCount() - 50)
    {
        if(!bBikeCrasherState)
        {
            stInCarData vehSync;
            RakNet::BitStream bsVehicleSync;

            memset(&vehSync, 0, sizeof(stInCarData));

            vehSync.sVehicleID = sCurrentVehicleID;

            vehSync.bytePlayerHealth = pSelfActor->hitpoints;
            vehSync.byteArmor = pSelfActor->armor;

            vehSync.byteCurrentWeapon = byteCurrentWeapon;

            vehSync.fPosition[0] = coord[0];
            vehSync.fPosition[1] = coord[1];
            vehSync.fPosition[2] = coord[2];

            vehSync.fVehicleHealth = pSelfVehicle->hitpoints;

            if(!bTrainSpeedState)
                vehSync.fTrainSpeed = (float)0xFFFFFFFFFFFFFFFF;

            bTrainSpeedState ^= 1;
           
            g_iRakClient->SendInCarFullSyncData(&vehSync);
        }
        else
        {
            float fPos[3], fSpeed[3];

            fPos[0] = coord[0];
            fPos[1] = coord[1];
            fPos[2] = coord[2] + 1.5f;

            g_iRakClient->SendFakeOnfootSyncData(fPos, pSelfActor->hitpoints, pSelfActor->armor, byteCurrentWeapon, fSpeed);
        }

        bBikeCrasherState ^= 1;
        dwBikeCrasherTimerTick = GetTickCount();
    }
}
 

MATRIXJ

Новичок
5
0
Помогите кто нибудь! Я всё сделал: пикап создал, свечение тоже сработало. Но не как не могу сделать так, чтоб когда сиджей брал пикап свечение исчезало вместе с взятым пикапом :unknw:
Вот скрипт:

{$CLEO .cs}

//-------------MAIN---------------
0000: NOP

TIC
0001: wait 0 ms
0247: load_model #GREEN_GLOOP
038B: load_requested_models
jump @PIC_2

TIC_2
0001: wait 0 ms
if
0248: model #GREEN_GLOOP available
004D: jump_if_false @PIC_2
$Green = Pickup.Create(#GREEN_GLOOP, 3, 264.2433, 1882.3401, -30.3906) // Созданный пикап
0001: wait 100 ms
0249: release_model #GREEN_GLOOP
jump @PIC_3

TIC_3
8214: not pickup $Green picked_up
004D: jump_if_false @PIC_4
04D5: create_corona_at 264.1 1882.2251 -29.8906 radius 0.5 type 3 flare 2 RGB 0 255 0 // Созданное свечение
0001: wait 0 ms
0002: jump @PIC_3

TIC_4
0A93: end_custom_thread
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
Код:
{$CLEO .cs}

0001: wait 0 ms

0247: load_model #GREEN_GLOOP
038B: load_requested_models

repeat
    wait 100
until 0248: model #GREEN_GLOOP available

$Green = Pickup.Create(#GREEN_GLOOP, 3, 264.2433, 1882.3401, -30.3906) // Созданный пикап
0249: release_model #GREEN_GLOOP

while true
    wait 0
    if 
        0214: pickup $Green picked_up
    then 
        if 09D1:   $Green created
        then 
            0215: destroy_pickup $Green
        end

        0A93: end_custom_thread // end . script
    end
   
    04D5: create_corona_at 264.1 1882.2251 -29.8906 radius 0.5 type 3 flare 2 RGB 0 255 0 // Созданное свечение 
end
 
  • Нравится
Реакции: MATRIXJ

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
Пишу бот, так как имитацию клавиш я не умею делать, хочу использовать опкод 05d3, но я хз как его использовать. Он не работает у меня почему то. (На скольжение насрать)
Вот код как я тестил окпод, но он не бежит куда мне нужно:
Код рабочий. Возможно, что координаты некорректные.
 

.KG.

Новичок
6
0
Как работает опкод 1337?
Вы можете нормально объяснить ? 1 пишет что делает приватным, но как ? Другой пишет тебя это не должно волновать ? Другой говорит про 1 и 0, нормально можно объяснить?
 

XyJluraH_J

Потрачен
116
26
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как вызывать эмуляцию нажатия? :D

Код:
{$CLEO .cs}
0000: 

while not SAMP.Available()
    wait 400
end

0B34: samp register_client_command "ekeyon" to_label @ekey
0B34: samp register_client_command "ekeyoff" to_label @ekeyo


while true
wait 0
if 0@ == 1
then
0AB1: call_scm_func @keyPress 2 key 87 time 500 // Кароче это W
wait 2000 
0AB1: call_scm_func @keyPress 2 key 83 time 500 //  А это s 
wait 500  
end 
end

:keyPress 
if 0AA2: 2@ = load_library "User32.dll" 
then 
    if 0AA4: 2@ = get_proc_address "keybd_event" library 2@ 
    then 
        0AA5: call 2@ num_params 4 pop 0 0 0 0 0@ 
        wait 1@ 
        0AA5: call 2@ num_params 4 pop 0 0 0x02 0 0@ 
    end 
end 
0AB2: ret 0

 :ekey 
 0@ = 1 
 Samp.CmdRet() 

 :ekeyo 
 0@ = 0 
 Samp.CmdRet()
 
  • Нравится
Реакции: Vovich

Endgame

Новичок
2
2
Что не так я накосячил? ;c
Хочу что бы при активации скрипта, id которые в зоне стрима отправляло в чат.
Но не все сразу естественно, а по 1-му ID.
Если игрок не в зоне прорисовки - то ты не сможешь получить его координаты. Вообще, у меня где-то был цикл для проверки игроков в зоне стрима, если найду - скину. Ты, конечно, можешь, как вариант
Код:
00A0: store_actor 1@ position_to 2@ 3@ 4@
вот эту строку под условие if запихать, и, если координаты будут получены - прододжать работу, если нет - переходить на следующую итерацию, но я хз, скорей всего это бред будет :D
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
Код:
{$CLEO .cs}
{$INCLUDE SF}
0000:

0B34: samp register_client_command "hpall" to_label @cmd_on
0B34: samp register_client_command "hpall_off" to_label @cmd_off

while true
    wait 0
    if 28@ == 1
    then
        for 0@ = 0 to 1000
            if
                0B23: samp is_player_connected 0@
            then
                0B20: samp 1@ = actor_handle_by_samp_player_id 0@
                if 1@ <> 0
                then
                    00A0: store_actor $PLAYER_ACTOR position_to 7@ 8@ 9@
                    00A0: store_actor 1@ position_to 2@ 3@ 4@
                    050A: 5@ = distance_between_XYZ 7@ 8@ 9@ and_XYZ 2@ 3@ 4@
                    if
                        5@ <= 100.0
                    then
                        say "/s %d" 1@
                        wait 150
                    end
                end
            end
        end
    end
end
   
:cmd_on
28@ = 1
SAMP.CmdRet()

:cmd_off
28@ = 0
SAMP.CmdRet()
 

Enjoy

Новичок
Проверенный
164
11
Можно ли сделать, чтобы опкод 0DBF: emul_key_press работал при открытом чате, то есть не обращал на него внимание и при этом не флудил в чат?