Beiträge von NachoMan

    welches visual c++ benutzt du?
    die alte autoren edition oder das neue?


    beste lösung(übrigens immer die beste lösung wenn man vista drauf hat^^): format C und windows xp/7 drauf machen...


    2. lösung(falls du die autorenedition benutzt): lad dir das neue visual c++


    ich finds zwar fürn anfänger extrem unübersichtlich aber dann gewöhnst du dich schonmal dran.


    add mich mal icq vllt kann ich dir nen paar tipps geben ;)

    nicht schlecht. ich hab nen verbesserungsvorschlag...


    mach nen array aus kasse1
    also
    new Kasse[10]
    die 10 steht für die anzahl der fraktionen auf dem server (inklusive zivilisten)
    das einzahlen würd dann so aussehen:


    if(strcmp(cmd, "/einzahlen", true) == 0)
    {
    new einzahlgeld;
    new Fraktionsid = PlayerInfo[playerid][pLeader];
    tmp = strtok(cmdtext, idx);
    einzahlgeld = strval(tmp);


    if(IsPlayerConnected(playerid))
    {
    if(0 < Fraktionsid)
    {
    if(GetPlayerMoney(playerid) >= einzahlgeld)
    {
    kasse[Fraktionsid]= kasse[ Fraktionsid] + einzahlgeld;
    GivePlayerMoney(playerid,-einzahlgeld);
    SendClientMessage(playerid, COLOR_GRAD2,"Du hast Geld in die Fraktionskasse eingezahlt.");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2,"Du hast nicht genügend Geld!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2,"Du bist kein Leader einer Fraktion!");
    }
    }
    return 1;
    }


    und was gemerkt? wir brauchen nur ein /einzahl befehl für alle fraktionen

    alle filterscripts aus machen.
    testen! wenn sich nichts ändert:
    mit der suchfunktion! "ShowPlayerMarkers" suchen und alle auskommentieren die eine 0 drin haben.


    und wenns dann immernoch nicht funktioniert nach "SetPlayerMarkerForPlayer" suchen und wenn weiße farbe(0xFFFFFF00) drin ist, die zu testzwecken auf eine andere farbe umstellen.


    wenns dann nicht geht... kA^^

    du hast ein #ifndef oder #ifdef eingebaut.
    das ist wie das "if", nur dass es vor dem kompilieren angewand wird und es muss mit #endif beendet werden.


    les in dem tutorial für das autosystem nochmal wohin das #endif kommt, bzw. lösch das #ifndef/#ifdef.


    genauere lösungsvorschläge kann ich nicht machen, weil ich dein script nicht kenne.


    siehe präprozessordirektiven

    hallo, da es in diesem forum zwar schon tutorials über die id verschiebung bei fraktionen gibt, diese mich aber nicht überzeugt haben, hab ich ein eigenes geschrieben.


    declaration der variable in der die fraktionsids gespeichert werden:
    new VehicleOwner[MAXNUMVEHICLE];


    MAXNUMVEHICLE steht für die maximale anzahl der fahrzeuge auf dem server.


    das spawnen der fahrzeuge funktioniert so:


    new tmp;

    // FBI-Base
    tmp = AddStaticVehicle(490,984.9623,1070.4612,10.9476,1.1011,0,0); VehicleOwner[tmp] = FBI; // Ranger
    tmp = AddStaticVehicle(490,988.3912,1070.5381,10.9483,0.7716,0,0); VehicleOwner[tmp] = FBI; // Ranger


    ihr habt bestimmt ne lange liste an fahrzeugen also nutzt die replace funktion(strg+h)


    FBI ist nen makro für die fraktionsid steht. wie jetzt??


    und darf der spieler einsteigen?
    public isPlayerFraction(playerid, vehicleid)
    {
    if(PlayerInfo[playerid][pMember] == VehicleOwner[vehicleid] || PlayerInfo[playerid][pLeader] == VehicleOwner[vehicleid]) // ist die id des spielers gleich der id des fahrzeugs? wenn ja, dann einsteigen. wenn das fahrzeug die ownerid 0 hat kann man imm einsteigen wegem dem oder ( das: "||" ).
    {
    return 1;
    }


    if(PlayerInfo[playerid][pMember] == SFPD || PlayerInfo[playerid][pLeader] == SFPD ||
    PlayerInfo[playerid][pMember] == LSPD || PlayerInfo[playerid][pLeader] == LSPD ||
    PlayerInfo[playerid][pMember] == FBI || PlayerInfo[playerid][pLeader] == FBI ||
    PlayerInfo[playerid][pMember] == ARMY || PlayerInfo[playerid][pLeader] == ARMY) // FBI/Army/Polizei Mitglied
    {
    if(VehicleOwner[vehicleid] == SFPD || VehicleOwner[vehicleid] == LSPD ||
    VehicleOwner[vehicleid] == MEDIC || VehicleOwner[vehicleid] == NEWS ||
    VehicleOwner[vehicleid] == TAXI || VehicleOwner[vehicleid] == PRESIDENT ||
    VehicleOwner[vehicleid] == ORDNUNGSAMT || VehicleOwner[vehicleid] == FAHRLEHRER) //darf hier auch einsteigen
    {
    return 1;
    }
    }
    if(VehicleOwner[vehicleid] == FBI || VehicleOwner[vehicleid] == ARMY) // in FBI und ARMY fahrzeuge darf jeweils die andere fraktion auch einsteigen.
    {
    if( PlayerInfo[playerid][pMember] == FBI || PlayerInfo[playerid][pLeader] == FBI ||
    PlayerInfo[playerid][pMember] == ARMY || PlayerInfo[playerid][pLeader] == ARMY)//FBI/Army Mitglied
    {
    return 1;
    }
    }

    SendClientMessage(playerid,COLOR_GREY," Du gehörst dieser Fraktion nicht an!");
    return 0;
    }


    die abfrage wird z.b. so benutzt:


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(ispassenger == 0){
    if(isPlayerFraction(playerid, vehicleid) == 0){ // wenn er nicht zur fraktion gehört, dann rauswerfen/slapen
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid, pX, pY, pZ);
    SetPlayerPos(playerid, pX, pY, pZ+3);
    }
    }
    return 1;
    }


    ich hoffe ihr habt alles verstanden.
    ich freue mich über kritik und verbesserungsvorschläge

    Es muss ungleich sein, weil man sonst nur bei Bikes Nitro bekommt ^^


    hab ich auch erst gedacht... aber er beendet die funktion aber mit return wenn er aufn motorrad sitzt... danach kann man diese funktion aber leider nicht mehr nutzen :(


    kann man boote, flugzeuge und fahrräder nitro geben? oO
    um boote von flugzeugen und autos zu unterscheiden würd ich euch diese array empfehlen:
    new Airplanes[] = {592, 577, 511, 512, 593, 520, 553, 476, 519, 460, 513};


    new Helicopters[] = {548, 425, 417, 487, 488, 497, 563, 447, 469};


    new Scooter[] = {509, 481, 462, 510, 448}; // roller und fahrräder


    new Bikes[] = {581, 521, 463, 522, 461, 471, 468, 586};


    new Boats[] = {472, 473, 493, 595, 484, 430, 453, 452, 446, 454};


    alle anderen IDs sind autos.
    dafür braucht ihr natürlich abfragen:


    public IsABoat(vehicleid)
    {
    vehicleid = GetVehicleModel(vehicleid);
    for(new i = 0; i < sizeof(Boats); i++)
    {
    if(vehicleid == Boats[i])
    {
    return 1;
    }
    }
    return 0;
    }


    public IsAScooter(vehicleid)
    {
    vehicleid = GetVehicleModel(vehicleid);
    for(new i = 0; i < sizeof(Scooter); i++)
    {
    if(vehicleid == Scooter[i])
    {
    return 1;
    }
    }
    return 0;
    }


    public IsAAirplane(vehicleid)
    {
    vehicleid = GetVehicleModel(vehicleid);
    for(new i = 0; i < sizeof(Airplanes); i++)
    {
    if(vehicleid == Airplanes[i])
    {
    return 1;
    }
    }
    return 0;
    }
    public IsAHelicopter(vehicleid)
    {
    vehicleid = GetVehicleModel(vehicleid);
    for(new i = 0; i < sizeof(Helicopters); i++)
    {
    if(vehicleid == Helicopters[i])
    {
    return 1;
    }
    }
    return 0;
    }
    public IsABike(vehicleid)
    {
    vehicleid = GetVehicleModel(vehicleid);
    for(new i = 0; i < sizeof(Bikes); i++)
    {
    if(vehicleid == Bikes[i])
    {
    return 1;
    }
    }
    return 0;
    }


    die forwards bitte nicht vergessen.


    in die onplayerentervehicle funktion:


    new vehicleid = GetPlayerVehicleID(playerid);
    if(!IsABoat(vehicleid) && !IsAScooter(vehicleid) && !IsAAirplane(vehicleid) && !IsAHelicopter(vehicleid) && !IsABike(vehicleid))
    {
    AddVehicleComponent(vehicleid,1010);
    }


    ich hoffe ich konnt dir weiter helfen und es funktioniert(die letzten Zeilen hab ich nicht getestet^^)


    das kann man übrigens auch super für führerscheine verwenden(keine id verschiebung)


    mfg nacho

    beenutzt ihr nen crack?
    da habt ihr eure lösung -> orignal kaufen


    ist das nur auf einem server so oder überall?


    hamachi aus machen?


    vllt mal deinstallieren und die ganze registry säubern.(unwahrscheinlich dass es daran liegt)

    dreh boxen und headsets niemals voll auf!
    die gehen nur kaputt und am ende musst du dir neue kaufen.
    du kannst etwas mit dem equalizer rum spielen, aber auch nicht so extrem^^

    stimmt mit ausnahme von z.b.


    if(blah = 1)
    return 1; :P *klugscheiss ^^*



    return beendet die funktion und gibt den dahinterstehenden wert zurück


    beispielfunktion:


    public addition(a, b){
    if(a < 0 || b < 0)
    return a + b;
    else
    return 0;
    // alles dahinter wird nicht ausgeführt
    }


    new ergebnis = addition(23, 10); // weißt ergebnis 33 zu


    ergebnis = addition(-1, 46); // weißt ergebnis 0 zu


    aber ich gab das gefühl, dass sein problem gelöst wurde xD