hlmod.hu

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



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: Bing [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  [ 3 hozzászólás ] 
Szerző Üzenet
HozzászólásElküldve: 2018.01.11. 23:23 
Offline
Jómunkásember
Avatar

Csatlakozott: 2016.02.27. 17:55
Hozzászólások: 349
Megköszönt másnak: 25 alkalommal
Megköszönték neki: 57 alkalommal
Üdv!
Lenne egy olyan problémám, hogy adott egy mód. (Leljebb csatolom.)
Maga a módban annyi a problémám, hogy csatlakozásnál automatikusan rárakja a fegyverekre azokat a skineket, ami disconnectnél bevolt állítva az egyes fegyverekre.
Megszeretném valahogy oldani, hogy csatlakozásnál alap skin legyen a kezembe mindaddig, amíg nem lépek bele a 'raktárba', és választok ki valamilyen skint.
Nem azt kérem, hogy valaki teljesen csinálja meg helyettem, csupán valamiféle segítséget szeretnék, amivel előrébb juthatok.

Exodus - Global Offensive 1.0 (Sex 18 másolat)
https://hlmod.hu/viewtopic.php?f=10&t=26 ... 10#p193588

Ui.: Csak a linket tudtam csatolni a módról, karakter hossz limit miatt.


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2018.01.12. 00:00 
Offline
Őstag
Avatar

Csatlakozott: 2015.07.27. 22:56
Hozzászólások: 1367
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 351 alkalommal
Legegyszerűbb talán ha csinálsz egy boolt ami alapból false míg ki nem nyitja a raktárat ÉS meg nem nyom egy gombot ahol a kap a bool egy true értéket. Ha ez true akkor a Fegyvervaltas(id) már megy is.
  1. new bool:invOpen[33] = false;
  2. // Igazra állítod ahogy fent írtam (+ szebb case kezelés, 118 sor -> 5 sor )
  3. public Raktar_h(id, menu, item){
  4.     if(item == MENU_EXIT)
  5.     {
  6.         menu_destroy(menu);
  7.         return;
  8.     }
  9.  
  10.     new data[9], szName[64];
  11.     new access, callback;
  12.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  13.     new key = str_to_num(data);
  14.  
  15.     switch(key)
  16.     {
  17.         case 0..23: Skin[0][id] = key+1;
  18.         case 24..48: Skin[1][id] = key-23;
  19.         case 49..73: Skin[2][id] = key-48;
  20.         case 74..98: Skin[3][id] = key-73;
  21.         case 99..118: Skin[4][id] = key-98;
  22.     }
  23.     invOpen[id] = true;
  24. }
  25.  
  26.  
  27. // Ezzel kicsit javul a kód, a végiggörgetős folyamatos összehasonlítás helyett a helyére ugrik ha egyáltalán Gun[id] és az invOpen[id] igaz.
  28. public FegyverValtas(id)
  29. {
  30.     if(Gun[id] != 1 || invOpen[id] == false)
  31.         return;
  32.    
  33.     new fgy = get_user_weapon(id);
  34.  
  35.     switch(fgy)
  36.     {
  37.         case CSW_AK47:
  38.         {
  39.             for(new i;i < sizeof(m_AK47); i++)
  40.             {
  41.                 if(Skin[0][id] == i)
  42.                 {
  43.                     set_pev(id, pev_viewmodel2, m_AK47[i]);
  44.                 }
  45.             }
  46.         }
  47.         case CSW_M4A1:
  48.         {
  49.             for(new i;i < sizeof(m_M4A1); i++)
  50.             {
  51.                 if(Skin[1][id] == i)
  52.                 {
  53.                     set_pev(id, pev_viewmodel2, m_M4A1[i]);
  54.                 }
  55.             }
  56.         }
  57.         case CSW_AWP:
  58.         {
  59.             for(new i;i < sizeof(m_AWP); i++)
  60.             {
  61.                 if(Skin[2][id] == i && fgy == CSW_AWP)
  62.                 {
  63.                     set_pev(id, pev_viewmodel2, m_AWP[i]);
  64.                 }
  65.             }
  66.         }
  67.         case CSW_DEAGLE:
  68.         {
  69.             for(new i;i < sizeof(m_DEAGLE); i++)
  70.             {
  71.                 if(Skin[3][id] == i)
  72.                 {
  73.                     set_pev(id, pev_viewmodel2, m_DEAGLE[i]);
  74.                 }
  75.             }
  76.         }
  77.         case CSW_KNIFE:
  78.         {
  79.             for(new i;i < sizeof(m_KNIFE); i++)
  80.             {
  81.                 if(Skin[4][id] == i)
  82.                 {
  83.                     set_pev(id, pev_viewmodel2, m_KNIFE[i]);
  84.                 }
  85.             }
  86.         }
  87.     }
  88. }
  89.  
  90. // Persze visszakell állítani ha lelép az illető
  91. public client_disconnect(id)
  92. {
  93.     if(!is_user_bot(id))
  94.     {
  95.         Update(id);
  96.     }
  97.     Dollar[id] = 0;
  98.     Rang[id] = 0;
  99.     Oles[id] = 0;
  100.     Kulcs[id] = 0;
  101.     Regisztralt[id] = 0;
  102.     SMS[id] = 0;
  103.  
  104.     Belepve[id] = false;
  105.     Beirtjelszot[id] = false;
  106.     Beirtjelszot1[id] = false;
  107.     Beirtfelhasznalot[id] = false;
  108.     Beirtfelhasznalot1[id] = false;
  109.     invOpen[id] = false;
  110.  
  111.     regFh[id][0] = EOS;
  112.     regJelszo[id][0] = EOS;
  113.     Felhasznalonev[id][0] = EOS;
  114.     Jelszo[id][0] = EOS;
  115.  
  116.     for(new i;i < FEGYO; i++)
  117.         OsszesSkin[i][id] = 0;
  118.  
  119.     for(new i;i < LADA; i++)
  120.         Lada[i][id] = 0;
  121.  
  122.     for(new i;i < 5; i++)
  123.         Skin[i][id] = 0;
  124.  
  125.     copy(name[id], charsmax(name[]), "");
  126. }

Ők köszönték meg regener nek ezt a hozzászólást: koko.988 (2018.01.12. 00:41)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2018.01.12. 00:39 
Offline
Jómunkásember
Avatar

Csatlakozott: 2016.02.27. 17:55
Hozzászólások: 349
Megköszönt másnak: 25 alkalommal
Megköszönték neki: 57 alkalommal
regener írta:
Legegyszerűbb talán ha csinálsz egy boolt ami alapból false míg ki nem nyitja a raktárat ÉS meg nem nyom egy gombot ahol a kap a bool egy true értéket. Ha ez true akkor a Fegyvervaltas(id) már megy is.
  1. new bool:invOpen[33] = false;
  2. // Igazra állítod ahogy fent írtam (+ szebb case kezelés, 118 sor -> 5 sor )
  3. public Raktar_h(id, menu, item){
  4.     if(item == MENU_EXIT)
  5.     {
  6.         menu_destroy(menu);
  7.         return;
  8.     }
  9.  
  10.     new data[9], szName[64];
  11.     new access, callback;
  12.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  13.     new key = str_to_num(data);
  14.  
  15.     switch(key)
  16.     {
  17.         case 0..23: Skin[0][id] = key+1;
  18.         case 24..48: Skin[1][id] = key-23;
  19.         case 49..73: Skin[2][id] = key-48;
  20.         case 74..98: Skin[3][id] = key-73;
  21.         case 99..118: Skin[4][id] = key-98;
  22.     }
  23.     invOpen[id] = true;
  24. }
  25.  
  26.  
  27. // Ezzel kicsit javul a kód, a végiggörgetős folyamatos összehasonlítás helyett a helyére ugrik ha egyáltalán Gun[id] és az invOpen[id] igaz.
  28. public FegyverValtas(id)
  29. {
  30.     if(Gun[id] != 1 || invOpen[id] == false)
  31.         return;
  32.    
  33.     new fgy = get_user_weapon(id);
  34.  
  35.     switch(fgy)
  36.     {
  37.         case CSW_AK47:
  38.         {
  39.             for(new i;i < sizeof(m_AK47); i++)
  40.             {
  41.                 if(Skin[0][id] == i)
  42.                 {
  43.                     set_pev(id, pev_viewmodel2, m_AK47[i]);
  44.                 }
  45.             }
  46.         }
  47.         case CSW_M4A1:
  48.         {
  49.             for(new i;i < sizeof(m_M4A1); i++)
  50.             {
  51.                 if(Skin[1][id] == i)
  52.                 {
  53.                     set_pev(id, pev_viewmodel2, m_M4A1[i]);
  54.                 }
  55.             }
  56.         }
  57.         case CSW_AWP:
  58.         {
  59.             for(new i;i < sizeof(m_AWP); i++)
  60.             {
  61.                 if(Skin[2][id] == i && fgy == CSW_AWP)
  62.                 {
  63.                     set_pev(id, pev_viewmodel2, m_AWP[i]);
  64.                 }
  65.             }
  66.         }
  67.         case CSW_DEAGLE:
  68.         {
  69.             for(new i;i < sizeof(m_DEAGLE); i++)
  70.             {
  71.                 if(Skin[3][id] == i)
  72.                 {
  73.                     set_pev(id, pev_viewmodel2, m_DEAGLE[i]);
  74.                 }
  75.             }
  76.         }
  77.         case CSW_KNIFE:
  78.         {
  79.             for(new i;i < sizeof(m_KNIFE); i++)
  80.             {
  81.                 if(Skin[4][id] == i)
  82.                 {
  83.                     set_pev(id, pev_viewmodel2, m_KNIFE[i]);
  84.                 }
  85.             }
  86.         }
  87.     }
  88. }
  89.  
  90. // Persze visszakell állítani ha lelép az illető
  91. public client_disconnect(id)
  92. {
  93.     if(!is_user_bot(id))
  94.     {
  95.         Update(id);
  96.     }
  97.     Dollar[id] = 0;
  98.     Rang[id] = 0;
  99.     Oles[id] = 0;
  100.     Kulcs[id] = 0;
  101.     Regisztralt[id] = 0;
  102.     SMS[id] = 0;
  103.  
  104.     Belepve[id] = false;
  105.     Beirtjelszot[id] = false;
  106.     Beirtjelszot1[id] = false;
  107.     Beirtfelhasznalot[id] = false;
  108.     Beirtfelhasznalot1[id] = false;
  109.     invOpen[id] = false;
  110.  
  111.     regFh[id][0] = EOS;
  112.     regJelszo[id][0] = EOS;
  113.     Felhasznalonev[id][0] = EOS;
  114.     Jelszo[id][0] = EOS;
  115.  
  116.     for(new i;i < FEGYO; i++)
  117.         OsszesSkin[i][id] = 0;
  118.  
  119.     for(new i;i < LADA; i++)
  120.         Lada[i][id] = 0;
  121.  
  122.     for(new i;i < 5; i++)
  123.         Skin[i][id] = 0;
  124.  
  125.     copy(name[id], charsmax(name[]), "");
  126. }


Köszönöm a segítséget, medoltottam egyszerűbben.
SQL mentésnél minden olyan for ciklust töröltem, ami menti az adott skint disconnectnél.
Lehet így nem érted, de mutatom.

  1. public plugin_cfg()
  2. {
  3.     g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
  4.    
  5.     static Query[10048];
  6.     new Len;
  7.    
  8.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `awp_2018`");
  9.     Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
  10.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Felhasznalonev` varchar(32) NOT NULL,");
  11.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Jelszo` varchar(32) NOT NULL,");
  12.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Regisztralt` int(11) NOT NULL,");
  13.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Dollars` int(11) NOT NULL,");
  14.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Szint` int(11) NOT NULL,");
  15.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Oles` int(11) NOT NULL,");
  16.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Osszesoles` int(11) NOT NULL,");
  17.     Len += formatex(Query[Len], charsmax(Query)-Len, "`AWP` int(11) NOT NULL,");
  18.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Knife` int(11) NOT NULL,");
  19.    
  20.     for(new i;i < FEGYO; i++)
  21.         Len += formatex(Query[Len], charsmax(Query)-Len, "`F_%d` int(11) NOT NULL,", i);
  22.        
  23.     for(new i;i < LADA; i++)
  24.         Len += formatex(Query[Len], charsmax(Query)-Len, "`L_%d` int(11) NOT NULL,", i);
  25.        
  26.     for(new i;i < KULCS; i++)
  27.         Len += formatex(Query[Len], charsmax(Query)-Len, "`K_%d` int(11) NOT NULL,", i);
  28.     /* 
  29.     for(new i;i < 2; i++)
  30.         Len += formatex(Query[Len], charsmax(Query)-Len, "`S%d` int(11) NOT NULL,", i);
  31.     */ 
  32.     Len += formatex(Query[Len], charsmax(Query)-Len, "`Jatszottido` varchar(32) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
  33.    
  34.     SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
  35. }
  36. public Load(id)
  37. {
  38.     static Query[10048];
  39.     new Data[1];
  40.     Data[0] = id;
  41.  
  42.     formatex(Query, charsmax(Query), "SELECT * FROM `awp_2018` WHERE Nev = ^"%s^";", name[id]);
  43.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
  44. }
  45. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  46. {
  47.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  48.     {
  49.         log_amx("%s", Error);
  50.         return;
  51.     }
  52.     else
  53.     {
  54.         new id = Data[0];
  55.  
  56.         if(SQL_NumRows(Query) > 0)
  57.         {
  58.             SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Felhasznalonev"), regFh[id], charsmax(regFh[]));
  59.             SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Jelszo"), regJelszo[id], charsmax(regJelszo[]));
  60.             Regisztralt[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Regisztralt"));
  61.             Rang[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Szint"));
  62.             Dollar[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Dollars"));
  63.             Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Oles"));
  64.             osszesoles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Osszesoles"));
  65.             awp[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AWP"));
  66.             knife[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Knife"));
  67.            
  68.             for(new i;i < FEGYO; i++)
  69.             {
  70.                 new String[64];
  71.                 formatex(String, charsmax(String), "F_%d", i);
  72.                 OsszesSkin[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
  73.             }
  74.                
  75.             for(new i;i < LADA; i++)
  76.             {
  77.                 new String[64];
  78.                 formatex(String, charsmax(String), "L_%d", i);
  79.                 Lada[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
  80.             }
  81.             for(new i;i < KULCS; i++)
  82.             {
  83.                 new String[64];
  84.                 formatex(String, charsmax(String), "K_%d", i);
  85.                 Kulcs[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
  86.             }
  87.             /*
  88.             for(new i;i < 2; i++)
  89.             {
  90.                 new String[64];
  91.                 formatex(String, charsmax(String), "S%d", i);
  92.                 Skin[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
  93.             }
  94.             */
  95.            
  96.             osszes_jatszott[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Jatszottido"));
  97.         }
  98.         else
  99.         {
  100.             Save(id);
  101.         }
  102.     }
  103. }
  104. public Save(id)
  105. {
  106.     static Query[256];
  107.  
  108.     formatex(Query, charsmax(Query), "INSERT INTO `awp_2018` (`Nev`) VALUES (^"%s^");", name[id]);
  109.  
  110.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  111. }
  112. public Update(id)
  113. {
  114.     static Query[10048];
  115.     new Len;
  116.    
  117.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `awp_2018` SET Dollars = ^"%i^",", Dollar[id], name[id]);
  118.     Len += formatex(Query[Len], charsmax(Query)-Len, "Szint = ^"%i^", ", Rang[id]);
  119.     Len += formatex(Query[Len], charsmax(Query)-Len, "Oles = ^"%i^", ", Oles[id]);
  120.     Len += formatex(Query[Len], charsmax(Query)-Len, "Osszesoles = ^"%i^", ", osszesoles[id]);
  121.     Len += formatex(Query[Len], charsmax(Query)-Len, "AWP = ^"%i^", ", awp[id]);
  122.     Len += formatex(Query[Len], charsmax(Query)-Len, "Knife = ^"%i^", ", knife[id]);
  123.    
  124.     for(new i;i < FEGYO; i++)
  125.         Len += formatex(Query[Len], charsmax(Query)-Len, "F_%d = ^"%i^", ", i, OsszesSkin[i][id]);
  126.        
  127.     for(new i;i < LADA; i++)
  128.         Len += formatex(Query[Len], charsmax(Query)-Len, "L_%d = ^"%i^", ", i, Lada[i][id]);
  129.        
  130.     for(new i;i < KULCS; i++)
  131.         Len += formatex(Query[Len], charsmax(Query)-Len, "K_%d = ^"%i^", ", i, Kulcs[i][id]);
  132.     /* 
  133.     for(new i;i < 2; i++)
  134.         Len += formatex(Query[Len], charsmax(Query)-Len, "S%d = ^"%i^", ", i, Skin[i][id]);
  135.     */ 
  136.     Len += formatex(Query[Len], charsmax(Query)-Len, "Jatszottido = ^"%i^" WHERE Nev = ^"%s^";", osszes_jatszott[id]+get_user_time(id) / 60, name[id]);
  137.    
  138.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  139. }
  140. public SQL_Update_Reg(id)
  141. {
  142.     static Query[10048];
  143.     new Len;
  144.  
  145.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `awp_2018` SET Felhasznalonev = ^"%s^", ", regFh[id]);
  146.     Len += formatex(Query[Len], charsmax(Query)-Len, "Jelszo = ^"%s^", ", regJelszo[id]);
  147.     Len += formatex(Query[Len], charsmax(Query)-Len, "Regisztralt = ^"%i^" WHERE Nev = ^"%s^";", Regisztralt[id], name[id]);
  148.  
  149.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  150. }
  151. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  152. {
  153.     if(FailState == TQUERY_CONNECT_FAILED)
  154.     {
  155.         set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
  156.     }
  157.     else if(FailState == TQUERY_QUERY_FAILED)
  158.     {
  159.         set_fail_state("Query Error");
  160.     }
  161.     if(Errcode)
  162.     {
  163.         log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
  164.     }
  165. }
  166. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  167. {
  168.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  169.     {
  170.         log_amx("%s", Error);
  171.         return;
  172.     }
  173. }


Így amikor connectelek, alap skint kapok, amíg nem választok ki raktárból skint.
De megy a pacsi, köszönöm mégegyszer! :)


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  [ 3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 5 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