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

Dodatkowa kasa za wygranie rundy


Najlepsza odpowiedź plx211, 30.04.2015 19:51

zmodyfikowałem trochę to twoje, nie testowane:

public EventRoundEnd(Handle:event, const String:name[], bool:dontBroadcast){
	new Winner = GetEventInt(event, "winner");
	for(new i = 1; i <= MaxClients; i++)
		if(IsClientInGame(i))
			if(GetClientTeam(i) == Winner)
				SetMoney(i, GetMoney + 200);
}

SetMoney(client, value){
	SetEntData(client, FindSendPropOffs("CCSPlayer", "m_iAccount"), value);
}

GetMoney(client){
	return GetEntData(client, FindSendPropOffs("CCSPlayer", "m_iAccount"));
}
Przejdź do postu


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

#1 Yamarusa

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:7
Offline

Napisano 30.04.2015 16:39

Cześć, "wyczarowałem" niby taki kod:
 

#define TR 2
#define CT 3
public EventRoundEnd(Handle:event, const String:name[], bool:dontBroadcast){
	new i;
	new Winner = GetEventInt(event,"winner");
	for(i=1;i<=MaxClients;i++)
	{
		if(IsClientInGame(i) && (!IsFakeClient(i))){
			if(Winner == TR && GetClientTeam(i)==TR){
			
				new money = GetEntProp(client, Prop_Send, "m_iAccount");
				SetEntProp(i, Prop_Send, "m_iAccount", money + 200);
				
			} else if(Winner == CT && GetClientTeam(i)==CT){
			
				new money = GetEntProp(client, Prop_Send, "m_iAccount");
				SetEntProp(i, Prop_Send, "m_iAccount", money + 200);
			}
		}
			
	}
}

Teraz pewnie większość myśli co to kuźwa jest... no ale mam ten kod, nawet sam nie jestem pewny czy dobrze zrobiony, no ale nie dostaje tego dodatkowego 200golda, przy kompilacji błędów nie ma, więc nie wiem co może być źle. Mógłby ktoś pomóc? :)


Użytkownik Krzychu20 edytował ten post 30.04.2015 16:41

  • +
  • -
  • 0

#2 plx211

    Wszechpomocny

  • Użytkownik

Reputacja: 231
Wszechwidzący

  • Postów:397
  • Lokalizacja:Polska
Offline

Napisano 30.04.2015 19:51   Najlepsza odpowiedź

zmodyfikowałem trochę to twoje, nie testowane:

public EventRoundEnd(Handle:event, const String:name[], bool:dontBroadcast){
	new Winner = GetEventInt(event, "winner");
	for(new i = 1; i <= MaxClients; i++)
		if(IsClientInGame(i))
			if(GetClientTeam(i) == Winner)
				SetMoney(i, GetMoney + 200);
}

SetMoney(client, value){
	SetEntData(client, FindSendPropOffs("CCSPlayer", "m_iAccount"), value);
}

GetMoney(client){
	return GetEntData(client, FindSendPropOffs("CCSPlayer", "m_iAccount"));
}

Użytkownik plx211 edytował ten post 30.04.2015 19:53

  • +
  • -
  • 1

#3 Yamarusa

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:7
Offline

Napisano 09.06.2015 21:43

 

zmodyfikowałem trochę to twoje, nie testowane:

public EventRoundEnd(Handle:event, const String:name[], bool:dontBroadcast){
	new Winner = GetEventInt(event, "winner");
	for(new i = 1; i <= MaxClients; i++)
		if(IsClientInGame(i))
			if(GetClientTeam(i) == Winner)
				SetMoney(i, GetMoney + 200);
}

SetMoney(client, value){
	SetEntData(client, FindSendPropOffs("CCSPlayer", "m_iAccount"), value);
}

GetMoney(client){
	return GetEntData(client, FindSendPropOffs("CCSPlayer", "m_iAccount"));
}

ohohho xD takie trochę odświeżony temat, jednak musiałem zrobić sobie przerwę przez sprawy prywatne ;/ a teraz nadal stoję na tym samym, plx211 niestety za pomocą twojego kodu nadal nie daje kasy po zakończonej rundzie ;/ przy kompilacji nie ma żadnych errorów a jednak nie chce dać kasy po wygranej rundzie :( czy ktoś mógłby z tym pomóc ? ;/


  • +
  • -
  • 0

#4 plx211

    Wszechpomocny

  • Użytkownik

Reputacja: 231
Wszechwidzący

  • Postów:397
  • Lokalizacja:Polska
Offline

Napisano 09.06.2015 22:23

Zamien:
if(GetClientTeam(i) == Winner)
SetMoney(i, GetMoney + 200);
Na:
if(GetClientTeam(i) == Winner){
SetMoney(i, GetMoney + 200);
PrintToChat(i, "Otrzymałes $$$ za blabla");
}
I powiedz czy wyswietla to na czacie, jesli nie sprawdz czy hookujesz event (oraz czy hookujesz odpowiedni event ;) )

Pisane z fona
  • +
  • -
  • 0

#5 Yamarusa

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:7
Offline

Napisano 10.06.2015 15:37

oj dziękuje bardzo, problem wynikał w tym, że w Hooku była spacja, przez którą nie działało to ;/ jak lookałem wydawało się wszystko ok dopiero po chwili zauważyłem, że za duży odstęp jest. No cóż, wielkie dzięki za pomoc, a pytanko takie może nie na temat napisz tutaj lub na pw gdybyś mógł, chyba, że nie chcesz pomóc xD jak zrobić by była też taka dodatkowa kasa za asyste?


  • +
  • -
  • 0

#6 plx211

    Wszechpomocny

  • Użytkownik

Reputacja: 231
Wszechwidzący

  • Postów:397
  • Lokalizacja:Polska
Offline

Napisano 10.06.2015 20:17

- hookujesz player_death

- dodajesz do callback'a (funkcjia ktora podales w hooku) nastepujacy kod

new assist = GetClientOfUserId(GetEventInt(event, "assister"));

if (assist) {
	SetMoney(assist, GetMoney + 200);
}

SetMoney i GetMoney wez z poprzedniego


Użytkownik plx211 edytował ten post 10.06.2015 20:18

  • +
  • -
  • 1

#7 Yamarusa

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:7
Offline

Napisano 11.06.2015 14:38

Dziękuje bardzo za pomoc :) Temat do zamknięcia


  • +
  • -
  • 0




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

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