Lubisz utrudniać życie innym, podajesz kod w pythonie, a potem ja się głowię jak to na amxx przełożyć, bo wiem o co chodzi, ale nie wiem jak zrobić 1 rzecz, pokaże co mam zrobione:
Przy okazji pokaże jak pobieram dane z pliku:
for(new i=0;read_file(szFile2, i, szLine, 149, iLen);i++){
if(Pointer_case > MAX_CASE) break;
trim(szLine);
if(szLine[0]=='^0' || szLine[0]==';') continue;
parse(szLine, szName, 32, szRare, 15, szChance, 7, szDropChance, 7);
CaseChance[Pointer_case] = str_to_num(szChance);
CaseDropChance[Pointer_case] = str_to_num(szDropChance);
CaseType[Pointer_case] = str_to_num(szRare);
AllCaseChance += CaseChance[Pointer_case];
copy(CaseName[Pointer_case], 32, szName);
Pointer_case++;
}
A tutaj ta reszta kodu (nie skończone, ponieważ nie wiem jak 1 rzecz zrobić):
public PrzyznanieSkrzynek()
{
set_task(1.0,"PrzyznanieSkrzynek", SHOW_CHAT_INFO, _, _, "b");
// if(is_rtv()){
// ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Losowanie Skrzyn sie nie odbylo z powodu:^x04 Zmiana mapy zostala wymuszona.");
// remove_task(SHOW_CHAT_INFO )
// return;
// }
ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Za %d sekund zostana rozdane skrzynki!", sekundy);
sekundy--
if(sekundy <= 0){
new ilu_graczy=0,ilu_mozna=0, ilu_losowac = 1;
for(new i=1;i<33;i++)
{
if(is_user_connected(i)){
ilu_graczy++;
}
if(is_user_connected(i) && !is_user_hltv(i) && get_user_team(i)!=3){
ilu_mozna++;
}
}
if(ilu_graczy<4)
{
ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Losowanie Skrzyn sie nie odbylo z powodu:^x04 Zbyt malej ilosci graczy. Musi byc min. 4");
remove_task(SHOW_CHAT_INFO)
return;
}
if(ilu_graczy>4) ilu_losowac=1;
if(ilu_graczy>7) ilu_losowac=2;
if(ilu_graczy>11) ilu_losowac=3;
if(ilu_graczy>14) ilu_losowac=4;
if(ilu_mozna<=ilu_losowac){
ilu_losowac=ilu_mozna;
}
new jest;
while(jest<ilu_losowac)
{
new wylosowany_gracz = get_random_player();
if(wylosowany_gracz == -1)
{
log_to_file(SZM_LOG, "Losowanie skrzynki nie powiodlo sie. Wylosowany gracz mial id = -1");
ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Losowanie Skrzyn sie nie odbylo z powodu:^x04 Błąd pluginu (id = -1).");
remove_task(SHOW_CHAT_INFO)
return;
}
wylosowany[wylosowany_gracz] = true;
new name[33];
get_user_name(wylosowany_gracz, name, 32);
new rNum = random_num(0, AllCaseChance);
new rCase = get_case_id(rNum)
for(new i=1;i<32;i++){
if(get_user_flags(i) & ADMIN_IMMUNITY){
ColorChat(i, GREEN, "^4[JB:KOSY]^x01 id skrzynki = %d", rCase);
}
}
if(rCase == -1)
{
log_to_file(SZM_LOG, "Losowanie skrzynki nie powiodlo sie. Wylosowana skrzynia miala id = -1");
ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Losowanie Skrzyn sie nie odbylo z powodu:^x04 Błąd pluginu (rCase = -1).");
remove_task(SHOW_CHAT_INFO)
return;
}
player_case[wylosowany_gracz][rCase]++;
ColorChat(0, GREEN, "^4[JB:KOSY]^3 %s - ^1Wylosował ^4%s, ^1Gratulacje!", name, CaseName[rCase]);
log_to_file(SZM_LOG, "[DROP-SKRZYNEK] Gracz %s wylosowal %s.", name, CaseName[rCase]);
jest++;
saveData(wylosowany_gracz);
}
remove_task(SHOW_CHAT_INFO)
}
}
get_case_id(value){
for(new i=1;i<Pointer_case;i++)
if(CaseChance[i] <= value && CaseChance[i+1] >= value){
return i
}
return -1
}
get_random_player()
{
new Array:random_player;
random_player = ArrayCreate(2, 33)
ArrayClear(random_player);
for(new i=1;i<32;i++)
{
if(!is_user_connected(i) || is_user_hltv(i) || wylosowany[i]) continue;
if(get_user_team(i) != 3){
ArrayPushCell(random_player, i);
}
}
if(ArraySize(random_player) == 0){
log_to_file(SZM_LOG, "[LOSOWANIE-GRACZA] Nie znaleziono zadnego kandydata do wylosowania skrzynki");
return -1;
}
else{
return ArrayGetCell(random_player, random(ArraySize(random_player)));
}
}
Może dlatego, że zakresu nie zrobiłem lub nie działa coś bo id_skrzynki = -1