←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Menu - crash

  • +
  • -
KariiO - zdjęcie KariiO 10.10.2011

Witam. W skrócie : robiłem pewne menu na początku było ok bez żadnych bajerów - podstawowe tylko do testów czy działa , no ale moje wymogi zostały dziś wcielone w menu :
public pytanie(id,index) {
	new name[48]
	get_user_name(index, name, charsmax(name));
	new tekst[512]
	formatex(tekst, 511, "\dLider \r'%s' \dzaprasza Cie do \r'%s' Party\d,chcesz dolaczyc ?",name,nazwa_party[index]);
	
	new menu = menu_create(tekst, "WyborGraczax");
	
	menu_additem(menu, "Tak , chce dolaczyc !");
	menu_additem(menu, "Nie , odmawiam !");
	
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
	menu_display(id, menu);
}
 
public WyborGraczax(id, menu, item) {
	new player = find_player ( "a", nazwa_lidera_party[id]) ;
	if(item == MENU_EXIT) {
		menu_destroy(menu);
		jestes_w_party[id]=false
		czy_lider[id]=false
		hudmsg(player,3.0,"Gracz wylaczyl menu zaproszenia tym samym odmawiajac !")
		return PLUGIN_HANDLED;
	}
	switch(item)
	{
		case 0:
		{
		   
	for(new i=1; i<=32; i++)
	{
		if(is_user_connected(i) && (get_user_team(i) == 1 || get_user_team(i) == 2)) {
			
			if((equal(nazwa_party[id],nazwa_party[i])) && id!=i && player!=i)
			{
				ilosc_graczy_party[i]++
			}
		}
	}
			jestes_w_party[id]=true
			czy_lider[id]=false
			ilosc_graczy_party[player]+=1
			nazwa_party[id] = nazwa_party[player]
			ilosc_graczy_party[id] = ilosc_graczy_party[player]
			hudmsg(player,3.0,"Gracz zaakceptowal zaproszenie !")
		}
		case 1:
		{
			jestes_w_party[id]=false
			czy_lider[id]=false
			hudmsg(player,3.0,"Gracz odmowil !")
		}
	}
	
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
Nie umiem dopatrzeć się błędu , może ktoś widzi , pomoże :)
Użytkownik KariiO edytował ten post 10.10.2011 16:58
Odpowiedz

  • +
  • -
dram - zdjęcie dram 10.10.2011

Tibia? O mógłbyś pokazać jak wywołujesz menu(całą funkcje)
Odpowiedz

  • +
  • -
KariiO - zdjęcie KariiO 10.10.2011

Tibia? O mógłbyś pokazać jak wywołujesz menu(całą funkcje)

Diablomod ? Niestety nie mogę , tutaj jest na 100 % błąd.
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 10.10.2011

Chcesz, żeby te manu było wyświetlane zaproszonemu? Jeśli tak, to chyba trochę źle to robisz, przyjrzyj się dobrze id jakie tutaj wykorzystujesz.
Odpowiedz

  • +
  • -
KariiO - zdjęcie KariiO 10.10.2011

Chcesz, żeby te manu było wyświetlane zaproszonemu? Jeśli tak, to chyba trochę źle to robisz, przyjrzyj się dobrze id jakie tutaj wykorzystujesz.

id - to gość któremu się wyświetla menu czyli zaproszony.
index - to id zapraszającego.
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 10.10.2011

Ale nie pisz mi, które id to kto, bo nie o to chodziło, chociażby
new player = find_player ( "a", nazwa_lidera_party[id]) ;P,

szukasz nazwy lidera patrząc na tablicę nazwa_lidera_party[id], a z tego co widać id to właśnie gracz, który dostał zapro, a jak on ma mieć lidera parta (nie wiem jak to odmienić), skoro jeszcze w nim nie jest...?
Odpowiedz

  • +
  • -
KariiO - zdjęcie KariiO 10.10.2011

Ale nie pisz mi, które id to kto, bo nie o to chodziło, chociażby

new player = find_player ( "a", nazwa_lidera_party[id]) ;P,

szukasz nazwy lidera patrząc na tablicę nazwa_lidera_party[id], a z tego co widać id to właśnie gracz, który dostał zapro, a jak on ma mieć lidera parta (nie wiem jak to odmienić), skoro jeszcze w nim nie jest...?


new id2 = Players[id][item];

	    if(jestes_w_party[id2]) hudmsg(id,3.0,"Wybrany gracz jest juz w party !")
	    else pytanie(id2,id)

    new nazwa_lidera[32]
    get_user_name(id, nazwa_lidera, 31);

    nazwa_lidera_party[id2] = nazwa_lidera
    nazwa_lidera_party[id] = nazwa_lidera //urywek
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 10.10.2011

No i właśnie tak to jest jak ktoś tak urywkami wyskakuje w temacie. Ja bym tutaj użył copy do przypisywania nazwy party, czy nazwy lidera. No i jeszcze jedno, skąd ta pewność, że błąd występuje w tym menu?
Odpowiedz

  • +
  • -
KariiO - zdjęcie KariiO 10.10.2011

Bo jeżeli wybiorę gracza w innym menu i następnie powinno mu wyskoczyć menu a nie wyskakuję bo od razu crash.
Lepsze bd. copy ? Bo tego nie zmieniałem a wiem że działa.
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 10.10.2011

A masz gdzieś wstawiony warunek, czy gracz, lider, albo chociażby osoba zapraszająca jest połączona z serwerem?
Odpowiedz

  • +
  • -
KariiO - zdjęcie KariiO 12.10.2011

A masz gdzieś wstawiony warunek, czy gracz, lider, albo chociażby osoba zapraszająca jest połączona z serwerem?

Racja nie mam.
Ale dlaczego wcześniej śmigało też bez warunku a teraz nie ;/ ?

Dodałem tylko to:
for(new i=1; i<=32; i++)
		{
				if(is_user_connected(i) && (get_user_team(i) == 1 || get_user_team(i) == 2)) {
						
						if((equal(nazwa_party[id],nazwa_party[i])) && id!=i && player!=i)
						{
								ilosc_graczy_party[i]++
						}
				}
		}
i zmieniłem to:
formatex(tekst, 511, "\dLider \r'%s' \dzaprasza Cie do \r'%s' Party\d,chcesz dolaczyc ?",name,nazwa_party[index]);
Ale nigdzie tu nie widzę błędu...

odświeżam
Użytkownik KariiO edytował ten post 10.10.2011 21:01
Odpowiedz