Szerző Téma: else problémák  (Megtekintve 433 alkalommal)

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
else problémák
« Dátum: 2012. május 28. - 13:01:34 »
0 Show voters
Sziasztok,az új paramcsaimnál problémákba ütközök.
Mint pl.:
 
CMD:ban(playerid,params[])
{
    if(Belepve[playerid] != 0)
{
    new ember[MAX_PLAYER_NAME],indok[256];
    if (sscanf(params,\"ss\", ember,indok)) SendClientMessage(playerid,SZURKE, \"Használat: /ban [Név] [indok]\");
    {
        if(JatekosInfo[playerid][Admin] > 2)
        {
      new id;
      id = GetPlayerID(ember);
      if(!IsPlayerConnected(id))
      {
          new file[256];
          format(file,sizeof(file),\"/Adatbazis/Karakterek/%s.ini\", ember);
          if(fexist(file))
          {
               new string[256];
            GetPlayerName(playerid,nev,sizeof(nev));
            format(string,sizeof(string),\"%s ki lett bannolva %s által. Indok: %s\", ember,nev,indok);
            SendClientMessageToAll(FIGYELEM, string);
            printf(string);
            strmid(JatekosInfo[id][indok],indok,0,strlen(indok));
            dini_Set(file,\"Indok\", indok);
            dini_IntSet(file, \"Bannolva\",JatekosInfo[id][bann]);
            return 1;
         }
         else SendClientMessage(playerid, HIBA, \"Nincs ilyen nevû regisztrált karakter!\");
      }
      if(IsPlayerConnected(id))
      {
          new string[256];
         new file[256];
         GetPlayerName(playerid,nev,sizeof(nev));
         if(JatekosInfo[playerid][Admin] > JatekosInfo[id][Admin])
         {
            format(string,sizeof(string),\"%s ki lett bannolva %s által. Indok: %s\", ember,nev,indok);
            SendClientMessageToAll(FIGYELEM, string);
            printf(string);
            format(file,sizeof(file),\"/Adatbazis/Karakterek/%s.ini\", ember);
            strmid(JatekosInfo[id][indok],indok,0,strlen(indok));
            JatekosInfo[id][bann] = 1;
            dini_Set(file,\"Indok\", indok);
            dini_IntSet(file, \"Bannolva\",JatekosInfo[id][bann]);
            Kick(id);
            return 1;
         }
         else SendClientMessage(playerid, HIBA, \"Csak nálad kisebb szintû karaktert bannolhatsz!\");
      }
   }
   else SendClientMessage(playerid, HIBA, \"Minimum 3-as szintû adminnak kell lenned!\");
    }
}
else SendClientMessage(playerid, HIBA, \"Be kell jelentkezned!\");
return 0;
}

 
ha beírom csak simán,hogy: /ban
Akkor kiírja a használatát,és hogy \"Csak nálad kisebb szintû karaktert bannolhatsz!\"
Ez miért van?
És ha vannak if-ek egy parancsnál,akkor miért végzi el az else-t is amikor a if-ek végén vannak returnok?
Köszi a helpet :D

else problémák
« Válasz #1 Dátum: 2012. május 28. - 17:38:44 »
+1 Show voters
Hát az hogy nincs se \"else\" se \"return\" ott ahol kellene.
Két értékkel térhet vissza egy if feltétel vizsgálat ami 1 vagy 0 ezeket szokás igaznak vagy hamisnak is említeni de maradjunk a 0-nál és az 1-nél.
Ahogy a parancs le van írva semmi nem szerepel benne ami eligazítaná a helyes útirányba,
akármivel is tért vissza az \"if(sscanf(...\"
Most vagy ide egy return:
 
       if (sscanf(params,\"ss\", ember,indok)) return SendClientMessage(playerid,SZURKE, \"Használat: /ban [Név] [indok]\");
    {

 
vagy ide egy else:
 
       if (sscanf(params,\"ss\", ember,indok)) SendClientMessage(playerid,SZURKE, \"Használat: /ban [Név] [indok]\");
    else {

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal