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

Jak wykonac wartość w komendzie ?


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

#1 Dziobak?

    Wszechmogący

  • Power User

Reputacja: 271
Wszechwidzący

  • Postów:645
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Radom
Offline

Napisano 06.11.2014 23:42

Chodzi mi o to aby przy pisaniu informacji w say podawało się od razu wartość.

 

a dokładniej to chciałbym wykonać coś takiego /daj <a tu podajesz wartość tylko cyfry>

np:

/daj 15

Prosiłbym o jakiś przykład.


  • +
  • -
  • 0

#2 Sloenthran

    Profesjonalista

  • Użytkownik

Reputacja: 161
Profesjonalista

  • Postów:169
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:-
Offline

Napisano 07.11.2014 00:13

#include <amxmodx>

public plugin_init()
{

	register_plugin("Plugin", "1.0", "Sloenthran");
	
	register_clcmd("say", "Say");
	register_clcmd("say_team", "Say");

}

public Say(User)
{

	new Arg[64], Arg1[16], Arg2[32];
	
	read_args(Arg, 63);
	remove_quotes(63);
	
	strbreak(Arg, Arg1, 15, Arg2, 31);
	
	if(equal(arg1,"/daj"))
	{
	
		JakasKomenda(User, Arg2);
	
	}

}

W tym przypadku w Arg2 byłoby własnie to Twoje 15 :)


Użytkownik Sloenthran edytował ten post 07.11.2014 00:22

  • +
  • -
  • 0

#3 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 07.11.2014 04:10

#include <amxmodx>

public plugin_init()
{

	register_plugin("Plugin", "1.0", "Autor");
	
	register_clcmd("say /daj", "Say");
	register_clcmd("say_team /daj", "Say");

}

public Say(id)
{
	new Arg[8]
	read_argv(Arg, 7);
	//tutaj Arg to ta wartość, rób z tym dalej co potrzebujesz

}

Użytkownik grankee edytował ten post 07.11.2014 04:10

  • +
  • -
  • 0

#4 Dziobak?

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 271
Wszechwidzący

  • Postów:645
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Radom
Offline

Napisano 07.11.2014 08:05

Czyli coś takiego zadziała ?

	register_clcmd("say", "Say");
	register_clcmd("say_team", "Say");

public Say(id, menu, item)
{

	new szIle[5];
	
	read_argv(1, szIle, charsmax(szIle));
	remove_quotes(szIle);
	
	kwota[id] = str_to_num(szIle);
	
	if(equal(szIle,"/daj"))
	{
			
		if(kwota[id] < 1)
		{
			ColorChat(id, GREEN, "Niepoprawna wartosc!");
			return PLUGIN_CONTINUE;
		}
		
		if(pobierz_kwote(id) < kwota[id])
		{
			ColorChat(id, GREEN,  "Nie ma tyle kasy");
			kwota[id] = 0;
			
			return PLUGIN_CONTINUE;
		}
		
		say_handle(id, menu, item)
	}
	return PLUGIN_CONTINUE
}


  • +
  • -
  • 0

#5 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 08.11.2014 02:44

Drogi Michale z mojego miasta. Najprostszy sposób na sprawdzenie to kompilacja i próba. Dodatkowo nie zabezpieczasz się na wypadek jak ktoś wpisze coś innego niż cyfry w miejscu gdzie ich oczekujesz.


  • +
  • -
  • 0

#6 Dziobak?

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 271
Wszechwidzący

  • Postów:645
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Radom
Offline

Napisano 08.11.2014 15:04

Drogi Michale z mojego miasta. Najprostszy sposób na sprawdzenie to kompilacja i próba. Dodatkowo nie zabezpieczasz się na wypadek jak ktoś wpisze coś innego niż cyfry w miejscu gdzie ich oczekujesz.

 

Kompiluje się kompiluje a nie działa.

Dlatego post powyżej zadałem jako pytanie.


  • +
  • -
  • 0

#7 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 10.11.2014 18:39

public Say(id, menu, item)//to jest uchwyt funkcji, nie ma tu menu ani item. zmień na: public Say(id)
{

	new szIle[5];//tworzysz tablicę char
	
	read_argv(1, szIle, charsmax(szIle))//odczytujesz pierwszy argument czyli to co jest w cudzysłowie lub jeśli nie użyjesz cudzysłowu to do pierwszej spacji
	remove_quotes(szIle);//usuwasz cudzysłowy, których tutaj nigdy nie będzie, bo są one ogranicznikami odczytywanego argumentu nr.1 natomiast same są pomijane
	
	kwota[id] = str_to_num(szIle);//zamieniasz dowolny ciąg znaków na liczbę, w założeniu będzie to "/daj" oczywiście bez cudzysłowów
	
	if(equal(szIle,"/daj"))
	{
			
		if(kwota[id] < 1) Jeżeli kod się nie wysypał w momencie zamiany słowa na liczbę i doszedł do tego miejsca to kwota[id] ma wartość 0 po nieudanej próbie przypisania jej zamienionego na liczbę słowa "/daj"
		{
			ColorChat(id, GREEN, "Niepoprawna wartosc!");
			return PLUGIN_CONTINUE;
		}
		
		if(pobierz_kwote(id) < kwota[id])
		{
			ColorChat(id, GREEN,  "Nie ma tyle kasy");
			kwota[id] = 0;
			
			return PLUGIN_CONTINUE;
		}
		
		say_handle(id, menu, item)//to nie jest menu więc co to tutaj robi?
	}
	return PLUGIN_CONTINUE
}

  • +
  • -
  • 0




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

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