Autopassion.net le site ddi  l'automobile cr par ses utilisateurs


avatar
Messages : 37
Date d'inscription : 24/04/2018
Age : 20
Adresse : 8th Bluberry Acres, Bluberry.
Voir le profil de l'utilisateur

(DEV) (TERMINE) Système des Permis

le Dim 4 Nov - 17:03


Liste des Permis





Code:
/* ============================ PERMIS DE CONDUIRE ============================== */

CMD:permis(playerid, params[])
{
 if(!IsPlayerInRangeOfPoint(playerid, 5.0, 2604.1863, 1350.6260, 78.4964)) return TD_SendMessage(playerid, "~h~~w~Vous devez être dans l'auto-école.", "~h~~r~INFO", -1, 0x00000088, 20, 110.000000, 230);
 if(playerInfo[playerid][pDrivingLicense]) return 1;
 if(GetLicense(playerid, LICENSE_TYPE_DRIVING) > 0) return TD_SendMessage(playerid, "~h~~w~Vous avez déjà le permis.", "~h~~r~INFO", -1, 0x00000088, 20, 110.000000, 230);
 playerInfo[playerid][pDrivingLicense] = 1;
    DrivingLicense(playerid, 1);
 return 1;
}

public DrivingLicense(playerid, step)
{
 if(step == 1)
 {
 if(playerInfo[playerid][pSex] == PLAYER_SEX_GIRL)
 { SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Bonjour madame. Je suis monsieur Wendel, votre examinateur."); }

 else
 { SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Bonjour monsieur. Je suis monsieur Wendel, votre examinateur."); }

 SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Etes vous prêt à commencer votre examen du permis ?");
 }
 
 else if(step == 2)
 {
 SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Très bien ! Dans ce cas, allons-y ! Dès que vous êtes prêt, sortez du parking et tournez à droite.");
     SetPlayerCheckpoint(playerid, 1147.0398,-1676.3751,13.4861, 7.0);
 }
 
 else if(step == 3)
 {
    SetPlayerCheckpoint(playerid, 1147.8049,-1699.5928,13.4866, 7.0);
 }
 
 else if(step == 4)
 {
    TogglePlayerControllable(playerid, 0);
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Avant de continuer et afin d'être clair.");
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Ceci est pour rappel un stop, vous devez vous y arrêter complètement !");
    SetPlayerCheckpoint(playerid, 1285.5000,-1713.9856,13.0876, 7.0);
    SetTimerEx("DrivingLicense_Unfreeze", 3000, false, "i", playerid);
 }
 
 else if(step == 5)
 {
    SetPlayerCheckpoint(playerid, 1295.1840,-1838.6084,13.0879, 7.0);
 DrivingLicense_CheckStop(playerid);
 SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Tournez à droite et au bout de la route prenez à nouveau à droite.");
 }
 
 else if(step == 6)
 {
    SetPlayerCheckpoint(playerid, 1074.0302,-1849.7145,13.0959, 7.0);
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Droite ...");
 }
 
 else if(step == 7)
 {
    SetPlayerCheckpoint(playerid, 996.3195,-1786.6940,13.7638, 7.0);
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Longez la grand route ...");
    DrivingLicense_CheckStop(playerid);
 }
 
 else if(step ==
 {
    SetPlayerCheckpoint(playerid, 670.5067,-1737.2963,13.1669, 7.0);
 }
 
 else if(step == 9)
 {
    SetPlayerCheckpoint(playerid, 637.1550,-1713.5377,13.8892, 7.0);
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Prenez ici à droite.");
 }
 
 else if(step == 10)
 {
    SetPlayerCheckpoint(playerid, 612.0133,-1673.7081,15.6444, 7.0);
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Ici à gauche.");
 }
 
 else if(step == 11)
 {
    TogglePlayerControllable(playerid, 0);
    SetPlayerCheckpoint(playerid, 584.3348,-1670.0983,16.3543, 7.0);
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Stop ! Ici vous allez un petit peu avancer et me faire un demi-tour en respectant le code de la route.");
        SetTimerEx("DrivingLicense_Unfreeze", 3000, false, "i", playerid);
 }
 
 else if(step == 12)
 {
    SetPlayerCheckpoint(playerid, 615.9780,-1679.1667,15.7078, 7.0);
 }
 
 else if(step == 13)
 {
    SetPlayerCheckpoint(playerid, 640.6395,-1613.0811,15.0806, 7.0);
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Et vous prenez à gauche.");
    DrivingLicense_CheckStop(playerid);
 }
 
 else if(step == 14)
 {
    SetPlayerCheckpoint(playerid, 639.8729,-1417.8976,13.1791, 7.0);
 }
 
 else if(step == 15)
 {
    SetPlayerCheckpoint(playerid, 634.9028,-1226.0719,17.7076, 7.0);
 }
 
 else if(step == 16)
 {
    SetPlayerCheckpoint(playerid, 722.3419,-1102.9677,19.1743, 7.0);
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: A droite à ce carrefour puis vous continuez tout droit jusque quand je vous le dis.");
        DrivingLicense_CheckStop(playerid);
 }
 
 else if(step == 17)
 {
    SetPlayerCheckpoint(playerid, 902.2167,-988.9134,37.0675, 7.0);
 }
 
 else if(step == 18)
 {
    SetPlayerCheckpoint(playerid, 1137.9930,-956.7791,42.2077, 7.0);
 }
 
 else if(step == 19)
 {
    SetPlayerCheckpoint(playerid, 1231.2028,-944.0530,42.2456, 7.0);
 }
 
 else if(step == 20)
 {
    SetPlayerCheckpoint(playerid, 1354.6986,-989.6793,28.7760, 7.0);
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Deuxième rue à droite.");
 }
 
 else if(step == 21)
 {
    SetPlayerCheckpoint(playerid, 1350.6199,-1023.7516,26.2044, 7.0);
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Et vous continuez tout droit.");
 }
 
 else if(step == 22)
 {
    SetPlayerCheckpoint(playerid, 1340.6221,-1206.4064,17.3106, 7.0);
 }
 
 else if(step == 23)
 {
    SetPlayerCheckpoint(playerid, 1335.4554,-1456.8547,13.0875, 7.0);
 }
 
 else if(step == 24)
 {
    SetPlayerCheckpoint(playerid, 1268.3328,-1570.4133,13.0883, 7.0);
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Prenez la prochaine rue à droite.");
 }
 
 else if(step == 25)
 {
    SetPlayerCheckpoint(playerid, 1148.0408,-1592.9896,13.2720, 7.0);
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: La prochaine à gauche ...");
 }
 
 else if(step == 26)
 {
    SetPlayerCheckpoint(playerid, 1147.0398,-1676.3751,13.4861, 7.0);
 }
 
 else if(step == 27)
 {
    DrivingLicense_Pass(playerid);
        DisablePlayerCheckpoint(playerid);
 }
}

public DrivingLicense_Unfreeze(playerid)
{
 TogglePlayerControllable(playerid, 1);
 if(playerInfo[playerid][pDrivingLicense] == 5) SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Continuez maintenant, tournez à gauche.");
 return 1;
}

public DrivingLicense_Pass(playerid)
{
 format(sQuery, sizeof(sQuery), "INSERT INTO samp_licenses (pCharacterID, licenseType, licenseSuspended) VALUES (%d, 1, 0)", playerInfo[playerid][pCharacterID]);
 mysql_query(sQuery);
 
 SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Toutes mes félicitations, votre conduite est très adaptée à ce qui est attendu de vous !");
 
 playerInfo[playerid][pDrivingLicense] = 0;
 playerInfo[playerid][pDrivingCheckStop] = 0;

 new vehid = GetPlayerVehicleID(playerid);
 
 SetVehicleToRespawn(vehid);
 SafeSetPlayerPos(playerid, 1138.4099, -1700.2220, 13.8882);
 SetPlayerFacingAngle(playerid, 26.1179);
 
 TD_SendMessage(playerid, "~h~~g~Vous avez obtenu votre permis de conduire.", "~h~~r~INFO", -1, 0x00000088, 20, 110.000000, 230);
 
 return 1;
}

public DrivingLicense_Fail(playerid, reason)
{
 playerInfo[playerid][pDrivingLicense] = 0;
 playerInfo[playerid][pDrivingCheckStop] = 0;
 
 new vehid = GetPlayerVehicleID(playerid);
 SetVehicleToRespawn(vehid);
 SafeSetPlayerPos(playerid, 1138.4099, -1700.2220, 13.8882);
 SetPlayerFacingAngle(playerid, 26.1179);
 DisablePlayerCheckpoint(playerid);
 
 if(reason == 1) // Pas de ceinture
 {
    SendClientMessage(playerid, COLOR_FADE1, "");
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Si vous commencez déjà par oublier votre ceinture, qu'est ce que ça va donner plus tard ?");
 SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Retentez votre chance une prochaine fois.");
 }
 else if(reason == 2) // Non respect d'un stop
 {
    SendClientMessage(playerid, COLOR_FADE1, "");
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Les stops c'est pas pour les chiens d'aveugles ... Vous avez pas oublié vos lunettes ?");
 SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Retentez votre chance une prochaine fois.");
 }
 else if(reason == 3) // Vitesse
 {
    SendClientMessage(playerid, COLOR_FADE1, "");
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Le Dakar c'est pas ici, apprenez à limiter votre vitesse.");
 SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Retentez votre chance une prochaine fois.");
 }
 else if(reason == 4) // Demi-tour raté
 {
    SendClientMessage(playerid, COLOR_FADE1, "");
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Mais quel demi-tour catastrophique ...Retentez votre chance une prochaine fois.");
 }
 else if(reason == 5) // Etat du véhicule
 {
    SendClientMessage(playerid, COLOR_FADE1, "");
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Vous m'avez pété mon véhicule ! Partez d'ici je veux plus vous voir !");
 }
 
 else if(reason == 6) // Quitte le véhicule
 {
    SendClientMessage(playerid, COLOR_FADE1, "");
    SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Il vaut mieux être DANS le véhicule pour passer son permis ...");
 }
 
 TD_SendMessage(playerid, "~h~~r~Vous avez échoué votre permis de conduire.", "~h~~r~INFO", -1, 0x00000088, 20, 110.000000, 230);
 
 return 1;
}

public DrivingLicense_CheckStop(playerid)
{
 playerInfo[playerid][pDrivingCheckStop] = 1;
 SetTimerEx("DrivingLicense_CheckStopEnd", 3000, false, "i", playerid);
 return 1;
}

public DrivingLicense_CheckStopEnd(playerid)
{
 if(playerInfo[playerid][pDrivingCheckStop] == 1) { playerInfo[playerid][pDrivingCheckStop] = 0; DrivingLicense_Fail(playerid, 2); return 1; }
 playerInfo[playerid][pDrivingCheckStop] = 0;
 return 1;
}

Code:
// Permis de conduire: Etes vous prêt ?
 if(playerInfo[playerid][pDrivingLicense] == 1)
 {
    if(strfind(text, "oui", true) != -1 || strfind(text, "ouai", true) != -1 || strfind(text, "ouais", true) != -1)
    {
        if(!IsPlayerInAnyVehicle(playerid) || !vehicleInfo[GetPlayerVehicleID(playerid)][vEcole])
        {
            SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Veuillez d'abord entrer dans un véhicule école.");
            return 0;
        }
        
        playerInfo[playerid][pDrivingLicense] = 2;
        DrivingLicense(playerid, 2);
    }
    else
    {
        SendClientMessage(playerid, COLOR_FADE1, "Donar Wendel dit: Je n'ai pas bien compris, vous êtes prêt ou pas ?");
        SendClientMessage(playerid, COLOR_FADE5, "(( Dites ici 'Oui' ou 'Non' pour répondre à l'examinateur ))");
    }
 }
avatar
Messages : 37
Date d'inscription : 24/04/2018
Age : 20
Adresse : 8th Bluberry Acres, Bluberry.
Voir le profil de l'utilisateur

Re: (DEV) (TERMINE) Système des Permis

le Dim 4 Nov - 17:03


Script à Faire




- Pour les trois permis ci dessous, aucune ligne de code dans le 'GM' pour pouvoir les passer en tant que simple joueur.
- Par contre si nous les donnons par la commande '/adonner' , ils sont bien sauvegardés dans la 'BDD'.

avatar
Messages : 37
Date d'inscription : 24/04/2018
Age : 20
Adresse : 8th Bluberry Acres, Bluberry.
Voir le profil de l'utilisateur

Re: (DEV) (TERMINE) Système des Permis

le Dim 4 Nov - 17:04


Permis d'armes




- Le permis est délivré par la faction Justice via la commande '/dpa' pour 15.000$.
- ADMIN: /adonner permis ID arme - Cependant quand on tape /adonner, il nous demande de mettre un S à arme mais c'est pas le bon préfixe.

avatar
Messages : 37
Date d'inscription : 24/04/2018
Age : 20
Adresse : 8th Bluberry Acres, Bluberry.
Voir le profil de l'utilisateur

Re: (DEV) (TERMINE) Système des Permis

le Dim 4 Nov - 17:04


Permis de conduite




- Pas de théorique directement la pratique.
- Vitesse max 100 km/h pour le passer sinon recaler.
- Le moindre dégât recaler.
- Gratuit complet
- Pas de point
- Pas de ceinture recaler, mais pas pris en compte là car pas de script ceinture.
- On /permis tout le temps même si on la déjà.
- On peut le passer avec n'importe quelle véhicule tant que celui ci est /v ecole (une mote, un vélo)

avatar
Messages : 37
Date d'inscription : 24/04/2018
Age : 20
Adresse : 8th Bluberry Acres, Bluberry.
Voir le profil de l'utilisateur

Re: (DEV) (TERMINE) Système des Permis

le Dim 4 Nov - 17:04
Je n'ai pas mis de questionnaire pratique ( Parce que c'est déjà bien assez chiant comme ça à passer... )
Peut être que j'en ferais un pour une version ultérieure.

Globalement:
- Emplacement et implémentation permis Aviation et Navigation
- Gestion des prix de chaque permis
- Test pratique pour le permis moto, sur le même schéma que le permis de conduire
- Fonction /v motoecole et /v autoecole
- Implémentation de la ceinture
- Correction du préfixe dans le /a donner pour le permis d'arme.


Système achevé en V1.
Lock.
Contenu sponsorisé

Re: (DEV) (TERMINE) Système des Permis

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum