hlmod.hu
https://hlmod.hu/

Nem mindig ad skint
https://hlmod.hu/viewtopic.php?f=9&t=31407
Oldal: 1 / 1

Szerző:  Zolika_36 [ 2023.01.02. 00:09 ]
Hozzászólás témája:  Nem mindig ad skint

Sziasztok!
Adott egy mód, amelyben minden tökéletesnek látszik, kivéve egy valamit.
Mégpedig, amikor van megfelelő mennyiségű ládám és kulcsom is, és nyitok egy ládát, akkor nem mindig ad belőle skint.
|-> Tehát chaten sem jelzi, hogy nyitottam skint és nem is adja meg.
|->Viszont a nyitott láda és a kulcs is elhaszálódik.
Valaki megtudja mondani nekem, hogy mi a hiba benne?
Köszönöm!

Csatolmányok:
mod_sma.sma [59.11 KiB]
Letöltve 41 alkalommal.

Szerző:  DexoN [ 2023.01.02. 00:44 ]
Hozzászólás témája:  Re: Nem mindig ad skint

Valószínűleg hibát is logol a szerverkonzolba:
Kód:
public Talal(id)
{
   new Nev[32]; get_user_name(id, Nev, 31);
   new Float:Szam = random_float(0.01,100.0);
   new FegyverID = random_num(0, 82);
   new KesID = random_num(83, MAX);

   if(Szam <= KESDROP)
   {
      OsszesSkin[KesID][id]++;
      ColorChat(id, GREEN, "%s ^1Nyitottál egy ^4%s ^1skint.", C_Prefix, Fegyverek[KesID]);
      ColorChat(0, GREEN, "%s ^3%s ^1Nyitott egy ^4%s ^1skint!!", C_Prefix, Nev, Fegyverek[KesID]);
   }
   else
   {
      OsszesSkin[FegyverID][id]++;
      ColorChat(id, GREEN, "%s ^1Nyitottál egy ^4%s ^1skint", C_Prefix, Fegyverek[FegyverID]);
   }
}

ahol megadódnak a random értékek (pl. KesID) lehet hogy nagyobb értéket ad vissza mint a skinek száma, jelen esetben 83 és MAX (azaz 68) között keres számot, tehát nagy eséllyel hibát dob, mivel ha 68 vagy afölötti szám jön ki (tehát 100% esély) akkor túlcsordul a tömb.
Megoldás: Rendezd a skinek számát (kezdd a MAX értékének helyes megadásával ha eltérő), illetve a random számokat hogy egyezzenek a skinek számával.

Szerző:  ~Shediboii [ 2023.01.02. 08:00 ]
Hozzászólás témája:  Re: Nem mindig ad skint

Szerintem azt az sql elérést minél hamarabb szedd ki onnan.

Szerző:  Zolika_36 [ 2023.01.02. 18:13 ]
Hozzászólás témája:  Re: Nem mindig ad skint

DexoN írta:
Valószínűleg hibát is logol a szerverkonzolba:
Kód:
public Talal(id)
{
   new Nev[32]; get_user_name(id, Nev, 31);
   new Float:Szam = random_float(0.01,100.0);
   new FegyverID = random_num(0, 82);
   new KesID = random_num(83, MAX);

   if(Szam <= KESDROP)
   {
      OsszesSkin[KesID][id]++;
      ColorChat(id, GREEN, "%s ^1Nyitottál egy ^4%s ^1skint.", C_Prefix, Fegyverek[KesID]);
      ColorChat(0, GREEN, "%s ^3%s ^1Nyitott egy ^4%s ^1skint!!", C_Prefix, Nev, Fegyverek[KesID]);
   }
   else
   {
      OsszesSkin[FegyverID][id]++;
      ColorChat(id, GREEN, "%s ^1Nyitottál egy ^4%s ^1skint", C_Prefix, Fegyverek[FegyverID]);
   }
}

ahol megadódnak a random értékek (pl. KesID) lehet hogy nagyobb értéket ad vissza mint a skinek száma, jelen esetben 83 és MAX (azaz 68) között keres számot, tehát nagy eséllyel hibát dob, mivel ha 68 vagy afölötti szám jön ki (tehát 100% esély) akkor túlcsordul a tömb.
Megoldás: Rendezd a skinek számát (kezdd a MAX értékének helyes megadásával ha eltérő), illetve a random számokat hogy egyezzenek a skinek számával.


Szia! Így működött, köszönöm szépen!

~Shediboii írta:
Szerintem azt az sql elérést minél hamarabb szedd ki onnan.


Direkt átírtam egy másikra :xicon_e_biggrin:

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/