|
Wysłany: 2012-07-14, 14:43
|
|
Krazes201


Wiek: 32 Na forum: 5390 dni Posty: 2
Nick w MP: [PMS]KoxProDrift
Piwa: 705
|
|
|
|
Siema ; ) wiele, a nawet bardzo du?o os?b ma problem z napisaniem pocz?tkiem mapy.
W tutku napisz? jak zacz?? pisa? GameModa. [ Prosz? o przyklejenie tego tematu]
Autor : Cr34tivE (ja, m?j nowy nick xD )
Poziom : ?atwy
Mapa b?dzie pisana w systemie zcmd
To zaczynamy
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 tyle 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 tyle 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;
}
Mam nadzieje ?e pomog?em . Pozdrawiam Krazes201
|
|
|
|
|
|
|
Wysłany: 2012-07-14, 15:11
|
|
Lukasbank


Wiek: 30 Na forum: 5329 dni Posty: 249
Nick w MP: [USD]LuXoR[X]
Piwa: 404
|
|
|
|
Nie ten Dzia? , a co do poradnika to juz widzia??m kilkka podobnych ;-)
|
|
|
|
|
|
|
Wysłany: 2012-07-14, 15:18
|
|
Marihuana
Żyć by umierać :)


Wiek: 31 Na forum: 6047 dni Posty: 101
Nick w MP: KoZaKo
Piwa: 547
|
|
|
|
Krazes201, kod dawaj w tagu [code] aby by?o czytelniej.
|
|
|
|
|
|
|
|
|
Wysłany: 2012-07-14, 22:01
|
|
B!4CK
Never give UP!


Wiek: 32 Na forum: 5809 dni Posty: 1047
Nick w MP: John
Piwa: 1891
|
|
|
|
Popraw to w [pawn] lub [code] ,aby to estetycznie wygl?da?o.
Poradnik nie zawiera du?o informacji ,ale na pocz?tek nawet ca?kiem 4/5
|
Podpis
Cześć [you] !
Projekt, który poruszy scenę platformy SA:MP!
|
|
|
|
|
|
| Tagi: poradnik :: dla :: zielonych :: [jak :: zrobic :: prostą :: mape] |
Anonymous


Na forum: 245 dni
Posty: 1

|
Anonymous Koniecznie zajrzyj na:
|
|
|
|
|