←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
[KOSZ] Problem z awansami klas

Locked

  • +
  • -
protypek's Photo protypek 10.07.2015

Witam, mam wgrane awanse klas, frakcję oraz opis i pytanie przy wyborze klas. Tylko że wgrałem "Klasy nie awansują, ale odblokowywują się po osiągnięciu danego poziomu na danej klasie (jeżeli mamy wgrane frakcje)"  http://amxx.pl/topic...post__p__262954. Lecz gdy osiągnie się poziom na danej klasie, np. Komandos i awansuję na Elitarnego Komandosa to nie da się grać komandosem bo przełącza go na elitarnego od razu. Proszę o pomoc.

public WybierzKlase_Frakcje(id, menu, item)
{
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	new data[65], iName[64] 
	new acces, callback 
	menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback) 
	
	new menu2 = menu_create("Wybierz klase:", "WybierzKlase_Handle");
	
	new klasa[50], szTmp[5];
	for(new i=1; i <= ilosc_klas; i++)
	{
		if(equali(data,frakcja_klas[i]))
		{
			if(awansuje_z[i])
			{
				new bool:moze = false;
				WczytajDane(id, awansuje_z[i]);
				if(poziom_gracza[id] >= awanse[ZnajdzAwans(awansuje_z[i], i)][2])
					moze = true;
				
				WczytajDane(id, i);
				if(moze) formatex(klasa, charsmax(klasa), "\y%s \rPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
				else formatex(klasa, charsmax(klasa), "\r%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
			}
			else
			{
				WczytajDane(id, i);
				formatex(klasa, charsmax(klasa), "\y%s \rPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
			}
			num_to_str(i, szTmp, charsmax(szTmp));
			menu_additem(menu2, klasa, szTmp);
		}
	}
	
	WczytajDane(id, klasa_gracza[id]);
	
	menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz^n^n\dWitaj w modyfikacji CoD MoD: AW^nForum: Cs-xxxxxx.pl^nSklep: Sklep.xxxxxx/cod");
	menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona");
	menu_display(id, menu2);
	
	client_cmd(id, "spk QTM_CodMod/select");
	
	menu_destroy(menu);
	return PLUGIN_CONTINUE;
}

public WybierzKlase_Handle(id, menu, item)
{
	client_cmd(id, "spk QTM_CodMod/select");
	
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}       
	
	new data[65], iName[64] 
	new acces, callback 
	menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback) 
	
	item = str_to_num(data);
	
	if(awansuje_z[item])
	{
		WczytajDane(id, awansuje_z[item]);
		new bool:moze, a = ZnajdzAwans(awansuje_z[item], item)
		if(poziom_gracza[id] >= awanse[a][2])
			moze = true;
		WczytajDane(id, klasa_gracza[id]);
		if(!moze)
		{
			client_print(id, print_chat, "[COD:AW] Aby uzywac tej klasy musisz zdobyc %i poziom na klasie %s!", awanse[a][2], nazwy_klas[awansuje_z[item]]);
			return PLUGIN_CONTINUE;
		}
	}
	
	if(item == klasa_gracza[id])
      		return PLUGIN_CONTINUE;
	
	wybrana_klasa[id] = item
	
	new text[513] 

	new bronie[320];
	for(new i=1, n=1; i <= 32; i++)
	{
      		if((1<<i) & bronie_klasy[item])
      		{
            		new weaponname[22];
            		get_weaponname(i, weaponname, 21);
            		replace_all(weaponname, 21, "weapon_", " ");
            		if(n > 1) 
            		add(bronie, charsmax(bronie), ",");
            		add(bronie, charsmax(bronie), weaponname);
            		n++;
      		}
	}
	format(text, 512, "\rNazwa: \w%s ^n\rOpis: \w%s^n\rBronie: \w%s^n^n\yCzy chcesz wybrac te klase?",nazwy_klas[item], opisy_klas[item], bronie, inteligencja_klas[item], zdrowie_klas[item], wytrzymalosc_klas[item], kondycja_klas[item]) 

	new nmenu = menu_create(text, "WybierzKlase_Handler")
	menu_additem(nmenu, "Tak")
	menu_additem(nmenu, "Nie")
	menu_display(id, nmenu)
	
	return PLUGIN_CONTINUE;
}

public WybierzKlase_Handler(id, menu, item)
{
      client_cmd(id, "spk QTM_CodMod/select");

      if(wybrana_klasa[id] == klasa_gracza[id])
            return PLUGIN_CONTINUE;

      switch(item)
      {
            case 0:
            {
                   klasa_gracza[id] = wybrana_klasa[id];

                   if(klasa_gracza[id])
                         client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
                   else
                   {
                         UstawNowaKlase(id);
                         DajBronie(id);
                         ZastosujAtrybuty(id);
                   }
            }
            case 1:
            {
                   WybierzKlase(id)
            }
      }
      return PLUGIN_CONTINUE;
}

Proszę o szybką pomoc. 

Każdą pomoc nagradzam +.


Edited by protypek, 10.07.2015 15:51.
Quote

  • +
  • -
protypek's Photo protypek 10.07.2015

Public WybierzKlase_Handler(id, menu, item) tak wygląda bo zgubiłem "&& !nowa_klasa_gracza[id]" ale i tak ciągle zmiana następuję.

public WybierzKlase_Handler(id, menu, item)
{
      client_cmd(id, "spk QTM_CodMod/select");

      if(wybrana_klasa[id] == klasa_gracza[id] && !nowa_klasa_gracza[id])
            return PLUGIN_CONTINUE;

      switch(item)
      {
            case 0:
            {
                   nowa_klasa_gracza[id] = wybrana_klasa[id];

                   if(klasa_gracza[id])
                         client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
                   else
                   {
                         UstawNowaKlase(id);
                         DajBronie(id);
                         ZastosujAtrybuty(id);
                   }
            }
            case 1:
            {
                   WybierzKlase(id)
            }
      }
      return PLUGIN_CONTINUE;
}

PS. Nie mogłem edytować tematu. 


Edited by protypek, 10.07.2015 16:29.
Quote

  • +
  • -
dasiek's Photo dasiek 15.07.2015

Nazywaj tematy zgodnie z ich treścią.
Napisz ponownie temat nazywając go tak, aby każdy wiedział o co chodzi.

Jednoznacznie określ problematykę tematu, wyróżniając go spośród reszty.
Nie dodawaj zbędnych informacji, znaków, ani emotikon w nazwie tematu.

Ten temat w ciągu 24 godzin zostanie przeniesiony do kosza.
Quote
Locked