Problem mit Abfrage

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,
    ich möchte gern, dass man nur in eine Arena gehen kann, wenn man mehr als 90 HP oder mehr hat, in der Base ist und
    50 Armour hat oder mehr. Jedoch kann man trotzdem immer in die Arena reingehen, egal wo man ist, oder wie das hp ist:


    • new name1[MAX_PLAYER_NAME], string[128],str2[128], Float:Leben, Float:Weste;
      GetPlayerHealth(playerid, Leben);
      GetPlayerArmour(playerid, Weste);
      if(sscanf(params,""))return SendClientMessage(playerid, RED, "Benutze: /arena");
      GetPlayerName(playerid,name1,sizeof(name1));
      if(arena[playerid] == 0)
      {
      if(gTeam[playerid] == LSPD)
      {
      if(!IsPlayerInRangeOfPoint(playerid, 50.0 ,731.4595,-1276.2070,13.4048) || Leben < 90 || Weste < 50)
      {
      SendClientMessage(playerid, RED, "Du musst in deiner Base sein und brauchst mind. 90 Health und 50 Armour!");
      return 1;}
      else if(gTeam[playerid] == GS)
      {
      if(!IsPlayerInRangeOfPoint(playerid, 50.0 ,2443.3091,-1636.0962,13.1460) || Leben < 90 || Weste < 50)
      {
      SendClientMessage(playerid, RED, "Du musst in deiner Base sein und brauchst mind. 90 Health und 50 Armour!");
      return 1;
      }
      }
      }
      format(string,sizeof(string),"%s hat die Deagle Arena betreten (/arena).",name1);


    MfG

  • Du benutzt ein logisches ODER, brauchst aber ein logisches UND in deinen If-Klauseln.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • if(!IsPlayerInRangeOfPoint(playerid, 50.0 ,731.4595,-1276.2070,13.4048) && Leben < 90 && Weste < 50)



    so kriegt er doch nur die message, wenn er nicht in der base, weniger als 90 leben hat und weniger als 50 hp
    er soll aber schon die message kriegen, wenn eins von den sachen zutrifft.


    /e: so?


    • if((gTeam[playerid] == LSPD && (!IsPlayerInRangeOfPoint(playerid, 50.0 ,731.4595,-1276.2070,13.4048) || Leben < 90 || Weste < 50)) || (gTeam[playerid] == GS && (!IsPlayerInRangeOfPoint(playerid, 50.0 ,2443.3091,-1636.0962,13.1460) || Leben < 90 || Weste < 50)))
      {
      SendClientMessage(playerid, RED, "Du musst in deiner Base sein und brauchst mind. 90 Health und 50 Armour!");
      return 1;}


    funktioniert auch nicht

  • Zitat


    if(!IsPlayerInRangeOfPoint(playerid, 50.0 ,731.4595,-1276.2070,13.4048) && Leben < 90 && Weste < 50)


    bedeutet:
    Wenn du nicht am Punkt x,y,z bist und weniger Leben als 90 und weniger als 50 Armor hast, kannst du rein!
    Du willst aber, das man reinkommt wenn man:
    mehr als 90 Leben und mehr als 50 Armor hat und das man an einen bestimmten Punkt ist.
    Kurz und einfach:

    if(!IsPlayerInRangeOfPoint(playerid, 50.0 ,731.4595,-1276.2070,13.4048) && !Leben < 90 && !Weste < 50)