hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.17. 16:46



Jelenlévő felhasználók

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

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot]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ás témája: Szerver Mentése
HozzászólásElküldve:2016.10.04. 16:41 
Offline
Nagyúr
Avatar

Csatlakozott:2016.03.05. 20:56
Hozzászólások:666
Megköszönt másnak: 27 alkalommal
Megköszönték neki: 124 alkalommal
Sziasztok.

Ezt a plugint egy teszt gyanánt csináltam, viszont azt nemtudom, hogy a szerver dolgait hogyan is kellene elmentenem, ezért kérem a segítségetek.

Jelen esetben a(z) Limit[a1],Limit[a2] -t összesen számolja (Tehát nem csak 1-emberkénél)

Azt szeretném, hogy pl kiválasztunk egy fegyvert, később mutassa nekünk, hogy összesen hányan válaszotották ki azt.

És ennek az elmentésére nem tudok rájönni.

Valaki esetleg valami ötlet, segítség? :D

Forráskód:
  1. #include <amxmodx>
  2. #include <hamsandwich>
  3. #include <cstrike>
  4. #include <fun>
  5. #include <sqlx>
  6.  
  7. new const PLUGIN[] = "Limit"
  8. new const VERSION[] = "1.0"
  9. new const AUTHOR[] = "exodus"
  10.  
  11. #define SERVER_ID   1
  12.  
  13. new const PREFIX[] = "[Limit]"
  14.  
  15. new const SQL_INFO[][] = { "host", "felh", "jelszo", "adatbázis" }
  16.  
  17. enum _:VMI {a1, a2};
  18. new Limit[VMI];
  19.  
  20. new Handle:g_SqlTuple;
  21.  
  22. public plugin_init()
  23. {
  24. register_plugin(PLUGIN,VERSION,AUTHOR)
  25.  
  26. RegisterHam(Ham_Spawn,"player","Fegyvermenu",1);
  27.  
  28. sql_create_table();
  29. }
  30.  
  31. public Fegyvermenu(id)
  32. {
  33.     new String[121];
  34.     formatex(String, charsmax(String), "%s \r- \dElsődleges Fegyver", PREFIX);
  35.     new menu = menu_create(String, "Fegyvermenu_h");
  36.    
  37.     menu_additem(menu, "M4A4", "1", 0);
  38.     menu_additem(menu, "AK47 Limit", "2", 0);
  39.    
  40.     menu_display(id, menu, 0);
  41.    
  42.     return PLUGIN_HANDLED;
  43. }
  44. public Fegyvermenu_h(id, menu, item)
  45. {
  46. if(item == MENU_EXIT)
  47. {
  48.     menu_destroy(menu);
  49.     return;
  50. }
  51.  
  52. new data[9], szName[64];
  53. new access, callback;
  54. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  55. new key = str_to_num(data);
  56.  
  57. switch(key)
  58.     {
  59.         case 1:
  60.         {
  61.             Limit[a1]++;
  62.             give_item(id, "weapon_m4a1");
  63.             give_item(id, "item_thighpack");
  64.             give_item(id, "item_assaultsuit");
  65.             cs_set_user_bpammo(id,CSW_M4A1,90);
  66.             cs_set_user_money(id, 0);
  67.             sql_update_server();
  68.         }
  69.         case 2:
  70.         {
  71.             Limit[a2]++;
  72.             give_item(id, "weapon_ak47");
  73.             give_item(id, "item_thighpack");
  74.             give_item(id, "item_assaultsuit");
  75.             cs_set_user_bpammo(id,CSW_M4A1,90);
  76.             cs_set_user_money(id, 0);
  77.             sql_update_server();
  78.         }
  79.     }
  80. }
  81.  
  82. public sql_create_table()
  83. {
  84.     new Query[512];
  85.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  86.  
  87.     formatex(Query, charsmax(Query), "CREATE TABLE IF NOT EXISTS `limit_test` (`Server` int(11) NOT NULL,`Limit1` int(11) NOT NULL,`Limit2` int(11) NOT NULL)")
  88.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  89. }
  90.  
  91. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  92.     if(FailState == TQUERY_CONNECT_FAILED)
  93.         set_fail_state("Nem tudtam csatlakozni az adatbazishoz.");
  94.     else if(FailState == TQUERY_QUERY_FAILED)
  95.         set_fail_state("Query Error");
  96.     if(Errcode)
  97.         log_amx("Hibat dobtam: %s",Error);
  98. }
  99.  
  100. public sql_update_server()
  101. {
  102.     new szQuery[2548]
  103.     new len = 0
  104.    
  105.     len += format(szQuery[len], 2548, "UPDATE limit_test SET ")
  106.    
  107.     len += format(szQuery[len], 2548-len,"Limit1 = '%d' ", Limit[a1])
  108.     len += format(szQuery[len], 2548-len,"Limit2 = '%d' ", Limit[a2])
  109.    
  110.     len += format(szQuery[len], 2548-len,"WHERE Server = '%d'", SERVER_ID)
  111.  
  112.     SQL_ThreadQuery(g_SqlTuple,"sql_update_servere_thread", szQuery)
  113. }
  114.  
  115. public sql_update_servere_thread(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
  116. {
  117.     if(FailState == TQUERY_CONNECT_FAILED)
  118.         return set_fail_state("[ *HIBA* ] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!")
  119.     else if(FailState == TQUERY_QUERY_FAILED)
  120.         return set_fail_state("[ *HIBA* ] A LEKERDEZES MEGSZAKADT!")
  121.    
  122.     if(Errcode)
  123.         return log_amx("[ *HIBA* ] PROBLEMA A LEKERDEZESNEL! ( %s )",Error)
  124.    
  125.     return PLUGIN_CONTINUE
  126. }
  127.  
  128. public plugin_end()
  129. {
  130.     SQL_FreeHandle(g_SqlTuple)
  131. }


Szerk.:

Valamint van lehetsőge annak, hogy egy tömböt ne emberenként tudjak használni hanem szintén úgy, hogy az összeset mutassa ki nekem, egy példa:

  1. new Valami[33];
  2.  
  3. //És akkor ezt, mondjuk egy menüben megtudom-e jeleníteni, hogy ÖSSZESEN mennyi van a Valami-ből?
  4.  
  5. //Tehát ezt:
  6. formatex(String, charsmax(String), "Valami száma: %d", Valami[id]);
  7.  
  8. //Helyett, úgy hogy a szerveren az összeset mutassa nekem, valahogy így (csak mert pontosan nemtudom, hogykéne jelölnöm)
  9. formatex(String, charsmax(String), "Valami száma: %d", Valami[osszes]);

_________________
Global Offensive modok:

Global Offensive Mode 1.0
Global Offensive Mode 3.0
exodus Global Offensive 4.0


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 19 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