Beiträge von foestwing

    Danke, hab es aber selber grade festgestellt.


    Probiere grade noch etwas rum, weil es immer noch nicht so funktioniert wie ich es brauche, aber melde mich dann nochmal.


    Trotzdem danke für die Hilfe, hatte die Lösung nicht bedacht.

    Ach guter Lösungansatz, bin ich nicht drauf gekommen.


    Trotzdem gibt es ein weiteres problem. Wenn Ich nur /notruf benutze, dann zeigt er mir einen Checkpoint an. und wenn ich /notruf 0 schreibe, dann zeigt er mir die leere Liste


    Bin grade dabei es zu versuchen, wie man es löst, aber vielleicht fällt es hier einem ja schneller ein.

    Hey,


    ich habe ein kleines Problem.


    Ich möchte den Befehl /notruf programmieren. Dieser soll folgerndermaßen funktioneren: wird /notruf mit einer ID benutzt, dann soll zu dieser person ein Checkpoint führen. Wird der Befehl jedoch ohne ID verwendet, dann soll eine Liste angezeigt werden, wo alle aufgelistet sind.


    Das Problem welches ich habe ist, dass ich nicht weiß, wie man ausließt ob der Paramter leer ist oder ob eine ID angegeben wurde.

    #if !defined isnull
    #define isnull(%1) \
    ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
    #endif



    ocmd:notruf(playerid,params[])
    {
    new pID,str2[500],name[MAX_PLAYER_NAME];
    if(sInfo[playerid][pFraktion] != 6) return SendClientMessage(playerid,COLOR_HINWEIS,"Du bist kein Sanitäter!");
    //if(sscanf(params,"{u}",pID)) return SendClientMessage(playerid,COLOR_HINWEIS,"INFO: /wiederbeleben [ID]");
    //if(sInfo[playerid][pDuty] != 1) return SendClientMessage(playerid,COLOR_HINWEIS,"Du bist nicht im Dienst!");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_HINWEIS,"Der Spieler ist nicht online!");
    if(isnull(params))
    {
    format(str2,sizeof(str2),"Verbleibende Notrufe: \n");
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(sInfo[i][pTot] == 1)
    {
    format(str2, sizeof(str2),"%s [%i] %s Ort: %s, %i Sekunden verbleibend. \n",str2,i,GetPlayerName(i,name,sizeof(name)),GetPlayerArea(i),sInfo[i][pTotZeit]);
    }
    }
    SendClientMessage(playerid,COLOR_RETTUNG,str2);
    return 1;
    }
    else
    {
    SetPlayerCheckpoint(playerid,sInfo[pID][pTotX],sInfo[pID][pTotY],sInfo[pID][pTotZ],5);
    return 1;
    }
    }


    Weiß jemand wie ich bei OCMD prüfe, ob der Paramter gefüllt ist oder nicht ?? (Siehe Zeile 11 & 14)



    Danke

    Ich würde an deiner Stelle generell lieber mit einem Enum für die Spieler arbeiten. Ich persönlich finde das viel einfacher, auch wenn dein Script irgendwann mal 20000 Zeilen hat.

    Es geht ja auc nicht nur darum, ob am Ende viele User drauf sind. Wenn du grade Lust auf's scripten hast, dann mach es einfach. Wenn es Spaß macht, ist es ja absolut in Ordnung. Und vielleicht wird daraus dann irgendwann mal ein guter Server, aber das würde ich nicht unbedingt in den Mittelpunkt rücken.

    Weißt du eigentlich was du für einen Mist schreibst?
    Deine Antwort ist 1:1 meine.


    Lern du lieber auch die Grundlagen, dann wüsstest du das.
    Nehm es nicht persönlich, jedoch ist das einfach genau das gleiche. Zudem muss man dass i nicht einsetzen bei einer While Schleife ;)
    Statt deine Beiträge zu pushen solltest du lieber andere dir angucken und mal lieber was vernünftiges bringen.

    Les das bitte nochmal durch !!


    Das Ergebnis ist das selbe (habe ich auch nie verneint). Ich habe geschrieben, dass deine Lösung nicht die OPTIMALE Lösung ist.
    Der Grund ist ganz einfach. While & For-Schleifen haben bestimmte "Funktionen" die sie erfüllen. Eine For-Schleife ist wirklich NUR für das zählen gedacht, deshalb wird Sie auch Zählschleife genannt ! While-Schleifen werden/können auch noch für ganz andere Funktionen benutzt werden.


    Warum sollte man eine While-Schleife schreiben, wenn es extra dafür eine spezielle Schleife gibt ??


    Zudem muss man dass i nicht einsetzen bei einer While Schleife ;)


    Was meinst du damit ?


    for(new i=0; i<sizeof(TuTsxi); i++)
    {
    AddVehicleComponent(TuTsxi[i],1028);
    AddVehicleComponent(TuTsxi[i],1169);
    AddVehicleComponent(TuTsxi[i],1141);
    AddVehicleComponent(TuTsxi[i],1032);
    AddVehicleComponent(TuTsxi[i],1139);
    AddVehicleComponent(TuTsxi[i],1030);
    AddVehicleComponent(TuTsxi[i],1074);
    AddVehicleComponent(TuTsxi[i],1086);
    }
    Das ist der komplette benötigte Code. Das "i" ist die Laufvariable und hier ebenfalls der Index. Das spart Code länge und ist effektiver.
    Du könntest zwar auch eine While-Schleife verwenden, aber wer macht das für so eine Funktion ??


    Bevor du so eine Antwort schreibst und respektlos, unüberlegt und auch beleidigend antwortest, solltest du mal lieber erst irgendwelche Argumente für deine Methode und Gegenargumente für meine Methode aufzählen, anstatt so etwas zu schreiben.


    Gerne können sich auch andere hier zu Wort melden !


    Das ist aber auch nicht die optimale Lösung !!!


    Genau dafür sind Zähl-Schlaifen gemacht.


    for(new i=0; i<sizeof(TuTsxi); i++)
    {
    AddVehicleComponent(TuTsxi[i],1028);
    //Und so weiter


    }

    u steht für die ID des Spieler's ODER seinen Namen.


    Du könntest auch "i" benutzen, dann könnte man aber nur die ID angeben. Und bei "s" nur den namen des Spielers. So kann man beides benutzen.

    wieso strcat()??? Das iost um Variablen Strings zu ergänzen.


    Nehme das strcat raus und auch strdel.


    Schreibe entwerder Mehrmals Update Befehle oder mache 2 Functions.. einmal für Inter und String. z.b. mysql_setString(table, spalte, set,, where)


    Wenn man so eine Funktion schreibt/nutzt wie mysql_setString, dann wird für jedes einezelnes Feld in der Datenbank bzw. jede einzelne variable eine Query weggeschickt. Dies könnte irgendwann zu Laggs führen.
    Mach lieber eine lange Query oder teil Sie in 2 Query's auf

    Hey,


    um ehrlich zu sein finde ich deine Speicherfuntkion extrem unübersichtlich. Das geht viel einfacher und mit mehr Überblick. Es reicht auch wenn du nur eine query (oder 2) formatierst und abschickst. Mach die query dafür einfach etwas länger

    Ja das weiß ich auch alles, jedoch habe ich Probleme das zu scripten.
    Ich habe ja einen Pastebin gepostet mit allen scriptteilen. Vielleicht konnte einer diese Funktionen für mich scripten( kann auch nur ein Teil sein und ich ergänze den Rest)
    Es fehlen ja nur noch die Funktion für das Auto kaufen und der Rest des Tunings. Ein Teil wird ja schon gespeichert

    Also,


    Ich habe das Carsystem angefangen. Man steigt in ein Kaufauto und man bekommt einen Dialod angezeigt. Dann kann man das Auto kaufen, doch nun weiß ich nicht wie man die Funktion für Autokaufen machen, also das ein Autoerstellt wird und ein Eintrag in meiner MYSQL Tabelle erstellt wird.Ausserdem bekomme ich das Tuning nicht hin