NO DM Zonen 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
  • Abend, in meinem No DM Zonen System gibt es ein Problem...
    Manchmal werden die Waffen auch außerhalb der NO DM Zone aus der Hand genommen, dies aber auch nicht bei allen Usern.
    An was kann das liegen?


    public NDMZoneCheck(playerid)
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInArea(i,135.8763,-6681.1318,2135.6960,-3563.6587))
    {
    SetPlayerArmedWeapon(playerid,0);
    new vehicleid = GetPlayerVehicleID(playerid);
    switch(GetVehicleModel(vehicleid))
    {
    case 425, 432, 476, 520:
    {
    SetVehicleHealth(vehicleid,0);
    }
    }
    TextDrawShowForPlayer(i,NODM);
    }
    else
    {
    TextDrawHideForPlayer(i,NODM);
    }
    }
    return 1;
    }

  • Kannst du mal bitte die vwerndung von NDMZoneCheck(playerid) posten
    du hast dies ja bestimmt in einem Timer drinne und aufgrund von der verwendung der schleife und der spielerid an sich ist dies mir nicht so wirklich schlüssig was du genau bezwecken möchtest mit
    der schleife.


    public NDMZoneCheck(){
    for (new i = 0; i < MAX_PLAYERS; i++){
    if(IsPlayerInArea(i,135.8763,-6681.1318,2135.6960,-3563.6587)){
    SetPlayerArmedWeapon(i,0);
    new veh = GetPlayerVehicleID(i);
    switch(GetVehicleModel(veh)){
    case 425, 432, 476, 520:SetVehicleHealth(veh,0);
    }
    TextDrawShowForPlayer(i,NODM);
    }else TextDrawHideForPlayer(i,NODM);


    }
    return 1;
    }


    //edit


    ist auch überhaupt solch eine große no-dm zone gewollt if(IsPlayerInArea(i,135.8763,-6681.1318,2135.6960,-3563.6587)){
    da diese Fläche schon gigantisch ist

  • IPrototypeI,


    versteh nicht ganz was du meinst... Aber, ja es läuft über einen Timer. Die Fläche ist wirklich groß, aber dies völlig zurecht.
    Nur manchmal tretet es auf das es auch außerhalb der Fläche die Waffe aus der Hand geht...
    Die Zweite abfrage ist dafür da das diese genannten Fahrzeuge auf diesem Area nicht zugelassen sind.
    Habe lediglich das "forward NDMZoneCheck(playerid);" oben im Script und bei OnGameModeInit den Start "SetTimer("NDMZoneCheck",2000,1);"
    Ab und zu kommt es auch vor das der Timer ausfällt, das liegt aber denke auch auch an dem fehler denn ich bisher noch nicht gefunden habe .

  • SetTimer("NDMZoneCheck",2000,1);


    Mich wundert es gerade das dein gamemode beim kompilen nicht rum meckert


    SetTimer("NDMZoneCheck",2000,1);


    und



    public NDMZoneCheck(playerid)
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInArea(i,135.8763,-6681.1318,2135.6960,-3563.6587))
    {
    SetPlayerArmedWeapon(playerid,0);
    new vehicleid = GetPlayerVehicleID(playerid);
    switch(GetVehicleModel(vehicleid))
    {
    case 425, 432, 476, 520:
    {
    SetVehicleHealth(vehicleid,0);
    }
    }
    TextDrawShowForPlayer(i,NODM);
    }
    else
    {
    TextDrawHideForPlayer(i,NODM);
    }
    }
    return 1;
    }
    daraus lässt sich schließen das es zu dem sehr seltsam ist wie du dies verwendest dieser parameter playerid kommt dort nicht hin, wenn du mit einem Globalen Timer arbeitest
    wenn du es für jeden aufrufen willst musst du schon mit der for-schleife arbeiten( was du auch im kleinen Sinne macht) mich wundert es gerade überhaupt das dem spieler bei dir die waffen weggenommen werden
    da du so gesehen nur der spielerid 0 diese zurück setzt.