Witam mam do was prośbę, program działa lecz samo przydzielenie losowej broni jest jednak źle napisane i w momencie uruchomienia funkcji przydziela wszystkie możliwe warianty graczowi, moje starania dążyły do tego by zrobić tak, żeby funkcja przydzielała 1 broń z 1 ammo. Kodzik podaję poniżej, jeżeli źle napisany kod proszę zwrócić mi uwagę na błędy ze względu na to, iż jestem świeży w temacie lecz z ogólnym schematem kodu miałem styczność przez naukę języka C oraz C++, pozdrawiam .
handleRollGun(id) { new ile=0; new ktoraOP = random(5); new Float:fTime = halflife_time(); new jakieBronie = random(25); if (jakieBronie > 0 && jakieBronie <10 || !gunUsed[id]) { do { if (ktoraOP == 1) { do { give_item(id, "weapon_p228"); cs_set_weapon_ammo(find_ent_by_owner(1, "weapon_p228", id),1); gunUsed[id] = true; client_print(id, print_center, "Wylosowales P228 !"); }while (gunUsed[id] != true); } else if (ktoraOP == 2) { do { give_item(id, "weapon_shield"); client_print(id, print_center, "Wylosowales SHIELD !"); gunUsed[id] = true; }while (gunUsed[id] != true); } else if (ktoraOP == 3) { do { give_item(id, "weapon_scout"); cs_set_weapon_ammo(find_ent_by_owner(1, "weapon_scout", id),1); client_print(id, print_center, "Wylosowales SCOUT !"); gunUsed[id] = true; }while (gunUsed[id] != true); } else if (ktoraOP == 4) { do { give_item(id, "weapon_xm1014"); cs_set_weapon_ammo(find_ent_by_owner(1, "weapon_xm1014", id),1); client_print(id, print_center, "Wylosowales XM1014 !"); gunUsed[id] = true; }while (gunUsed[id] != true); } else if (ktoraOP == 5) { do { give_item(id, "weapon_mac10"); cs_set_weapon_ammo(find_ent_by_owner(1, "weapon_mac10", id),1); client_print(id, print_center, "Wylosowales MAC10 !"); gunUsed[id] = true; }while (gunUsed[id] != true); } else if(ktoraOP > 5) { do { client_print(id, print_center, "Niestety nie udalo Ci sie wylosowac broni !"); gunUsed[id] = true; }while (gunUsed[id] != true); } ile++; }while (ile <= 0); } g_gun_next_use[id] = fTime + get_cvar_float("bm_gunTimeOut"); return PLUGIN_HANDLED; } actionGun(id, OverrideTimer) { g_gun_next_use[id] =get_cvar_float("bm_gunTimeOut"); new Float:fTime = halflife_time(); if(get_user_team(id) == 1 && is_user_alive(id) && !gunUsed[id] && (g_gun_next_use[id] - fTime)!=0 || (g_gun_next_use[id] - fTime) < 0 || OverrideTimer) { handleRollGun(id); }else if (get_user_team(id) == 2) { set_hudmessage(gHudRed, gHudGreen, gHudBlue, gfTextX, gfTextY, gHudEffects, gfHudFxTime, gfHudHoldTime, gfHudFadeInTime, gfHudFadeOutTime, gHudChannel); show_hudmessage(1, "Niestety niebiescy nie moga korzystac z danego bloku !"); }else if ((g_gun_next_use[id] - fTime) != 0) { set_hudmessage(gHudRed, gHudGreen, gHudBlue, gfTextX, gfTextY, gHudEffects, gfHudFxTime, gfHudHoldTime, gfHudFadeInTime, gfHudFadeOutTime, gHudChannel); show_hudmessage(1, "Oczekiwany czas na ponowne uzycie bloku: %1f", g_gun_next_use[id] - fTime); } }