Szerző Téma: [Leírás]bool változók  (Megtekintve 3551 alkalommal)

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
[Leírás]bool változók
« Dátum: 2010. április 06. - 09:57:10 »
+1 Show voters
Üdv újra!

Tudom hogy le van írva ez is máshol, csak nem biztos hogy megérti valaki, mert \"szakszavakat használnak\". Én nem fogok szakszavakat használni hogy könnyebben megértsétek :)  ((Régen én sem értettem a szakszavakat))


Mi az a változó?

Benne van a nevében: az értékét lehet neki változtatni. Itt egy példa:


Ha pédául egy VIP rendszert szeretnél készíteni akkor létrehozol egy



new bool:VIP[MAX_PLAYERS]

 

A VIP helyére akármit írhatsz :D


Ez azt jelenti hogy létrehoztál neki két adható értéket mivel bool-nál csak is két érték lehet, a true és a false.


true = 1

false = 0

Így tudsz neki értéket adni:



VIP[playerid] = true;

 (Ez azt jelenti hogy a tag VIP lesz :D)

vagy



VIP[playerid] = false;

(ezzel pedig elveszed a VIP rangját)

VIP = A megadott változónév

[playerid] = Ez volt az elején a MAX_PLAYERS, ez azt jelenti hogy csak egy játékosra legyen igaz


Egyenloség jel = Egy operátor


true vagy false pedig az érték


Értékek lekérése.

Egszeru. Tételezzük fel hogy Te SendClientMessageToAll-ban szeretnéd kiírni a rangot.


new sztring[255]; // ez is egy változótípus, max 256 értéket tartalmazhat( 0 - 255 az ugye 256)
format(sztring, 256, \"%S a VIP rangod!\", VIP[playerid]);
SendClientMessageToAll(Színkód, sztring);

 

És még van az hogy egy parancsnál pédául le szeretnéd kérdezni hogy VIP-e. Ha nem akkor kickelje példának.Ha VIP elteleportálja valahova



if(VIP[playerid] == true) return SetPlayerPos(playerid, x, y, z);
Kick(playerid);

 

Ez így egy láthatatlan \"vagy\"-t vagyis \"else\"- t képzett.

Vagy pedig.2. megoldás



if(VIP[playerid] == true)
{
    SetPlayerPos(playerid, x, y, z);
} else { Kick(playerid); }

 

Mi az az érték?

Az érték általában egy szám pédául 1 ,12, 999, akár 12345. Ennek van egy limitje, nem tudom már mekkora :D


Ennyi lett volna remélem segíthettem. :)
« Utoljára szerkesztve: 2010. április 06. - 10:00:06 írta Zharko »

Nem elérhető SnicK

  • 7521
    • Profil megtekintése
[Leírás]bool változók
« Válasz #1 Dátum: 2010. április 06. - 11:06:52 »
0 Show voters
Jól sikerült értheto, szép megfogalmazás.

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
[Leírás]bool változók
« Válasz #2 Dátum: 2010. április 06. - 11:22:32 »
0 Show voters
Köszönöm :D

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
[Leírás]bool változók
« Válasz #3 Dátum: 2010. április 06. - 11:29:34 »
0 Show voters
Ha már elhatároztad, hogy a \'gyengébbek\' kedvéért leírod ismét a logikai változó használatát, akkor egy cseppet szebb is lehetett volna..  :shy:
 

new sztring[255]; // ez is egy változótípus, max 256 értéket tartalmazhat( 0 - 255 az ugye 256)
format(sztring, 256, \"%S a VIP rangod!\", VIP[playerid]);
SendClientMessageToAll(Színkód, sztring);
 
[/quote]
A chatbox csak 128 karakter képes megjeleníteni, a 256 pazarol mivel 128 karakternek semmi haszna.
Serinted a return:
 
egy láthatatlan \"vagy\"-t vagyis \"else\"- t képzett.[/quote]
Szerintem meg nem... A return visszatértést jelent, a leírásod alapján ha a játékos VIP rangú akkor visszatér a játékos pozíciójának megváltoztatásával. Ha nem akkor kidobja a szerver.
U.I: Ezeket nem bántásból mondtam, csak a hibáidat fedeztem fel, hogy legközelebb ilyen problémád ne legyen. :D
Emígy, jó leírás lenne.   ;)
« Utoljára szerkesztve: 2010. április 06. - 11:31:08 írta Csabesz »

Nem elérhető ALIEN

  • 1163
    • Profil megtekintése
[Leírás]bool változók
« Válasz #4 Dátum: 2010. április 06. - 11:29:58 »
0 Show voters
Jó kis leírás lett.
Szerintem a másik is ugyan ilyen értheto.

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
[Leírás]bool változók
« Válasz #5 Dátum: 2010. április 06. - 11:31:56 »
0 Show voters
Oks, kösz Csabesz :D Amúgy kajak azt hittem hogy 256 karaktert tud megjeleníteni :D
ALIEN: Ok, te tudod, am kösz :D

Szeby1995

  • Vendég
[Leírás]bool változók
« Válasz #6 Dátum: 2010. április 09. - 14:10:50 »
0 Show voters
Ez nekem nagyon tetszik :D
Sikerült is megcsinálni..kössz  :D
Hogy lehet megoldani hogy egy parancssal adjunk VIP et?

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
[Leírás]bool változók
« Válasz #7 Dátum: 2010. április 09. - 14:40:44 »
0 Show voters
Nincsmit, én köszi :D
Leírom:
 

new string[127];
new sendername[MAX_PLAYER_NAME];
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256], tmp[256], idx, giveplayer[MAX_PLAYER_NAME];      
if(strcmp(cmd, \"/vip\", true) == 0)
{
   tmp = strtok(cmdtext, idx);
       if(!strlen(tmp))
   {
      SendClientMessage(playerid, szín, \"Használat: /vip <playerid>\");
      return 1;
   }
           giveplayerid = ReturnUser(tmp);
           if(IsPlayerAdmin(playerid))
         {
      if(IsPlayerConnected(giveplayerid))
      {
         if(VIP[giveplayerid] = true)
         {
            VIP[giveplayerid] = true;
            GetPlayerName(playerid, name, sizeof (name));
            format(string, sizeof(string), \"%s VIP rangot adott neked!\", name);
            SendClientMessage(giveplayerid, szín, string);
            GetPlayerName(giveplayerid, giveplayer, sizeof (giveplayer));
            format(string, sizeof(string), \"VIP rangot adtál %s-nak/nek!\", giveplayer);
            SendClientMessage(playerid, szín, string);
            }
          } else{
         SendClientMessage(playerid, szín, \"Már VIP az illeto!\");
         }
         } else {
          SendClientMessage(playerid, szín, \"Nincs fennt a játékos!\");
      }
   } else {
   SendClientMessage(playerid, szín, \"Nem vagy RCON admin!\");
}
return 1;
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal