| 				
					| Offline |  
					|  |  
					|  |  Csatlakozott:2017.08.09. 17:01
 Hozzászólások:269
 Megköszönt másnak: 63 alkalommal
 Megköszönték neki: 76 alkalommal
 | 
				
					| saxxo írta: Sziasztok! Lenne egy olyan kérésem hozzátok, hogy a Raktár az így van megoldva.... public Raktar(id)    {        new sTitle[128];        formatex(sTitle, charsmax(sTitle), "%s \r[\wRaktár\r]^n\yDollár: \d%d\\\\$", gMenuPrefix, gDollar[id]);        new iMenu = menu_create(sTitle, "Raktar_h");                for(new i;i < gGunSizeof; i++)        {            if(OsszesSkin[i][id] > 0)            {                new Sor[6]; num_to_str(i, Sor, 5);                formatex(sTitle, charsmax(sTitle), "%s \d[\r%d \dDB]", Fegyverek[i][gWeaponName], OsszesSkin[i][id]);                menu_additem(iMenu, sTitle, Sor);            }        }        menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");        menu_display(id, iMenu, 0);    }    public Raktar_h(id, menu, item)    {        if(item == MENU_EXIT)        {            menu_destroy(menu);            return;        }                new data[9], szName[64];        new access, callback;        menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);        new key = str_to_num(data);                switch(key)         {            case 0..24: gSkin[0][id] = key;                case 25..42: gSkin[1][id] = key;                case 43..66: gSkin[2][id] = key;                case 67..76: gSkin[3][id] = key;                case 77..91: gSkin[4][id] = key;                case 92..105: gSkin[5][id] = key;                case 106..109: gSkin[6][id] = key;                case 110..124: gSkin[7][id] = key;                case 125..142: gSkin[8][id] = key;                case 143..161: gSkin[9][id] = key;            }    }
így van megoldva, erre szeretnék egy olyan megoldást hogy ha skint írok hozzá akkor ne keljen bővíteni a sql táblát se a case: részt.... Sikeresen kiválasztottad ez és ezt a skint... valami ilyenre gondoltam.... Teljes forráskód. shadowfrag_csgomod.smaHát figyu, a legegyszerűbb, legidőpótlóbb szerintem ez a megoldás: // Skin tartományok definiálásanew const SkinRanges[][] = {    {0, 24},   // M4A1    {25, 42},  // AK47    {43, 66},  // AWP    {67, 76},  // SCOUT    {77, 91},  // FAMAS    {92, 105}, // XM1014    {106, 109},// KNIFE    {110, 124},// DEAGLE    {125, 142},// USP    {143, 161} // GLOCK18}; new gSkinCount = sizeof(SkinRanges);
Hhozz létre egy konstanst amiben tarolod, hogy a skintípusokbol mennyi van, és deklarálj hozzá egy int változót, amiben meghatározod kategóriák számát. // Függvény, amely meghatározza, hogy a key melyik tartományba esik, és frissíti a gSkin tömbötpublic assignSkinToRange(id, key){    for (new i = 0; i < gSkinCount; i++){        new start = SkinRanges[i][0];        new end = SkinRanges[i][1];                if (key >= start && key <= end){            gSkin[i][id] = key;        }    }}
Ez igazából több szempontból is hasznos, mivel több helyen is tudod alkalmazni, konyhanyelven ha a handlerba teszed megnézi, hogy a key a skin const részben melyik tartományba esik, ha pl 0-24be akkor m4a1 lesz, és stb. assignSkinToRange(id, key) Ebben a key fontos, mivel az alapjan nezi, hogy melyik tartomany azaz fegyvertipusba esik a szamod, ha mashova irod ne felejtsd el megfeleloen hasznalni. Az id szokasos jatekos id. Akkor nezzuk a raktar handlert hogyan hivod meg // Raktár menü kezelő függvénypublic Raktar_h(id, menu, item){    if(item == MENU_EXIT){        menu_destroy(menu);        return;    }        new data[9], szName[64];    new access, callback;    menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback);    new key = str_to_num(data);        // Hívjuk meg a tartományellenőrző függvényt    assignSkinToRange(id, key);}
Ez ha nem csak elmeletben jó, de gyakorlatban is, hosszutavon megkonnyiti az eleted ha ezzel a moddal akarsz foglalkozni. Nem, nem fogom tudni neked atirni, mivel semmi kedvem 1700 soron at bongeszni es javitani amit mar alapbol elbasztak, vagy atirkaltak.   . Az sqlben nem kell atirnod semmit szerintem, mert nem kategoriara nezi a mentest, hanem az osszesre.UI Elméletben jó szerintem, ha nem javítsanak ki, ha igen, de gyakorlatban nem, akkor bovitsd a constodat egy fegyvertipusjelzovel es ird at mindenhol, igy konnyebb lesz kezelni az egesz fegyvermizeriat._________________
 "Szeretek aludni... mert az álmaim szebbek, mint a valóság."
 
 
 |  |