Offline |
|
Csatlakozott: 2014.10.30. 10:18 Hozzászólások: 468
Megköszönt másnak: 235 alkalommal Megköszönték neki: 34 alkalommal
|
Sziasztok! Remélem tudtok segíteni mert már nincs ötletem hogy miként próbáljam meg. Leírás: Adott egy plugin ami egy cfg fájlból olvassa ki a fegyversorrendet. A sorrend maponként változtatható 10 lehetőség közül. A konfig fájlból szeretném kivenni ezt a sorrendet és vissza szeretném tenni a pluginba, hogy ott legyen ez eldöntve és beállítva Plugin 8879. sor: Így állítaná a plugin (gondolom): // analyzes the weapon order and saves it into our variables public setup_weapon_order() { new weaponOrder[(MAX_WEAPONS*16)+1], temp[27]; get_pcvar_string(gg_weapon_order,weaponOrder,MAX_WEAPONS*16); new Float:killsperlvl = get_pcvar_float(gg_kills_per_lvl), i, done, colon, goal[6]; // cut them apart for(i=0;i<MAX_WEAPONS;i++) { // out of stuff if(strlen(weaponOrder) <= 1) { i--; // for our count break; } // we still have a comma, go up to it if(contain_char(weaponOrder,',') != -1) { strtok(weaponOrder,temp,26,weaponOrder,MAX_WEAPONS*16,','); trim(temp); strtolower(temp); } // otherwise, finish up else { copy(temp,26,weaponOrder); trim(temp); strtolower(temp); done = 1; // flag for end of loop } colon = contain_char(temp,':'); // no custom requirement, easy if(colon == -1) { copy(weaponName[i],23,temp); if(equal(temp,KNIFE) || equal(temp,HEGRENADE)) weaponGoal[i] = (killsperlvl > 1.0) ? 1.0 : killsperlvl; else weaponGoal[i] = killsperlvl; } else { copyc(weaponName[i],23,temp,':'); copy(goal,5,temp[colon+1]); weaponGoal[i] = floatstr(goal); }
Plugin 4705. sor Gondolom hogy itt állítja az ordner számát: new i, maxRandom, cvar[20], weaponOrder[(MAX_WEAPONS*16)+1]; for(i=1;i<=MAX_WEAPON_ORDERS+1;i++) // +1 so we can detect final { formatex(cvar,19,"gg_weapon_order%i",i); get_cvar_string(cvar,weaponOrder,MAX_WEAPONS*16); trim(weaponOrder); // found a blank one, stop here if(!weaponOrder[0]) { maxRandom = i - 1; break; } } // there is just one if(maxRandom == 1) { // get its weapon order and set as current formatex(cvar,19,"gg_weapon_order1"); get_cvar_string(cvar,weaponOrder,MAX_WEAPONS*16); set_pcvar_string(gg_weapon_order,weaponOrder); return; } // we found some random ones if(maxRandom) { new randomOrder[30], lastOIstr[6], lastOI, orderAmt; get_localinfo("gg_rand_order",randomOrder,29); get_localinfo("gg_last_oi",lastOIstr,5); lastOI = str_to_num(lastOIstr); orderAmt = get_rOrder_amount(randomOrder); // no random order yet, or amount of random orders changed if(!randomOrder[0] || orderAmt != maxRandom) { shuffle_rOrder(randomOrder,29,maxRandom); lastOI = 0; } // reached the end, reshuffle while avoiding this one else if(get_rOrder_index_val(orderAmt,randomOrder) == get_rOrder_index_val(lastOI,randomOrder)) { shuffle_rOrder(randomOrder,29,maxRandom,lastOI); lastOI = 0; } new choice = get_rOrder_index_val(lastOI+1,randomOrder); // get its weapon order formatex(cvar,19,"gg_weapon_order%i",choice); get_cvar_string(cvar,weaponOrder,MAX_WEAPONS*16); // set as current set_pcvar_string(gg_weapon_order,weaponOrder); // remember for next time num_to_str(lastOI+1,lastOIstr,5); set_localinfo("gg_last_oi",lastOIstr); } }
A konfig fájl (részlet): Kód: gg_weapon_order1 "mp5navy:1,usp:3,m4a1:6" gg_weapon_order2 "famas:1,m4a1:1,usp," gg_weapon_order3 "p90:4,famas:4,aug:4"
És így tovább egészen 10-ig! Amikor meghatározza hogy melyiket válassza és beolvassa azt nem értem! Gondolom hogy a weapon ordner alapján switch case-el el lehetne dönteni melyiket válassza, de nem tudom hogy pontosan mit és hogy kellene beírni. Habár kipróbáltam 13 verziót még mindig nem megy! Legyen szíves valaki segíteni! Itt az egész plugin: Csatolmány:
Magyarázat: Teljes plugin
gungame.sma [281.31 KiB]
Letöltve 45 alkalommal.
|
|