Beiträge von Tomsen

    Das [playerid] muss bei dem ersten weg.


    Bei den Errors zeig mal den Callback bzw. das wo du die Parameter zuweißt.


    Es steht ja da "undefined symbol..." das heißt es ist nicht deklariert.


    Es kann sein das du es drin hast, aber an der falschen Stelle.


    Wo definierst du die SkinCapOffset?


    - Tomsen

    Mal theoretisch:


    Du gehst jeden Spieler durch - beim ersten Speicherst sein Level - beim 2. machst du ne if abfrage ob das level größer ist als das vorher gespeicherte , wenn ja überschreiben wenn nein nicht - und das so weiter bis es durch ist.
    Zusätzlich beim überschreiben den namen speichern, willste ja auch ausgeben.


    Dann die Variable, also Name und Score ausgeben.


    - Tomsen

    //edit. Wupps. Wer lesen kann ist klar im Vorteil. ^^


    Soll er allen aufn Server das Geld und Level geben? Weil Beispiel:


    2 Sind drauf, bekommen das, ein neuer kommt dazu, die anderen haben inzwischen mehr geld. Admin gibts wieder ein:


    Wieder haben alle das selbe. Bedeutet die die länger drauf sind machen ja Verlust.


    Es sei den du willst den Befehl nur einmal zu Servereröffnung oder etwas derartigem machen.


    Ansonsten würd ich dir empfehlen was mit ocmd zu machen das du das immer an eine Spieler ID gibst.


    ocmd:startbonus(playerid,params[])
    {
    new pID; //pID ist die ID/Name den man als Zahl nach /startbonus eingibt
    // Abfrage ob er ein Admin ist, SpielerInfo[playerid][pAdminlevel]...
    if(GivePlayerScore(pID)<=5) return SendClientMessage(playerid,rot,"Der Spieler ist schon Level 5."); //Checken ob pID level 5 ist.
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,rot,"Benutze: /startbonus [ID/Name]");
    GivePlayerMoney(pID,100000); //100000 $ an pID geben
    SetPlayerScore(pID,5); // pID Score von 5 setzen
    return 1;
    }


    Vorrausgesetzt du hast im Script #include <ocmd> und sccanf drin.


    Aber bei einem GF sollte das drin sein oder?


    Allerdings wenn du es eingeben willst und alle die nicht level 5 haben es bekommen sollen benutzt du ne for schleife.

    ocmd:startbonus(playerid,params[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++) //jeder spieler wird durchgegangen
    {
    if(GetPlayerScore(i)<=5)//trifft bei den spielern zu, das sie unter level 5 sind
    {
    GivePlayerMoney(pID,100000); //100000 $ an pID geben
    SetPlayerScore(pID,5); // pID Score von 5 setzen
    return 1;
    }
    }
    return 1;
    }


    - Tomsen

    Wieso läßt du dann während er sich in der Auswahl befindet und nachdem er eingeloggt ist auf den Interior 0 verweißen?

    if(GetPVarInt(playerid,"loggedin") == 1)
    {
    SetPlayerInterior(playerid,0); // Das brauchst du garnicht bzw. setz es auf den Wert der Interior-ID
    return 1;
    }


    - Tomsen


    //Edit: Hats funktioniert?

    Hm dann musst du erst bei OnPlayerSpawn den Interior null setzen.
    Während er im Interior ist bzw. davor halt die Interior id, die bestimmt nicht null ist. Wenn es ein selbstgemachter ist und die doch null ist..
    dann brauchste die eigentlich garnicht setzen.


    - Tomsen

    Ich halte mich nur an die Fakten die im Gesetz niedergeschrieben wurden. Wenn sich die Polizei nicht dran hält kann ich das auch nicht ändern.
    Ich kann wohl davon ausgehen das wenn ich ein Handy finde die Polizei es auch animmt.


    - Tomsen

    Wenn ich das nicht könnte wäre ich kaum in der Lage mit dir zu schreiben. ;)


    Die Polizei nimmt es nicht? Hm... Wieso gibts dann diese Paragraphen?


    - Tomsen


    //Edit: Nur nochmal so als Anmerkung #

    Bring es einfach zur Polizei. Ich glaube kaum das es gut kommt wenn du versuchst dran rum zu pfuschen um irgentwie die Sperre zu knacken.
    Die Polizei weiß schon was sie damit macht, und es ist dann nichtmehr dein Problem.


    - Tomsen

    OnPlayerRequestClass ist der Teil wo die Spawnanzeige kommt.


    Wie genau du das nun anstellst. Villt spawnen lassen und dann den public nochmal abfragen oder...?


    kP. Ich hab den bei mir komplett draußen.


    - Tomsen


    Die Zahlen müssen ja irgendetwas entsprechen. In meinem Fall oben eben dem Index eines Arrays, welcher die Namen der Items enthält. Die Lösung steht bereits oben, du musst nun dich nur noch hinsetzen und es für dich umschreiben.

    Ich bin jetzt bei dem Teil wo es die Sachen anzeigen soll. Momentan mit der Funktion zeigt es ja wenn vorhanden nur Brot an. Aber wenn der Spieler jetzt mehrere Items hat, muss ich ein 2. strins machen oder wie muss ich das angehen?
    (ich hab auch noch nie mit "strins" gearbeitet).


    if(strcmp(cmdtext,"/inventar",true)==0)
    {
    new dialogMsg[10];
    strins(dialogMsg, iArray[SpielerInfo[playerid][pItem1]], 0);
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Dein Inventar", dialogMsg, "Ok", "Abbrechen");
    return 1;
    }


    Habs jetzt so umgebaut.
    Nur jetzt zeigt es ja nur Brot (wenn überhaupt) an, und wenn ich wieder strins mache überschreib er es ja. Muss ich eine neue dialogMessage machen oder..?


    - Tomsen :thumbup:

    Ich will eigentlich nur für je ein Item eine Zahl speichern.


    Mein Problem besteht gerade nur darin das ich nicht weiß wie ich wenn pItem1 (oder 2,3...) die Zahl 2 hat das das Item dann Brot ist. Bzw. wo ich das festlege bzw. formatiere das es Brot ist.


    - Tomsen

    Array hab ich ja schon von den anderen Spielerdaten, kann ich praktisch da mit rein nehmen? Oder ist es ein neuer Array nur für Items?
    Und müsste für jedes Item das es gibt so einen static stock erstellen damit er die Zeilen im Dialog erstellt?


    - Tomsen :thumbup:

    Könnt ich nicht auch theoretisch 5 Itemplätze mit Zahlen speichern lassen.


    Also 0 = Milch; 1 = Käse; 2 = Brot usw. und dann beim Abfragen im Dialog die Items des Spielers durch gehen..


    Wenn 1 ist, solls eine Zeile mit dem Namen "Käse" erstellen etc.?


    Nur wie kann ich dann definieren das wenn SpielerInfo[playerid][pItem1] eine 2 Steht: Das dann Brot ist. Ich kann ja die 2 nicht im Dialog ausgeben, weiß ja keiner was gemeint ist.


    - Tomsen

    Wenn ich die .sql Datei einspielen will bzw nach dem auswählen im ACP auf abschicken gehe kommt nach langer ladezeit der Fehler:


    Verbindung zur Webseite untebrochen oder Dokument erloschen


    - Tomsen :thumbup: