Beiträge von Andosius


    id = CreateDynamicObject(3522, 1752.5, -1768.6, 12.6, 0, 0, 268.918); ObjectCreatedInFS[id] = true;
    id = CreateDynamicObject(3522, 1756.9, -1768.6, 12.6, 0, 359.608, 268.918); ObjectCreatedInFS[id] = true;
    id = CreateDynamicObject(3522, 1761.3, -1768.7, 12.6, 0, 0, 268.918); ObjectCreatedInFS[id] = true;
    id = CreateDynamicObject(1359, 1725.1, -1768.1, 13.2, 0, 0, 0); ObjectCreatedInFS[id] = true;
    Warum das denn bitte?
    Es wird lediglich der Wert 0 und 1 gespeichert, die ID ist dann doch nur der Zugriffswert.
    Du wirst doch schon allein aus dem Array heraus die Objekte mit der ID 1 und 0 löschen, oder verstehe ich das falsch?
    Bei dem Vorhaben muss der Array zweidimensional sein, oder nicht? Dort ist dann lediglich das Bool zu viel.
    Sonst sollte es ja eigentlich fast gleichen bleiben.
    Bei Korrektur mit dem @ ansprechen.
    Jeffry:



    Liebe Grüße,
    iEnerqie.


    Du musst die PTD Funktionen nutzen, nicht die normalen TD Kack-Dinger ;)
    Btw, probier mal %.0f
    Oder lass über PAWN das Ergebnis runden. :)

    Erstmals: Spam.


    So, wenn ich mich nicht irre, ist die Heilanzeige eine Float, somit wirst du auch %f nutzen müssen.
    Zudem:



    new TDTimer[MAX_PLAYERS]; //Für PTDraws
    //Nun OnPlayerConnect
    SetTimerEx("deintimername",1000,true,"i",playerid);//Falschrum? 0.o

    Außerdem:
    du musst mit PlayerTextDraws arbeiten,da die Variable global ist.
    Wenn du Hilfe brauchst: melde dich einfach wieder hier.



    E: Fehler korrigiert

    Klar, jedoch ist der Code hier rein improvisiert. Über das Handy ist es bisschen blöd.



    new fuenfZeilen[MAX_PLAYERS];
    public OnPlayerText(playerid, text[]){
    new string[128];
    format(string, 128, "%s: %s",getNameByID(playerid),text);
    if(fuenfZeilen[playerid] != 5){fuenfZeilen[playerid]++,SendClientMessageToAll(0xFFFFFFFFF,string),return 0;}
    SendClientMessageToAll(0xFF0000FF,string)
    fuenfZeilen[playerid]=0;
    return 0;
    }


    public OnPlayerConnect(playerid){
    fuenfZeilen[playerid]=0;
    return 1;
    }


    Ich habe keine Ahnung ob das so klappen wird, jedoch bin ich etwas müde da ich erst um 3 Uhr schlafen gegangen bin + 8 Stunden Schule.
    Natürlich könnte man das resourcenschonender machen, was für das Beispiel eigentlich nicht nötig sein sollte. Natürlich kann man bei jedem Chatbefehl das so nutzen, muss ich aber eher nicht zeigen, oder? :)



    //Sinn-Fehler könnt ihr behalten, bin müde ;)


    Grüße.

    Natürlich geht das.
    @Paradoxon:

    SendClientMessage(playerid,0xFFFFFFFF,"Hey, {FF00FF} ich bin {FF0000}bunt{000000}!");

    Und ja, das mit jeder X Zeile geht, sofern immer der gleiche Chat genutzt wird oder eine Variable standardmäßig genutzt wird.


    Gruß


    E: Korrektur

    Poste mal den ganzen Code der dazugehört, du hast das bestimmt überall falsch gemacht, deshalb klappt das auch nicht.


    "überall falsch gemacht,"
    Sehr nett, ich bedanke mich bei dir und dann sowas. Sympathisch.


    Ich habe den kompletten Code nochmal überarbeitet und alles 1:1 gemacht wie du es hattest:

    Code
    [20:43:20] Neuer Text: 
    [20:43:20] Neuer Text: 
    [20:43:20] Neuer Text: 
    [20:43:20] Neuer Text: 
    [20:43:20] Neuer Text:


    Hängt sich der Server denn immer noch auf?


    Habe vorhin versehentlich ein Return 1; gesetzt, das war die Ursache -> sollte kein Problem mehr sein.


    Kannst du mal sagen, was du überhaupt eingegeben hast?


    Frage: --> Hallo, Tag, Hola, Hallo, Tag, Hola, Hallo, Tag, Hola


    Das dient rein zum testen, der Inhalt ist irrelevant.



    Code:

    for(new f=0; f<5; f++){
    aReport[f] = false;
    bReport[f] = false;
    //format(zReport[f][2*MAX_PLAYER_NAME+10],2*MAX_PLAYER_NAME+10,"%d:",f+1);
    format(zReport[f],2*MAX_PLAYER_NAME+10,"%d:",f+1);
    printf("Neuer Text: %s", zReport[f][2*MAX_PLAYER_NAME+10]);
    }


    for(new i; i<5; i++)
    {
    printf("Starte i=%d", i);
    printf("%d / %d", aReport[i], bReport[i]);
    if(aReport[i] == true || bReport[i] == true)
    {
    failed++;
    printf("failed = %d", failed);
    continue;
    }
    if(aReport[i] == false && bReport[i] == false)
    {
    printf("Beides false");
    bReport[i] = true;
    printf("bReport = %d", bReport[i]);
    format(fReport[i],128,"Frage: %s",grund);
    printf("fReport = %s", fReport[i]);
    format(string,sizeof(string),"[SUP] Spieler %s hat ein Ticket erstellt! ID: %d",SpielerName(playerid),i+1);
    printf("string = %s", string);
    SendeAllenAdmins(string);
    printf("ID: %i (+1 = %i) - aReport: %d - bReport: %d",i,i+1,aReport[i],bReport[i]);
    format(string2,sizeof(string2),"%s %s",zReport[i],SpielerName(playerid));
    printf("DEBUG-TDS: %s",string2);
    TextDrawSetString(Text:Report[i],string2);
    printf("break");
    break;
    }
    if(failed == 5)
    {
    printf("failed");
    SendClientMessage(playerid,COL_aREPORT,"DEBUG TEST FÜR'S ERSTE!");
    break;
    }
    printf("ganz unten");
    }
    printf("FERTIG");


    Edit1: Rechtschreibung und Umformulierung

    Okay, das geht nun in die komplett falsche Richtung. :)



    Naja, trotzdem erstmal vielen Dank, dass du dich so bemühst.



    Gruß,
    iEnerqie.


    Oh, danke. xD Sehr nett.
    fReport[ i ][128]
    -> Die Fragen


    Hier das Ergebnis:


    E1:


    Jedoch werden die Zahlen vor dem Ding nicht mehr angezeigt wie du im Debug siehst, bei der 1 fehlt sogar der Doppelpunkt.


    E2: [ i ] verbessert

    Ich habe zwar ein Durchblick von 0 aber okay, hier sind die Ergebnisse Jeffry: .

    Geht leider schlecht, da ich eine Schleife nutze.
    Diese wird am Ende dann mit
    break;wieder beendet.


    Hängen tut es ja nur da:

    format(string2,sizeof(string2),"%s %s",zReport[i][2*MAX_PLAYER_NAME+10],SpielerName(playerid));
    TextDrawSetString(Text:Report[i],string2);


    Siehe alle meine Debugs, alles wird ordnungsgemäß verpackt, etc.
    Nur dort kommt diese blöde Ziege mit dem Namen "5"....


    Und endlos ist die Schleife auf jeden Fall nicht. ;)



    for(new i; i<5; i++)
    {
    if(aReport[i] == true || bReport[i] == true){
    failed++;
    continue;
    }
    if(aReport[i] == false && bReport[i] == false){
    bReport[i] = true;
    format(fReport[i][128],128,"Frage: %s",grund);
    format(string,sizeof(string),"[SUP] Spieler %s hat ein Ticket erstellt! ID: %d",SpielerName(playerid),i+1);
    SendeAllenAdmins(string);
    printf("ID: %i (+1 = %i) - aReport: %d - bReport: %d",i,i+1,aReport[i],bReport[i]);
    format(string2,sizeof(string2),"%s %s",zReport[i][2*MAX_PLAYER_NAME+10],SpielerName(playerid));
    TextDrawSetString(Text:Report[i],string2);
    printf("DEBUG-TDS: %s",string2);
    break;
    }
    if(failed == 5){
    SendClientMessage(playerid,COL_aREPORT,"DEBUG TEST FÜR'S ERSTE!");
    break;
    }
    }


    ----
    Jetzt macht zwar jeder noob C&P und wird das in einem anderen Thread haben aber egal.. ^^


    e1: gefailt, habe Tab gedrückt..



    Gruß,
    iEnerqie.

    Dein Server geht aus, oder? Das ist normal, dass dann die Verbindung neu aufgebaut wird, wenn du den Server wieder startest, bzw. wenn der Server automatisch wieder gestartet wird.
    Genau dafür ist das Plugin.


    xD



    So war nicht nicht gemeint.
    Ich meine es so:
    Report 5 wird erstellt -> Server verliert Verbindung -> Connection Lost ohne Nachricht -> Console reagiert nicht.


    Zumindest ist nach dem letzten Debug klar, dass der Fehler beim Command (umformatieren) auftritt.

    Hallo liebe Community.



    Dadurch, dass ein Textdraw nicht einen String erhält, crasht mein Server nach dem 5ten Textdraw .
    Ich habe mal das Problem "gedebugged" und raus kam folgendes:



    Dort muss auf den Unterschied geachtet werden, aReport und bReport ist irrelevant. Es geht nur um "DEBUG-TDS: ---"


    Dort, wo jeder TextDraw seine "ID" Ingame bekommt:



    for(new f=0; f<6; f++){
    aReport[f] = false;
    bReport[f] = false;
    format(zReport[f][2*MAX_PLAYER_NAME+10],2*MAX_PLAYER_NAME+10,"%d:",f+1);
    }


    Kleiner Part wo die Debugs erstellt werden:

    Spoiler anzeigen

    printf("ID: %i (+1 = %i) - aReport: %d - bReport: %d",i,i+1,aReport[i],bReport[i]);
    format(string2,sizeof(string2),"%s %s",zReport[i][2*MAX_PLAYER_NAME+10],SpielerName(playerid));
    TextDrawSetString(Text:Report[i],string2);
    printf("DEBUG-TDS: %s",string2);



    -------
    Kleine Information zu oben:


    Dadurch stürzt der Server nach dem 5ten Report immer ab, was ich mir eigentlich nicht erklären kann...



    Mit freundlichen Grüßen,
    iEnerqie.


    E1: Beim ersten Expander was hinzugefügt. (Nachtrag ist kursiv)


    E2:


    Beim umformatieren kommt der Fehler O.o

    Spoiler anzeigen

    [19:08:35] Neuer Text: 1:
    [19:08:35] Neuer Text: 2:
    [19:08:35] Neuer Text: 3:
    [19:08:35] Neuer Text: 4:
    [19:08:35] Neuer Text: 5:


    Les dir den Artikel richtig durch, du musst aus der Variable ein Array machen.


    2.Schreib lieber dein eigenes Script, GFs sind meist totaler Buggy-Shit.



    Wie willst du Erfahrung sammeln, wenn du dort nur C&P nutzen musst.


    Kannst ja aber machen was du willst, ist dir überlassen.



    E: auch ein Klammerfehler.


    Doch doch, man kann User, Gruppen und noch irgendwas Rechte geben.


    Das System läuft so ab:
    R W X


    Kann mich gerade an den dritten Wert nicht erinnern. Logischer Weiss Read, Write und View.


    Wenn die Werte nicht stimmen und der User nicht root ist, klappt da nichts.



    Gruß,
    -iEnerqie



    E1 + 2: was korrigiert


    Der letzte Wert ist das sehen oder so :)