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

Hookowanie Sayu


  • Zamknięty Temat jest zamknięty
6 odpowiedzi w tym temacie

#1 Raku129

    Wszechwidzący

  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:280
  • GG:
  • Lokalizacja:Bielawa
Offline

Napisano 22.05.2011 14:03

Mam dalej problem z wysyłaniem pokemon dolarów:

- Chyba wyslij bierze za nick, powinno być wyslij nick ilosc
- Teraz wpisuje wyslij nick ilosc (to pisze mi Gracz nie istnieje, a nie pokazuje jego nicku, przed zhookowaniem na say był)
- Jeżeli gracz wyśle komuś PD to pisze mu że wysłał tam komuś i jeszcze pokazuje mu Nie masz tyle PD.
- Gdy gracz nie ma PD to nie wysyła nikomu PD, nie będzie miał PD na -, ale nie wyświetla Nie masz tyle PD.

public Send(id)
{
	static args[256];
	read_args(args, 255);
	replace(args, 255, "^"", "");	
		
	if(contain(args, "wyslij") != -1)
	{
	new pd_gracza = pd[id]
	new arg1[33];
	new arg2[10];
	read_argv(1,arg1,32);
	read_argv(2,arg2,9);
	new Player = cmd_target(id, arg1, 0);
	remove_quotes(arg2);
	new exp = str_to_num(arg2);
	
	if (!Player)
		{
		ColorChat(id,  GREEN, "[PD] ^x03Gracz %s nie istnieje.", arg2);
		}
		else
		{
		new name[33] 
		get_user_name(id, name, 32)

		if( pd_gracza < exp)
			return PLUGIN_HANDLED;
		{ 
		ColorChat(id,  GREEN, "[PD] ^x03Nie masz tyle PD.");
		} 
		static gName[33], pName[33];
		get_user_name(id, gName, charsmax(gName));
		get_user_name(Player, pName, charsmax(pName));
		
		TakePD(id, exp);
		AddPD(Player, exp);
		ColorChat(id, GREEN, "[PD] ^x03Wyslales ^x01 %s %d ^x03 PD", pName, exp);
		ColorChat(Player, GREEN, "[PD] ^x01 %s ^x03Wyslal ci ^x01 %d ^x03 PD", gName, exp);
		}
	}
	return PLUGIN_CONTINUE;
}

Użytkownik Raku129 edytował ten post 22.05.2011 14:04

  • +
  • -
  • 0

jigen3.jpg


#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 23.05.2011 13:21

hook z saya otrzymuje zawsze 2 parametry:
0 - say
1 - "to co napisałeś"

więc read_argv nie ma tutaj żadnego sensu, weź cały args, usuń cudzysłowy przez remove_quotes a potem sparsuj
public send(id){
	static args[256];
	read_args(args, 255);
	remove_quotes(args);
	
	new szCmd[15], szNick[32], szPD[12];
	
	new parsed = parse(args, szCmd, 14, szNick, 31, szPD, 11)
	if(parsed && equali(szCmd, "/wyslij")){
		if(parsed < 3){
			client_print(id, print_chat, "Uzycie: /wyslij <Gracz> <Punkty>");
			return PLUGIN_HANDLED;
		}
		new Player = cmd_target(id, szNick, 0);

		new iPD = str_to_num(szPD);

		log_amx("Komu %s, ile %d", szNick, iPD);
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;	
}

  • +
  • -
  • 1

#3 Raku129

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:280
  • GG:
  • Lokalizacja:Bielawa
Offline

Napisano 23.05.2011 13:25

Nie za bardzo kumam co napisałeś, uczę się ale to jest czarna magia.
W tym co dałeś coś sprawdza czy taki gracz jest, czy w ma tyle PD itd.?

Widzę to ale nie ogarniam :D

if(parsed < 3){

Nie ogarniam całego, new player jest w ogóle teraz potrzebne?
Nie ma odejmowania i dodawania expa też chyba.

Użytkownik Raku129 edytował ten post 23.05.2011 13:30

  • +
  • -
  • 0

jigen3.jpg


#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 23.05.2011 13:38

Wskazałem błąd w twojej funkcji i naprawdę niewiele potrzeba, żeby je dobrze posklejać. Nazwy zmiennych wskazują co zawierają. W moim kodzie brakuje sprawdzania warunków i przekazania doświadczenia, bo to wszystko masz w swoim. Nie będę nic za Ciebie robił. I tak masz szczęście, że nie dostałeś warna za to PW.
  • +
  • -
  • 0

#5 Raku129

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:280
  • GG:
  • Lokalizacja:Bielawa
Offline

Napisano 23.05.2011 13:41

Dobra ja niczego nie rozumiem, zostawię to - trudno nie będzie wysyłania.
Przerobiłem to i jest pełno błędów.
  • +
  • -
  • 0

jigen3.jpg


#6 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 23.05.2011 13:49

Niech niemożliwe stanie się prawdziwe.
public Send(id){
	static args[256];
	read_args(args, 255);
	remove_quotes(args);

	new szCmd[15], szNick[32], szPD[12];
	
	
	new parsed = parse(args, szCmd, 14, szNick, 31, szPD, 11)
	if(parsed && equali(szCmd, "/wyslij")){
		if(parsed < 3){
			client_print(id, print_chat, "Uzycie: /wyslij <Gracz> <Punkty>");
			return PLUGIN_HANDLED;
		}
		
		new Player = cmd_target(id, szNick, 0);
		if(!Player){
			ColorChat(id,  GREEN, "[PD] ^x03Gracz %s nie istnieje.", szNick);
			return PLUGIN_HANDLED;
		}
		
		new iPD = str_to_num(szPD);
		
		if( pd[id] < iPD){ 
			ColorChat(id,  GREEN, "[PD] ^x03Nie masz tyle PD.");
			return PLUGIN_HANDLED;
		} 
		
		TakePD(id, iPD);
		AddPD(Player, iPD);

		new szNick2[32];
		get_user_name(id, szNick2, 31);
		get_user_name(Player, szNick, 31);
		
		ColorChat(id, GREEN, "[PD] ^x03Wyslales ^x01 %s %d ^x03 PD", szNick, iPD);
		ColorChat(Player, GREEN, "[PD] ^x01 %s ^x03Wyslal ci ^x01 %d ^x03 PD", szNick2, iPD);

	
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;	
}

Następny temat załóż w Pytania i zacznij: "Kto zrobi dla mnie...", bo wyglądało jakbyś był programistą.
  • +
  • -
  • 0

#7 Raku129

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:280
  • GG:
  • Lokalizacja:Bielawa
Offline

Napisano 23.05.2011 14:00

Ja się uczę analizować kod, chociaż i tak mi to bardzo ciężko idzie.
Czasem jest tak że jeden dzień się uczę jakieś funkcji.
Dzięki wielkie. Rozumiem już teraz mniej więcej.
  • +
  • -
  • 0

jigen3.jpg





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

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