Beiträge von Jeffry

    Ich hab noch nie damit gearbeitet, aber ich hab grade gesehen, dass du dir das sparen kannst, den nächsten Spieler abzufragen, da das callback den schon beinhaltet. :thumbup:


    new NichtRespawnen[MAX_VEHICLES];
    public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat) {
    if(Fraktion[playerid] == POLIZIST) NichtRespawnen[vehicleid] = 1;
    return 1;
    }


    Mal so ganz grob, einen kompletten Code werde ich nicht machen, das hat keinerlei Lerneffekt. ;)

    Ja woher hast du dann Spielerdatei ? Einfach mal so erfunden? ^^ Und Spielerrang, wo kommt das her? Du musst (solltest) doch die Variablen deklarieren. Kannste das mal zeigen, wie und wo du das gemacht hast?


    Du meinst so oder?:


    Jo, klar, hab gepennt. Copy Paste. :wacko: Danke.



    Kann man irgendwie machen, dass nur bestimmte Personen die Autos schieben können? Z.b. Polizisten, Polizei Autos usw.


    Nein, naja, doch, aber mit großem Aufwand. Du könntest bei
    http://wiki.sa-mp.com/wiki/OnUnoccupiedVehicleUpdate
    Den nächsten Spieler abrufen, und wenn dieser ein Polizist (etc...) ist, dann in einer Variable für dieses Auto speichern, dass es nicht respawnen soll (z.B. auf 1/true) setzen. Also es ist möglich, aber aufwendig.

    Doch kann man schon. Aber ist eigentlich nicht nötig, weil er schon etwas im switch zurück gibt


    Nein, kann man nicht. :pinch:


    stock Spielerrang(playerid)
    {
    new rang[54];
    switch(Spielerdatei[playerid][Spielerrang])
    {
    case 0:{rang="Neuling";}
    case 1:{rang="Einwanderer";}
    default:{rang="Error";}
    }
    return rang;
    }

    Das hast du schon richtig gemacht, nur eben das Semikolon vergessen.


    EDIT:
    Letzteres von 123marvin123 ist das Selbe, das tut.

    http://wiki.sa-mp.com/wiki/Function:GetVehiclePos


    Einen Timer machen, und die Distanz von der GetVehiclePos zur Spawn-Position ausrechnen (Pythagoras im Raum) und wenn diese Distanz größer als 3ist und niemand im Auto ist, das Auto respawnen (SetVehicleToRespawn).


    Wie bekommst du die Spawn-Pos?
    CreateVehicle (z.B) zu My_CreateVehicle machen, und dann so:


    new Float:vPos[MAX_VEHICLES][4];
    stock My_CreateVehicle(... hier die Params von CreateVehicle)
    {
    new id = CreateVehicle(...);
    vPos[id][0] = x;
    vPos[id][1]= y;
    vPos[id][2] = z;
    vPos[id][3] = a;
    return id;
    }


    Verstanden?

    Was Firerfan gesagt hat, und:


    format(string,180,"[%s] %s sagt: %s",Spielerrang,SpielerName(playerid),text);


    zu:
    format(string,180,"[%s] %s sagt: %s",Spielerrang(playerid),SpielerName(playerid),text);


    123marvin123:
    Du kannst in der gleichen Funktion nicht einmal einen string und einmal einen Integer zurückgeben.

    Das kommt manchmal vor. Ist aber genau der gleiche Checkpoint, und du kannst das auch nicht beeinflussen. Ist wohl irgend ein Bug, der die schwarze Umrandung weiß zeigt.
    Bei mir kommt das einmal im Schaltjahr (oder so ...) vor. Auf dem anderen PC (Vista) kam es öfters vor.

    Dann solltest du die Filterscripts überprüfen, die vor dem Script OnPlayerSpawn aufrufen. Da hat wohl einer etwas drinnen was verhindert, dass OnPlayerSpawn in diesem Code aufgerufen wird. Zur not kannst du den NPC Skin auch im allerersten Filterscript setzen.

    if(killerid != INVALID_PLAYER_ID) SetPVarInt(killerid, "Kills", GetPVarInt(killerid, "Kills") + 1);
    SetPVarInt(playerid, "Tode", GetPVarInt(playerid, "Tode") + 1);

    Bei OnPlayerDeath.

    print("1");
    if(IsPlayerNPC(playerid))
    {
    print("2");
    //...


    Das selbe vor und nach der Namensabfrage mit 3 und 4. Dann den NPC spawnen und im Server Log nachgucken welche Zahlen drinnen stehen.

    Sehr mysteriös. Setz doch mal vor die if Abfrage und mach die if Abfrage jeweils einen print, zum sehen ob es überhaupt aufgerufen wird. Weißt wie ich meine? Dann sag ob es das print in der SetPlayerSkin klammer anzeigt.

    Also ich gehe mal davon aus du benutzt Notepad++, ja?


    Wenn ja:
    Plugins => NppExec => Execute =>
    npp_save
    cd $(CURRENT_DIRECTORY)
    "C:\Program Files (x86)\PAWN Compiler\pawncc.exe" "$(FILE_NAME)" -; -(
    ^ DEN PFAD musst du zu dem Pfad deines pawncc.exe setzen. Wenn du den ordner umbenannt hast, ist das das Problem.

    In dem Link den ich dir gegeben habe, Antwort #3 und/oder #4. Probier das mal. Der Fehler ist genau der Gleiche wie bei dir, er hat ihn repariert bekommen, sollte bei dir auch klappen.

    Du hast gesagt du hast den Ordner umbenannt:


    => Alle Pfade überprüfen.
    => Sind alle includes in den richtigen Ordnern, oder fehlt eine?
    => Pawno neu starten, über .../pawno/pawno.exe


    EDIT:
    PAWN mit Notepad++ Error
    Der hatte den gleichen Fehler. Probier mal deinen code umzubenennen.