Beiträge von RedDragon

    Ist in deinem Gamemode das so eingestellt, dass Checkpoints, die zuweit weg sind, für den Spieler nicht mehr angezeigt werden? Das wird häufig bei Gamemodes mit Properties benutzt, weil man nur ein Checkpoint pro Zeit haben kann. Versuche mal SetPlayerRaceCheckpoint(playerid, 1, Float:x, Float:y, Float:z, 0.0,0.0,0.0,15);


    Edit: Ah, ich sehe grad was^^ Setze mal bei Zeile 12 eine Klammer zu (})

    Erstelle eine Variable, die angibt, ob das Tor offen ist (Wert 1) oder zu (Wert 0). Da wo du das mit dem Hupen und Öffnen gemacht hast, kannst du dann prüfen lassen, wenn gehupt wurde, ob das Tor bereits offen ist. Wenn ja, soll es wieder geschlossen werden und der Timer, der das Tor wieder schließt, gekillt werden. Wenn das Tor zu ist, ganz normal, öffnen lassen.

    Dein Script sagt momentan folgendes: /tv 1 setzt die Kamera von Spieler ID:1 hinter ihm.


    SetCameraBehindPlayer benutzt man, damit die Kamera eines jeweiligen Spielers hinter ihm gesetzt wird. Um anderen Leuten zuzuschauen, musst du SetCameraBehindPlayer(playerid) ersetzen durch:


    TogglePlayerSpectating(playerid, 1); // Zuschauermodus AN
    PlayerSpectatePlayer(playerid, ziel); // "playerid" schaut nun "ziel" zu


    TogglePlayerControllable(playerid,0); brauchst du nicht.


    Um den Zuschauermodus zu beenden machst du folgendes:


    TogglePlayerSpectating(playerid, 0); // Zuschauermodus AUS
    SetCameraBehindPlayer(playerid); // Setze die Kamera von "playerid" wieder hinter ihm


    Sollte dann am Ende etwa so aussehen:

    public OnPlayerCommandText(playerid,cmdtext[])
    {
    //...
    //...
    if (strcmp("/tv", cmdtext, true, 3) == 0)
    {
    if(SpielerInfo[playerid][alvl]<1)
    {
    new pname[128], tv[128];
    GetPlayerName(ziel,pname,sizeof(pname));
    format(tv,sizeof(tv),"Du guckst nun %s zu.",pname);
    TogglePlayerSpectating(playerid,1);
    PlayerSpectatePlayer(playerid,ziel);
    SendClientMessage(playerid,COLOR_YELLOW,tv);
    return 1;
    }
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Supporter/Admin!");
    return 1;
    }

    if (strcmp("/untv", cmdtext, true, 5) == 0)
    {
    if(SpielerInfo[playerid][alvl]<3)
    {
    TogglePlayerSpectating(playerid,0);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_YELLOW,"TV beendet!");
    return 1;
    }
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Supporter/Admin!");
    return 1;
    }
    return 0;
    }

    new Text3D:label[MAX_PLAYERS];


    public OnFilterScriptExit()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    Delete3DTextLabel(label[i]);
    }
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/admin", true, 10) == 0 && IsPlayerAdmin(playerid) == 1)
    {
    label[playerid] = Create3DTextLabel("Administrator/Moderator",0xFF0000,0,0,0,40,0,0);
    Attach3DTextLabelToPlayer(label[playerid],playerid,0,0,1.5);
    return 1;
    }
    return 0;
    }

    Vielleicht hilft dir folgendes: public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) und
    PutPlayerInVehicle(playerid,vehicleid,seatid);

    switch(GetVehicleModel(vehicleid))
    {
    case 400..410: // Wenn die ModelID 400 bis 410 ist...
    {

    }


    case 411..420: // usw
    {


    }
    }


    Edit: Versuch' mal "new tmodel" außerhalb einer Public zu setzen.

    new tmodel;
    public OnVehicleSpawn(vehicleid)
    {
    tmodel = GetVehicleModel(vehicleid);
    if(tmodel == 402)
    {
    Variable[vehicleid] = 70;
    }
    else
    {
    Variable[vehicleid] = 100;
    }
    return 1;
    }

    und ich möchte je nachdem welche ModelID das vehicle hat, ein unterschiedlicher Wert in einer Variable gespeichert wird.


    Wird es, wenn die ModelID 400 ist, bekommt die Variable den Wert 400... wenn sie 401 ist, den Wert 401... für jedes Fahrzeug...


    Edit: Ich verstehe nicht, wieso du es so umständlich machen willst o_O Dann musst du ja alle FahrzeugModels (!!!) durchgehen mit if schleife o_O

    Klar weiß ich, was die VehicleModel ist. Mit dem was ich dir eben geschickt habe, speichert der die VehicleModel in einer Variable, wolltest du doch, oder nicht?


    Nur halt, dass der bei Model 522 den Wert 522 speichert, und nicht 20... wäre aber auch so herum zu umständlich.

    Probier' es mal so:


    new VehicleModel[MAX_VEHICLES] = -1;

    public OnVehicleSpawn(vehicleid)
    {
    VehicleModel[vehicleid] = GetVehicleModel(vehicleid);
    return 1;
    } // Die Variable hat nun für das Fahrzeug "vehicleid" den Wert "vehicleid"


    Sieht aber nicht so sinnvoll aus, wozu brauchst du eine Variable?

    versuch mal new giveplayerid = ReturnUser(strval(inputtext));


    Wenn's bei ID 0 nicht geht, was normal ist, weil soweit ich weiß es eine Zahl zwischen 1 und 30000 sein muss.. (Nicht ganz sicher.)

    Code
    new giveplayerid = ReturnUser(strval(inputtext));


    Versuch's mal damit, anstatt dann giveplayerid zu benutzen als Dialogid, schreibste einfach

    Code
    giveplayerid+1

    hin.