Source : Script Menu Base C

EROOTIIK

VIP
Inscription
2 Novembre 2011
Messages
4 176
Réactions
3 454
Points
24 883
RGCoins
0
You must be registered for see images attach

Vu qu'il y a maintenant un compilateur pour les scripts, j'en ai profité pour convertir ma base asm en C, j'ai aussi mis quelques options pour vous aider à comprendre cette base, avec un petit exemple d'édition de mémoire grâce à l'adresse slow motion release par @Popomo malheureusement j'ai pas trouvé d'autres adresses pour avoir un code plus complexe pour l'édition de mémoire, l'option pour changer le niveau contient un bon exemple d'utilisation des variables globales.

La source est disponible ici :
Le compilateur :
 
Dernière édition:

2Noob4U

Nooby 4ever
Premium
Inscription
4 Janvier 2013
Messages
5 306
Réactions
3 452
Points
20 896
RGCoins
0
Merci c'est ce que je chercher.

Mais quesqu'un nooby comme moi va bien pouvoir en faire.....:trollface:
 

Popomo

Premium
Inscription
8 Mai 2013
Messages
1 738
Réactions
1 144
Points
16 586
RGCoins
0
You must be registered for see images attach

Vu qu'il y a maintenant un compilateur pour les scripts, j'en ai profité pour convertir ma base asm en C, j'ai aussi mis quelques options pour vous aider à comprendre cette base, avec un petit exemple d'édition de mémoire grâce à l'adresse slow motion release par @Popomo malheureusement j'ai pas trouvé de source pour avoir un code plus complexe pour l'édition de mémoire, l'option pour changer le niveau contient un bon exemple d'utilisation des variables globales.

La source est disponible ici :
Thank's pour le partage :ok:.
 

EROOTIIK

VIP
Inscription
2 Novembre 2011
Messages
4 176
Réactions
3 454
Points
24 883
RGCoins
0
J'ai mis à jour la base de façon à ce qu'on soit plus obligé d'utiliser mes fichiers const32.h natives32.h, j'ai corrigé l'avertissement à la compilation, et j'ai corrigé un soucis de placement de texte avec les bools, après vérification dans l'eboot avec ida il s'avère que les déclarations des natives release avec le compilateur fonctionnent aussi du coup j'ai tout remis comme avant, à la base je les avaient changé par les déclarations utilisés dans les scripts de R*.
 

2Noob4U

Nooby 4ever
Premium
Inscription
4 Janvier 2013
Messages
5 306
Réactions
3 452
Points
20 896
RGCoins
0
J'ai mis à jour la base de façon à ce qu'on soit plus obligé d'utiliser mes fichiers const32.h natives32.h, j'ai corrigé l'avertissement à la compilation, et j'ai corrigé un soucis de placement de texte avec les bools, après vérification dans l'eboot avec ida il s'avère que les déclarations des natives release avec le compilateur fonctionnent aussi du coup j'ai tout remis comme avant, à la base je les avaient changé par les déclarations utilisés dans les scripts de R*.

mPFK6wOiTpyIQ0Y4EMLhNw.png

Cool, merci pour le temps que tu passes a faire tous sa.
 

2Noob4U

Nooby 4ever
Premium
Inscription
4 Janvier 2013
Messages
5 306
Réactions
3 452
Points
20 896
RGCoins
0
Tiens moi j'ai une question pour le spawnCar, si je prends le vieux code de mon sprx les autres joueurs pourront pas voir le vehicle, tu coup tu utilises quel native pour le rendre visible ?

Et comme je suis sympa je file une merde que je vient de tester et qui a l'air d'etre pas trop mal.

Code:
bool nfs;
void _nfs() {
    Ped playerPed = PLAYER_PED_ID();
    Vehicle vehicle = GET_VEHICLE_PED_IS_USING(playerPed);
    if (IS_PED_IN_ANY_VEHICLE(playerPed, 0)) {
        if (IS_CONTROL_PRESSED(2, INPUT_FRONTEND_RT) && IS_CONTROL_PRESSED(2, INPUT_FRONTEND_LT))
            SET_VEHICLE_FORWARD_SPEED(vehicle, 0);

        if (IS_CONTROL_JUST_PRESSED(2, INPUT_FRONTEND_LT)) //justarriere
            SET_VEHICLE_FORWARD_SPEED(vehicle, 0);
        if (IS_CONTROL_PRESSED(2, INPUT_FRONTEND_LT)) { //arriere
            float Speed = GET_ENTITY_SPEED(vehicle) + 1.0f;
            SET_VEHICLE_FORWARD_SPEED(vehicle, -Speed);
        }
        if (IS_CONTROL_PRESSED(2, INPUT_FRONTEND_RT)) { //avant
            float Speed = GET_ENTITY_SPEED(vehicle) + 1.0f;
            SET_VEHICLE_FORWARD_SPEED(vehicle, Speed);
        }
    }
    if (IS_PED_IN_ANY_VEHICLE(playerPed, 0) && !IS_VEHICLE_ON_ALL_WHEELS(vehicle)) {
        SET_INPUT_EXCLUSIVE(2, INPUT_SCRIPT_LB);
        if (IS_CONTROL_PRESSED(2, INPUT_SCRIPT_LB)) {
            vector3 Rot = GET_ENTITY_ROTATION(vehicle, 2);
            float RotEntity = Rot.z + 1.0f;
            SET_ENTITY_ROTATION(vehicle, Vector3(Rot.x, Rot.y, RotEntity), 2, 1);
        }
        if (IS_CONTROL_PRESSED(2, INPUT_SCRIPT_RB)) {
            vector3 Rot = GET_ENTITY_ROTATION(vehicle, 2);
            float RotEntity = Rot.z - 1.0f;
            SET_ENTITY_ROTATION(vehicle, Vector3(Rot.x, Rot.y, RotEntity), 2, 1);
        }
        if (IS_CONTROL_PRESSED(2, INPUT_FRONTEND_RT) && IS_CONTROL_PRESSED(2, INPUT_FRONTEND_LT))
            SET_VEHICLE_FORWARD_SPEED(vehicle, 0);
        if (IS_CONTROL_JUST_PRESSED(2, INPUT_FRONTEND_LT)) //justarriere
            SET_VEHICLE_FORWARD_SPEED(vehicle, 0);
        if (IS_CONTROL_PRESSED(2, INPUT_FRONTEND_LT)) { //arriere
            float Speed = GET_ENTITY_SPEED(vehicle) + 1.0f;
            SET_VEHICLE_FORWARD_SPEED(vehicle, -Speed);
        }
        if (IS_CONTROL_PRESSED(2, INPUT_FRONTEND_RT)) { //avant
            float Speed = GET_ENTITY_SPEED(vehicle) + 1.0f;
            SET_VEHICLE_FORWARD_SPEED(vehicle, Speed);
        }
    }
}
 

Lebossdu33

Premium
Inscription
2 Avril 2017
Messages
658
Réactions
111
Points
1 006
RGCoins
0
You must be registered for see images attach

Vu qu'il y a maintenant un compilateur pour les scripts, j'en ai profité pour convertir ma base asm en C, j'ai aussi mis quelques options pour vous aider à comprendre cette base, avec un petit exemple d'édition de mémoire grâce à l'adresse slow motion release par @Popomo malheureusement j'ai pas trouvé d'autres adresses pour avoir un code plus complexe pour l'édition de mémoire, l'option pour changer le niveau contient un bon exemple d'utilisation des variables globales.

La source est disponible ici :
Le compilateur :
Merci du partage
 

2Noob4U

Nooby 4ever
Premium
Inscription
4 Janvier 2013
Messages
5 306
Réactions
3 452
Points
20 896
RGCoins
0
Encore 1 gros merci a erootiik pour cette base, je m'eclate bien avec, elle est simple a comprendre et c'est simple aussi de mettre les chose en place.

Si des fois sa interesse des gens spawn_char_option(......);
enjoy.

Code:
void draw_option_char_setup(const char* text) {
    SET_TEXT_RIGHT_JUSTIFY(1);
    draw_text_setup();
    SET_TEXT_WRAP(0, 0.924 + safezoneX);
    if (currentOption + 1 == optionCount)
        text_color_purple();
    else
        text_color_white();
    BEGIN_TEXT_COMMAND_DISPLAY_TEXT("STRING");
    ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text);
    END_TEXT_COMMAND_DISPLAY_TEXT(Vector2(1 + safezoneX, textPosY + safezoneY));
}
void add_char(const char* text, int *var, char** display, int* hash, int min, int max, int interval, int intervalFast, int index) {
    if (draw_option(text, false)) {
        if (currentOption + 1 == optionCount) {
            add_instructional_button(SFB_BUTTON_DPAD_LEFT_RIGHT, "HEIST_IB_CONFPL");
            if (fast)
                interval = intervalFast;
            if (leftPressed) {
                *var -= interval;
                if (*var < min)
                    *var = max;
            }
            else if (rightPressed) {
                *var += interval;
                if (*var > max)
                    *var = min;
            }
            if (xPressed) {
                switch (index) {
                case 1:
                    hash_veh = hash[*var];
                    spawnVehicle = true;
                    return;
                case 2: //ped
                    return;
                case 3: //obj
                    return;
                }
            }
        }
        draw_option_char_setup(display[*var]);
    }
}
uint hash_veh;
bool spawnVehicle;
int spawnedVeh;
int scrollSuperSport;
char* d_VehSuperSport[11] = { "Truffade Adder", "Overflod Entity XF", "Grotti Cheetah", "Pegassi Infernus", "Pegassi Vacca", "Vapid Bullet", "Coil Voltic", "Pegassi Zentorno", "Grotti Turismo R", "Pegassi Osiris", "Progen T20" };
int h_VehSuperSport[11] = { 0xB779A091, 0xB2FE5CF9, 0xB1D95DA0, 0x18F25AC7, 0x142E0DC3, 0x9AE6DDA1, 0x9F4B77BE, 0xAC5DF515, 0x185484E1, 0x767164D6, 0x6322B39A };

add_char("Super Sport", &scrollSuperSport, d_VehSuperSport, h_VehSuperSport, 0, 10, 1, 1, 1);
 

EROOTIIK

VIP
Inscription
2 Novembre 2011
Messages
4 176
Réactions
3 454
Points
24 883
RGCoins
0
Pour utiliser des caractères spéciaux, genre des lettres avec accents vous devez changer l'encodage de chaque fichier contenant des caractères spéciaux en allant dans Fichier > Options d'enregistrement avancées... puis sélectionnez "Unicode (UTF-8 sans signature) - Page de code 65001" ou "Unicode (UTF-8 without signature) - Ccodepage 65001" en anglais, rajoute ça au sujet.

À noter que la structure des fichiers script est la même pour PS4 et donc que vous pourrez récupérer votre menu sur cette dernière sans pratiquement rien changer.
 
Dernière édition:

2Noob4U

Nooby 4ever
Premium
Inscription
4 Janvier 2013
Messages
5 306
Réactions
3 452
Points
20 896
RGCoins
0
À noter que la structure des fichiers script est la même pour PS4 et donc que vous pourrez récupérer votre menu sur cette dernière sans pratiquement rien changer.

Le probleme c'est avec quoi tu ouvres(si tu arrives a aller le chercher) update.rpf, ni open4, ni liberty5 fait sa.
Sinon ouais normalement c'est les meme native que la version pc.
 
Haut