Beiträge von Jeffry

    Mal anders gefragt, spielt es denn eine Rolle, was dort für ein Zeichen war?


    Wenn du nicht weißt, was dort war, ist es offensichtlich auch nicht wichtig. Ich bezweifle, dass es ein Umlaut war. Zu den Zeichen habe ich etwas recherchiert, dabei habe ich einen Hinweis gefunden, dass es möglicherweise folgendes Zeichen ist:
    >



    Wobei grundsätzlich dort ja ohnehin nur der Name des Toten stehen soll, oder?
    Meines Erachtens nach, kannst du das, und das \n, komplett entfernen und nur den Name anzeigen.

    Ok, dann kannst du es auch so machen:
    Ändere
    else if(pInfo[playerid][P_Current] > 0)
    zu:
    else if(pInfo[playerid][P_Current] == i)


    Und der andere Code dann so:
    if(dialogid == DIALOG_FAHRZEUG3)
    {
    if(response)
    {
    if(PCar[playerid][listitem][P_MID] < 400)
    {
    //Fahrzeug <Leer> ausgewählt
    }
    else if(pInfo[playerid][P_Current] == listitem)
    {
    //P_Current bereits dieses Fahrzeug
    }
    else
    {
    //Key auswählen
    pInfo[playerid][P_Current] = listitem;
    }
    }
    else
    {
    //Wenn er wieder zurück ins Hautpmenü will
    }
    return 1;
    }


    Sorry für die Verwirrung. Da bin ich noch vom Ursprung ausgegangen.

    Edit:
    Mir fällt gerade noch ein, du zeigst ja alle Slots an, auch die leeren. Ist das noch so, oder hast du das geändert?


    Wenn ja, dann kannst du die Schleife weg lassen und auch den switch und es einfach so machen:
    pInfo[playerid][P_Current] = listitem;

    Das verstehe ich ja nicht, also wie mache ich diesen Zähler? (dummer Frage)

    Genau so Fragen sollst du ja stellen, endlich! Wenn du etwas nicht verstehst, musst du sagen, was genau du nicht verstehst.
    Nur dann kann dir zielgerichtet geholfen werden.


    Ein Zähler ist einfach ein Integer:
    new counter = -1;
    //for(new ...
    {
    counter++;


    Den Counter natürlich nur dann hochzählen lassen, wenn das Fahrzeug auch existiert.
    Versuche, ob du damit jetzt weiter kommst. Ansonsten frage gerne zielgerichtet weiter. Wie gesagt, ich möchte, dass du es verstehst, dazu musst du es selbst coden.
    Würde ich es mir einfach machen, schreibe ich dir den Code in 2 Minuten hin, das wäre aber nicht Sinn der Sache.

    Schaue dir die beiden Punkte nochmal an.

    Bei Dialog-Klick: Nochmal Schleife durch die Fahrzeuge und counter so lange hochzählen lassen, bis identisch zu listitem (das listitem kann unter Umständen falsch sein, wenn in der Mitte ein Fahrzeug nicht existiert).


    Den index aus der Schleife in P_Current setzen.


    Davon hast du bis auf die Schleife nichts umgesetzt.
    Versuche doch anhand dessen mal, die Punkte exakt so umzusetzen. Nochmal einzeln gesplittet:

    • Schleife
    • Zähler hochzählen (bei -1 beginnen)
    • Zähler mit listitem vergleichen
    • Wenn Zähler == listitem: Index aus Schleife (i) in P_Current schreiben


    P_Current darf übrigens kein enum-Wert von PCar sein, sondern muss zum PlayerInfo (oder wie es bei dir eben heißt) gehören.


    Versuche das so im Code umzusetzen. Hake alle 4 Punkte ab. Poste dann den Code nochmal.
    Es geht hier um Basics, die musst du verstehen, sonst kann ich dir den Code auch komplett schreiben und du lernst nichts dabei.

    Richtig, war dort ein Zeit lang aktiv. Ist aber schon eine Zeit her. Hab heute SAMP wieder entdeckt und musste mich gleich wieder ans Scripting setzen;)

    Oh ja, das ist schon ewig her. Wenn ich mich richtig erinnere hat MID den Mini Missions um Ende 2009 geschlossen, daraufhin habe ich damals mit nem Kumpel angefangen, einen eigenen Server aufzubauen (Okt. 09).
    Ewig her :/


    Aber immer wieder schön jemanden aus der Zeit noch zu treffen :)

    Das ist komisch, sollte eigentlich nicht passieren.
    Aber versuche es wie gesagt mal mit Checkpoints, vor allem dort, wo Pickups nicht gehen.


    Alternativ eben OnPlayerUpdate, das geht auch. Du hast ja immer separate Modes, somit halten sich die zu prüfenden Zonen ja im Rahmen.

    Problem wenn zwei Spieler gleichzeitig in diesen Sphere fahren bzw drin sind kriegt nur einer das Nitro/Repair

    Warum eigentlich? Das Callback sollte doch für beide Spieler aufgerufen werden, oder löschst du die Sphere direkt, wenn der erste rein gefahren ist?


    Pickups kannst du außerhalb der genannten Zonen auf jeden Fall nicht erstellen.
    Du kannst aber einen Checkpoint dort erstellen, so habe ich es bei mir auf dem Server damals gelöst. Dieser wird dann auf dem Meeresspiegel angezeigt, erkannt wird er aber dort wo du ihn gesetzt hast, sprich auf Maps, wird er nicht angezeigt, funktioniert aber trotzdem. Das wäre ja sogar genau das, was du haben möchtest.

    Dann funktioniert es prinzipiell aber.
    Am besten du löschst jetzt nochmal alle Datensätze, wenn der Server aus ist, startest ihn dann wieder und legst dann nochmal neue Fahrzeuge an.


    Wenn der Server wieder abstürzt, poste bitte, was dir crashdetect im Server Log ausgibt.

    Das kann eigentlich nicht sein, wenn der Code exakt so ist.
    Ich habe den Code nach den Posten nochmal direkt danach geändert, hast du diese Änderung im Code? Übernehme den Code bitte nochmal neu in deinen Code.
    Dort war bei ersten format noch der Indexzugriff drin, den hatte ich noch entfernt.