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
 

Zdjęcie
CS:GO

CodMod_Stary - Jak dodac szanse na oslepienie gracza

cs:go

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 20.10.2015 16:35

W tym bardzo prostym tutorialu postaram sie opisac w jaki sposob dodac szanse na oslepienie gracza. A wiec najpierw tworzymy standardowo klase lub item a nastepnie dodajemy funkcje dla naszego okreslonego warunku. Jezeli mamy oslepiac np wszystkich w okreslonym zasiegu to dodajemu funkcje do petli i ustalamy okreslona odleglosc, klawisz uzycia itp. Wzorowac sie mozna np na dynamicie. Natomiast jezeli chcemy dodac szanse na oslepienie przy zadaniu obrazen to kod funkcji dodajemy do takedamage, tu takze mozna wzorowac sie na innych przedmiotach. Sam kod funkcji oslepienia, wyglada tak:

PerformBlind(indeks, 255);
CreateTimer(3.0, WylaczOslepienie, indeks);

Gdzie 3.0 to czas oslepienia a indeks to id gracza na ktorym ma byc wywolywana funkcja. Wiecej o tym poczytac mozna np w tutku z obrazeniami.

 

Nastepnie musimy gdzies na dole silnika dodac nasz kod oslepienia:

public Action:WylaczOslepienie(Handle:timer, any:client)
{
	if(!IsValidClient(client))
		return;

	PerformBlind(client, 0);
}
public Action:PerformBlind(target, amount)
{
	if(!IsValidClient(target))
		return;

	new targets[2];
	targets[0] = target;
		
	new color[4] = {0, 0, 0, 0};
	color[0] = 0;
	color[1] = 0;
	color[2] = 0;
	color[3] = amount;
		
	new flags;
	if (amount == 0)
		flags = (0x0001 | 0x0010);
	else
		flags = (0x0002 | 0x0008);

	new Handle:message = StartMessageEx(GetUserMessageId("Fade"), targets, 1);
	if(GetUserMessageType() == UM_Protobuf)
	{
		PbSetInt(message, "duration", 768);
		PbSetInt(message, "hold_time", 1536);
		PbSetInt(message, "flags", flags);
		PbSetColor(message, "clr", color);
	}
	else
	{
		BfWriteShort(message, 768);
		BfWriteShort(message, 1536);
		BfWriteShort(message, flags);
		BfWriteByte(message, color[0]);
		BfWriteByte(message, color[1]);
		BfWriteByte(message, color[2]);
		BfWriteByte(message, color[3]);
	}

	EndMessage();
}

Ps: Niektorzy moga sie dziwic dlaczego wszystko jest tak szczegolowo opisane ale nie uwierzycie ile osob pyta o takie banaly :D.


  • +
  • -
  • 0

b35020692_qesnxqa.png


#2 bas233

    Profesjonalista

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:191
  • Imię:kamper
  • Lokalizacja:Warszawa
Offline

Napisano 19.11.2015 18:10

zrobiłem tak i nie działa . 

case asdaf:
			{
				if(klasa_gracza[attacker] != Obronca && informacje_itemu_gracza[attacker][0] != 30)
				{
					PerformBlind(victim, 255);
CreateTimer(0.8, WylaczOslepienie, victim);
				}
			}

Serwer CS Go Cod Mod 501 lvl [Free Knife][FreeSkins][Unikat]

 

banner.jpg?1442845665

 

 IP:178.32.201.165:30033






Również z jednym lub większą ilością słów kluczowych: cs:go

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych