Skocz do zawartości
Zaloguj się, aby obserwować  
Gość

[Programowanie] - AMXX #1

Polecane posty

Gość
Napisano

AMXX - Wprowadzenie

Wymagania:

  • Dowolny program tekstowy Amxx Studio, VSC (Notatnik Niepolecany)
  • Kompilator 
  • Minimalna wiedza z zakresu programowania 
  • CHĘCI 

 

Po spełnieniu tych warunków brakuje nam jeszcze jednej rzeczy do szczęścia... mianowicie dokumentacji. 

Link: https://amxx.pl/dokumentacja/

 

Zacznijmy od najprostszego możliwego kodu. 

 

Cel:

Chcemy aby nasz plugin "Przywitał" gracza, który właśnie wchodzi na nasz serwer. 

 

Ale od podstaw.

 

#include <amxmodx>
#include <amxmisc>

#define PLUGIN ""
#define VERSION ""
#define AUTHOR ""

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
}

Tak wygląda podstawowy kod, wygenerowany nam po utworzeniu nowego sma w programie AMXX Studio. 


Co odpowiada za co: 

#include <> jest dołączeniem do naszego pluginu wymaganej biblioteki 

#define jak sama nazwa wskazuje definicje... w tym przypadku nazwa pluginu, wersja, oraz autor. Oczywiście można to zapisać jako register_plugin("nazwa pluginu", "wersja", "autor") ale ta metoda nie jest zbyt przejrzysta. 

plugin_init() jest to główna funkcja naszego pluginu, w której rejestrujemy plugin, cvary, eventy etc

 

Dobrze zatem zastanówmy się jak nasz plugin powinien działać. 

  1. Funkcja powinna zostać wywołana w chwili gdy gracz łączy się z serwerem. Przechodzimy więc do dokumentacji i szukamy funkcji wywoływanych w chwili łączenia się gracza z serwerem. Po pewnym czasie znajdujemy client_connect, clieant_authorized oraz client_putinserver ja wykorzystam tą trzecią. 
  2. Gdy funkcja zostanie wywołana chcemy by na hudzie innych graczy pojawił się komunikat "Gracz xyz dołączył do gry"

 

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Plugin Testowy"
#define VERSION "1.0"
#define AUTHOR "RTX2070"

new PlayerName[32];

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
}
public client_putinserver(id)
{
    get_user_name(id, PlayerName, 31);
    set_hudmessage(255, 0, 0, -99.0, -99.0, 0, 6.0);
    show_hudmessage(0, "Gracz %s dolacza do gry", PlayerName[id]);
}

 

Co tu się stało ? 

 

1. Stworzyliśmy tablice o nazwie PlayerName, która posiada długość [32] znaków. 

2. Dodaliśmy funkcje client_putinserver(id), która zostaje wywołana podczas łączenia się gracza z serwerem. 

A co w funkcji ? 

 

get_user_name( identyfikator gracza łączącego sie, nazwa tablicy do której zostanie skierowany jego nick, max długość nicku);

 

Następnym krokiem jaki wykona funkcja jest ustawienie koloru, pozycji, animacji oraz czasu trwania wiadomości na hudzie. W tym celu korzystamy z polecenia set_hudmessage(red, green, blue, float pozycji X, float pozycji Y, efekt, czas trwania)

Skoro ustawiliśmy już pozycje kolor animacje ... naszej wiadomości, teraz czas wypisać ją wszystkim użytkownikom, w tym celu wykorzystujemy show_hudmessage( ID zastępujemy 0 dzięki czemu wiadomość zostanie wysłana do wszystkich osób znajdujących się na serwerze, treść wiadomości, tablica z której ma zostać pobrany nick gracza. 

 

Kompilujemy plugin, wrzucamy na serwer, dodajemy do plugins.ini restartujemy serwer

 

HLDS.png.2a77523c10f99532fc501bad1086563

 

Jak widać na załączonym obrazku plugin działa. A oto efekt:

hlds2.jpg.13790f177338af406803037e456ea4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 






 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
Zaloguj się, aby obserwować  

O nas

Najlepsza sieć serwerów CS 1.6 i CS:GO, wejdź sam i przekonaj się! W internecie jesteśmy już od 26 marca 2016 i cały czas kierujemy się ku szczytom!

×
×
  • Utwórz nowe...

Ważne informacje

Regulamin Polityka prywatności Warunki korzystania z serwisu Umieściliśmy pliki cookie na Twoim urządzeniu, aby pomóc Ci ulepszyć tę witrynę. Możesz dostosować ustawienia plików cookie, w przeciwnym razie zakładamy, że możesz kontynuować.