Witam w poradniku do robienia map w PAWNO do SA-MP!!!
Oto linki w których jest wszystko tzn.:
- 4 programy do edytowania map _ SA-MP Script Maker
- Program do robienia kolorów
- SA-MP 0.1b server + Client + Fix
- Dwa programy do patrzenia na bieżąco: Ludzi, pojazdów i broni wraz z ich ID
- Mapy na których jes tworzony ten poradnik(jest tam też sftdm i lvdm)
- Pliki includes do programu Pawno
- Inne-tzn. Id pojazdów, kolory, itp. itd.
Prawie w każdym folderze jest opis danego programu.
Po prostu jest tam wszystko czego programista zapragnie.
Download: Poardnik Pawno (7,32MB)
Poradnik jest tworzony na mapie lvdmod.pwn
SA-MP Debug
Program którym możemy dodawać pojazdy i skiny. Jest on w folderze z grą GTA:SA. O ile mamy zainstalowane SA-MP.
Uruchamiamy samp_debug.exe i klikamy na Launch Debug. By wpisać daną komendą przyciskamy tyldę [~] lub [T] i piszemy:
- /save (nie obowiązkowo komentarz) – zapisuje: id postaci, współrzędne x,y,z, obrót postaci,bronie
- /vsel – załącza wybór pojazdów
- /v (id pojazdu) – spawnuje pojazd o podanym id
- /interior – dowiesz sie jaki id ma interior w którym jesteś (0 jest na zewnątrz, dwór)
- F11 i F12 – wybór postaci
Koordy – czyli współrzędne które zapisywaliśmy w samp_debug.exe są w pliku: savedpositions.txt w folderze z grą GTA:SA. Gdy chcemy dodać to co zapisaliśmy kopiujemy wybraną linijke i wklejamy do kodu źródłowego mapki.
Plik saveposition
Dodawanie skinu
W pliku: savedpositions.txt zapisane mamy nasze poczynania z debuga, np.
AddPlayerClass(ID Skinu,X,Y,Z,A,Broń1 0 ,Amunicja1 0,Broń2 0,Amunicja2 0,Broń3 0,Amunicja3 0);
AddPlayerClass(102,1958.3783,1343.1572,15.3746,269.1425,5,0,22,100,32,50);
Czerwony- ID gracza/skinu
Zielony-Współrzędne X Y Z
Brązowy-Kamera, obrót gracza -z ang. Angle
Fioletowy-ID broni
Niebieski-Amunicja
Dodawanie pojazdów
AddStaticVehicle(ID pojazdu,X,Y,Z,A,Kolor1,Kolor2);
AddStaticVehicle(411,2040.2279,1344.4127,10.6719,3.5436,126,54);
Czerwony-ID pojazdu
Zielony-Współrzędne X Y Z gdzie pojazd ma się znajdować
Brązowy-Kamera, obrót samochodu – z ang. Angle
Fioletowy-Kolor pierwszy pojazdu
Niebieski-Kolor drugi pojazdu
Jak dodać Pickupa? Czyli np. kamizelke na mapie albo broń? Zapisujem współrzędne przez sam_debug.exe tam gdzie chcemy mieć nasz przedmiot. Możemy być w aucie lub na nogach i dajem: /save opis
Następnie otwieramy plik: savedpositions.txt i szukamy naszj zapisanej współrzędnej. Zapisana współrzędna wyglądać będzie następująco:
Co z tym zrobić? Musimy Napisać tak:
Kopiujemy współrzędne zaznaczone na zielono: 1710.3359,1614.3585,10.1191 do:
Teraz aby dodać pickupa musimy dodać jego ID (czyli np. broni albo JetPacka):
W tym celu dopisujemy przed współrzędnymi dwie cyfry: 370,2,
I w całości to wygląda tak:
Czerwony- ID pickupa lub broni 370-jest to pickup JetPacka
Pomarańczowy- typ respawnu
Oto kilka typów respawnu pickupów:
- 0- nie pokazuje pickupa
- 2- respawn pickupa co kilka minut
- 3- jest cały czas. żaden respawn
I gdzie to wkleić? Ano otwieramy plik: lvdm.pwn i na dole mapy jest nowy wątek:
Niżej są umieszczone Skiny i Pojazdy. Aby dodać swoje skiny lub pojazdy usuwamy je i dodajemy nowe.
Pamiętaj!!! Możesz wstawić tylko 50 modeli pojazdów i 250 wszystkich!!! Inaczej server się nie włączy!!!
Z pickupami postępujemy tak samo. Tylko dodajemy je lepiej pod pojazdami. Pickupy nie liczą się do modeli
pojazdów więc możemy ich dodać ile chcemy.
Jak zrobić żeby gracz miał więcej kasy na początku:
Otwieramy plik: lvdm.pwn i szukamy linijki:
Jest ona na początku kodu źródłowego mapki. Liczba zaznaczona na czerwono jest liczbę pieniędzy jaką gracz będzie dysponował na początku rozgrywki.
Jak zmienić nazwe mapy?
Otwieramy plik lvdm.pwn i szukamy na dole wątku:
Poniżej mamy takie coć:
Zmieniamy to co jest zaznaczone na zielono. Pamiętaj że możesz zmieniać tekst tylko w cudzysłowiach.
Jak dodać nowy kolor?
Otwieramy plik: lvdm.pwn i na samym początku są zdefiniowane kolory, np.
Następnie otwieramy plik: PAWNO – RGB to HEX.exe szukamy sobie nowy kolor. I definiujemy nową nazwe np.:
Tworzenie własnego markera i strefy, czyli czerwonego kółka
Aby zrobić współrzędne najlepiej zaopatrzyć się w program San Andreas Place Manage lub robić to przez samp_debug.exe
AddPlayerClass(281,491.7465,-17.6610,1000.6797,182.2477,0,0,0,0,0,0); // coord 2
AddPlayerClass(281,483.8130,-18.0149,1000.6797,95.8099,0,0,0,0,0,0); // coord 3
AddPlayerClass(281,483.9237,-10.1626,1000.6797,357.7577,0,0,0,0,0,0); // coord 4
3—-4
| B | -droga robienia współrzędnych
2—-1
(ID gracza, X , Y , Z , A , bronie ID)
Potrzebujesz współrzędnych X i Y bierzesz:
- najniższy X ‘483.8130‘
- najniższy Y ‘-18.0149‘ (Jest to liczba ujemna i dlatego jest najmniejsza)
- najwyższy X ‘491.7465′
- najwyższy Y ‘-10.1626‘
Teraz masz tak:
Aby mieć współrzędne ,,checkpoints’ przepisujesz współrzędne:
z tej linijki:

Kopiujemy potrzebne dane które utworzyliśmy i wklejamy do kodu źródłowego naszej mapki. Kompilujemy skrypt (F5) i włączamy naszą mapke. Gdy pojedziemy do naszego miejsca zobaczymy czerwone kółko.
Kompilacja (pwn do amx
By wszystko nam ładnie i pięknie chodziło zapisujemy nasz projekt a potem musimy go skompilować czyli dajemy na compile (F5). Skompilowany plik .amx zostanie utworzony tam gdzie edytowaliśmy plik .pwn Czyli naszym przykładem był plik: lvdmod.pwn i skompilowaliśmy go do formatu lvdmod.amx
Tworzymy własną wybierałkę gracza
Chodzi o własnego gracza którym będziemy grali i o to w jaki sposób będzie to pokazane. Oto link do zdjęcia:

Szukamy tego:
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,2097.502,1158.271,24.5625);
SetPlayerFacingAngle(playerid, 70.0);
SetPlayerCameraPos(playerid,2094.7,1158.271,24.5625);
SetPlayerCameraLookAt(playerid,2094.7,1158.271,24.5625);
}
Zielony- tu jest interior (0- jest na zewnątrz, dwór)
Niebieski – tu jest miejsce gdzie będą stały postacie na początku jak się wybiera
Fioletowy – tutaj jest kąt pod jakim można obrócić skina
Brązowy – tutaj jest miejsce w którym została umieszczona kamera
Błękitny – a tutaj jest miejsce z którego kamera patrzy na skina
Pamiętajcie że kamera ZAWSZE Będzie zwrócona w kierunku: N, S, W, lub E (Północ, Południe, Wschód, Zachód).
A tu jest opisane jak to mniej więcej wygląda:
{
SetPlayerInterior(playerid,interior); – interior można wziąść z samp_debug.exe
SetPlayerPos(playerid, x, y, z);
SetPlayerFacingAngle(playerid, a); – kąt w przediale od 1-360 stopni
SetPlayerCameraPos(playerid, x, y, z);
SetPlayerCameraLookAt(playerid, x, y, z lub x ??);
}

Dodawanie muzyki w tle podczas wybierania gracza
Aby dodał muzyczke trzeba znaleść to:
{
SetPlayerInterior(playerid,14);
SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
SetPlayerFacingAngle(playerid, 270.0);
SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
PlayerPlaySound(playerid,1159,258.4893,-41.4008,1002.0234);
}
Kolor zielony – weź stąd współrzędne: SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
i wklej do: PlayerPlaySound(playerid,1159,2097.502,1158.271,24.5625);
ID muzyki i inne są w pliku do pobrania który zamieściłem.
Dodajemy własne posiadłości:
Zaczynamy od wybrania miejsca, w którym gracze będą mogli kupić nową posiadłość.
Następnie musimy utworzyć strefę i markera – czyli czerwone kółko, cylinder.
Szukamy na początku kodu mapki zdefiniowane posiadłości. Wygląda to tak:
I na samym dole dodajemy nową definicje:
STARFISH – jest to nasza nazwa, jaka będzie występowała w kodzie źródłowym
11 – to liczba porządkowa przydzielana po kolei, czyli np. 1, 2, 3, 4, itd.
Następnie niżej szukamy podobnych definicji i na samym dole dodajemy:
STARFISH – jest to nasza nazwa, jaka będzie występowała w kodzie źródłowym musi się zgadzać z wyrzej wymienioną zdefiniowaną wartością
8 – jest to numer porządkowy przydzielany kolejno np. 1, 2, 3, 4, 5, itd.
Szukamy kolejnego wyrazu. Tym razem jest to:
11 – oznacza maksymalną liczbę posiadłości. Zmieniamy ją na:
12 – ponieważ chcemy dodać jedną posiadłość
Zaraz pod:
znajdziemy linijkę:
{2100.6367,1841.2338, 2352.1677,2014.0052} //komentarz nieobowiązkowy
};
To co jest na czarno jest to rozmiar strefy w której będzie znajdował się marker. Współrzędne strefy bierzemy z samp_debug.exe
Aha nie zapomnijmy o dodanie wyżej przecinka!!! Wyglądać będzie to w moim przypadku tak:
{2100.6367,1841.2338, 2352.1677,2014.0052} //STARFISH A tutaj nie ma
W ostatniej linijce nie dajemy nigdy przecinka po nawiasie!!!
Przechodzimy niżej. Mamy tam linijkę:
{2163.3354,1904.5193,10.8125} //komentarz nie obowiązkowy
To co na czarno są to współrzędne w którym będzie znajdować się nasz marker. Współrzędne bierzemy z samp_debug.exe
Aha i tutaj także pamiętajmy o przecinku:
{2163.3354,1904.5193,10.8125} //STARFISH a tutaj nie ma
};
Pamiętajmy że tutaj także nie dajemy nigdy na końcu ostatniej współrzędnej przecinka!!!
Kolejny etap to dodanie nazwy w linijce:
CP_STARFISH
STARFISH – jest to nazwa którą zdefiniowaliśmy wcześniej i musi być wszędzie taka sama
Aha i przecinki…
CP_STARFISH – tutaj na końcu nie ma
};
Dalej mamy teraz linijke:
8 – jest to liczba określająca ile budynków możemy dodać
Ponieważ chcemy dodać nową posiadłość zmieniamy ją na 9 :
Poniżej linijki:
Mamy coś co jest najprostsze. Musimy ustalić nazwę posiadłośco, cenę i kwotę jaką dany gracz będzie otrzymywał po kupnie budynku:
‘Nazwa naszej posiadłości’
Wygląda to tak:
‘Kasyno Star Fish’ Tutaj nie ma
};
Następne to cena:
200000
W całości wygląda to tak:
20000, pamiętajmy o przecinku
200000 Tutaj nie ma przecinka
};
I ostatnie to kwota jaką będzie dawała posiadłość za jej kupno:
20000
W całości wygląda to tak:
20000 nie ma przecinka
};
I ostatnie które trzeba zmienić to:
Dopisujemy trzy dziewiątki na końcu:
I przechodzimy do dalszej części… Szukamy komendy: /buy
if(strcmp(cmd, ‘/buy’, true) == 0) {
new property=999;
if(IsPlayerInCheckpoint(playerid)) {
switch (playerCheckpoint[playerid]) {
case CP_BOTIQUE:{
property = P_BOTIQUE;
}
case CP_STARFISH: {
property = P_STARFISH;
}
}
Dodajemy coś takiego:
property = P_STARFISH; <— tutaj nie wolno usuwać średnika na końcu!!!
}
I ostatnie, które musimy zmieniń to komunikat jaki będzie wyświetlany gdy wejdziemy do markera. Szukamy tego:
{
new string[256];
new ownplayer[MAX_PLAYER_NAME];
switch(getCheckpointType(playerid))
/* case CP_BOTIQUE: {
SendClientMessage(playerid, COLOR_YELLOW, ‘Możesz kupić Botique za $23,000 używając komendy /buy’);
SendClientMessage(playerid, COLOR_YELLOW, ‘Będziesz dostawał regularnie $2,300′)
}
case CP_STARFISH: {
SendClientMessage(playerid, COLOR_YELLOW, ‘Możesz kupić Kasyno Star Fish za $200,000 używając komendy /buy‘);
SendClientMessage(playerid, COLOR_YELLOW, ‘Będziesz dostawać regularnie $20,000‘);
*/
SendClientMessage(playerid, COLOR_YELLOW, ‘Twój komentarz‘);
COLOR_YELLOW – kolor możemy sami zmienić lub dodać nowy. Gdy dodaliśmy np. szary, to może być to: COLOR_GREY i tekst będzie wyświetlany na szaro.

2010-03-11 19:33:20
do momentu aż mu ktoś heada nie sprzeda :D...