Autor : Maksiu ja :) Poziom : Łatwy
Na sam początek dajemy dwa includki. Kod: #include <a_samp> //Nasz podstawowy include #include <zcmd>//Include zCMD, do komend !
Następnie definiojemy kolory Kod: #define CZERWONY 0xFF0000AA //definicja koloru czerwonego #define NIEBIESKI 0x0000FFAA //definicja koloru zielonego #define CIEMNOSZARY 0xA9A9A9AA //definicja koloru ciemno-szarego #define BEZOWY 0xFFFFADAA //definicja koloru beżowego
Aby nie pisać długich wyrazów (SendClientMessage..) to dajemy : Kod: #define SCM SendClientMessage #define SCMTA SendClientMessageToAll
Następnie tworzymy public, który odpowiada za wejście na serwer, czyli : Kod: public OnPlayerConnect(playerid)
i w nim możemy dać Kod: SendClientMessage(playerid, czerwony, "Witamy na serwie :!"); //Jest to nasz text, który pojawi się graczowi przy połączeniu z serwerem !
Teraz dajemy public, który będzie odpowiadał, za to co będzie się działo przy odłączeniu gracza od serwera. Kod: public OnPlayerDisconnect(playerid, reason) a w nim :
Kod:
new string[256]; switch(reason) { case 0: format(string, sizeof(string), "Gracz : %s rozłączył się. (połączenie zerwane)", PlayerName(playerid)); //Jeżeli gracz stracił połączenie z serwem case 1: format(string, sizeof(string), "Gracz : %s rozłączył się. (wyszedł)", PlayerName(playerid));//Jeżeli gracz wyszedł case 2: format(string, sizeof(string), "Gracz : %s rozłączył się. (kick/ban)", PlayerName(playerid)); //Jeżeli gracz dostał bana albo kicka default: format(string, sizeof(string), "Gracz: %s rozłączył się. (nieznany powód)", PlayerName(playerid)); //Jeżeli gracz dostał CRASHA } SCMTA(CZERWONY, string);//same formaty nam nic nie dają :), tym musimy wysłać wiadomość
Dzięki powyższemu kodowi, dowiemy się jakim sposobem gracz wyszedł z serwera
Następny public który utworzymy, będzie odpowiadał, co ma się dziać przy spawnie, czyli po kliknięciu SPAWN w wybierałce ! Kod: public OnplayerSpawn(playerid)//Jest to nasz public
Żeby gracz miał jakąś broń, oraz kasę to : Kod: GivePlayerMoney(playerid, 5000); //Daje nam 5000 $ GivePlayerWeapon(playerid, 24, 250);//daje nam Desert Eagle + 250 ammo Jeszcze najlepiej dać funkcję SetPlayerPos(playerid, X,Y,Z); aby gdzieś nas teleportowało :)
Teraz chyba robimy najważniejszy public, jakim jest OnGameModeInit, bez niego mapa będzie błędnie chodzić! Kod: public OnGameModeInit()
w nim powinniśmy umieścić 2 moim zdaniem podstawowe rzeczy (ustawić nazwę GameModa + zrobić aby skin normalnie biegał ) ) Kod: SetGameModeText("NazwaGamemoda"); //Ustawiamy nazwę GameModa UsePlayerPedAnims();//Ustawia nam normalne bieganie
Teraz musi zrobić wybierałke No więc tak : Public który odpowiada za wybierałkę to : Kod: public OnPlayerRequestClass(playerid, classid) {
Do niego musimy dać pozycję gracza, pozycję kamery oraz gdzie ma patrzeć kamera, można dodać jeszcze jakieś bajery, np. Animację, ale to nie jest o tym poradnik
Kod:
SetPlayerPos(playerid, 2348.110351, -1494.548461, 24.000000); //Pozycja gracza SetPlayerFacingAngle(playerid, 86.658676); //Ustawia nas na północ SetPlayerCameraLookAt(playerid, 2348.110351, -1494.548461, 24.000000); //Gdzie ma patrzeć kamera SetPlayerCameraPos(playerid, 2348.110351 + (5 * floatsin(-86.658676, degrees)), -1494.548461 + (5 * floatcos(-86.658676, degrees)), 24.000000); //Gdzie ma leżeć kamera.
Teraz na samym dole mapy, musimy dać : Kod: stock PlayerName(playerid) { new name[MAX_PLAYER_NAME]; //Tablica name GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Pobiera nazwę gracza. return name; }
A teraz dajemy 2 podstawowe komendy na życie oraz armor
Kod: CMD:100hp(playerid, params[]) //Nazwa komenda { //klamra if(GetPlayerMoney(playerid) < 15000) //Sprawdzenie czy gracz ma podaną ilość kasy return SCM(playerid, niebieski, "(Błąd) Nie masz tylu kasy"); //Jeżeli nie to wysyła wiadomość SetPlayerHealth(playerid, 100.0); //Daje nam 100 HP GivePlayerMoney(playerid, -15000); //Zabiera 15000 $ SCM(playerid, bezowy, "(Info) Dostałeś życie "); //Wysyła wiadomość, że kupiłeś życie SCMTA(niebieski, "(Info) {A327ED}%s [id %d] {FF9900}kupił zycie komendą {99001F}/100hp {A327ED} (15000$)"); //Wysyła wiadomość do wszystkich że gracz kupił życie return 1; }
Tej komendy nie będę opisywał, ponieważ tu się zmienia tylko z SetPlayerHealth na SetPlayerArmour, czyli da nam kamizelkę :) CMD:armor(playerid, params[]) { if(GetPlayerMoney(playerid) < 15000) return SCM(playerid, niebieski, "(Błąd) Nie masz tylu kasy"); SetPlayerArmour(playerid, 100.0); GivePlayerMoney(playerid, -15000); SCM(playerid, ciemnoszary, "(Info) Dostałeś armor "); SCMTA(niebieski, "(Info) {A327ED}%s [id %d] {FF9900}kupił zycie komendą {99001F}/100hp {A327ED} (15000$)"); return 1; }
|