Bike Anzüge ausziehen?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Also ich hab mal was kleines für meinen RL Server gebastelt:


    new newcar4 = GetPlayerVehicleID(playerid);
    new carmodel4 = GetVehicleModel(newcar4);
    if(carmodel4 == 522 || carmodel4 == 521)
    {
    SetPlayerSkin(playerid,100);
    }


    In OnPlayerStateChange.


    Nun zu meiner frage:
    Ist es möglich das der User dann seinen Normalen skin wiederbekommt wenn er absteigt?


    PS: :O ausserdem stürtzt der client dann beim user ab. kann man das verhindern?

  • Ja klar ist das Möglich.
    Abfragen wenn der Spieler absteigt dann einfach wieder SetPlayerSkin mit der Normalen Skin id.

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • new oldskin bringt rein garnicht, höchstens du hast keine User/Freunde und spielst alleine aufnem Home-Server.


    Das Oben ins Script
    new OldSkin[MAX_PLAYERS];


    Das bei OnPlayerConnect
    OldSkin[playerid] = 0;


    Das Bei OnPlayerStateChange, also wo du es bereits hast:



    new carmodel4 = GetVehicleModel(GetPlayerVehicleID(playerid));
    if(carmodel4 == 522 || carmodel4 == 521)
    {
    OldSkin[playerid] = GetPlayerSkin(playerid);
    SetPlayerSkin(playerid,100);
    }


    Das bei OnPlayerExitVehicle:


    new carmodel4 = GetVehicleModel(vehicleid);
    if(carmodel4 == 522 || carmodel4 == 521)
    {
    SetPlayerSkin(playerid,OldSkin[playerid]);
    OldSkin[playerid] = 0;
    }


  • public OnPlayerExitVehicle(playerid, vehicleid)
    {
    new string[256];
    oldvhealth[playerid] = 0;
    istinkaufmenu[playerid]=0;

    if(RennEvent==1 && RennEventbeginnt==0 && nimmtteil[playerid]==1)
    {
    if(GetVehicleModel(RennWagenIDS[playerid])==504 && GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
    {

    if(nimmtteil[playerid]==1)
    {
    RennMitstreiter--;
    }
    for(new i;i<MAX_PLAYERS;i++)
    {


    SetVehicleParamsForPlayer(RennWagenIDS[playerid],i,0,0);


    }

    SetPlayerPos(playerid,-1400.4288,930.0831,1041.5313);
    SetVehiclePos(RennWagenIDS[playerid],-2400.4288,2230.0831,1041.5313);
    schautzu[playerid]=1;



    if(RennEvent1==0)
    {
    RennGewinner(playerid);
    }
    else
    {
    RennGewinner1(playerid);
    }

    format(string,sizeof(string),"%s beendet das Rennen vorzeitig.",PlayerName(playerid));
    SendClientMessageToAll(COLOR_GREEN ,string);

    }
    }

    new carmodel4 = GetVehicleModel(vehicleid);
    if(carmodel4 == 522 || carmodel4 == 521)
    {
    SetPlayerSkin(playerid,OldSkin[playerid]);
    OldSkin[playerid] = 0;
    }
    if(sirene[playerid])
    {
    sirene[playerid] = false;
    SendClientMessage(playerid,COLOR_GREEN,"Sirene automatisch ausgeschaltet");
    }
    new x=0;
    while(x!=MAX_PLAYERS) {
    if(x != playerid && gPlayerObserving[x] == playerid) {
    PlayerSpectatePlayer(playerid,gPlayerObserving[playerid]);
    }
    x++;
    }


    if(nimmtteil[playerid]==1 && RennEvent==1 && RennEventbeginnt==1)
    {
    SetPlayerPos(playerid,-1400.4288,930.0831,1041.5313);
    schautzu[playerid]=1;

    if(nimmtteil[playerid]==1)
    {
    RennMitstreiter--;
    }

    if(RennEvent1==0)
    {
    RennGewinner(playerid);
    }
    else
    {
    RennGewinner1(playerid);
    }
    SetVehiclePos(RennWagenIDS[playerid],-2400.4288,2230.0831,1041.5313);
    format(string,sizeof(string),"%s beendet das Rennen vorzeitig.",PlayerName(playerid));
    SendClientMessageToAll(COLOR_GREEN ,string);
    return 1;
    }




    return 1;
    }

  • Ja klar ist das Möglich.
    Abfragen wenn der Spieler absteigt dann einfach wieder SetPlayerSkin mit der Normalen Skin id.

    Genau falsch, wenn man auf ein Fahrzeug drauf steigt, und während des Aufsteigens den Skin wechselt, hat man zu 99% EXE-Crash.

  • Wie gesagt, ich habe es auch nicht immer, aber extrem oft ( auch beim aufsteigen ) .

  • Doch es geht. Man müsste aber meiner Meinung nach mit PutPlayerInVehicle arbeiten.

  • 1. Bei OnPlayerEnterVehicle prüfen, ob das Fahrzeug, in welches der Spieler einsteigt ein Motorrad ist.
    2. Wenn es ein Motorrad ist, für ein paar Millisekunden freezen.
    3. Skin wechseln.
    4. Spieler auf der Fahrzeug porten.


    Habe jetzt gerade keine Lust das zu scripten.