Pisanie skryptów do SAMP


(Karoles357) #1

Witam!
Chciałbym zacząć pisanie skryptów do samp( na swój serwer), nie wiem za bardzo od czego zacząć, znam podstawy c++, mógłby mnie ktoś nakierować?


(Venzonite) #2

Witaj Karoles357! Aby zacząć przygodę z tworzeniem serwera SAMP musisz nauczyć się programowania w języku PAWN. Jest to język bardzo podobny do C++ lecz łatwiejszy :slight_smile: . Podstawą serwera jest tzw. “gamemod” a skrypty to tylko dodatki. Pełno skryptów znajdziesz na forum gtao. Szybkie porady z mojego własnego doświadczenia:

  1. Skrypt/gamemod ZAWSZE jest zaczynany linijką #include <a_samp> ponieważ jest to główna biblioteka w PAWN.

  2. Tutaj w programowaniu masz tzw. callbacki, np “public OnGameModeInit()” wykonuje się on gdy serwer/gamemod się uruchomi itp.

  3. Do tworzenia własnych obiektów na serwerze (domy,drzewa,bazy) używaj programu SA:MP Map Construction lub MTA San Andreas. Wyeksportowane obiekty konwertujesz na stronie convertffs.com.

  4. Jeśli chcesz tworzyć komendy, użyj callbacku OnPlayerCommandText lecz większość programistów używa tzw. procesorów komend. Najpopularniejszym procesorem komend jest ZCMD by ZeeX.

  5. Do tworzenia grafik na ekranie, pasku statów, licznika itd używaj TextDrawów. Weź skrypt z jakiegoś forum na tworzenie TextDrawów i wgraj go, wpisz /text lub /td lub /tdeditor i pojawi ci się menu tworzenia grafik na ekranie tzw. textdrawów.

To tyle :slight_smile: A i jak masz za dużo obiektów, bo SA:MP limit to 1000 użyj streamera obiektów.

Na wiki sampa znajdziesz id broni,pickupów,obiektów,samochodów.


(bartoszgames1221) #3

Najprostrzy skrypt jaki może napisać…

#include <a_samp> //Główna biblioteka samp
#include //include do tworzenia komend CMD:komenda mozna dac tez dcmd ale zcmd jest lepsze

#define WIADOMOSC_DO_KONSOLI “Chcesz się dowiedzieć więcej na temat pawn for samp? Pisz śmiało :D” //Będzie to widoczne też w konsoli… Na dole będzie opisane :smiley:

main() //Main musi być w każdym GameMode
{
print("[GM]: Polski Serwer Dobrej zabawy zostal wlaczony powodzeniem!"); //Dodaje wiadomosc do konsoli
printf("%s", WIADOMOSC_DO_KONSOLI); //Mozna to zrobić właśnie także przez >> PRINTF << Żeby fajne działało, dajesz w środku tych " " >> “%s” i po przecinku dajesz se na przyklad wlasnie to: WIADOMOSC_DO_KONSOLI potem zeby wyświetliło ci się ta wiadomość z
//potem zeby wyświetliło ci się ta wiadomość z tego, dajesz przed MAIN #define WIADOMOSC_DO_KONSOLI “Twój text :D” Łatwe czyż nie? :smiley:
}

public OnGameModeInit() //callback OnGameModeInit()
{
print(“mozna tu dac se jakis text, choc nie jest ten print wymagany do callbacka :D”); //Nie jest to wymagane, jak napisałem w środku :smiley:
return 1; //Return 1 = true, żeby się wykonało
}

//MOŻNA DAĆ TAKŻE JAKĄŚ KOMENDE TESTOWĄ :smiley: NP:

CMD:givearmor(playerid, params[]) //CMD:givearmor będzie slużyć jako komenda na dawanie ci armoru… playerid to ID GRACZA a params[] to parametr
{
SetPlayerArmour(playerid, 100); //TO będzie dawać ci armor 100%
GivePlayerMoney(playerid, -300); //TO będzie ci odbierać 300 $ za zakup armora
SendClientMessage(playerid, -1, “Dostałeś Kamizelke za 300 $ !”); //Wiadomość którą dostaniesz po zakupie tej kamizelki :smiley:
return 1; //return 1; = true … Nie wiem jak to wytłumaczyć… po prostu zwraca wartość na “PRAWDA” że to ma się wykonać :x
}


(bartoszgames1221) #4

Polecam na początek pawno … ponieważ możesz także robić skrypty do MTA (MULTI THEFT AUTO) ale jest tojuż inny język… Jest to LUA a jest on trudniejszy od jezyka PAWN ;x
Choć językiem LUA możesz także skryptować do GTA V z tego co się dowiedziałem :smiley:
ale *LUA to nie moja bajka :x: Pawn jest spoko :sweat_drops: więc polecam na początki z językami programistycznymi :oil_drum::oil_drum::oil_drum:
Pozdrawiam z Rosji ! :ru: :poland:
NICK: CrashDetect