Beiträge von Ditti

    Bots können nur fest eingestellte Strecken abfliegen, können Spielern jedoch nicht folgen.
    Das Bot spawnen lassen geht dann mit ConnectBot().

    ocmd:su(playerid,params[])
    {
    new pID,wanted;
    if(sscanf(params,"ui",pID, wanted)) return SendClientMessage(playerid, ROT, "Benutzung: /su [ID] [Anzahl]");
    new string[128];
    format(string, 128, "Du hast %i Wanteds von Officer %s bekommen", wanted, SpielerName(playerid));
    SetWantedLevelFromPlayerUP(pID, wanted);
    SendClientMessage(pID, GELB, string);
    return 1;
    }


    Kombiniertes Wissen! :D

    ocmd:su(playerid,params[])
    {
    new pID,wanted;
    if(sscanf(params,"ui",pID, wanted)) return SendClientMessage(playerid, ROT, "Benutzung: /su [ID] [Anzahl]");
    SetWantedLevelFromPlayerUP(pID, wanted);
    SendClientMessage(pID, GELB,"Du hast %i Wanteds von Officer %s bekommen", wanted, SpielerName(playerid));
    return 1;
    }

    Das sollte laufen :)


    Edit: Fehler korrigiert.

    Naja, die spawnen, sobald sie verbinden.
    Das heißt: wenn du in OnGameModeInit einmal ConnectBot drin hast, spawnt er schon da.
    Nimm diesen Befehl aus OnGameModeInit raus und schieb ihn in so ein Kommando, wie ich es oben geschrieben hab.

    Und ergänzend die passende Erklärung: in SendClientMessage funktionieren die Platzhalter wie %s nicht. Du musst vorher mit format einen string vorbereiten, den du dann mit SendClientMessage ausgibst. :)


    Hallo ich wollte mal fragen wie ihr eure Textdraws macht mit nem Editor selbst ?



    Ich verstehe das nie mit den Positionen auf dem Bildschirm


    Ich probiere das immer so lang, bis es passt - also ohne Editor.


    Als wichtiger Anhaltspunkt ist auch hier das Wiki anzumerken - dort steht nämlich bei TextDrawCreate drin, dass sich die Positionen immer auf eine Auflösung von 640*480 beziehen. :)

    Bei mir ist im ersten Beitrag der zweite Code komplett auf einer Zeile und das ist leicht unlesbar. :D


    Aber kann auch an mir liegen, ich prüfe mal eben was. :)


    Edit: Mh, sieht auch am Handy so aus. Kannst du den stock mal bitte bei pastebin.com posten?

    Dann weiß ich glaube ich, woran es liegt.


    Probier mal bitte das:


    stock SetPlayerPosX(playerid, Float:Px, Float:Py, Float:Pz)
    {
    if(GetPlayerState(playerid) == PLAYER_DRIVER)
    {
    new vid = GetVehicleID(playerid);
    SetPlayerPos(playerid, Px, Py, Pz);
    SetVehiclePos(vid, Px, Py, Pz);
    PutPlayerInVehicle(playerid, vid, 0);
    }
    else
    {
    SetPlayerPos(playerid, Px, Py, Pz);
    }
    }


    Sieht jetzt zwar nicht nach viel aus, sollte aber effektiv sein. :)

    Ja das hört sich gut an sprich weiter :D


    Ich habe min das auch schon überlegt, Kann ich dann einfach zB oben: #define TestBraun 0x907143A3


    und dann aus der datei testbraun auslesen?


    Dini ist nicht mein Gebiet, deswegen werde ich mal eben mit PVar arbeiten, kannst die Farbe ja bei Spielerladen oder sowas in die Pvar schreiben.


    if(GetPVarInt(playerid, "Farbe") == 1) //die 1 steht jetzt mal für braun ;)
    {
    GameZoneShowForPlayer(playerid, Testzone1, COLOR_BROWN); //#define für COLOR_BROWN oben im Header nicht vergessen :)
    }
    else if(GetPVarInt(playerid, "Farbe") == 2)
    {
    //das Gleiche in grün
    }


    Bei noch mehr Farben eignet sich switch hier besser als if ... else if ... else ...


    Hoffe, es hilft. :)

    kann mir jemand mal ein blacklist system? weil ich das iwi nicht hinbekomm einfach mit ocmd und für die gangfraktionen halt


    Was sollen wir dir das Blacklistsystem? Vorsingen? :P
    Nein, im Ernst: kommt ganz darauf an, wie du deine Daten handhabst.
    Mit Dini solltest du eine blacklist.txt erstellen und dann immer Spieler mit geblacklisteter Fraktion und evt. Grund hinzufügen, bei SQL würde sich eine Tabelle namens Blacklist eignen, hier ebenfalls mit den Feldern Name, Fraktion und Grund.

    Was mir als Tipp jetzt einfällt: ints und floats musst du nicht in ' ' setzen, kannst sie also bei Format einfach so auflisten:
    "%d, %d, %f, %d, ..."
    Nur Strings sind in ' ' zu setzen, kannst aber trotzdem weiterhin auch ints und floats in ' ' setzen. :)


    Aber warum das nun nicht geht, ist mir echt ein Rätsel...


    Das könnte problematisch werden - du setzt hier ja zuerst die Spielerposition und damit ist er aus dem Auto raus.
    Und ich würde eher prüfen, ob er Fahrer ist und nicht, ob er in irgendeinem Auto drin ist. :)


    stock SetPlayerPosX(playerid, Float:Px, Float:Py, Float:Pz)
    {
    if(GetPlayerState(playerid) == PLAYER_DRIVER)
    {
    new vid = GetVehicleID(playerid);
    SetVehiclePos(vid, Px, Py, Pz);
    PutPlayerInVehicle(playerid, vid, 0);
    }
    else
    {
    SetPlayerPos(playerid, Px, Py, Pz);
    }
    }


    Sollte besser laufen. :)


    Edit: man könnte nun noch weiter gehen und prüfen, wer von allen Spielern alles in diesem Auto sitzt und die auch mit reinsetzen. Aber DAS krieg ich dann nicht am Handy hin. :D