hlmod.hu
https://hlmod.hu/

Array | Invalid index
https://hlmod.hu/viewtopic.php?f=9&t=30769
Oldal: 1 / 1

Szerző:  ~Shediboii [2020.12.10. 02:58 ]
Hozzászólás témája:  Array | Invalid index

Helló! Építgetem a modomat, és abba a hibába ütköztem amire még nem volt példa.
(Piacnál ez a megoldás működik, csak a raktárat kezdtem átírni Array-os megoldásra)
Mivel még nagyon Arrayos megoldással nem dolgoztam, mostanában kezdtem el használni.

Hibalog:
Kód:
L 12/10/2020 - 02:48:57: Invalid index 15 (count: 1)
L 12/10/2020 - 02:48:57: [AMXX] Displaying debug trace (plugin "mod.amxx", version "v5.0 EarlyBeta")
L 12/10/2020 - 02:48:57: [AMXX] Run time error 10: native error (native "ArrayGetArray")
L 12/10/2020 - 02:48:57: [AMXX] [0] mod.sma::MarketMenu (line 1035)
L 12/10/2020 - 02:48:57: [AMXX] [1] mod.sma::openMarketSwitch_h (line 394)


MarketMenu:
  1. public MarketMenu(id)
  2. {
  3.     new gmString[121]
  4.     formatex(gmString, charsmax(gmString), "%s^n \wPiac | Eladás^nDollár: \d%3.2f$", MENUPREFIX, g_Player[id][Dollar])
  5.     new menu = menu_create(gmString, "hEladas");
  6.  
  7.     new Inventory[InventorySystem];
  8.  
  9.     if(Market[id][SelectedToPlace] > 4)
  10.     {
  11.         ArrayGetArray(g_Inventory, Market[id][SelectedToPlace], Inventory);
  12.  
  13.         formatex(gmString, charsmax(gmString), "Tárgy Név: %s%s", FegyverInfo[Inventory[w_id]][Rarity], FegyverInfo[Inventory[w_id]][GunName]);
  14.  
  15.         menu_additem(menu, gmString, "1", 0);
  16.  
  17.         if(Inventory[is_StatTraked])
  18.             menu_addtext2(menu, fmt("\wStatTrak\y*\w: \rVan \d| \wÖlések: \r%i", Inventory[StatTrakKills]))
  19.  
  20.         formatex(gmString, charsmax(gmString), "Eladási Ár: \r%3.2f$^n", Market[id][Cost])
  21.         menu_additem(menu, gmString, "2",0)
  22.     }
  23.    
  24.     if(Market[id][Cost] > 0)
  25.         menu_additem(menu,"\dÍrj be egy árat!","3",0)
  26.     else if(Market[id][SelectedToPlace] == 0)
  27.         menu_additem(menu,"\dElőbb válassz ki egy fegyvert! \d(\w1-es gomb!\d)","1",0)
  28.     else
  29.         menu_additem(menu,"\rEz az item nem eladható.","-1",0)
  30.    
  31.     menu_display(id, menu, 0);
  32.     return PLUGIN_HANDLED
  33. }


openSelectItem:
  1. public openSelectItem(id)
  2. {
  3.     new szMenu[256],String[6]
  4.     formatex(szMenu, charsmax(szMenu), "%s Fegyver választás", MENUPREFIX)
  5.     new menu = menu_create(szMenu, "hSelectItem");
  6.  
  7.     new InventorySizeof = ArraySize(g_Inventory);
  8.     new Inventory[InventorySystem];
  9.  
  10.     for(new i; i < InventorySizeof;i++)
  11.     {
  12.         new len;
  13.         ArrayGetArray(g_Inventory, i, Inventory);
  14.  
  15.         if(Inventory[w_deleted] == 0)
  16.         {
  17.             if(Inventory[is_StatTraked])
  18.                 len += formatex(szMenu[len], charsmax(szMenu) - len, "\yStatTrak\r* \d- ");
  19.  
  20.             if(Inventory[is_Nametaged])
  21.                 len += formatex(szMenu[len], charsmax(szMenu) - len, "%s%s", FegyverInfo[Inventory[w_id]][Rarity], Inventory[Nametag]);
  22.             else
  23.                 len += formatex(szMenu[len], charsmax(szMenu) - len, "%s%s", FegyverInfo[Inventory[w_id]][Rarity], FegyverInfo[Inventory[w_id]][GunName]);
  24.  
  25.             num_to_str(i, String, 5);
  26.             menu_additem(menu, szMenu, String);
  27.         }
  28.     }
  29.    
  30.     menu_display(id, menu, 0)
  31. }
  32. public hSelectItem(id, menu, item) {
  33.     if(item == MENU_EXIT)
  34.     {
  35.         menu_destroy(menu);
  36.         return PLUGIN_HANDLED
  37.     }
  38.  
  39.     new data[9], szName[64]
  40.     new access, callback;
  41.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName, charsmax(szName), callback);
  42.     new key = str_to_num(data);
  43.  
  44.     new Inventory[InventorySystem]
  45.     ArrayGetArray(g_Inventory, key, Inventory)
  46.  
  47.     Market[id][SelectedToPlace] = Inventory[w_id]
  48.  
  49.     client_print_color(id, print_team_default, "BELETTEM: %i, %i, %i", key, Inventory[w_id], Market[id][SelectedToPlace])
  50.     client_print_color(id, print_team_default, "^4%s^1Kivalásztottad a(z) ^3%s ^1fegyvert!", CHATPREFIX, FegyverInfo[Inventory[w_id]][GunName])
  51.    
  52.     MarketMenu(id)
  53.    
  54.     menu_destroy(menu)
  55.     return PLUGIN_HANDLED
  56. }


Valaki tudna egy ici picit helpelni?

Szerző:  HellEnergY [2020.12.10. 09:55 ]
Hozzászólás témája:  Re: Array | Invalid index

~Shediboii írta:
Helló! Építgetem a modomat, és abba a hibába ütköztem amire még nem volt példa.
(Piacnál ez a megoldás működik, csak a raktárat kezdtem átírni Array-os megoldásra)
Mivel még nagyon Arrayos megoldással nem dolgoztam, mostanában kezdtem el használni.
Valaki tudna egy ici picit helpelni?


A raktárnál a forban adj kezdőértéket ami 0 lesz.
Sokszor suliban is mondták fornak mindig adjak kezdőértéket, és amikor ilyes féle hibába ütköztem akkor jöttem rá, hogy igazuk volt.
Valószínü az arrayed nem nullától számol, de lehet nincs igazam. Azért próbáld meg.

Ha nem akkor konkrétan melyik getarrayre írja a hibát ?

Feltöltötted az arrayed?
Ha igen hogyan ?

Magában az arrayben mit tárolsz számokat, vagy ezeknek a számát:
{index,"neve", "elerese", ritkasag, fegyvertipus},

Szerző:  ~Shediboii [2020.12.10. 11:33 ]
Hozzászólás témája:  Re: Array | Invalid index

Szia! Az a furcsa, hogy raktárnál az Array lekérés működik, az alapján próbáltam megoldani a Piacra kihelyezős dolgot.

Az Arrayembe ezt tárolom:
Kód:
enum _:InventorySystem
{
   sqlkey,
   w_id,
   w_userid,
   is_StatTraked,
   StatTrakKills,
   is_Nametaged,
   Nametag[100],
   w_tradable,
   w_equipped,
   w_deleted
}


Egyébként működik az Array, ha

Kód:
   new Inventory[InventorySystem]
   ArrayGetArray(g_Inventory, key, Inventory)

   Market[id][SelectedToPlace] = Inventory[w_id]

ezt átmodosítom erre:
Kód:
   new Inventory[InventorySystem]
   ArrayGetArray(g_Inventory, key, Inventory)

   Market[id][SelectedToPlace] = key


Akkor betölti a fegyvereket, de hibásan vagyis nem azt tölti be amit szeretnék. Mert ez a hiba volt a raktárnál is, és ott ezzel a megoldással kijavítottam.

Arrayomat a nextlvl-es módhoz hasonlóan töltöttem fel:
  1. public cmdGive(id)
  2. {
  3.     new Arg1[32], Arg2[32], Arg3[32], Arg4[32], Arg5[32], Arg6[33], Arg7[32];
  4.     new Inventory[InventorySystem]
  5.    
  6.     read_argv(1, Arg1, charsmax(Arg1));
  7.     read_argv(2, Arg2, charsmax(Arg2));
  8.     read_argv(3, Arg3, charsmax(Arg3));
  9.     read_argv(4, Arg4, charsmax(Arg4));
  10.     read_argv(5, Arg5, charsmax(Arg5));
  11.     read_argv(6, Arg6, charsmax(Arg6));
  12.     read_argv(7, Arg7, charsmax(Arg7));
  13.    
  14.     Inventory[sqlkey] = -1;
  15.     Inventory[w_userid] = str_to_num(Arg1);
  16.     Inventory[w_id] = str_to_num(Arg2);
  17.     Inventory[is_StatTraked] = str_to_num(Arg3);
  18.     Inventory[StatTrakKills] = str_to_num(Arg4);
  19.     Inventory[is_Nametaged] = str_to_num(Arg5);
  20.     Inventory[w_tradable] = str_to_num(Arg7);
  21.     Inventory[w_deleted] = 0;
  22.  
  23.     copy(Inventory[Nametag], 100, Arg6);
  24.     client_print_color(id, print_team_default, "%i %s //%s ///%s", str_to_num(Arg5), Arg6, Inventory[Nametag], Nametag1[id])
  25.     new WasOnline = 0;
  26.     for(new i = 1;i < 33;i++)
  27.     {
  28.       if(g_Player[i][UserId] == Inventory[w_userid])
  29.       {
  30.           client_print_color(i, print_team_default, "^4%s^1Sikeresen addoltak neked erről a fiókról: ^1%s(#%i)^1!",CHATPREFIX, g_Player[id][Name], g_Player[id][UserId]);
  31.           ArrayPushArray(g_Inventory, Inventory);
  32.         }
  33.         WasOnline = 1;
  34.         break;
  35.     }
  36.    
  37. }

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