hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.19. 00:55



Jelenlévő felhasználók

Jelenleg 132 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 132 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 
Szerző Üzenet
HozzászólásElküldve: 2020.11.30. 02:01 
Offline
Senior Tag
Avatar

Csatlakozott: 2017.08.09. 17:01
Hozzászólások: 266
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 72 alkalommal
Sziasztok!

Szeretnék kérdezni :xicon_e_biggrin:

Van egy adott dinamikus arrayem amibe beolvasom a skin nevét, elérését, eladási árát, hogy stattrak-e, és hogy hányadik ládából lehet kinyitni.

Ládanyitásnál szeretném randomizálni az adott ládaszám alapján hogy melyik ládából tudja kinyitni a skint.
Tehát van 100 skinem, ebből 20 csak a nulladik ládából nyitható ki az ini alabján, akkor ezeket hogyan tudom randomizáni?

Azért kérdezem mert az a 20 skin össze-vissza van az iniben, tehát lehet az első nulladik ládaskin az 5. elem, a második 0. ládaskin pedig 12. elem stb.

Valaki valami ötlet, hogyan lehetne ezt randomizálni?
Remélem érthetően megfogalmaztam mit szeretnék :lol:

Talán begyűjteni egy x nagyságú int tömbbe az elemeket és azt randomizáni, nem 0tól, hanem hogy az elemek közül random dobjon egy számot?
Tehát 5.elem, 12. elem belekerülne és aközött választana random egyet.
Ha így lehet, akkor a tömbből az elemek között hogy lehet randomizálni ?

UI: lényegretörőbb nevet nem találtam ki bocsánat!

Megoldva!
  1. public p_findskin(id, iNum)
  2. {
  3.     new eData[eReadWeap_Prop];
  4.     new iChestNum = -1, iCount;
  5.     new Array:aRandomArray;
  6.     aRandomArray = ArrayCreate(1);
  7.     new iSize = 0;
  8.  
  9.     switch(iNum)
  10.     {
  11.         case 0:
  12.         {
  13.             for(new i = 0; i < g_iLoadedSkins; i++)
  14.             {
  15.                 ArrayGetArray(g_aReadWeap, i, eData);
  16.                 iChestNum = str_to_num(eData[r_WeaponChest]);
  17.                
  18.                 if(iChestNum == 0)
  19.                 {
  20.                     ArrayPushCell(aRandomArray, i);
  21.                     iCount++;
  22.                 }
  23.             }
  24.  
  25.             iSize = random(iCount);
  26.             new iRnd = ArrayGetCell(aRandomArray, iSize);
  27.  
  28.             g_iAllSkins[id][iRnd]++;
  29.             ArrayGetArray(g_aReadWeap, iRnd, eData);
  30.             client_print_color(id, print_team_default, "%s Nyitottál az ^3Ezüst^1 ládából egy %s skint.", cChatPrefix, eData[r_WeaponName]);
  31.         }
  32.         case 1:
  33.         {
  34.             for(new i = 0; i < g_iLoadedSkins; i++)
  35.             {
  36.                 ArrayGetArray(g_aReadWeap, i, eData);
  37.                 iChestNum = str_to_num(eData[r_WeaponChest]);
  38.                
  39.                 if(iChestNum == 1)
  40.                 {
  41.                     ArrayPushCell(aRandomArray, i);
  42.                     iCount++;
  43.                 }
  44.             }
  45.  
  46.             iSize = random(iCount);
  47.             new iRnd = ArrayGetCell(aRandomArray, iSize);
  48.  
  49.             g_iAllSkins[id][iRnd]++;
  50.             ArrayGetArray(g_aReadWeap, iRnd, eData);
  51.             client_print_color(id, print_team_default, "%s Nyitottál az ^3Arany^1 ládából egy %s skint.", cChatPrefix, eData[r_WeaponName]);
  52.         }
  53.         case 2:
  54.         {
  55.             for(new i = 0; i < g_iLoadedSkins; i++)
  56.             {
  57.                 ArrayGetArray(g_aReadWeap, i, eData);
  58.                 iChestNum = str_to_num(eData[r_WeaponChest]);
  59.                
  60.                 if(iChestNum == 2)
  61.                 {
  62.                     ArrayPushCell(aRandomArray, i);
  63.                     iCount++;
  64.                 }
  65.             }
  66.  
  67.             iSize = random(iCount);
  68.             new iRnd = ArrayGetCell(aRandomArray, iSize);
  69.  
  70.             g_iAllSkins[id][iRnd]++;
  71.             ArrayGetArray(g_aReadWeap, iRnd, eData);
  72.             client_print_color(id, print_team_default, "%s Nyitottál a ^3Gyémánt^1 ládából egy %s skint.", cChatPrefix, eData[r_WeaponName]);
  73.         }
  74.  
  75.     }
  76.     ArrayDestroy(aRandomArray);
  77. }



Hátha valaki majd hasznát veszi

_________________
"Szeretek aludni... mert az álmaim szebbek, mint a valóság."


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 13 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole