Fraklock

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey,
    habe versucht einen Befehl zu machen, womit die Fraktionsmitglieder die Fraktionsfahrzeuge auf-/zuschließen können.
    Jedoch komme ich iwi nicht weiter und mein Code ist Müll!


    Code:
    ocmd@3:flock,fclock,fcarlock(playerid)
    {
    new i,Float:dis = 5,vehid = -1;
    if(Spieler[playerid][Fraktion] <= 0)return SendClientMessage(playerid,Rot,"Du bist in keiner Fraktion!");
    switch(Spieler[playerid][Fraktion])
    {
    case 3:
    {
    for(i = 0; i<sizeof(FBIVehs); i++)
    {
    GetDistanceBetweenPlayerAndCar(i,playerid);
    if(dis > GetDistanceBetweenPlayerAndCar(i,playerid))
    {
    dis = GetDistanceBetweenPlayerAndCar(i,playerid);
    vehid = i;
    }
    if(FCarlock[vehid] == 1)
    {
    FCarlock[vehid] = 0;
    for(new p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,0);
    }
    SendClientMessage(playerid,Gruen,"Du hast das Fahrzeuge aufgeschlossen.");
    }
    else if(FCarlock[vehid] == 0)
    {
    FCarlock[vehid] = 1;
    for(new p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,1);
    }
    SendClientMessage(playerid,Rot,"Du hast das Fahrzeug abgeschlossen.");
    }
    }
    }
    }
    return 1;
    }



    stock Float:GetDistanceBetweenPlayerAndCar(vehicleid,playerid)
    {
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    if(vehicleid == -1)
    {
    return -1.00;
    }
    GetVehiclePos(vehicleid,x1,y1,z1);
    GetPlayerPos(playerid,x2,y2,z2);
    return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
    }


    Kann mir da jemand helfen?
    Danke im voraus!

    Mit freundlichen Grüßen
    ErikSon



    Scripte kleine Systeme auf Anfrage umsonst!
    Per PN könnt ihr mir gerne Scriptingfragen stellen.

    2 Mal editiert, zuletzt von ErikSon ()

  • Jedoch komme ich iwi nicht weiter und mein Code ist Müll!


    Ohne mir den Code anzuschauen, was ist daran Müll?
    Was funktioniert nicht?
    Gibt der Befehl Errors aus?


    Wenn du mir die Fragen beantworten kannst, kann dir vielleicht @BlackAce: helfen.

  • //Code editiert..
    Jetzt kommt folgendes:


    Wenn ich den Befehl '/flock' ausführe, kommt "Der Befehl '/flock' konnte nicht gefunden werden.' ( Also meine 'Unknown' Message ) ..
    Egal ob ich an einem der Frakcars stehe oder nicht, es kommt immer diese Nachricht.

  • Lag daran. dass vehid -1 war, und dann im Array abgefragt wird: Array[-1] => Unknown Command.


    ocmd@3:flock,fclock,fcarlock(playerid)
    {
    new i,Float:dis = 5,vehid = -1;
    if(Spieler[playerid][Fraktion] <= 0)return SendClientMessage(playerid,Rot,"Du bist in keiner Fraktion!");
    switch(Spieler[playerid][Fraktion])
    {
    case 3:
    {
    for(i = 0; i<sizeof(FBIVehs); i++)
    {
    GetDistanceBetweenPlayerAndCar(i,playerid);
    if(dis > GetDistanceBetweenPlayerAndCar(i,playerid))
    {
    dis = GetDistanceBetweenPlayerAndCar(i,playerid);
    vehid = i;
    }
    }
    if(vehid != -1)
    {
    if(FCarlock[vehid] == 1)
    {
    FCarlock[vehid] = 0;
    for(new p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,0);
    }
    SendClientMessage(playerid,Gruen,"Du hast das Fahrzeuge aufgeschlossen.");
    }
    else if(FCarlock[vehid] == 0)
    {
    FCarlock[vehid] = 1;
    for(new p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,1);
    }
    SendClientMessage(playerid,Rot,"Du hast das Fahrzeug abgeschlossen.");
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist bei keinem Fahrzeug.");
    }
    }
    }
    return 1;
    }

  • Hmm.. Mit dem alten Code konnte ich jez bei bestimmten Fraktionen ALLE Fahrzeuge auf-/zuschließen..
    Bei manchen konnte ich auch keine auf-/zuschließen.
    Habe den Code jez so:

    ocmd@3:flock,fclock,fcarlock(playerid)
    {
    new i,p,vehid = -1;
    if(Spieler[playerid][Fraktion] <= 0)return SendClientMessage(playerid,Rot,"Du bist in keiner Fraktion!");

    GetNearest_Vehicle(playerid,7);
    if(vehid != -1)
    {
    for(i = 0; i<sizeof(PresiVehs); i++)
    {
    if(Spieler[playerid][Fraktion] == 1)
    {
    if(FCarlock[vehid] == 1)
    {
    FCarlock[vehid] = 0;
    for(p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,0);
    }
    }
    else if(FCarlock[vehid] == 0)
    {
    FCarlock[vehid] = 1;
    for(p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,1);
    }
    }
    }
    }

    for(i = 0; i<sizeof(LSPDVehs); i++)
    {
    if(Spieler[playerid][Fraktion] == 2)
    {
    if(FCarlock[vehid] == 1)
    {
    FCarlock[vehid] = 0;
    for(p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,0);
    }
    }
    else if(FCarlock[vehid] == 0)
    {
    FCarlock[vehid] = 1;
    for(p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,1);
    }
    }
    }
    }

    for(i = 0; i<sizeof(FBIVehs); i++)
    {
    if(Spieler[playerid][Fraktion] == 3)
    {
    if(FCarlock[vehid] == 1)
    {
    FCarlock[vehid] = 0;
    for(p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,0);
    }
    }
    else if(FCarlock[vehid] == 0)
    {
    FCarlock[vehid] = 1;
    for(p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,1);
    }
    }
    }
    }

    for(i = 0; i<sizeof(ArmyVehs); i++)
    {
    if(Spieler[playerid][Fraktion] == 4)
    {
    if(FCarlock[vehid] == 1)
    {
    FCarlock[vehid] = 0;
    for(p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,0);
    }
    }
    else if(FCarlock[vehid] == 0)
    {
    FCarlock[vehid] = 1;
    for(p = 0; p<MAX_SPIELER; p++)
    {
    SetVehicleParamsForPlayer(vehid,p,0,1);
    }
    }
    }
    }
    //...
    }
    return 1;
    }


    Jedoch kann ich nichts mehr öffnen/schließen ..
    Kann mir jemand helfen? ;)