Rampe an/aus

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
  • Ich habe da ein problem..
    ich habe ein strg rampen script von [ FILTERSCRIPT ] STRG Rampe || Ideal Für Stunt und Freeroam ||
    geholt,nur leider wenn man mit dem hydra schiesssen will kommt da diese rampe xD.
    ist nicht so gut .
    Wollte fragen ob man das nicht ausschalten könnte z.b mit /rampean /rampeaus
    oder so.
    Schonmal danke für eure antworten.


    MFG,Cedi :thumbup:

  • klar geht das, machs einfach mit nem bool.


    new bool: RampeAn;


    und dann setzt du einfach in dem FS eine if abfrage davor



    if(RampeAn==1)
    {
    //...


    und dann machst du natürlich noch die befehle ins FS



    if (strcmp("/rampean", cmdtext, true, 10) == 0)
    {
    if(RampeAn == 1)
    {
    SendClientMessage(playerid,0xFFFFFFAA,"Rampe ist bereits an!");
    }
    else
    {
    RampeAn = 1
    }

  • gompfy bei einem bool nutzt man true und false. Du könntest aber es auch so lösen wenn der spieler in einem Flugzeug ist das die Funktion automatisch gleich deaktiviert wird.



    if (strcmp("/rampean", cmdtext, true, 10) == 0)
    {
    if(RampeAn == true)
    {
    SendClientMessage(playerid,0xFFFFFFAA,"Rampe ist bereits an!");
    }
    else
    {
    RampeAn = true;
    }



    if (strcmp("/rampeaus", cmdtext, true, 10) == 0)
    {
    if(RampeAn == false)
    {
    SendClientMessage(playerid,0xFFFFFFAA,"Rampe ist bereits aus!");
    }
    else
    {
    RampeAn = false;
    }


    So das wäre jetzt die Funktion mit CMD.


    Unter OnPlaerStateChange

    if(IsPlane(vehicleid))
    {
    RampeAn == false;
    SendClientMessage(playerid,0xDB0000F6,"Die RampenFunktion wurde Deaktiviert!");
    }



    stock IsPlane(vehicleid) // Planes
    {
    new model = GetVehicleModel(vehicleid);
    switch(model)
    {
    case 592:return 1;
    case 577:return 1;
    case 511:return 1;
    case 512:return 1;
    case 593:return 1;
    case 520:return 1;
    case 553:return 1;
    case 464:return 1;
    case 476:return 1;
    case 519:return 1;
    case 460:return 1;
    case 513:return 1;
    case 539:return 1;
    }
    return false;
    }

  • Danke die lösung mit dem Flugzeug gefällt mir besser
    werds jez ausprobiern.


    MFG,Cedi


    Habe errors:


    Das script hier:
    #include <a_samp>


    forward RampCreate();
    forward RemoveRamp(id);
    forward Float:GetOptimumRampDistance(playerid);
    forward Float:GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance);


    new keydown[MAX_PLAYERS] = {false, ...};
    new rampid[MAX_PLAYERS] = {-1, ...};


    public OnFilterScriptInit() {
    print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    print("STG Ramp Filterscript by Matze_Bellic");
    print("Idde by Script Monopoly");
    print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    SetTimer("RampCreate", 100, 1);
    }


    public RampCreate()
    {
    new Key1,Key2,Key3;
    new Float:px,Float:py,Float:pz,Float:pa;
    for (new i; i < MAX_PLAYERS; i++)
    {
    if (IsPlayerConnected(i))
    {
    GetPlayerPos(i,px,py,pz);
    GetPlayerKeys(i,Key1,Key2,Key3);
    if (Key1 & KEY_ACTION && IsPlayerInAnyVehicle(i))
    {
    if (GetPlayerState(i) == PLAYER_STATE_DRIVER)
    {
    if (!keydown[i])
    {
    keydown[i] = 1;
    if (rampid[i] == -1)
    {
    pa = GetXYInFrontOfPlayer(i, px, py, GetOptimumRampDistance(i));
    pz += 0.5;
    rampid[i] = CreateObject(1632, px, py, pz - 0.5, 0.0, 0.0, pa);
    SetTimerEx("RemoveRamp", 2000, 0, "d", i);
    }
    }
    }
    }
    else keydown[i] = 0;
    }
    }
    }


    public RemoveRamp(id)
    {
    if (rampid[id] != -1)
    {
    DestroyObject(rampid[id]);
    rampid[id] = -1;
    }
    }


    stock GetVehicleWithinDistance(playerid, Float:x1, Float:y1, Float:z1, Float:dist, &veh)
    {
    for (new i = 1; i < MAX_VEHICLES; i++)
    {
    if (GetVehicleModel(i) > 0)
    {
    if (GetPlayerVehicleID(playerid) != i)
    {
    new Float:x, Float:y, Float:z;
    new Float:x2, Float:y2, Float:z2;
    GetVehiclePos(i, x, y, z);
    x2 = x1 - x; y2 = y1 - y; z2 = z1 - z;
    new Float:vDist = (x2*x2+y2*y2+z2*z2);
    if (vDist < dist)
    {
    veh = i;
    dist = vDist;
    }
    }
    }
    }
    }


    Float:GetOptimumRampDistance(playerid)
    {
    new ping = GetPlayerPing(playerid), Float:dist;
    dist = floatpower(ping, 0.25);
    dist = dist*4.0;
    dist = dist+5.0;
    return dist;
    }


    Float:GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
    {
    new Float:a;
    GetPlayerPos(playerid, x, y, a);
    if (IsPlayerInAnyVehicle(playerid)) GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
    else GetPlayerFacingAngle(playerid, a);
    x += (distance * floatsin(-a, degrees));
    y += (distance * floatcos(-a, degrees));
    return a;
    }


    public OnPlayerStateChange
    if(IsPlane(vehicleid))
    {
    RampeAn == false;
    SendClientMessage(playerid,0xDB0000F6,"Die RampenFunktion wurde Deaktiviert!");
    }
    stock IsPlane(vehicleid) // Planes
    {
    new model = GetVehicleModel(vehicleid);
    switch(model)
    {
    case 592:return 1;
    case 577:return 1;
    case 511:return 1;
    case 512:return 1;
    case 593:return 1;
    case 520:return 1;
    case 553:return 1;
    case 464:return 1;
    case 476:return 1;
    case 519:return 1;
    case 460:return 1;
    case 513:return 1;
    case 539:return 1;
    }
    return false;
    }


    Die errors:
    D:\Dokumente und Einstellungen\Besitzer\Desktop\rampe(2).pwn(104) : error 001: expected token: ";", but found "if"


    MFG,Cedi :thumbup:

  • Ja Danke monte.
    Ich hätte es aber gerne so gehabt das wenn ich in ein Flugzeug einsteige die rampen deaktiviert sind.
    Könnte mir das nicht einer in das script einfügen?
    Wäre sehr nett.


    MFG,Cedi 8)


    PS: in meinem voherigen post habe ich das ganze script gepostet.
    Das heißt zeile 104 ist hier im forumm zeile 104 :D


    8o


    Hat keiner ne idee?

  • meinst du ganz aus oder wie ganz aus geht er mit /rcon unloadfs rampe

  • Ne ich meinte eigentlich nur das man als normaler user /rampeaus und /rampean machen kann das heißt wenn man /rampeaus macht das die rampe nicht mehr kommt,z.b wenn man mit dem hydra schiessen will und bei /rampean das die rampe wieder kommt wenn man stunten will.
    Schonmal danke für die weiteren antworten.


    MFG,Cedi :thumbup: