Mietroller System

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
  • Gar nicht mal so schlecht, vor allem für Anfänger die das selber nicht hinkriegen ;)


    8/10 weil es nichts besonderes ist :)

    Du brauchst Hilfe beim scripten? Siehe Hier:


    Klick mich!


    Derzeitiges Projekt: Youngs Deathmatch 1.0.0 [||||||||||]

  • Leider kann ich dazu sehr wenig sagen, naja was ich aber sagen kann, es ist nicht gerade nötig bzw. nützlich.
    Arbeite das nächste mal mit switch und case, gewöhns dir einfach an. Nun wenn du schon sowas machst, dann erstell dir Roller nur nach gebrauch bzw. Anfrage, und nicht von Anfang an. Außerdem arbeitest du da etwas hmm



    • new string[256];

    • new roller[5];

    =>

    new string[200], roller[5], vehicleid, mietroller;


    Auch CreateVehicle kannst du in einem enum abkürzen.
    globale Definition
    #define Preis 150


    GivePlayerMoney(playerid,-Preis);
    Damit du es nicht immer suche musst, was der Roller kosten soll.

    DestroyVehicle(roller[0]);




    ....


    for Schleife?



    Nun wenn du schon sowas aus langeweile in die Welt setzt, dann bitte nicht so schlampig. gehört außerdem eher in Codeschnipsel.

  • Ich mach dann mal dort weiter,wo Deuce aufgehört hat.
    Da sind noch mehr Dinge,die nicht korrekt sind.Langeweile hin oder her, wer soll von falschem Code lernen ?
    new mietroller;
    SetPVarInt(playerid,"Mietroller",mietroller);

    Z.26-27
    Wozu ist die Variable gut ?


    format(string,sizeof(string),"Du hast den Roller erfolgreich gemietet!");
    SendClientMessage(playerid,weiß,string);

    Z.28-29
    Wozu formatierst du ? Da dort keine Platzhalter sind,kannst es auch direkt in die ClientMessage schreiben und sparst a) die Funktion format und b) das Array string.


    #include <sscanf2>
    Z.5
    Du benutzt kein sscanf. Was ist wenn ich die Include nicht habe und sie trotzdem gesucht wird ? Es gibt einen Fehler, obwohl die Datei sowieso nicht gebraucht wird.


    Das Mieten funktioniert doch sowieso nicht.Wo wird dort der Spieler als Besitzer festgelegt ?

  • Solltest du formatieren wollen, eventuell nächste Version kannst du es dir leichter machen.
    #define formatedmessage(%0,%1,%2) do{new _string[128]; format(_string,sizeof(_string),%1,%2); SendClientMessageToAll(%0,_string);} while(FALSE)
    formatedmessage(Farbe, "Blabla ID : %d",vehicleid);
    Global definieren und es leichter Verwenden. Somit nimmst du wenigstens nur einen Code in anspruch und nicht gleich mehrere, die wie auch o.g zu nichts nützlich sind.


    Und wenn du schon sscanf verwendest, dann bitte gescheid.

    • Offizieller Beitrag

    Danke für eure Kritik. Ich überarbeite dass einmal ;)


    //edit: Ist zwar immer noch ein Codeschnipsel, aber hier etwas verbessert - allerdings kann jeder den gemieteten Roller benutzen ;) Kann ja jeder nach Wunsch verändern ^^

    //Mietroller Filterscript von NiLsx3 aka [SaL]Easy (c)2012
    #include <a_samp>
    #include <ocmd>



    #define weiß 0xFFFFFFAA


    new string[256];
    new mietroller;


    public OnFilterScriptInit()
    {
    CreatePickup(1239,1,1561.0819,-2334.9595,13.1431,0);
    Create3DTextLabel("/rollermieten",0xFF8C00FF,1561.0819,-2334.9595,13.1431,15.0,0,1);
    print("\nMietroller System geladen! Viel Spaß damit!\n");
    return 1;
    }


    ocmd:rollermieten(playerid, params[])
    {
    if(GetPVarInt(playerid,"Roller") == 0)
    {
    SetPVarInt(playerid,"Mietroller",1);
    SetPVarInt(playerid,"Roller",1);
    format(string,sizeof(string),"Du hast den Roller erfolgreich gemietet!");
    SendClientMessage(playerid,weiß,string);
    GivePlayerMoney(playerid,-150);
    mietroller=CreateVehicle(462,1560.7780,-2331.8801,13.1417,96.7936,1,1,-1);
    return 1;
    }
    SendClientMessage(playerid,weiß,"Du hast bereits einen Mietroller!");
    return 1;
    }
    ocmd:rollerentmieten(playerid,params[])
    {
    if(GetPVarInt(playerid,"Mietroller") != 1) return SendClientMessage(playerid,weiß,"Du hast keinen Roller gemietet!");
    SendClientMessage(playerid,weiß,"Du hast deinen Roller entmietet!");
    SetPVarInt(playerid,"Mietroller",0);
    DestroyVehicle(mietroller);
    SetPVarInt(playerid,"Roller",0);
    return 1;
    }
    ocmd:rollerport(playerid,params[])
    {
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,weiß,"Dieser Command ist nur für RCON Admins.");
    SetPlayerPos(playerid,1561.0819,-2334.9595,13.1431);
    return 1;
    }

  • Help C:\Users\xXx\Desktop\Streets of Gangs\filterscripts\roller.pwn(21) : error 032: array index out of bounds (variable "roller")
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    1 Error.

  • new string[256];
    new roller[7];


    public OnFilterScriptInit()
    {
    roller[1] = CreateVehicle(462,809.0234,-1355.2197,13.1416,0.0612,0,0,-1);
    roller[2] = CreateVehicle(462,811.4476,-1355.2308,13.1408,1.4090,1,1,-1);
    roller[3] = CreateVehicle(462,813.3122,-1355.1873,13.1393,359.2857,2,2,-1);
    roller[4] = CreateVehicle(462,815.2267,-1355.1611,13.1401,356.5142,3,3,-1);
    roller[5] = CreateVehicle(462,816.9099,-1355.1403,13.1392,356.4056,4,4,-1);
    roller[6] = CreateVehicle(462,818.7502,-1355.2039,13.1391,355.2290,5,5,-1);
    roller[7] = CreateVehicle(462,820.8056,-1355.2079,13.1393,356.9412,6,6,-1);
    print("\nMietroller System geladen!\n");
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen