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

Pytania dotyczące sklepiku oraz jego funkcji.


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

#1 ViruSPL

    Pomocny

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:40
  • Lokalizacja:Bydgoszcz
Offline

Napisano 21.07.2014 17:57

Witam,

Mam kilka kodów które zamieszczam w swoim sklepiku, mam do nich kilka pytań

 

Pierwsze to czy to zadziała na pewno na jedną rundę czy na więcej (jeśli więcej jak poprawić)

		case 2:
		{
			if(pieniadze >= 4000)
			{
				cs_set_user_money(id, pieniadze - 4000)
				radar_scan(id)
				client_print(id, print_chat, "[DD2] Widzisz wrogow na radarze!");
			}
			if(pieniadze < 4000)
				client_print(id, print_chat, "[DD2] Masz za malo kasy!");
		}

Kolejne zawiera poprzednie + czy to wystarczy czy jeszcze jakiś kod muszę dopisać do tego?

		case 1:
		{
				if(pieniadze >= 3000)
				{
					cs_set_user_money(id, pieniadze -3000);
					set_user_footsteps(id, 1);
					client_print(id, print_chat, "[DD2] Nikt nie slyszy twoich krokow!");
				}
				if(pieniadze < 3000)
				client_print(id, print_chat, "[DD2] Masz za malo kasy!");
		}

Trzecie. czy w ten sposób mogę zabierać pieniądze graczu po zakupie?

public Sklep_Handler(id, menu, item)
{
	
	if(!is_user_alive(id) || !is_user_connected(id))
		return PLUGIN_CONTINUE;
	
		new zdrowie = get_user_health(id)
		new pieniadze = cs_get_user_money(id)
cs_set_user_money(id, pieniadze-2500);

Czy raczej

new bool:pieniadze

wtedy

cs_set_user_money(id, pieniadze-2500);

Czwarte czy to zadziała?

Na początku

new g_msgHostageAdd, g_msgHostageDel;


w plugis init

	g_msgHostageAdd = get_user_msgid("HostagePos");
	g_msgHostageDel = get_user_msgid("HostageK");
	set_task (2.0,"radar_scan",_,_,_,"b");

oraz na końcu

public radar_scan(id)
{
new PlayerCoords[3];
                                                 
for (new id=1; id<=32; id++)
{
  if(!is_user_alive(id)) continue;
                                                                                 
  for (new i=1;i<=32;i++)
  {       
   if(!is_user_alive(i) || get_user_team(i) == get_user_team(id)) continue;
 
   get_user_origin(i, PlayerCoords)
                                                                                                                 
   message_begin(MSG_ONE_UNRELIABLE, g_msgHostageAdd, {0,0,0}, id)
   write_byte(id)
   write_byte(i)                                 
   write_coord(PlayerCoords[0])
   write_coord(PlayerCoords[1])
   write_coord(PlayerCoords[2])
   message_end()
                                                                                                                 
   message_begin(MSG_ONE_UNRELIABLE, g_msgHostageDel, {0,0,0}, id)
   write_byte(i)
   message_end()
  }
}
}

  • +
  • -
  • 0

#2 PoDwOJ

    Pomocny

  • Zbanowany

Reputacja: 7
Nowy

  • Postów:71
  • Lokalizacja:asddasdasda
Offline

Napisano 21.07.2014 19:24

1. Tak działa tylko na 1 runde.

2. Do case zawsze musisz mieć zrobione menu z oznaczeniem zależy też w jaki sposób robisz menu ,ponieważ czasem 1 case może mieć wartość 1 lub 0 w zależności od menu.

3. Jest to dobry sposób tylko nie ustawiamy nigdy 1 wartośći bo set i get to 2 różne wartości 1 ustawia wartość a jedna pobiera wartość najlepiej i prawidłowo ustawia się   "cs_set_user_money(id , cs_get_user_money(id)"

Co do

 if(!is_user_alive(id) || !is_user_connected(id))

        return PLUGIN_CONTINUE;

 

Jest to prawidłowe dlaczego bo 1 wartość czyli alive sprawdza czy gracz żyje a 2 czy jest połaczony w jakimś teamie , możemy wybrać sobie np tylko ,że jest dostępne na 1 team wtedy ustawiamy kod:

 

if(is_user_connected(id) && cs_get_user_team(id) == CS_TEAM_T)  // Sklep tylko dla TT jeżeli chcemy tylko dla ct to zamiast "T" dajemy "CT"
{
 
możemy też ustawić na flagę jeżeli chcemy np ,że sklep będzie tylko dla VIP'a wtedy dajemy kod:
 
if(is_user_connected(id) && cs_get_user_flags(id) == Tu wpisz flage dostępu)  // Sklep tylko dla graczy z flaga którą sobie wybierzemy.
{
 
4. Nie jestem pewny do końca ale chyba tak.
musiałbym widzieć public.
 
 
 
 
 

 


Użytkownik PoDwOJ edytował ten post 21.07.2014 19:26


#3 kakus002

    (-.(-.(-.-).-).-)

  • Zbanowany

Reputacja: 164
Profesjonalista

  • Postów:209
  • Lokalizacja:OS
Offline

Napisano 21.07.2014 19:37

1. Tak działa tylko na 1 runde.

Przetestowałem i nie działa. Nie pokazuje graczy na nim, chyba że ja coś źle zrobiłem.

Co do cichych kroków to dostajesz ale masz je aż do zmiany mapy, sprawdziłem.

Użytkownik kakus002 edytował ten post 21.07.2014 19:39


#4 ViruSPL

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:40
  • Lokalizacja:Bydgoszcz
Offline

Napisano 21.07.2014 19:38

W drugim chodzi bardziej o "set_user_footsteps(id, 1);" czy to wszystko czy jeszcze jakiś konkretny public do tego i czy będzie także na jedną rundę. Bo menu mam zrobione to są tylko nieliczne szczątki kodu ;)

 

Czwarte masz podany public podam i w tym poście ;)

public radar_scan(id)
{
new PlayerCoords[3];
                                                 
for (new id=1; id<=32; id++)
{
  if(!is_user_alive(id)) continue;
                                                                                 
  for (new i=1;i<=32;i++)
  {       
   if(!is_user_alive(i) || get_user_team(i) == get_user_team(id)) continue;
 
   get_user_origin(i, PlayerCoords)
                                                                                                                 
   message_begin(MSG_ONE_UNRELIABLE, g_msgHostageAdd, {0,0,0}, id)
   write_byte(id)
   write_byte(i)                                 
   write_coord(PlayerCoords[0])
   write_coord(PlayerCoords[1])
   write_coord(PlayerCoords[2])
   message_end()
                                                                                                                 
   message_begin(MSG_ONE_UNRELIABLE, g_msgHostageDel, {0,0,0}, id)
   write_byte(i)
   message_end()
  }
}
}

Teraz naszły mnie kolejne pytania. Czy wykonalne jest by (jeśli wiecie jak działa soundhack) dodać go do sklepiku w sposób hacku? Czy racze jakiś kod można dostosować? Jeśli jakiś kod proszę o link bądź kodzik (nie umiem znaleźć ;X). Soundhack działa na zasadzie podmiany pliku dźwięków - sprawia że głośniej słyszymy kroki. Chciał bym zrobić na zasadzie kupuje - wczytuje mu podmianę pliku dajmy z misc/footstep.mp3 na misc/dd2/footstep.mp3 (przykładowa lokalizacja). Nie ważne jaki sposób - proszę o pomoc jak i co ;P

 

##edit U@ - A wkleiłeś resztkę kodu radaru? Tj. Public itd (jest w ostatnim punkcie. Same case z wywołanym public nie starczy ;P


Użytkownik ViruSPL edytował ten post 21.07.2014 19:44

  • +
  • -
  • 0

#5 PoDwOJ

    Pomocny

  • Zbanowany

Reputacja: 7
Nowy

  • Postów:71
  • Lokalizacja:asddasdasda
Offline

Napisano 21.07.2014 19:42

Oznacza ciche chodzenie włączone nie masz zrobionej  funkcji remove

set_user_footsteps(id, 1)

 

           set_user_footsteps(id, 0); // wyłaczone nie wiem dokładnie co masz w całym pluginie więc nie mogę do końca

 

Ustaw sobie to na dole pluginu aby wyzerować

 

public Fwd_PlayerSpawn_Post(id){  

if (is_user_alive(id)){ 
{
set_user_footsteps(id, 0) 
 
oznacz ,że wyzeruje ci to po smici i w next round

Użytkownik PoDwOJ edytował ten post 21.07.2014 19:51


#6 ViruSPL

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:40
  • Lokalizacja:Bydgoszcz
Offline

Napisano 21.07.2014 19:46

Załączam całe SMA. W razie pytań pisać. I jak ktoś będzie dobry może od razu dodać do niego z poprzedniego pytania rzecz ;P

Załączone pliki


  • +
  • -
  • 0

#7 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 21.07.2014 19:47

1. Zależy, czy zmienna która daje radar jest resetowana w kolejnych rundach.

2. Jeżeli chcesz usunąć kroki na początku rundy, to gracz który je kupił musi mieć ustawione set_user_footsteps na 0

To nie zadziała - jak pobierasz ilość pieniędzy gracza?

new bool:pieniadze

wtedy

cs_set_user_money(id, pieniadze-2500);

4. Sprawdź?


  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#8 ViruSPL

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:40
  • Lokalizacja:Bydgoszcz
Offline

Napisano 21.07.2014 19:57

Pieniądze pobieram za pomocą

new pieniadze = cs_get_user_money(id)

Czyli rozumiem ze new bool:pieniadze

nie potrzebne? Tylko to co podałem teraz +

cs_set_user_money(id, pieniadze-2500);

Co do sprawdź, mógł bym sprawdzić, ale jak już miałem pytania wolałem zapytać i o to.


Użytkownik ViruSPL edytował ten post 21.07.2014 19:58

  • +
  • -
  • 0

#9 PoDwOJ

    Pomocny

  • Zbanowany

Reputacja: 7
Nowy

  • Postów:71
  • Lokalizacja:asddasdasda
Offline

Napisano 21.07.2014 20:00

Pieniądze pobierasz w ten sposób 

cs_set_user_money(id , cs_get_user_money(id) - 10000)

lub jeżeli new pieniadze

cs_set_user_money(id , cs_get_user_money(id) pieniadze-2500)
 
 

Użytkownik PoDwOJ edytował ten post 21.07.2014 20:03


#10 ViruSPL

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:40
  • Lokalizacja:Bydgoszcz
Offline

Napisano 21.07.2014 20:14

Dobra ziomeczku powiedz mi po ki grzyb pobierać dwa razy te same dane?

 

new pieniadze = cs_get_user_money(id) - Pobiera pieniądze

 

cs_set_user_money(id , cs_get_user_money(id) pieniadze-2500) - wygląda to tak ustaw_kase(id, pobierz_ją(id) powtórz_pobieranie-2500)

Nie widzę sensu :/


  • +
  • -
  • 0

#11 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 21.07.2014 20:17

Pieniądze pobieram za pomocą

new pieniadze = cs_get_user_money(id)

Czyli rozumiem ze new bool:pieniadze

nie potrzebne? Tylko to co podałem teraz +

cs_set_user_money(id, pieniadze-2500);

Co do sprawdź, mógł bym sprawdzić, ale jak już miałem pytania wolałem zapytać i o to.

 

 

new zmienna a new bool: zmienna to zupełnie dwie inne rzeczy Przeczytaj, do czego służy deklarowanie zmiennej bool


  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#12 ViruSPL

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:40
  • Lokalizacja:Bydgoszcz
Offline

Napisano 21.07.2014 20:27

bool pobiera true/false. Więc tak jak piszę nie jest mi to potrzebne. Nadal pozostaje pytanie z postu. #4


sharkowy (21.07.2014 20:36):
przyjmuje true/false* :P

  • +
  • -
  • 0

#13 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 21.07.2014 20:38

Podmienianie dźwięku graczowi nie jest zbyt fajnym rozwiązaniem, pewnie by sobie tego nie życzył :P


  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#14 ViruSPL

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:40
  • Lokalizacja:Bydgoszcz
Offline

Napisano 21.07.2014 20:41

Źle mnie rozumiesz, pobrało by się to jak model. Tak jak na codmodach itd. Po czym po zakupie jakaś funkcja wymusiła by jego użycie na rundę (coś jak wybór nożna w pluginie knife power). Klik i działa - ded - off. Nie generalna podmianka ponieważ to jest nie zgodne z prawem ;P

 

Bądź jeśli jest taka opcja to jakaś funkcja pobierająca dźwięk i zwiększająca jego.. priorytet(?) - głośność na pewien czas.


Użytkownik ViruSPL edytował ten post 21.07.2014 20:42

  • +
  • -
  • 0




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

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