hlmod.hu
https://hlmod.hu/

Raktáros mod
https://hlmod.hu/viewtopic.php?f=9&t=31676
Oldal: 1 / 1

Szerző:  saxxo [2026.01.23. 13:58 ]
Hozzászólás témája:  Raktáros mod

Hali.
Raktáros módban elég az hogy csak a kiválasztott fegyver van mentve vagy az egész raktár tartalmát kell menteni?

Szerző:  Csabika20034 [2026.01.23. 15:19 ]
Hozzászólás témája: 

saxxo írta:
Hali.
Raktáros módban elég az hogy csak a kiválasztott fegyver van mentve vagy az egész raktár tartalmát kell menteni?


Szia!

1️⃣ Csak a kiválasztott fegyver mentése

Ha egy fegyverről van szó, amit a játékos kiválaszt a raktárból, elég csak azt a fegyvert menteni.

Előny: gyors, kevesebb adatot kell kezelni, egyszerűbb a kód.


2️⃣ Az egész raktár tartalmának mentése

Ha a rendszer több fegyvert tárol, akkor érdemes az összes fegyvert és mennyiségét menteni.

Szerző:  saxxo [2026.01.23. 17:36 ]
Hozzászólás témája: 

Csabika20034 írta:
saxxo írta:
Hali.
Raktáros módban elég az hogy csak a kiválasztott fegyver van mentve vagy az egész raktár tartalmát kell menteni?


Szia!

1️⃣ Csak a kiválasztott fegyver mentése

Ha egy fegyverről van szó, amit a játékos kiválaszt a raktárból, elég csak azt a fegyvert menteni.

Előny: gyors, kevesebb adatot kell kezelni, egyszerűbb a kód.


2️⃣ Az egész raktár tartalmának mentése

Ha a rendszer több fegyvert tárol, akkor érdemes az összes fegyvert és mennyiségét menteni.


Szia..
Igazából (9) DB fegyvert szeretnék menteni...

Szerző:  Csabika20034 [2026.01.23. 18:59 ]
Hozzászólás témája: 

Tessék ebből ki tudsz indulni, gyors írtam neked egy példát.

  1. CREATE TABLE IF NOT EXISTS weapon_test (
  2.     RegID INT AUTO_INCREMENT PRIMARY KEY,
  3.     Name VARCHAR(32) UNIQUE,
  4.  
  5.     Weapon1 INT DEFAULT 0,
  6.     Weapon2 INT DEFAULT 0,
  7.     Weapon3 INT DEFAULT 0,
  8.     Weapon4 INT DEFAULT 0,
  9.     Weapon5 INT DEFAULT 0,
  10.     Weapon6 INT DEFAULT 0,
  11.     Weapon7 INT DEFAULT 0,
  12.     Weapon8 INT DEFAULT 0,
  13.     Weapon9 INT DEFAULT 0
  14. );


  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <sqlx>
  4.  
  5. #define MAX_SLOTS 9
  6.  
  7. new Handle:g_SqlTuple;
  8. new g_iStorage[33][MAX_SLOTS];
  9. new PlayerRegID[33];
  10. new bool:Loaded[33];
  11.  
  12. public plugin_init()
  13. {
  14.     register_plugin("Raktár Mód", "1.0", "unknown");
  15.  
  16.     register_clcmd("say /storage", "OpenStorage");
  17.     register_concmd("addwp", "CmdAddWeapon", ADMIN_KICK, "<id> <slot> <weaponid>");
  18.  
  19.     SQL_Init();
  20. }
  21.  
  22. public plugin_end()
  23. {
  24.     SQL_FreeHandle(g_SqlTuple);
  25. }
  26.  
  27. /* ================= SQL ================= */
  28.  
  29. public SQL_Init()
  30. {
  31.     g_SqlTuple = SQL_MakeDbTuple("127.0.0.1", "root", "", "amxx");
  32. }
  33.  
  34. public client_putinserver(id)
  35. {
  36.     Loaded[id] = false;
  37.     PlayerRegID[id] = 0;
  38.  
  39.     for(new i; i < MAX_SLOTS; i++)
  40.         g_iStorage[id][i] = 0;
  41.  
  42.     set_task(2.0, "SQL_LoadPlayer", id);
  43. }
  44.  
  45. public client_disconnect(id)
  46. {
  47.     if(Loaded[id])
  48.         SQL_SavePlayer(id);
  49. }
  50.  
  51. public SQL_LoadPlayer(id)
  52. {
  53.     if(!is_user_connected(id)) return;
  54.  
  55.     new name[32], Query[512], Data[1];
  56.     get_user_name(id, name, charsmax(name));
  57.     Data[0] = id;
  58.  
  59.     formatex(Query, charsmax(Query),
  60.         "SELECT RegID, Weapon1,Weapon2,Weapon3,Weapon4,Weapon5,Weapon6,Weapon7,Weapon8,Weapon9 \
  61.        FROM weapon_test WHERE Name='%s';", name);
  62.  
  63.     SQL_ThreadQuery(g_SqlTuple, "SQL_LoadResult", Query, Data, 1);
  64. }
  65.  
  66. public SQL_LoadResult(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  67. {
  68.     new id = Data[0];
  69.     if(FailState || !SQL_NumRows(Query)) return;
  70.  
  71.     PlayerRegID[id] = SQL_ReadResult(Query, 0);
  72.  
  73.     for(new i; i < MAX_SLOTS; i++)
  74.         g_iStorage[id][i] = SQL_ReadResult(Query, i + 1);
  75.  
  76.     Loaded[id] = true;
  77. }
  78.  
  79. public SQL_SavePlayer(id)
  80. {
  81.     if(!Loaded[id]) return;
  82.  
  83.     new Query[512];
  84.  
  85.     formatex(Query, charsmax(Query),
  86.         "UPDATE weapon_test SET \
  87. Weapon1=%d,Weapon2=%d,Weapon3=%d,Weapon4=%d,Weapon5=%d, \
  88. Weapon6=%d,Weapon7=%d,Weapon8=%d,Weapon9=%d \
  89. WHERE RegID=%d;",
  90.         g_iStorage[id][0], g_iStorage[id][1], g_iStorage[id][2],
  91.         g_iStorage[id][3], g_iStorage[id][4], g_iStorage[id][5],
  92.         g_iStorage[id][6], g_iStorage[id][7], g_iStorage[id][8],
  93.         PlayerRegID[id]);
  94.  
  95.     SQL_ThreadQuery(g_SqlTuple, "SQL_Ignore", Query);
  96. }
  97.  
  98. public SQL_Ignore(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) {}
  99.  
  100. /* ================= STORAGE ================= */
  101.  
  102. public OpenStorage(id)
  103. {
  104.     if(!Loaded[id]) return PLUGIN_HANDLED;
  105.  
  106.     new menu = menu_create("Raktár", "Storage_Handler");
  107.     new text[64];
  108.  
  109.     for(new i; i < MAX_SLOTS; i++)
  110.     {
  111.         if(g_iStorage[id][i] == 0)
  112.             formatex(text, charsmax(text), "Slot %d: \rÜres", i+1);
  113.         else
  114.             formatex(text, charsmax(text), "Slot %d: \yWeapon ID %d", i+1, g_iStorage[id][i]);
  115.  
  116.         menu_additem(menu, text);
  117.     }
  118.  
  119.     menu_display(id, menu);
  120.     return PLUGIN_HANDLED;
  121. }
  122.  
  123. public Storage_Handler(id, menu, item)
  124. {
  125.     menu_destroy(menu);
  126.     return PLUGIN_HANDLED;
  127. }
  128.  
  129. /* ================= ADMIN ================= */
  130.  
  131. public CmdAddWeapon(id, level, cid)
  132. {
  133.     if(!cmd_access(id, level, cid, 4))
  134.         return PLUGIN_HANDLED;
  135.  
  136.     new arg1[8], arg2[8], arg3[8];
  137.     read_argv(1, arg1, 7);
  138.     read_argv(2, arg2, 7);
  139.     read_argv(3, arg3, 7);
  140.  
  141.     new target = str_to_num(arg1);
  142.     new slot   = str_to_num(arg2) - 1;
  143.     new weapon = str_to_num(arg3);
  144.  
  145.     if(slot < 0 || slot >= MAX_SLOTS) return PLUGIN_HANDLED;
  146.  
  147.     g_iStorage[target][slot] = weapon;
  148.  
  149.     client_print(id, print_chat, "Fegyver berakva: slot %d, ID %d", slot+1, weapon);
  150.     return PLUGIN_HANDLED;
  151. }

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