Beiträge von Hagi

    Ich setz mich ran.


    Dauert aber kurz, muss grad essen gehn :D




    @dit


    Hier hast du dein Zoll
    Er ist etwas gemappt, man kann die Schranken mit /zoll öffnen und diese schließen sich nach 5 Sekunden.
    Man muss 500 $ auf der Hand haben, die einem dann abgezogen und in eine Zollkasse gelegt werden.

    Ja kann man, ich weiß jetzt nicht ob ichs grad zu umständlich mache, sollte aber funktionieren



    new float:newx,Float:newy,Float:newz,Float:newa;
    new difx,dify,difz,difa;
    difx = newx - sx[playerid];
    dify = newy - sy[playerid];
    difz = newz - sz[playerid];
    difa = newa - sa[playerid];
    GetVehiclePos(SCAR[playerid],newx,newy,newz);
    GetVehicleFacingAngle(SCAR[playerid],newa);
    if(newx != sx[playerid] && difx >= 1 || difa <= -1 || newy != sy[playerid] && dify >= 1 || dify <= -1 || newz != sz[playerid] && difz >= 1 || difz <= -1 || newa !=sa[playerid] && difa <= 1 || difa <= -1 )
    {


    Theoretisch sollte es funktionieren, musst du mal ausprobiere

    Testest du denn immer alleine oder mit mehreren Spielern ?


    Und geht dein Vorschlag oder meiner ?


    Also der newx,newy....


    oder


    sx != sx

    Ich würd settimerex empfehlen


    hier mal der gesamte cmd


    forward scar(playerid);
    new SCAR[MAX_PLAYERS],Float:sx[MAX_PLAYERS], Float:sy[MAX_PLAYERS], Float:sz[MAX_PLAYERS], Float:sa[MAX_PLAYERS];


    if (strcmp(cmdtext, "/scar", true)==0)
    {
    if (GetPlayerVirtualWorld(playerid) == 2)
    {
    SendClientMessage(playerid,COLOR_RED,"You cant use this command here!");
    }
    else
    {
    if (GetPlayerVirtualWorld(playerid) == 4)
    {
    SendClientMessage(playerid,COLOR_RED,"You cant use this command if you are jailed!");
    }
    else
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    SCAR[playerid] = GetPlayerVehicleID(playerid);
    GetVehiclePos(SCAR[playerid], sx[playerid], sy[playerid], sz[playerid]);
    GetVehicleZAngle(GetPlayerVehicleID(playerid), sa[playerid]);
    SetTimerEx("scar",100,1,"i",playerid);
    SendClientMessage(playerid, COLOR_BASIC, "VehiclePOS saved!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_BASIC, "You musst be in a vehicle!");
    }
    }
    }
    return 1;
    }


    public scar(playerid) {
    new float:newx,Float:newy,Float:newz,Float:newa;
    GetVehiclePos(SCAR[playerid],newx,newy,newz);
    GetVehicleFacingAngle(SCAR[playerid],newa);
    if(newx != sx[playerid] || newy != sy[playerid] || newz != sz[playerid] || newa !=sa[playerid])
    {


    SetVehiclePos(SCAR[playerid], sx[playerid], sy[playerid], sz[playerid]);
    SetVehicleZAngle(SCAR[playerid], sa[playerid]);
    }

    return 1;
    }


    Kann jetzt hier grad net einrücken sry

    Nein würde es nicht, da du in deinem letzten Beispiel eine variable verwendest. w.B.


    variable1 = 1


    Diese Variable hat nun den Wert 1


    Wenn du nun nach deinem Beispiel gehen würdest


    if(1 != 1)


    Was aber nicht der Fall ist, weshalb auch der if-Körper nicht ausgeführt wird.


    Aber probieren kann man es theoretisch ja mal


    new float:newx,Float:newy,Float:newz,Float:newa;
    GetVehiclePos(SCAR[playerid],newx,newy,newz);
    GetVehicleFacingAngle(SCAR[playerid],newa);
    if(newx != sx[playerid] || newy != sy[playerid] || newz != sz[playerid] || newa !=sa[playerid])
    {
    SetVehiclePos(SCAR[playerid], sx[playerid], sy[playerid], sz[playerid]);
    SetVehicleZAngle(SCAR[playerid], sa[playerid]);
    }


    So sollte es funktionieren

    Soll das


    if(!GetVehiclePos(SCAR[playerid], sx[playerid], sy[playerid], sz[playerid]))
    {
    if(!GetVehicleZAngle(SCAR[playerid], sa[playerid]))
    {


    abfragen ob das Vehicle nicht dor sthet wo man /scar gemacht hat ?

    Ja und was soll er damit ? Damit geht das Tor auch nicht von selber zu :thumbdown:


    Hier machs so


    1. Ganz oben unter #include <a_samp>


    forward lsgatezu();


    2. Der Befehl


    if (strcmp(cmdtext, "/lsgateo", true) == 0)
    {
    If(gTeam[playerid] == TEAM_Bodenpersonal || gTeam[playerid] == TEAM_lspilot)
    {
    MoveObject(lsgate1, 1966.328, -2189.8627, 17.2624, 2.00);
    MoveObject(lsgate2, 1957.588, -2189.8242, 17.2624, 2.00);
    SendClientMessage(playerid, Rot, "Das Tor schließt sich automatisch");
    SetTimer("lsgatezu",15000,0);
    return 1;
    }
    }


    3. Ganz nach unten


    public lsgatezu()
    {
    MoveObject(lsgate1,/*koordinaten wo das tor geschlossen sein soll (x,y,z) */);
    MoveObject(lsgate2,/*koordinaten wo das tor geschlossen sein soll (x,y,z) */);
    return 1;


    Das erklärt es am besten

    If(gTeam[playerid] == TEAM_Bodenpersonal || gTeam[playerid] == TEAM_lspilot)


    Und dann im Commmand
    SetTimer("lsgatezu",15000,0);




    im public lsggatezu()
    machstu du das Tor wieder auf Ausgangposition


    Natürlich musst du ganz oben im Script


    forward lsgatezu();