Beiträge von Dudalus

    Hallo


    Ich scripte zurzeit ein ADAC System, jedoch habe ich jetzt echt ein Problem, wo ich nicht weiter weiss, wie ich überhaupt sowa slösen kann. Die Cars/der Car eines Users ist verschlossen. Nun wird er abgeschleppt und in die ADAC Base gestellt. Da der Car jedoch verschlossen ist, komme ich wirklich nicht an eine ID oder Möglichkeit, etwas abzufragen.


    Gibt es eine Funktion, die abfragt, ob der Player in der Nähe eines Cars ist oder ähnlich ? IsPlayerInRangeOfAnyVehicle oä ?


    MfG dUDA

    Hallo


    Entweder es gibt nur ein Gleis oder Du kannst mal versuchen, den Zug ausserhalb eines Bahnhofs auf ein Gleis zu setzen.


    MfG dUDA

    Hallo


    Das sind alles Winkelfunktionen, welche man zB zur Winkel/Seitenlängenberechnung im Dreieck brauchen kann. In GTA werden sie zB für das Öffnen eines drehbaren Tores verwendet (Finde den Link nicht mehr)


    Asin = ArcSinus (Umkehrfunktion der Sinusfunktion) oder Sin^-1
    Acos = ArcCosinus (Umkehrfunktion der Cosinusfunktion) oder Cos^-1
    Atan = ArcTangens (Umkehrfunktion der Tangensfunktion) oder Tan^-1


    MfG dUDA


    //Edit: Da ist das Schätzchen ja^^
    http://wiki.sa-mp.de/Tor

    Hallo


    Naja, ok, wenn ich die VehicleID abfragen könnte, ohne dass ein Player im Car sitzt wäre es ja recht einfach. Aberda es das ja leider nicht gibt, kann VehicleID != fCarID continue nicht gelten ;)
    Dank dir aber.


    //Edit
    Leider geht es nicht ;)


    //Edit 2


    public PrivatCarTuneUp(id)
    {
    if(FDaten[id][fTunbar] == 1)
    {
    new vehicleid = FDaten[id][fCarID];
    new component[14];
    FDaten[id][fTuningteil0] = component[0];
    FDaten[id][fTuningteil1] = component[1];
    FDaten[id][fTuningteil2] = component[2];
    FDaten[id][fTuningteil3] = component[3];
    FDaten[id][fTuningteil4] = component[4];
    FDaten[id][fTuningteil5] = component[5];
    FDaten[id][fTuningteil6] = component[6];
    FDaten[id][fTuningteil7] = component[7];
    FDaten[id][fTuningteil8] = component[8];
    FDaten[id][fTuningteil9] = component[9];
    FDaten[id][fTuningteil10] = component[10];
    FDaten[id][fTuningteil11] = component[11];
    FDaten[id][fTuningteil12] = component[12];
    FDaten[id][fTuningteil13] = component[13];
    if(FDaten[id][fTuningteil0] != 0) {AddVehicleComponent(vehicleid, component[0]);}
    if(FDaten[id][fTuningteil1] != 0) {AddVehicleComponent(vehicleid, component[1]);}
    if(FDaten[id][fTuningteil2] != 0) {AddVehicleComponent(vehicleid, component[2]);}
    if(FDaten[id][fTuningteil3] != 0) {AddVehicleComponent(vehicleid, component[3]);}
    if(FDaten[id][fTuningteil4] != 0) {AddVehicleComponent(vehicleid, component[4]);}
    if(FDaten[id][fTuningteil5] != 0) {AddVehicleComponent(vehicleid, component[5]);}
    if(FDaten[id][fTuningteil6] != 0) {AddVehicleComponent(vehicleid, component[6]);}
    if(FDaten[id][fTuningteil7] != 0) {AddVehicleComponent(vehicleid, component[7]);}
    if(FDaten[id][fTuningteil8] != 0) {AddVehicleComponent(vehicleid, component[8]);}
    if(FDaten[id][fTuningteil9] != 0) {AddVehicleComponent(vehicleid, component[9]);}
    if(FDaten[id][fTuningteil10] != 0) {AddVehicleComponent(vehicleid, component[10]);}
    if(FDaten[id][fTuningteil11] != 0) {AddVehicleComponent(vehicleid, component[11]);}
    if(FDaten[id][fTuningteil12] != 0) {AddVehicleComponent(vehicleid, component[12]);}
    if(FDaten[id][fTuningteil13] != 0) {AddVehicleComponent(vehicleid, component[13]);}
    }
    return 1;
    }


    public SaveTuner(id)
    {
    new vehicleid = FDaten[id][fCarID];
    FDaten[id][fTuningteil0] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_SPOILER);
    FDaten[id][fTuningteil1] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_HOOD);
    FDaten[id][fTuningteil2] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_ROOF);
    FDaten[id][fTuningteil3] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_SIDESKIRT);
    FDaten[id][fTuningteil4] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_LAMPS);
    FDaten[id][fTuningteil5] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_NITRO);
    FDaten[id][fTuningteil6] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_EXHAUST);
    FDaten[id][fTuningteil7] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_WHEELS);
    FDaten[id][fTuningteil8] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_STEREO);
    FDaten[id][fTuningteil9] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_HYDRAULICS);
    FDaten[id][fTuningteil10] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_FRONT_BUMPER);
    FDaten[id][fTuningteil11] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_REAR_BUMPER);
    FDaten[id][fTuningteil12] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_VENT_RIGHT);
    FDaten[id][fTuningteil13] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_VENT_LEFT);
    SaveCache();
    return 1;
    }


    stock GetPrivatCarID(vehicleid)
    {
    for(new pid = 0; pid < _cache_fahrzeug; pid++)
    {
    if(vehicleid == FDaten[pid][fCarID]) return pid;
    }
    return -1;
    }



    dUDA

    Hallo


    Ich habe in meinem Carsystem mal versucht, ein Tuningsystem einzubauen, jedoch geht das nicht und ich habe wohl sehr peinliche Fehler drin. Wäre es möglich, dass mir einer helfen könnte oder Tipps geben kann.


    forward PrivatCarTuneUp(id);
    forward SaveTuner(id);

    //OnVehicleDeath
    public OnVehicleDeath(vehicleid, killerid)
    {
    SaveTuner(vehicleid);
    return 1;
    }


    //OnVehicleSpawn
    public OnVehicleSpawn(vehicleid)
    {
    for(new i = 0;i<_cache_fahrzeug;i++)
    {
    PrivatCarTuneUp(vehicleid);
    break;
    }
    return 1;
    }
    //OnGameModeExit
    SaveTuner();


    public PrivatCarTuneUp(id)
    {
    for(new i = 0;i<_cache_fahrzeug;i++)
    {
    if(FDaten[id][fTunbar] == 1)
    {
    new component[14];
    FDaten[id][fTuningteil0] = component[0];
    FDaten[id][fTuningteil1] = component[1];
    FDaten[id][fTuningteil2] = component[2];
    FDaten[id][fTuningteil3] = component[3];
    FDaten[id][fTuningteil4] = component[4];
    FDaten[id][fTuningteil5] = component[5];
    FDaten[id][fTuningteil6] = component[6];
    FDaten[id][fTuningteil7] = component[7];
    FDaten[id][fTuningteil8] = component[8];
    FDaten[id][fTuningteil9] = component[9];
    FDaten[id][fTuningteil10] = component[10];
    FDaten[id][fTuningteil11] = component[11];
    FDaten[id][fTuningteil12] = component[12];
    FDaten[id][fTuningteil13] = component[13];
    if(FDaten[id][fTuningteil0] != 0) {AddVehicleComponent(id, component[0]);}
    if(FDaten[id][fTuningteil1] != 0) {AddVehicleComponent(id, component[1]);}
    if(FDaten[id][fTuningteil2] != 0) {AddVehicleComponent(id, component[2]);}
    if(FDaten[id][fTuningteil3] != 0) {AddVehicleComponent(id, component[3]);}
    if(FDaten[id][fTuningteil4] != 0) {AddVehicleComponent(id, component[4]);}
    if(FDaten[id][fTuningteil5] != 0) {AddVehicleComponent(id, component[5]);}
    if(FDaten[id][fTuningteil6] != 0) {AddVehicleComponent(id, component[6]);}
    if(FDaten[id][fTuningteil7] != 0) {AddVehicleComponent(id, component[7]);}
    if(FDaten[id][fTuningteil8] != 0) {AddVehicleComponent(id, component[8]);}
    if(FDaten[id][fTuningteil9] != 0) {AddVehicleComponent(id, component[9]);}
    if(FDaten[id][fTuningteil10] != 0) {AddVehicleComponent(id, component[10]);}
    if(FDaten[id][fTuningteil11] != 0) {AddVehicleComponent(id, component[11]);}
    if(FDaten[id][fTuningteil12] != 0) {AddVehicleComponent(id, component[12]);}
    if(FDaten[id][fTuningteil13] != 0) {AddVehicleComponent(id, component[13]);}
    }
    }
    return 1;
    }


    public SaveTuner(id)
    {
    new component[14];
    for(new i = 0;i<_cache_fahrzeug;i++)
    {
    component[0] = GetVehicleComponentInSlot(id, CARMODTYPE_SPOILER);
    component[1] = GetVehicleComponentInSlot(id, CARMODTYPE_HOOD);
    component[2] = GetVehicleComponentInSlot(id, CARMODTYPE_ROOF);
    component[3] = GetVehicleComponentInSlot(id, CARMODTYPE_SIDESKIRT);
    component[4] = GetVehicleComponentInSlot(id, CARMODTYPE_LAMPS);
    component[5] = GetVehicleComponentInSlot(id, CARMODTYPE_NITRO);
    component[6] = GetVehicleComponentInSlot(id, CARMODTYPE_EXHAUST);
    component[7] = GetVehicleComponentInSlot(id, CARMODTYPE_WHEELS);
    component[8] = GetVehicleComponentInSlot(id, CARMODTYPE_STEREO);
    component[9] = GetVehicleComponentInSlot(id, CARMODTYPE_HYDRAULICS);
    component[10] = GetVehicleComponentInSlot(id, CARMODTYPE_FRONT_BUMPER);
    component[11] = GetVehicleComponentInSlot(id, CARMODTYPE_REAR_BUMPER);
    component[12] = GetVehicleComponentInSlot(id, CARMODTYPE_VENT_RIGHT);
    component[13] = GetVehicleComponentInSlot(id, CARMODTYPE_VENT_LEFT);
    FDaten[i][fTuningteil0] = component[0];
    FDaten[i][fTuningteil1] = component[1];
    FDaten[i][fTuningteil2] = component[2];
    FDaten[i][fTuningteil3] = component[3];
    FDaten[i][fTuningteil4] = component[4];
    FDaten[i][fTuningteil5] = component[5];
    FDaten[i][fTuningteil6] = component[6];
    FDaten[i][fTuningteil7] = component[7];
    FDaten[i][fTuningteil8] = component[8];
    FDaten[i][fTuningteil9] = component[9];
    FDaten[i][fTuningteil10] = component[10];
    FDaten[i][fTuningteil11] = component[11];
    FDaten[i][fTuningteil12] = component[12];
    FDaten[i][fTuningteil13] = component[13];
    SaveCache();
    break;
    }
    return 1;
    }


    Beim Auslesen der Infos aus der Carfile wird PrivatCarTuneUp aufgerufen und bei OnVehicleDeath abgespeichert (SaveCache(); , denn ich jetzt nicht poste, da er geht).


    MfG dUDA

    Hallo


    Ich habe seit längerer Zeit Probleme mit dem Payday, auch User haben gesagt, sie hätten nie den richtigen Payday oder sogar immer verschiedene Paydays. Alles bis auf den Member und Leader-Payday stimmt sonst, nur diese 2 gehen nie wirklich. Ich habe also jetzt jeder Fraktion als Geldbetrag die Fraktionsid gegeben, um das etwas genauer anshauen zu können.
    Ich habe es vorhin getestet:
    pMember = 6
    pLeader= 6
    pRank = 6


    Was rauskam:


    .....
    Rank: 600 (stimmt)
    Member: 13 (Stimmt nicht)
    Leader 7 (Stimmt nicht)


    Hier der Code:
    new FrakGeld[MAX_FRAKS][2] =
    {
    {1,1},//Fraktion 1
    {2,2},//Fraktion 2
    {3,3},//Fraktion 3
    {4,4},//Fraktion 4
    {5,5},//Fraktion 5
    {6,6},//Fraktion 6
    {7,7},//Fraktion 7
    {8,8},//Fraktion 8
    {9,9},//Fraktion 9
    {10,10},//Fraktion 10
    {11,11},//Fraktion 11
    {12,12},//Fraktion 12
    {13,13},//Fraktion 13
    {14,14},//Fraktion 14
    {15,15},//Fraktion 15
    {16,16},//Fraktion 16
    {17,17} //Fraktion 17
    };
    public PayDay(i)
    {
    if(IsPlayerConnected(i))
    {
    if(PayTime[i] == 1)
    {
    //New
    new str[256];
    new zinsa = 1;
    new respekt = 1;
    new check = 100;
    new level = PlayerInfo[i][pLevel];
    new extra = (level*100);
    new money = ((PlayerInfo[i][pBank]/1000)*zinsa);
    new jpoints = (PlayerInfo[i][pJPoints]);
    new fpoints = (PlayerInfo[i][pFPoints]);
    new gjpoints = jpoints * 10;
    new gfpoints = fpoints * 10;
    new rank = PlayerInfo[i][pRank] * 100;
    //Addition
    check += extra;
    //Richtiger Payday
    format(str, sizeof(str), "--------------------------------------"); //Anfang
    SendClientMessage(i, COLOR_GREEN, str);
    format(str, sizeof(str), "Lohn: $%d",check); //Lohn
    SendClientMessage(i, COLOR_WHITE, str);
    format(str, sizeof(str), "Zinsengeld: $%d",money); //Zinsen
    SendClientMessage(i, COLOR_WHITE, str);
    format(str, sizeof(str), "Punktegeld: Job $%d, Fraktion $%d ",jpoints, fpoints); //Punkte
    SendClientMessage(i, COLOR_WHITE, str);
    //Job
    if(PlayerInfo[i][pJob] != 0)
    {
    new frak = PlayerInfo[i][pJob];
    JB_GivePlayerMoney(i, JobGeld[frak][0]);
    format(str,sizeof(str),"Job: $%d", JobGeld[frak][0] );
    SendClientMessage(i, COLOR_WHITE, str);
    }
    //Rank
    if(PlayerInfo[i][pMember] != 1)
    {
    JB_GivePlayerMoney(i, rank);
    format(str,sizeof(str),"Fraktions Rank: $%d",rank);
    SendClientMessage(i, COLOR_WHITE, str);
    }
    //Member
    if(PlayerInfo[i][pMember] != 0)
    {
    new frak = PlayerInfo[i][pMember];
    JB_GivePlayerMoney(i, FrakGeld[frak][0]);
    format(str,sizeof(str),"Fraktions Member: $%d", FrakGeld[frak][0] );
    SendClientMessage(i, COLOR_WHITE, str);
    }
    //Leader
    if(PlayerInfo[i][pLeader] != 0)
    {
    new frak = PlayerInfo[i][pLeader];
    JB_GivePlayerMoney(i, FrakGeld[frak][1]);
    format(str,sizeof(str),"Fraktions Leader: $%d", FrakGeld[frak][1] );
    SendClientMessage(i, COLOR_WHITE, str);
    }
    format(str, sizeof(str), "--------------------------------------"); //Ende
    SendClientMessage(i, COLOR_GREEN, str);
    //Auszahlung
    JB_GivePlayerMoney(i, check); //Lohn
    JB_GivePlayerMoney(i, money); //Zinsen
    JB_GivePlayerMoney(i, gjpoints); //Jobpoints
    JB_GivePlayerMoney(i, gfpoints), //Fraktionspoints
    //Resetten und Count +1
    PlayerInfo[i][pJPoints] = 0; //Jobpoints
    PlayerInfo[i][pFPoints] = 0; //Fraktionspoints
    PayTime[i] = 0;
    PlayerInfo[i][pRespekt] += respekt;
    //Payday Ausgabe
    format(str, sizeof(str), "~g~Pay~w~Day");
    GameTextForPlayer(i, str, 5000, 1);
    return 1;
    }
    }
    return 0;
    }

    Hallo


    Ich baue ein Truckersystem und habe nun ein Problem entdeckt:


    Wie kann ich die ModelID des Trailers abfragen ? Momentan mache ich es so, das ist ja abe rnicht richtig, da es immer die VehicleID des Trucks (wo ich sitze) und nicht die des Trailers abfragt.


    else if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) != 584) return SendClientMessage(playerid,COLOR_GREY,"Falscher oder kein Anhänger");


    MfG dUDA

    Danke Templer
    Lob an euch alle, die mir/uns helfen, obwohl sie bei gewissen Fragen einfach nur Dummes posten könnten. Finde es auch toll, dass Ihr dafür eure Freizeit einsetzt.


    dUDA

    Hallo


    Ich habe hier ein Codestück, welches momentan nicht das macht, was es sollte, der Grund ist klar:


    else if(IsPlayerInRangeOfPoint(playerid,10,-74.1881,-1120.7853,1.0781) && TAuftrag[3][playerid] == 1 && GetVehicleModel(GetPlayerVehicleID(playerid)) == 514 && IsPlayerInAnyVehicle(playerid) && GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 435 && GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 591)
    {
    TAuftrag[3][playerid] = 0;
    JB_GivePlayerMoney(playerid,75);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast den Auftrag abgeschlossen und bekommst 75 Dollar");
    DisablePlayerCheckpoint(playerid);
    return 1;
    }


    Vorrausetzungen:
    -IsPlayerInAnyInVehicle
    -PlayerInfo[Zahl][playerid] ==1


    -ModelID 514 oder XX (eines von beiden)
    -Trailer 435 ider 591 (Eines von beiden)


    Wo mus sich das || setzten, damit nicht beide Trailer ein oder sind sondern nur einer ?


    MfG dUDA

    Hallo


    Meinst du zB im MTA Editor oder aufem richtigen Server ? Wenn Du auf dem Serve rmeinst, nutze anstatt AddStaticVehicle zB CreateVehicle oder die andere AddStaticVehicle-Version, da respawnen die Cars nicht/einstellbar. Sonst bau dir doch einen Vehicle-Spawner.


    dUDA

    Hallo


    Bin auch grad an sowas dran, speichere doch die Fraktions-ID in der File mit und prüfst beim Einsteigen oder Carparken ab, ob er die gleiche Fraktions-Zahl hat wie der Fraktions-Wert aus der Carfile.


    dUDA

    Hallo miteinander


    Ich habe ein "kleineres" Problem. Wenn ich auf den Server joine sind alle Cars verschlossen. Nun öffne ich mit /carlock meinen Wagen und man kann alle Fahren, wenn ich da snicht tue, sind alle (!) Cars verschlossen. Woran liegt das, ode rbesser gesagt, wie verschliesse ich nur den einen Car ?


    dcmd_carlock(playerid,params[])
    {
    #pragma unused params
    new Float:APos[3];
    for(new i = 0;i<_cache_fahrzeug;i++)
    {
    if(strcmp(FDaten[i][fBesitzer],spielername(playerid))){SendClientMessage(playerid,COLOR_GREY,"Dieses Fahrzeug gehört nicht dir");break;}
    GetVehiclePos(FDaten[i][fCarID], APos[0], APos[1], APos[2]);
    if(IsPlayerInRangeOfPoint(playerid, 2.5, APos[0],APos[1],APos[2]))
    {
    if(FDaten[i][fLocked] == 1)
    {
    for(new p = 0; p < MAX_PLAYERS; p++)
    {
    SetVehicleParamsForPlayer(FDaten[i][fCarID], p, 0, 0);
    }
    SendClientMessage(playerid,COLOR_GREEN,"Auto aufgeschlossen");
    FDaten[i][fLocked] = 0;
    SaveCache();
    break;
    }
    else
    {
    for(new p = 0; p < MAX_PLAYERS; p++)
    {
    SetVehicleParamsForPlayer(FDaten[i][fCarID], p, 0, 1);
    }
    SendClientMessage(playerid,COLOR_GREEN,"Auto geschlossen");
    FDaten[i][fLocked] = 1;
    SaveCache();
    break;
    }
    }
    }
    // SendClientMessage(playerid,COLOR_GREY,"Du bist nicht in der Nähe des Fahrzeug");
    return 1;
    }


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
    return 1;
    }


    MfG dUDA