IsPlayerInRangeOfPoint Problem und Sirenen Problem!

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
  • Hallo,
    Also zu meinem 1 Problem mit dem IsPlayerInRangeOfPoint und zwar habe ich für Staatsfraktionen einen Rep Punkt und wenn ich in diesem stehe und /rep eingebe steht da das ich an keinem Repair Point wäre warum ? Hier die Zeile:
    if(strcmp(cmd,"/rep",true) == 0)
    {
    if(IsACop(playerid) || IsPlayerInFrac(playerid,4) || IsPlayerInFrac(playerid,7))
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,796.9246,-2102.7170,12.6823) || IsPlayerInRangeOfPoint(playerid,4.0,1196.0211,-1351.2733,13.4017) || IsPlayerInRangeOfPoint(playerid,4.0,1547.5663,-1610.0396,13.3828) || IsPlayerInRangeOfPoint(playerid,4.0,-1628.6464,652.0121,7.1875) ||IsPlayerInRangeOfPoint(playerid,4.0,1244.3359,-2042.6630,59.8744) || IsPlayerInRangeOfPoint(playerid, 4.0, 1571.3887,-1705.3455,28.3948) || IsPlayerInRangeOfPoint(playerid, 4.0, 1692.5320,-1539.5343,13.5469))
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,-1407.8838,507.2498,18.2344) || IsPlayerInRangeOfPoint(playerid,4.0,-1234.6599,473.8205,7.1875) || IsPlayerInRangeOfPoint(playerid,4.0,1136.2015,-1342.8668,13.7693))
    {
    new veh = GetPlayerVehicleID(playerid);
    if(IsAnAmbulance(veh) || IsACopCar(veh) ||IsAArmyCar(veh) || IsAPraesiCar(veh))
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new Float:vehX, Float:vehY, Float:vehZ, Float:vehA;
    GetVehiclePos(veh,vehX,vehY,vehZ);
    GetVehicleZAngle(veh,vehA);
    RemovePlayerFromVehicle(playerid);
    FreezePlayer(playerid);
    SetVehicleToRespawn(veh);
    SetTimerEx("Rep",5000,0,"iiffff",playerid,veh,vehX,vehY,vehZ,vehA);
    GameTextForPlayer(playerid,"~g~Fahrzeugreperatur~n~~y~Bitte warten...",4500,3);
    }
    else SendClientMessage(playerid,COLOR_RED," Du bist nicht der Fahrer!");
    }
    else SendClientMessage(playerid,COLOR_RED," Du bist in keinem Staatsfahrzeug!");
    }
    else SendClientMessage(playerid,COLOR_RED," Du bist an keinem /rep-Punkt!");
    }
    else SendClientMessage(playerid,COLOR_RED," Du bist an keinem /rep-Punkt!");
    }
    else SendClientMessage(playerid,COLOR_RED," Du bist nicht berechtigt, dein Fahrzeug auf Kosten des Staats zu reparieren!");
    return 1;
    }


    Und mein 2 Problem ist das ich ein Sirenen Filterscript habe und wenn ich /sirene an eingebe eigentlich eine Sirene erscheinen soll tut sie aber nicht? :?:
    Hier die Zeile:
    ocmd:sirene(playerid,params[])
    {
    new status[4];
    if(sscanf(params,"s",status))return SendClientMessage(playerid,0xFF0000,"Info: /sirene [an/aus]");
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vid = GetPlayerVehicleID(playerid);
    if(strcmp(status,"an",true) == 0)
    {
    if(sirenean[vid] == true)return SendClientMessage(playerid,0xFF0000,"Dieses Fahrzeug hat bereits eine Sirene!");
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    sirene[vid] = CreateObject(18646,x,y,z,0,0,0,100);
    AttachObjectToVehicle(sirene[vid],vid,0.2,0,0.71,0,0,0);
    sirenean[vid] = true;
    SendClientMessage(playerid,0xFF0000,"Du hast die Sirene angeschaltet!");
    }
    else
    if(strcmp(status,"aus",true) == 0)
    {
    if(sirenean[vid] == false)return SendClientMessage(playerid,0xFF0000,"Dieses Fahrzeug hat keine Sirene");
    DestroyObject(sirene[vid]);
    sirenean[vid] =false;
    SendClientMessage(playerid,0xFF0000,"Du hast die Sirene ausgeschaltet!");
    }
    }
    return 1;
    }


    Danke für Hilfe!


    MFG murmelrund

  • Ich frage mich, wieso du 2x eine IsPlayerInRangeOfPoint-Abfrage machst.

    if(IsPlayerInRangeOfPoint(playerid,4.0,796.9246,-2102.7170,12.6823) || IsPlayerInRangeOfPoint(playerid,4.0,1196.0211,-1351.2733,13.4017) || IsPlayerInRangeOfPoint(playerid,4.0,1547.5663,-1610.0396,13.3828) || IsPlayerInRangeOfPoint(playerid,4.0,-1628.6464,652.0121,7.1875) ||IsPlayerInRangeOfPoint(playerid,4.0,1244.3359,-2042.6630,59.8744) || IsPlayerInRangeOfPoint(playerid, 4.0, 1571.3887,-1705.3455,28.3948) || IsPlayerInRangeOfPoint(playerid, 4.0, 1692.5320,-1539.5343,13.5469))
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,-1407.8838,507.2498,18.2344) || IsPlayerInRangeOfPoint(playerid,4.0,-1234.6599,473.8205,7.1875) || IsPlayerInRangeOfPoint(playerid,4.0,1136.2015,-1342.8668,13.7693))
    {


    in



    if(IsPlayerInRangeOfPoint(playerid,4.0,796.9246,-2102.7170,12.6823) || IsPlayerInRangeOfPoint(playerid,4.0,1196.0211,-1351.2733,13.4017) || IsPlayerInRangeOfPoint(playerid,4.0,1547.5663,-1610.0396,13.3828) || IsPlayerInRangeOfPoint(playerid,4.0,-1628.6464,652.0121,7.1875) ||IsPlayerInRangeOfPoint(playerid,4.0,1244.3359,-2042.6630,59.8744) || IsPlayerInRangeOfPoint(playerid, 4.0, 1571.3887,-1705.3455,28.3948) || IsPlayerInRangeOfPoint(playerid, 4.0, 1692.5320,-1539.5343,13.5469 || IsPlayerInRangeOfPoint(playerid,4.0,-1407.8838,507.2498,18.2344) || IsPlayerInRangeOfPoint(playerid,4.0,-1234.6599,473.8205,7.1875) || IsPlayerInRangeOfPoint(playerid,4.0,1136.2015,-1342.8668,13.7693))


    oder du machst immer ein else if


    MfG
    Deagle