Führerscheinsystem mit extern Speicherung

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey Leute,


    Also eigentlich brauch ich noch ein Führerscheinsystem!
    Ich habe heute den ganzen Tag die Tutorials durchwälzt, SuFu benutzt und lange gesucht aber nichts von alle dem hilft mir nur annährend!


    Mein Problem: ich komme mit dem abspeichern von bestimmten daten nicht klar und versteh es nich so ganz...
    Ich benutze das gAdmin System und habe erst einmal versucht das Füherscheinsystem in das Adminsystem (Register/login system) einzubauen...
    eigentlich is das nur copy u. paste gewesen aber da das gAdmin system mit einer anderen speicher Art arbeitet und es ein paar publics nicht gab, konnte ich das schonmal vergessen!


    dann habe ich es versucht in mein gamemode einzubauen!
    Da fehlte mir OnPlayerLogin, das stand wieder im Registersystem!
    Außerdem weiß ich nicht wie man abspeichert! (pvars,dini usw...)


    Also, das beste wäre wenn mir jemand ein sogenanntes Führerscheinsystem zeigen könnte!
    Teile, kan er hier entnehmen: Tutorial


    es wäre am besten wenn er mir für ein enfaches Auto etwas vorschreibt!
    und es in einer extra datei speichert mit Namen und in der datei welche lizensen erbesitzt am besten mit Führerschein = 0 (0 true-1false)


    Ich will mich ja eigentlich nich selber für dumm verkaufen aber ich verstehe das einfach nicht...sorry...
    Hoffe jemand nimmt die Aufgabe in die Hand!


    Danke im Vorraus!
    MFG die alte Gurke! :rolleyes:

  • Du willst also das der Führerschein vom Script gespeichert wird und nicht vom Filterscript (gAdmin). Eigendlich total Sinnlos, mach gAdmin raus und Code dir ein eigenes Login Register System, unter Tutorials gibts ja unendlich viele zum anschauen. Dann haste auch keine Probleme mit dem Führerschein System. Im Grunde genommen ist es total einfach..



    enum playerzeug
    {
    ....,
    ..,
    ..,
    schein
    };


    new Player[MAX_PLAYERS][playerzeug];




    abfage..
    if(Player[playerid][schein] == 0) // Besitzt der Spieler keinen Schein
    {
    //Was passieren soll
    }

  • Einfach das machen:
    Player[playerid][schein] = 1;



    Gruß Deo

  • okay hab gadmin rausgenommen und ein neues login/register sys ins gm gebaut und spare eine filterskript stelle wobei ich jetzt noch nachher admin commands einbauen mus etc...


    edit1: pwn entfernt da ich den platz wieder brauche!





    Zitat

    Das Funktioniert soweit gut aber wie in der enum möchte ich wissen wo ich den Füherschein speicher!


    Die Abfrage ob der jenige einen Füherschein hat schaff ich! und den dazugehörigen befehl natürlich auch!


    bitte um hilfe :D


    Edit: weitere Hilfe benötigt!
    Hat jetzt alles geklappt!
    So ich wollt auch rasch meine Führerscheine erweitern und bekam 26 Errors (Klammerfehler vermutlich)
    doch für mich sieht alles gut aus und ich finde nichts!



    Habe nur hier dran gearbeitet:

    new scheinpickup;


    enum Info
    {
    pGeschlecht, // 0 = Männlich, 1 = Weiblich.
    pAlter, // Das Alter
    plogged, // Ob der Spieler eingeloggt ist.
    pGeld,
    pCarschein,
    pHubschrauberschein,
    pFlugzeugschein,
    pMotorradschein,
    pRollerschein,
    pLKWschein,
    pBusschein,
    pBootsschein,
    pQuadschein,
    }
    new pInfo[MAX_PLAYERS][Info];


    //OnGamemodeInit
    scheinpickup = CreatePickup(1239, 2, -2079.3142,-123.6668,35.3203);


    //OnPlayerConnect
    pInfo[playerid][pCarschein] = 0;
    pInfo[playerid][pHubschrauberschein] = 0;
    pInfo[playerid][pFlugzeugschein] = 0;
    pInfo[playerid][pMotorradschein] = 0;
    pInfo[playerid][pRollerschein] = 0;
    pInfo[playerid][pLKWschein] = 0;
    pInfo[playerid][pBusschein] = 0;
    pInfo[playerid][pBootsschein] = 0;
    pInfo[playerid][pQuadschein] = 0;


    //OnPlayerDisconnect
    dini_IntSet(path, "Carschein", pInfo[playerid][pCarschein]);
    dini_IntSet(path, "Flugzeugschein", pInfo[playerid][pFlugzeugschein]);
    dini_IntSet(path, "Hubschrauberschein", pInfo[playerid][pHubschrauberschein]);
    dini_IntSet(path, "Motorradschein", pInfo[playerid][pMotorradschein]);
    dini_IntSet(path, "Rollerschein", pInfo[playerid][pRollerschein]);
    dini_IntSet(path, "Busschein", pInfo[playerid][pBusschein]);
    dini_IntSet(path, "Bootsschein", pInfo[playerid][pBootsschein]);
    dini_IntSet(path, "LKWschein", pInfo[playerid][pLKWschein]);
    dini_IntSet(path, "Quaschein", pInfo[playerid][pQuadschein]);


    //Public Pickup
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == scheinpickup)
    {
    GameTextForPlayer(playerid,"~w~Fahrschule",5000,5);
    ShowPlayerDialog(playerid, DIALOG_SCHEIN, DIALOG_STYLE_LIST, "Führerscheine", "Helikopter(40.000): /hschein\nFlugzeug(55.000): /fschein\nAuto(25.000): /aschein\nMotorrad(15.000): /mschein\nRoller(5.000): /rschein\nLKW(30.000): /lschein\nBus(35.000): /bschein\nBoot(10.000): /boschein\nQuad(5.000): /qschein", "Fertig", "--->");
    SendClientMessage(playerid, GELB,"Du musst den Befehl selber eingeben! (zb. t--/hschein");
    }
    return 1;
    }



    //Command Text
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/hschein", cmdtext, true, 10) == 0)
    {
    if (PlayerToPoint(playerid, -2079.3142,-123.6668,35.3203))
    {
    if(GetPlayerMoney(playerid) < 40000)
    {
    SendClientMessage(playerid, GELB, "Du hast nicht genügend Geld!");
    }
    if (pInfo[playerid][pHubschrauberschein] == 1)
    {
    SendClientMessage(playerid, GELB, "Du hast schon einen Hubschrauberschein!");
    }
    pInfo[playerid][pHubschrauberschein] = 1;
    GivePlayerMoney(playerid, -40000);
    SendClientMessage(playerid, GELB, "Du hast jetzt den Führerschein!");
    }
    else
    {
    SendClientMessage(playerid, GELB, "Du bist nicht an der Fahrschule in San Fierro!");
    }
    if (strcmp("/fschein", cmdtext, true, 10) == 0)
    {
    if (PlayerToPoint(playerid, -2079.3142,-123.6668,35.3203))// cords anpassen
    {
    if(GetPlayerMoney(playerid) < 55000)
    {
    SendClientMessage(playerid, GELB, "Du hast nicht genügend Geld!");
    }
    if (pInfo[playerid][pFlugzeugschein] == 1)
    {
    SendClientMessage(playerid, GELB, "Du hast schon einen Flugzeugschein!");
    }
    pInfo[playerid][pFlugzeugschein] = 1;
    GivePlayerMoney(playerid, -55000);
    SendClientMessage(playerid, GELB, "Du hast jetzt den Flugzeugschein!");
    }
    else
    {
    SendClientMessage(playerid, GELB, "Du bist nicht an der Fahrschule in San Fierro!");
    }
    if (strcmp("/aschein", cmdtext, true, 10) == 0)
    {
    if (PlayerToPoint(playerid, -2079.3142,-123.6668,35.3203))// cords anpassen
    {
    if(GetPlayerMoney(playerid) < 25000)
    {
    SendClientMessage(playerid, GELB, "Du hast nicht genügend Geld!");
    }
    if (pInfo[playerid][pCarschein] == 1)
    {
    SendClientMessage(playerid, GELB, "Du hast schon einen Autoführerschein!");
    }
    pInfo[playerid][pCarschein] = 1;
    GivePlayerMoney(playerid, -25000);
    SendClientMessage(playerid, GELB, "Du hast jetzt den Autoführerschein!");
    }
    else
    {
    SendClientMessage(playerid, GELB, "Du bist nicht an der Fahrschule in San Fierro!");
    }
    if (strcmp("/mschein", cmdtext, true, 10) == 0)
    {
    if (PlayerToPoint(playerid, -2079.3142,-123.6668,35.3203))// cords anpassen
    {
    if(GetPlayerMoney(playerid) < 15000)
    {
    SendClientMessage(playerid, GELB, "Du hast nicht genügend Geld!");
    }
    if (pInfo[playerid][pMotorradschein] == 1)
    {
    SendClientMessage(playerid, GELB, "Du hast schon einen Motorradführerschein!");
    }
    pInfo[playerid][pMotorradschein] = 1;
    GivePlayerMoney(playerid, -15000);
    SendClientMessage(playerid, GELB, "Du hast jetzt den Motorradführerschein!");
    }
    else
    {
    SendClientMessage(playerid, GELB, "Du bist nicht an der Fahrschule in San Fierro!");
    }
    if (strcmp("/rschein", cmdtext, true, 10) == 0)
    {
    if (PlayerToPoint(playerid, -2079.3142,-123.6668,35.3203))// cords anpassen
    {
    if(GetPlayerMoney(playerid) < 5000)
    {
    SendClientMessage(playerid, GELB, "Du hast nicht genügend Geld!");
    }
    if (pInfo[playerid][pRollerschein] == 1)
    {
    SendClientMessage(playerid, GELB, "Du hast schon einen Rollerführerschein!");
    }
    pInfo[playerid][pRollerschein] = 1;
    GivePlayerMoney(playerid, -5000);
    SendClientMessage(playerid, GELB, "Du hast jetzt den Rollerührerschein!");
    }
    else
    {
    SendClientMessage(playerid, GELB, "Du bist nicht an der Fahrschule in San Fierro!");
    }
    if (strcmp("/lschein", cmdtext, true, 10) == 0)
    {
    if (PlayerToPoint(playerid, -2079.3142,-123.6668,35.3203))// cords anpassen
    {
    if(GetPlayerMoney(playerid) < 30000)
    {
    SendClientMessage(playerid, GELB, "Du hast nicht genügend Geld!");
    }
    if (pInfo[playerid][pLKWschein] == 1)
    {
    SendClientMessage(playerid, GELB, "Du hast schon einen LKW-Führerschein!");
    }
    pInfo[playerid][pLKWschein] = 1;
    GivePlayerMoney(playerid, -30000);
    SendClientMessage(playerid, GELB, "Du hast jetzt den LKW-Führerschein!");
    }
    else
    {
    SendClientMessage(playerid, GELB, "Du bist nicht an der Fahrschule in San Fierro!");
    }
    if (strcmp("/bschein", cmdtext, true, 10) == 0)
    {
    if (PlayerToPoint(playerid, -2079.3142,-123.6668,35.3203))// cords anpassen
    {
    if(GetPlayerMoney(playerid) < 35000)
    {
    SendClientMessage(playerid, GELB, "Du hast nicht genügend Geld!");
    }
    if (pInfo[playerid][pBusschein] == 1)
    {
    SendClientMessage(playerid, GELB, "Du hast schon einen Bus-Führerschein!");
    }
    pInfo[playerid][pBusschein] = 1;
    GivePlayerMoney(playerid, -35000);
    SendClientMessage(playerid, GELB, "Du hast jetzt den Bus-Führerschein!");
    }
    else
    {
    SendClientMessage(playerid, GELB, "Du bist nicht an der Fahrschule in San Fierro!");
    }
    if (strcmp("/boschein", cmdtext, true, 10) == 0)
    {
    if (PlayerToPoint(playerid, -2079.3142,-123.6668,35.3203))// cords anpassen
    {
    if(GetPlayerMoney(playerid) < 10000)
    {
    SendClientMessage(playerid, GELB, "Du hast nicht genügend Geld!");
    }
    if (pInfo[playerid][pBootsschein] == 1)
    {
    SendClientMessage(playerid, GELB, "Du hast schon einen Bootsschein!");
    }
    pInfo[playerid][pBootsschein] = 1;
    GivePlayerMoney(playerid, -10000);
    SendClientMessage(playerid, GELB, "Du hast jetzt den Bootsschein!");
    }
    else
    {
    SendClientMessage(playerid, GELB, "Du bist nicht an der Fahrschule in San Fierro!");
    }
    if (strcmp("/qschein", cmdtext, true, 10) == 0)
    {
    if (PlayerToPoint(playerid, -2079.3142,-123.6668,35.3203))// cords anpassen
    {
    if(GetPlayerMoney(playerid) < 5000)
    {
    SendClientMessage(playerid, GELB, "Du hast nicht genügend Geld!");
    }
    if (pInfo[playerid][pQuadschein] == 1)
    {
    SendClientMessage(playerid, GELB, "Du hast schon einen Quad-Führerschein!");
    }
    pInfo[playerid][pQuadschein] = 1;
    GivePlayerMoney(playerid, -5000);
    SendClientMessage(playerid, GELB, "Du hast jetzt den Quad-Führerschein!");
    }
    else
    {
    SendClientMessage(playerid, GELB, "Du bist nicht an der Fahrschule in San Fierro!");
    }
    return 1;
    }



    //SateChange
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new modelid = GetVehicleModel(GetPlayerVehicleID(playerid));
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(modelid == 472 || modelid == 473 || modelid == 493 || modelid == 595 || modelid == 484 || modelid == 430 || modelid == 453 || modelid == 452 || modelid == 446 || modelid == 454 )
    {
    if(pInfo[playerid][pBootsschein] == 0)
    {
    SendClientMessage(playerid, ROT, "Du hast keinen Bootsschein");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {


    }
    }
    if(modelid == 592 || modelid == 577 || modelid == 511 || modelid == 512 || modelid == 593 || modelid == 520 || modelid == 553 || modelid == 476 || modelid == 519 || modelid == 460 || modelid == 513 )
    {
    if(pInfo[playerid][pFlugzeugschein] == 0)
    {
    SendClientMessage(playerid, ROT, "Du hast keinen Flugzeugschein !");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {


    }
    }
    if(modelid == 548 || modelid == 425 || modelid == 417 || modelid == 487 || modelid == 488 || modelid == 497 || modelid == 563 || modelid == 447 || modelid == 469 )
    {
    if(pInfo[playerid][pHubschrauberschein] == 0)
    {
    SendClientMessage(playerid, ROT, "Du hast keinen Hubschrauberführerschein !");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {


    }
    }
    if(modelid == 581 || modelid == 522 || modelid == 461 || modelid == 521 || modelid == 523 || modelid == 463 || modelid == 586 || modelid == 468 )
    {
    if(pInfo[playerid][pMotorradschein] == 0)
    {
    SendClientMessage(playerid, ROT, "Du hast keinen Motorradführerschein !");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {


    }
    }
    if(modelid == 462 || modelid == 448 )
    {
    if(pInfo[playerid][pRollerschein] == 0)
    {
    SendClientMessage(playerid, ROT, "Du hast keinen Rollerführerschein !");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {


    }
    }
    if(modelid == 524 || modelid == 455 || modelid == 403 || modelid == 443 || modelid == 415 || modelid == 515 || modelid == 531 || modelid == 408 || modelid == 433 || modelid == 427|| modelid == 407 || modelid == 544 || modelid == 432 || modelid == 601 || modelid == 532 || modelid == 486 || modelid == 406)
    {
    if(pInfo[playerid][pLKWschein] == 0)
    {
    SendClientMessage(playerid, ROT, "Du hast keinen LKW-Führerschein !");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {


    }
    }
    if(modelid == 431 || modelid == 437 )
    {
    if(pInfo[playerid][pBusschein] == 0)
    {
    SendClientMessage(playerid, ROT, "Du hast keinen Busführerschein !");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {


    }
    }
    if(modelid == 471 )
    {
    if(pInfo[playerid][pQuadschein] == 0)
    {
    SendClientMessage(playerid, ROT, "Du hast keinen Quadführerschein !");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {


    }
    }
    else
    {
    if(pInfo[playerid][pCarschein] == 0)
    {
    SendClientMessage(playerid, ROT, "Du hast keinen Autoführerschein !");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {


    }
    }
    }
    return 1;
    }


    Findet jemand den Fehler?

  • du hast immer die end klammer bei der abfrage vergessen welche den command text überprüft, beispiel:
    if (strcmp("/boschein", cmdtext, true, 10) == 0)
    {
    //Von der Abfrage fehlt am ende des cmds eine } und das bei jedem cmd

  • hm playertopoint besitzt dein script nicht, ich würde es auch auf die samp funktion umschreiben hat aber ne andere anortnung der variablen.


    http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 1. kein doppel post kannste deine beiträge editieren.
    2. wenn du dir einen schein kaufst, kannst du dir dann sofort noch einen kaufen oder erst nach nem reconnect?

  • in deinen if abfragen rehlt das eturn um nachfolgende aktionen zu unterbrechen/unterbinden:
    if(GetPlayerMoney(playerid) < 55000)
    {
    SendClientMessage(playerid, GELB, "Du hast nicht genügend Geld!");
    return 1; //hier fehlt eins
    }
    if (pInfo[playerid][pFlugzeugschein] == 1)
    {
    SendClientMessage(playerid, GELB, "Du hast schon einen Flugzeugschein!");
    return 1; //und hier fehlt eins
    }

  • Danke ;) klappt alles!


    könnt closen!


    edit:
    noch eine kleine frage ich will einen waffenschein skripten, bei den autos gab es eine definition mit (modelid = 506 || usw....)
    wie geht das mit Waffen? :rolleyes:


    edit2:
    wieder eine Frage!? ich hab jetzt Fahrräder im GM, er will jetzt einen Autoführerschein, ich hab einen sogenannten Fahrradschein drin, es wird aber nicht benötigt, das er gekauft wird, sondern ich stelle beim Spawn direkt auf

    pInfo[playerid][pFahrrad] = 1;


    so hat man den schein sofort beim Spawn! und er stellt ihn, in der datei auch auf 1 aber, jetzt kommen wir zum fehler,
    ich hab bei den modelds ews so gemacht:
    if(modelid == 510 || modelid == 481 || modelid == 509 )
    {
    if(pInfo[playerid][pFahrrad] == 0)
    {
    RemovePlayerFromVehicle(playerid);
    }
    else
    {


    }
    }

    Der Fall das Fahrrad auf 0 steht, tritt doch nicht ein! Er steht von anfang an auf 1, jedoch will der immernoch das ich einen Autoführerschein benutze!?
    Obwohl ich es nur so gemacht hab, das man beim spawn direkt Fahrrad auf 1 stehen hat!?
    Und die Fahrräder sind auch richtig definiert?
    sorry hab schon vieles probiert, kann jemand helfen!?