Beiträge von red13

    Ja stimmt:
    mach das am besten bei "OnPlayerStateChange()" rein
    public OnPlayerStateChange(playerid,newstate,oldstate)
    {
    if(GetVehicleModel(vehicleid) == 538)
    if(newstate == PLAYER_STATE_PASSENGER)
    {
    SetPlayerInterior(playerid,18);
    SetPlayerPos(playerid,-83.599998474121,18.39999961853,973.09997558594);
    return 1;
    }
    return 0;
    }

    Jetzt seh ich es auch:
    Was Master bereits gesagt hat:
    arrCoords ist ein Zweidimensionales Array.
    d.H. Da muss sowas wie arrCoords[0][0] stehen.
    Du hast nur einen Index angegeben: arrCoords[0]
    Versuch das mal damit. Änder die Indexs nach deinem Bedarf, ih weiß nicht genau was darin gespeichert ist.

    Also ich sehe nirgenswo eine Definition von "px/py/pz".
    Kann es sein, dass du die Spielerposition dort übergeben willst?
    Nach der Zeile zuvor wären das aber "fpx/fpy/fpz"


    PS: Kann man mir sagen, was die Funktion DistanceCameraTargetToLocation bewirkt?

    Ich bin dabei einen Reallife-Server zu schreiben.
    Bisher gab es kaum Probleme, aber nun bin ich dabei den Busbot anhalten zulassen, damit er die anderen Spieler nicht einfach weghaut.
    Dies ist der NPCMode, den ich verwende:
    #include <a_npc>
    #include <float>
    main(){
    SetTimer("BusTimer",1000,1);
    }
    new trigger = 0;
    new stopped = 0;
    #define RECORDING "Frakbus2"
    #define RECORDING_TYPE 1


    public OnRecordingPlaybackEnd()
    StartRecordingPlayback(RECORDING_TYPE, RECORDING);


    public OnNPCEnterVehicle(vehicleid, seatid)
    StartRecordingPlayback(RECORDING_TYPE, RECORDING);


    public OnNPCExitVehicle()
    StopRecordingPlayback();


    public OnPlayerText(playerid,text[]){
    //PauseRecordingPlayback();
    }
    forward BusTimer();
    public BusTimer(){
    new Float:X,Float:Y,Float:Z;
    trigger = 0;
    GetMyPos(X,Y,Z);
    for(new i = 2; i < MAX_PLAYERS; i++){
    if(IsPlayerInRangeOfPoint(2,10,X,Y,Z)){
    PauseRecordingPlayback();
    trigger = 1;
    if(!stopped){
    SendChat("Busfahrer schreit: \"Ey, Platz da!\"");
    }
    stopped = 1;
    }
    }
    if(!trigger){
    stopped = 0; ResumeRecordingPlayback();
    }
    return 1;
    }


    So, nun erklär ich mal was passiert:
    Wenn ich losfahre um den Bus aufzusuchen, verwende ich einen Befehl bei dem ein Marker gesetzt wird.
    Der Marker liegt dann irgendwo auf der Straße. DAs Fahrzeug jedoch liegt dann irgendwo am Straßenrand.
    Auf einmal springt der Marker weiter(ein Punkt, der etwas weiter entlang der Strecke liegt)
    Und ich sehe das Fahrzeug des Bots ohne Beachtung der physikalischen Kräfte in irgendeine Richtung schweben.
    Ich verstehe das nicht mehr.
    Ich habe versucht den Bot mit OnPlayerText(playerid,text[]) anzuhalten, was ganz gut geklappt hat.
    Ich hoffe, dass ihr mir helfen könnt.
    MfG red13


    //edit: Zur Behebung von Verständnisproblemen: das 'new i = 2' in der for-Schleife ist dazu da, damit der Bus nicht die anderen Bots erkennt. 0 und 1 sind besetzt