Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

CodMod_Stary - Dodanie dynamitu do klasy


BulgaR
 Udostępnij

Rekomendowane odpowiedzi

W tym poradniku pokaze w jaki sposob dodac dynamit do klasy/itemu. Na poczatek musimy standardowo utworzyc jakas klase lub item a nastepnie gdzies na gorze dodajemy:

new ilosc_dynamitow_gracza[MAX_PLAYERS+1]

Nastepnie szukamy:

public OnClientPutInServer(client)
{

i do srodka dodajemy:

ilosc_dynamitow_gracza[client] = 0;

nastepnie szukamy:

public Action:Prethink(client)
{
	if(!IsValidClient(client) || IsFakeClient(client) || freeze_time)
		return Plugin_Continue;

	if(IsPlayerAlive(client))
	{
		new buttons = GetClientButtons(client);
		new ile = poziom_gracza[client]-1 >= 0? doswiadczenie_poziomu[poziom_gracza[client]-1]: 0;
		new Float:procent_gracza = 0.0;
		procent_gracza = (float(doswiadczenie_gracza[client]-ile)/float(doswiadczenie_poziomu[poziom_gracza[client]]-ile))*100.0;
		PrintHintText(client, "[Klasa: <b>%s</b>]\n[Xp: <b>%0.1f</b>/<b>100.0%%</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]", nazwy_klas[klasa_gracza[client]], procent_gracza, poziom_gracza[client], nazwy_itemow[informacje_itemu_gracza[client][0]], moc_itemu[client]);

		new String:weapon[32];
		GetClientWeapon(client, weapon, sizeof(weapon));

i teraz dodajemy do switcha klasy lub itemu sprawdzanie czy gracz naciska klawisz, jesli tak to wykonujemy funkcje dynamitu. Nizej przyklad dla klasy Saper:

 

Do:

switch(klasa_gracza[client])
{

dodaje

case Saper:
{
	if(!oldbuttons1[client] && buttons & IN_USE)
	{
		if(ilosc_dynamitow_gracza[client])
		{
			new Float:fOrigin[3];
			new Float:iOrigin[3];
			GetClientEyePosition(client, Float:fOrigin);
			for(new i = 1, max = GetMaxClients(); i <= max; ++ i)
			{
				if(!IsClientInGame(i) || !IsPlayerAlive(i))
					continue;

				if(GetClientTeam(client) == GetClientTeam(i))
					continue;

				GetClientEyePosition(i, Float:iOrigin);
				if(GetVectorDistance(fOrigin, iOrigin) <= 200.0)
					SDKHooks_TakeDamage(i, client, client, ((klasa_gracza[i] == Obronca || informacje_itemu_gracza[i][0] == 30)? 0.0: 40.0+(inteligencja_gracza[client]+bonusowa_inteligencja_gracza[client])/6), DMG_GENERIC);
			}

			TE_SetupBeamRingPoint(fOrigin, 20.0, 200.0, sprite_laser, sprite_halo, 0, 10, 0.6, 6.0, 0.0, {255, 255, 255, 128}, 10, 0);
			TE_SendToAll();

			ilosc_dynamitow_gracza[client]--;
		}
		else
			PrintToChat(client, "[COD:MW] Wykorzystales juz moc swojej klasy w tej rundzie!");

		oldbuttons1[client] = 1;
	}
	else if(oldbuttons1[client] && !(buttons & IN_USE))
		oldbuttons1[client] = 0;
}

Po nacisnieciu a nastepnie puszczeniu klawisza E, bedzie wykonywany kod dynamitu. Musimy jeszcze przypisac odpowiednia ilosc dynamitow dla warunku jaki przypisalismy. Tak wiec jezeli ma to byc dla klasy to przechodzimy do odrodzenia, a jezeli dla itemu to do dajitem. Ja pokaze na tej samej klasie na ktorej dodalem wykonywanie kodu dynamitu, a wiec szukam:

public Action:Odrodzenie(client)
{
	if(!IsValidClient(client) || !IsPlayerAlive(client))
	return;

	if(!klasa_gracza[client])
		 WybierzKlase(client);
	else
	{
		if(nowa_klasa_gracza[client])
		{
			klasa_gracza[client] = nowa_klasa_gracza[client];
			nowa_klasa_gracza[client] = 0;
			ilosc_apteczek_gracza[client] = 0;
			CS_UpdateClientModel(client);
			WczytajDane(client, klasa_gracza[client]);
		}
		switch(klasa_gracza[client])
		{

i dodaje:

 

Do switch(klasa_gracza[client})

case Saper: ilosc_dynamitow_gracza[client] = 2;

Opcjonalnie, jezeli nie chcemy by w momencie zmiany klasy dynamit nie przechodzil na inna klase to do if(nowa_klasa_gracza[client]), dodajemy resetowanie dynamitu czyl:

ilosc_dynamitow_gracza[client] = 0;

Autorem poradnika jest @Linux`.

Oryginalny temat: [cs:go]CodMod_Stary - Dodanie dynamitu do klasy - Tutoriale - AMXX.pl: Support AMX Mod X

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

×
×
  • Dodaj nową pozycję...