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 zrobić aby dana funkcja uruchamiana była tylko raz na mapeBardzo proszę o pomoc.


  • Zamknięty Temat jest zamknięty
1 odpowiedź w tym temacie

#1 Proziom1

    Życzliwy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:30
  • Imię:Damian
  • Lokalizacja:Polska
Offline

Napisano 25.12.2013 19:20

Witam wszystkich

 

Od niedawna uczę się a w zasadzie chciałbym nauczyć się pisać pluginy do Cs.I mam takie problem założyłem sobie że zrobię taki dosyć prosty plugin może nie do końca sensowny ale mniejsza oto chciałem poprostu coś swojego napisać.I szczerze mówiąc nie wiem do końca jak się za to zabrać.A mianowicie plugin ten miałby polegać na czymś takim że Ktoś wpisze w sayu "Czesc" ma mu wyświetlić się na środku ekranu napis "Witamy Cię na naszym serwerze!Za wpisanie tej komendy otrzymujesz dodatkowe 50 HP!"Lecz to 50HP ma się włączyć tylko raz na mapie każdemu graczowi kto spełni ten warunek.Oraz po wpisaniu komendy na sayu "/muza " ma być puszczona jakaś muzyka dla gracza którą tam wrzucę tak przykładowo na serwer.I po wpisaniu komendy "/niespodzianka " gracz ginie w rundzie w której to wpisał lecz tej komendy można użyć tylko raz na mape.

 

No i tak mój początek tego pluginu wygląda tak 

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Plugin powitanie"
#define VERSION "1.0"
#define AUTHOR "Proziom"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say Czesc","przywitanie")   
	// Add your code here...
}
public przywitanie(id)
{
	client_print(id, print_center, "Witamy Cię na naszym serwerze!Za wpisanie tej komendy otrzymujesz dodatkowe 50 HP!");
}

no i nie wiem jak mam dalej postępować tzn. wiem co teraz powinno się wydarzyć aby serwer to odczytał lecz nie wiem jakie mam komendy wpisać zbytnio.Tzn. Póki co ten plugin działa tak że jak jakiś gracz wpisze na say słowo "Cześć" wyświetli mu się na środku ekranu napis ten który wpisałem.No ale co mam dalej pisać ? Wydaje mi się że teraz powinienem napisać w pluginie słowo register_event aby powiedzieć pluginowi że po wpisaniu słowa "Cześć" ma on dodać graczowi te 50HP ale tylko raz na mape.Lecz nie wiem co musiałbym wpisać aby tak się stało,jakie zdarzenie.A dalszy kawałek pluginu wykonałbym tak:

register_clcmd("say /muza","muzyka")
public plugin_precache()
precache_sound("sound/muzyka/rs.mp3")

A co dalej to nie bardzo już wiem.Bardzo proszę o pomoc w tym temacie i z góry dziękuję :)

 


  • +
  • -
  • 0

#2 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

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

Napisano 25.12.2013 20:54

Zacznijmy od tego, by gracz mógł coś zrobić tylko raz na mape ( zakładając, że gracz nie wyjdzie z serwera ). Do tego służy wartość bool, która przyjmuję tylko i wyłącznie wartość fałsz lub prawda. http://4programmers.net/C/Bool

 

Przy połączeniu do gry, ta wartość powinna przyjmować wartość false i jeżeli gracz wpisze daną komendę, to powinna ona przyjąć wartość true, by więcej się nie wykonała.  Powinno to wyglądać mniej więcej tak:

new wykonala[33];
 
public client_connect(id)
    wykonala[id]=false;

 

następnie zmieniasz wartość na true w funkcji, jeżeli gracz wywołał funkcję. I za każdym razem sprawdzasz wartość, "wykonala", jeżeli jest ona na true, to najzwyczajniej nic się nie robi, jeżeli na false, to się wykonuje i przyjmuje wartość true, po czym już się nie wykona.

 

HP dodajesz za pomocą modułu #fun, wszystko jest w dokumentacji amxx.

 

Co do umierania, robisz to samo, robisz komendę niespodzianka, dajesz wartość bool, używasz funkcji user_kill, która odpowiada za zabicie gracza.

 

co do dźwięku używasz plugin_precache, gdzie mówisz serwerowi, że będziesz używał jakiegoś dźwięku, następnie za pomocą o czegoś takiego

client_cmd(id, "mp3 play sound/misc/PIOSENKA.MP3")

włączasz dźwięk u gracza. przy czym zmieniasz ścieżkę pliku


  • +
  • -
  • 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.





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

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