Beiträge von Haxler

    SetPlayerCheckpoint(playerid, 3.0,1248.8826,-1258.9431,12.8862); die 3.0 muss nach hinten.

    Zitat

    SetPlayerCheckpoint(playerid,Float:x,Float:y,Float:z,Float:size)

    Ah mir ist grad aufgefallen du hast hinter dem Public immer noch ein Semikolon ( ; ). Dass muss natürlich weg.

    Zitat

    public CP1NO2(playerid);


    edit: schreibehler^^

    Du willst doch abfragen ob das Fahrzeug-Model ein Bus etc. ist oder? Wenn ja musst du GetVehicleModel verwenden. Außerdem verwendest du das Fahrzeug 449 (Tram) 2 mal. D.h. man muss sich ein Busticket und ein Zugticket kaufen^^


    if(newstate == PLAYER_STATE_PASSENGER)
    {
    switch(GetVehicleModel(GetPlayerVehicleID(playerid)))
    {
    case 431:
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Kaufe dir ein Busticket /btk.");
    SetTimer("BTC",10000,0);
    }
    case 577:
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Kaufe dir ein Flugticket /ftk.");
    SetTimer("FTC",10000,0);
    }
    case 538,570,449:
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Kaufe dir ein Zugticket /ztk.");
    SetTimer("ZTC",10000,0);
    }
    }
    }

    Als erstes muss du aus new copcar; new copcar[2]; //2 = anzahl der Fahrzeuge machen. In der Variable wird die ID gespeichert wenn du aber 2 Fahrzeuge in die gleiche Variable speicherst buggt das.

    copcar = AddStaticVehicle(596,1601.1548,-1700.2468,5.6123,90.4101,0,1); // Policecar 1
    copcar = AddStaticVehicle(596,1601.2417,-1696.1384,5.6109,90.2837,0,1); // Policecar 2
    wird dann also zu
    copcar[0] = AddStaticVehicle(596,1601.1548,-1700.2468,5.6123,90.4101,0,1); // Policecar 1
    copcar[1] = AddStaticVehicle(596,1601.2417,-1696.1384,5.6109,90.2837,0,1); // Policecar 2
    Außerdem würde ich erst bei OnPlayerStateChange abfragen ob der Spieler ein Cop ist und ihn dann rauswerfen.


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new i;i<sizeof(copcar);i++)
    {
    if(GetPlayerVehicleID(playerid) == copcar[i])
    {
    if(gTeam[playerid] != TEAM_POLICE)
    {
    RemovePlayerFromVehicle(playerid);
    return GameTextForPlayer(playerid, "Du bist kein Polizist!", 3000,3);
    }
    }
    }
    }
    return 1;
    }
    habs noch nicht getestet aber so oder ähnlich dürfte es gehen...

    case 280..283,285,288 du fragst da die Skin-ID ab. Was du brauchst ist aber die classid.

    Zitat

    Note: Class IDs are assigned when AddPlayerClass is used.

    Das erste AddPlayerClass wäre dann also classid 0 (deshalb tut CJ auch).


    AddPlayerClass(0,2185.6685,-1812.9491,13.5569,191.9988,0,0,0,0,0,0);//classid 0
    AddPlayerClass(280,1541.0613,-1675.5898,13.5518,87.7057,0,0,0,0,0,0); //classid 1
    AddPlayerClass(288,1541.2834,-1675.6553,13.5522,91.1210,0,0,0,0,0,0); //classid 2
    AddPlayerClass(285,1541.1193,-1675.6711,13.5519,90.8624,0,0,0,0,0,0); //classid 3 und so weiter...

    Geht auch leichter (so wie Thommylee gesagt hat):
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    SetPlayerCameraPos(playerid,x,y,z+50);
    SetPlayerCameraLookAt(playerid,x,y,z);
    Damit wird die Position vom Spieler abgefragt und die Kamera 50 Meter nach oben verschoben. Sie zeigt dann genau auf den Spieler bzw. nach unten.

    Ich denke er meint dass der Bot automatisch eingeloggt wird. Irgendwo wird sicher abgefragt ob der Spieler eingeloggt ist und wenn nicht kommt ein Login-Fenster o.ä. Dort einfach abfragen ob der Spieler ein Bot ist und wenn ja diesen Schritt überspringen.

    Weiß nicht obs ein Fehler ist aber:


    stock Stadt(playerid)
    {
    new Float:X, Float:Y, Float:Z; //We use this to store player position
    GetPlayerPos(playerid, X, Y, Z); //Here we are storing the player position on the variables X, Y, and Z defined previously
    new zoneid = 0;
    for(; zoneid < sizeof(zoness); zoneid++)
    {
    if (X <= zoness[zoneid][zone_maxxx] && X >= zoness[zoneid][zone_minxx] && Y <= zoness[zoneid][zone_maxyy] && Y >= zoness[zoneid][zone_minyy])
    {
    return zoness[zoneid][zone_namee]; //hier ein Text
    }
    }
    return 1; // hier gibt die Funktion eine Zahl zurück
    }
    wie wärs wenn du statt dem return 1; auch mal einen Text zurück gibst? :)

    ocmd:a(playerid,params[])
    {
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,0x00FF00,"Du bist kein Admin!");
    if(!strlen(params))return SendClientMessage(playerid,0x00FF00,"Verwendung: /a [text]");
    new s[128],pname[32];
    GetPlayerName(playerid,pname,32);
    format(s,128,"%s sagt: %s",pname,params);
    SendClientMessageToAll(0x00FF00,s);
    return 1;
    }
    noch nicht getestet. Geht nur als Rcon-Admin (kannst du aber ändern).