Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

vercode - zdjęcie

vercode

Rejestracja: 19.08.2019
Aktualnie: Nieaktywny
Poza forum Ostatnio: 13.05.2021 14:34
-----

Moje posty

W temacie: Dodawanie do statystyk

21.08.2019 10:50

Pomogło. Dziękuję bardzo jeszcze raz wszystkim za pomoc! Temat wyczerpany i do zamknięcia  :D

W temacie: Dodawanie do statystyk

21.08.2019 10:37

Tak, bunt to był handler od ham_killed i wziąłem pod uwagę twoją sugestię TibacK i spróbowałem zastąpić to w ten sposób:

	register_event("DeathMsg", "DeathMsg", "a");
public DeathMsg() 	// ZLiczanie buntów
{
    new buntownik = read_data(1);
    new ofiara = read_data(2);

	if(cs_get_user_team(ofiara) == CS_TEAM_CT && cs_get_user_team(buntownik) == CS_TEAM_T && !zyczenie && ilosc_terro() > 2)
	{
		user_bunty[buntownik]++;
		ColorChat( buntownik, GREEN, "^4[Jail]^3 Bunt dodany do statystyk.");
		ColorChat( 0, buntownik, "^4[BUNTY]^3 Dodano bunt graczowi^4 %s.", nazwa_gracza[buntownik]);
		SQL_FormatQuery("UPDATE `JailUsers` SET `Bunty` = (`Bunty` + 1) WHERE `Name` = '%s';", nazwa_gracza[buntownik]);
		SQL_ThreadQuery(info, "ZapiszDane", gszQuery);
	}

}

Na chwile obecną z tego co sprawdzałem zlicza bunty, więc dziękuję za pomoc i sugestie.

 

Jeszcze mam jeden problem w związku z tym jak spróbowałem to zastąpić - w tej linijce:

	if(cs_get_user_team(ofiara) == CS_TEAM_CT && cs_get_user_team(buntownik) == CS_TEAM_T && !nielicz && ilosc_terro() > 2)

wyskakuje mi: warning 217: loose indentation przy kompilowaniu pliku - szukałem pomocy na forum i jest to podobno inny odstęp zrobiony spacją lub tab, poprawiałem i dalej tak samo mam, czy jest to coś innego? Z tego tematu: https://amxx.pl/topi...zy-komplikacji/ to zaczerpnąłem. 

W temacie: Dodawanie do statystyk

19.08.2019 19:36

Sprawdź, czy zmienna logiczna "zyczenie" nie zmienia się w na true/false gdzieś indziej w kodzie. CTRL + F > "zyczenie". Dobrze by też było widzieć cały kod. 

 

Nigdzie więcej nie jest to wykorzystywane.

 

Public odpowiedzialny za zliczanie życzeń oraz buntów.

public OnLastPrisonerShowWish(id) //Zliczanie zyczen > Wywołuje się podczas wybrania zyczenie przez ostatniego więźnia.
{
	zyczenie = true;
	if(ilosc_terro() > 2) {
		new id_straznik = jail_get_prowadzacy();
		user_zyczenia[id]++; user_zyczenia[id_straznik]++;
		
		SQL_FormatQuery("UPDATE `JailUsers` SET `Zyczenia` = (`Zyczenia` + 1) WHERE `Name` = '%s';", nazwa_gracza[id]);
		SQL_ThreadQuery(info, "ZapiszDane", gszQuery);
		ColorChat(id, id, "^4[Jail]^3 Zyczenie dodane do statystyk.");
		
		SQL_FormatQuery("UPDATE `JailUsers` SET `Zyczenia` = (`Zyczenia` + 1) WHERE `Name` = '%s';", nazwa_gracza[id_straznik]);
		SQL_ThreadQuery(info, "ZapiszDane", gszQuery);
		ColorChat(id_straznik, id_straznik, "^4[Jail]^3 Zyczenie dodane do statystyk.");
	}
}

public OnRemoveData() // Wywołuje się podczas zakonczenia kazdego dnia (rundy), przeznaczony do resetowania zmiennych.
{
	zyczenie = false;
}

public bunt(id, attacker, shouldgib) // Zliczanie buntow
{	
	if(!is_user_connected(id) || !is_user_connected(attacker) || attacker == id)
	return HAM_IGNORED;
	
	if(cs_get_user_team(id) == CS_TEAM_CT && cs_get_user_team(attacker) == CS_TEAM_T && !zyczenie && ilosc_terro() > 2)
	{
		user_bunty[attacker]++;
		ColorChat( attacker, attacker, "^4[Jail]^3 Bunt dodany do statystyk.");
		SQL_FormatQuery("UPDATE `JailUsers` SET `Bunty` = (`Bunty` + 1) WHERE `Name` = '%s';", nazwa_gracza[attacker]);
		SQL_ThreadQuery(info, "ZapiszDane", gszQuery);
	}
	return HAM_IGNORED;
}

Opis forward'ow jest obok (cypisa). U jednych graczy to działa i dodaje, a u innych nie. :/

 

Co do postu wyżej jeszcze: gdy ktoś zabije strażnika to bool nie ulega zmianie. Ulega on tylko zmianie, gdy więzień wybierze życzenie, ponieważ wywoła się forward OnLastPrisonerShowWish oraz na koniec rundy czyli bez względu czy był bunt, czy zostało wybrane życzenie - OnRemoveData. Tylko w tych miejscach co przedstawiłem jest użyty ten bool, nigdzie więcej. Ostatni więzień dostaje możliwość wybrania życzenia, gdy prowadzący wydzieli na to zgodę, więc bool do czasu wyboru życzenia jest na false przez forward wywołany pod koniec wcześniejszej rundy. Uwzględnienie konkretnego gracza raczej nie pomoże.

 

Jak ten wycinek nie wystarcza co umieściłem to wybaczcie i dajcie znać - jw pisałem zielony w to jeszcze jestem.