←  Tutoriale

AMXX.pl: Support AMX Mod X i SourceMod

»

Deklaracja "switch"

  • +
  • -
Salamon - zdjęcie Salamon 03.07.2008

Często chcemy ustawić coś losowo, według jakichś liczb, czy np według innej kolejności, o to sposób:

switch (a)
{
    case 1:
    {
       //kod tu umieszczony zostanie uzyty jezeli (a) bedzie rowne 1
    }
 
    case 2:
    {
       //kod tu umieszczony zostanie uzyty jezeli (a) bedzie rowne 2
    }
 
    case 3:
    {
       //kod tu umieszczony zostanie uzyty jezeli (a) bedzie rowne 3
    }
 
    default:
    {
       //kod tu umieszczony zostanie uzyty jezeli wszystkie inne przypadki zawioda
    }
}
gdzie (a) jest to właśnie ta losowa liczba, mozemy np uzyc kodu:

switch ( random_num( 1, 3 ) )
{
    case 1:
    {
       //kod tu umieszczony zostanie uzyty jezeli (a) bedzie rowne 1
    }
 
    case 2:
    {
       //kod tu umieszczony zostanie uzyty jezeli (a) bedzie rowne 2
    }
 
    case 3:
    {
       //kod tu umieszczony zostanie uzyty jezeli (a) bedzie rowne 3
    }
}
wtedy losowo uzyje jednego z 3 kodow

switch (a)
{
    case 1, 2, 3:
    {
       //kod tu umieszczony zostanie uzyty jezeli (a) bedzie rowne 1, 2 badz 3
    }
 
    case 4, 5, 6:
    {
       //kod tu umieszczony zostanie uzyty jezeli (a) bedzie rowne 4, 5 badz 6
    }
 
    case 7, 8, 9:
    {
       //kod tu umieszczony zostanie uzyty jezeli (a) bedzie rowne 7, 8 badz 9
    }
 
    default:
    {
       //kod tu umieszczony zostanie uzyty jezeli wszystkie inne przypadki zawioda
    }
}
tu mamy przyklad jak uzyc jednego kodu w kilku przypadkach naraz

switch (a)
{
    case 0 .. 50:
    {
       //kod tu umieszczony zostanie uzyty jezeli (a) spelni zaleznosc: 0 <= a <= 50
    }
 
    case 51 .. 100:
    {
       //kod tu umieszczony zostanie uzyty jezeli (a) spelni zaleznosc: 51 <= a <= 100
    }
 
    case 101 .. 200:
    {
       //kod tu umieszczony zostanie uzyty jezeli (a) spelni zaleznosc: 101 <= a <= 200
    }
 
    default:
    {
       //kod tu umieszczony zostanie uzyty jezeli wszystkie inne przypadki zawioda
    }
}
tu mamy przyklad jak uzyc jednego kodu na zakres wynikow, np od 0 do 50

a teraz przyklad nie na liczbach lecz na broniach
new weapon = get_user_weapon(id,_,_)
switch(weapon)
{
   case CSW_SCOUT: 
   {
       //kod tu umieszczony zostanie uzyty jezeli weapon, czyli bron trzymana w rece to scout
   }
   case CSW_M4A1: 
   {
       //kod tu umieszczony zostanie uzyty jezeli weapon, czyli bron trzymana w rece to m4a1
   }
}


zrodlo http://wiki.amxmodx.org/
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 03.07.2008

a teraz przyklad nie na liczbach lecz na broniach

new weapon = get_user_weapon(id,_,_)
switch(weapon)
{
   case CSW_SCOUT: 
   {
       //kod tu umieszczony zostanie uzyty jezeli weapon, czyli bron trzymana w rece to scout
   }
   case CSW_M4A1: 
   {
       //kod tu umieszczony zostanie uzyty jezeli weapon, czyli bron trzymana w rece to m4a1
   }
}


Salamon, to jest nadal na liczbach :DD get_user_weapon zwraca id broni, a ty tylko uzyles enum'a ktory pozwala zamiast pisac niewiele mowiace cyferki, juz wiecej mowiaca nazwe broni odpowiadajacej id broni ^^

Z tego co patrzylem, to switch w pawn'ie nie dziala z stringami (ciagami znakowymi).
Odpowiedz

  • +
  • -
Salamon - zdjęcie Salamon 03.07.2008

wiem ale to jest prostrze niz pamietanie ID kazdej broni, bo nazwy wszyscy znaja ^.^

prawde mowiac wszystko jest jakas liczba ktora mozna zastapic slowami ktore to ulatwiaja ;]
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 03.07.2008

Salamon, I dlatego zrobilem poradnik o enum'ach ^^
Odpowiedz