Wie keine Wanteds in einem Bestimmten Bereich?

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,


    Auf meinem Script bekommt man autom. bei jedem Kill 2 Wanteds.


    Zitat


    if(!IsACop(killerid))
    {
    WantedPoints[killerid]+=3;
    SetPlayerCriminal(killerid,255, "Mord");
    }

    Jedoch soll man keine Wanteds bekommen, wenn man in einer Fraktion ist die gerade einen Gangfight hat, und einen Kill im Gangfight Gebiet macht.
    Außerhalb soll man genauso wie vorher 2 Wanteds bekommen.


    So wird definiert ob der Spieler in einer Fraktion ist die gerade einen GF hat,

    Zitat

    if(IsAFightFaction(GetPlayerFaction(killerid)))


    Mit freundlichen Grüßen
    Carlos_Saverio

  • Das fügst du irgentwo unten is Script, ausserhalb einer Funktion:


    stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) return 1;
    else return 0;
    }


    Dann an der Stelle, wo man die Wanteds bekommt:


    if(!IsACop(killerid) && !(IsAFightFaction(GetPlayerFaction(killerid)) && IsPlayerInArea(killerid, minX, minY, maxX, maxY)))
    {
    WantedPoints[killerid]+=3;
    SetPlayerCriminal(killerid,255, "Mord");
    }


    So dürfte das funktionieren.




    BlackLegend

  • Ne funktioniert nicht, dadurch bekommt man doch Wanteds, wenn man sich in der Zone befindet. ?

  • Nein?


    Wenn killerid kein Cop ist und er sich nicht einem Gangfight und nicht in einem Gangfightgebiet befindet, dann gebe ihm Wanteds.


    Das "!" vor der Abfrage heißt, dass das Ergebnis umgekehrt wird, also NOT.
    Wenn NOT(IstInEinemGangfight && IstInEinemGangfightGebiet).


    Deswegen steht das beides ja in der Klammer, das NOT bezieht sich auf das, was in der Klammer steht.
    Hoffe du hast es verstanden, ist aufjedenfall richtig.




    BlackLegend

  • Ok, ich habe es jetzt mal so versucht,
    nur jetzt habe ich ein anderes Problem und zwar..

    Zitat

    error 075: input line too long (after substitutions)

    if(!IsACop(killerid) && !(IsAFightFaction(GetPlayerFaction(killerid)) && IsPlayerInArea(killerid, 1060.145,-1721.339,1166.624,-1583.168 || IsPlayerInArea (killerid, 990.2909,1821.38,1177.724,2057.332 || IsPlayerInArea (killerid, -887.5186,1377.989,-583.8938,1634.903 || IsPlayerInArea (killerid, -2506.7,740.0255,-2383.094,826.8147 || IsPlayerInArea (killerid, -1850.044,1438.284,-1710.987,1584.248 || IsPlayerInArea (killerid, -1891.4263,857.8361,-1722.0261,1095.5897 || IsPlayerInArea (killerid, 1828.318,-1938.465,2071.699,-1760.817 || IsPlayerInArea (killerid, 1828.0573,-2161.2705,1956.4136,-2057.7964 ))))))))))


    Wie kann ich diesen Fehler beheben?


    mfg.

  • Ich sag dir aber schon vorweg, dass die Klammern falsch gesetzt sind.


    if(!IsACop(killerid) && !(IsAFightFaction(GetPlayerFaction(killerid)) && (IsPlayerInArea(killerid, 1060.145,-1721.339,1166.624,-1583.168) || IsPlayerInArea (killerid, 990.2909,1821.38,1177.724,2057.332) || IsPlayerInArea (killerid, -887.5186,1377.989,-583.8938,1634.903) || IsPlayerInArea (killerid, -2506.7,740.0255,-2383.094,826.8147) || IsPlayerInArea (killerid, -1850.044,1438.284,-1710.987,1584.248) || IsPlayerInArea (killerid, -1891.4263,857.8361,-1722.0261,1095.5897) || IsPlayerInArea (killerid, 1828.318,-1938.465,2071.699,-1760.817) || IsPlayerInArea (killerid, 1828.0573,-2161.2705,1956.4136,-2057.7964)))


    So sollte es richtig sein, einfach alles ans Ende klatschen ist zwar schön, jedoch keine Lösung:D



    BlackLegend

  • Nicht unbedingt, die bemerkt er dann ingame.
    Schau dir seinen Code doch an:


    if(!IsACop(killerid) && !(IsAFightFaction(GetPlayerFaction(killerid)) && IsPlayerInArea(killerid, 1060.145,-1721.339,1166.624,-1583.168 || IsPlayerInArea (killerid, 990.2909,1821.38,1177.724,2057.332 || IsPlayerInArea (killerid, -887.5186,1377.989,-583.8938,1634.903 || IsPlayerInArea (killerid, -2506.7,740.0255,-2383.094,826.8147 || IsPlayerInArea (killerid, -1850.044,1438.284,-1710.987,1584.248 || IsPlayerInArea (killerid, -1891.4263,857.8361,-1722.0261,1095.5897 || IsPlayerInArea (killerid, 1828.318,-1938.465,2071.699,-1760.817 || IsPlayerInArea (killerid, 1828.0573,-2161.2705,1956.4136,-2057.7964 ))))))))))


    Merkste was?
    IsPlayerInArea(killerid, 1060.145,-1721.339,1166.624,-1583.168 <- Hier|| IsPlayerInArea (killerid, 990.2909,1821.38,1177.724,2057.332 <- oder hier || IsPlayerInArea (killerid, -887.5186,1377.989,-583.8938,1634.903 ||





    BlackLegend

  • ich würd dir empfehlen die k_playerarea.inc zusätzlich zu holen.


    Bietet dir den Callback
    OnPlayerEnterArea(...)
    OnPlayerExitArea(...)
    und ne menga an funktionen um dir eine Zone zu erstellen, ob Gangzone ,Worldzone oder andere.


    Dort ist auch einfach beschrieben wie du das ganze für dein Problem verwenden könntest.


    Hoffe hat dir geholfen.
    thacoga ;)