Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Poradnik do Pawno SA:MP


Bebson

Rekomendowane odpowiedzi

Opublikowano

Poradnik wykonany przez Smugller z źródło - to Jego własność. Ja tylko umieściłem to na MPC

 

W paczce znajdowały się programy :

 

-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.

 

Lecz linki wygasły jak znajdę nowe to dodam :P

 

 

 

Poradnik do Pawno:

 

Poradnik jest tworzony na mapie lvdmod.pwn

 

1. samp_debug.exe

 

 

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. Oto komendy których możemy użyć:

Wciskamy tylde [~] 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.

 

ID pojazdów, kolory oraz ID skinów macie w linku który podałem wyżej.

 

 

Oto jak dodawać skiny:

 

Mamy przykładowo takie coś. Zapisało nam się to w pliku: savedpositions txt

I o co w tym chodzi? Oznacze wszystko poszczególnymi kolorami:

 

AddPlayerClass(0,1958.3783,1343.1572,15.3746,269.1425,0,0,0,0,0,0);

 

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

 

Teraz czas na pojazdy:

Mamy takie coś też w pliku: savedpositions txt

 

AddStaticVehicle(0,2040.2279,1344.4127,10.6719,3.5436,0,0);

 

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

Otwieramy plik: savedpositions .txt i szukamy naszj zapisanej współrzędnej.

Zapisaliśmy np. współrzędną będać w pojeździe. Wygląda ona tak:

 

AddStaticVehicle(411,1710.3359,1614.3585,10.1191,3.5436,126,54);

 

Co z tym zrobić? Musimy Napisać tak:

 

AddStaticPickup( );

 

Kopiujemy współrzędne zaznaczone na zielono: 1710.3359,1614.3585,10.1191 do:

 

AddStaticPickup(1710.3359,1614.3585,10.1191);

 

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:

 

AddStaticPickup(370,2,1710.3359,1614.3585,10.1191); //JetPack

 

Czerwony- ID pickupa lub broni 370-jest to pick up JetPacka

Pomarańczowy- typ respawnu

 

 

Oto typy respawnu pickupów:

 

0 przedmiot się nie pojawia

2 da się podnieśc i pojawia się po kilku sekundach (polecam używac tego)

3 da się podnieśc, ale się nie pojawia spowrotem

4 znika zaraz po pojawieniu się

5 znika zaraz po pojawieniu się

8 da się podnieśc (bez efektu) - znika zaraz po pojawieniu się

11 rozwala się zaraz po pojawieniu się*

12 rozwala się kilka sekund po pojawieniu się (eksplozja pojazdu?)

13 X - powoli opada na osi Z i ewentualnie przechodzi przez podłogę

15 da się podnieśc, nie pojawia się spowrotem

19 da się podnieśc, ale bez efektu (ikonka informacji?)

22 da się podnieśc, nie pojawia się spowrotem

 

I gdzie to wkleić?? Ano otwieramy plik: lvdm.pwn

i na dole mapy jest nowy wątek:

public OnGameModeInit()

a 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.

 

 

 

2. Jak zrobić żeby gracz miał więcej kasy na początku:

 

 

Otwieramy plik: lvdm pwn i szukamy linijki: #define PocketMoney 50000

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.

 

 

 

 

3. Jak zmienić nazwe mapy?? By w zakładce ,,Mode" pisało inaczej ??

 

 

Otwieramy plik lvdm pwn i szukamy na dole wątku: public OnGameModeInit()

Poniżej mamy takie coś: SetGameModeText("Ventura's DM~MG");

Zmieniamy to co jest zaznaczone na zielono. Pamiętaj że możesz zmieniać tekst

tylko w cudzysłowiach!!! Zaznaczonych tu na czerwono. Zapamiętaj to.

 

 

 

4.Jak dodać nowy kolor??

 

 

Otwieramy plik: lvdm pwn i na samym początku są zdefiniowane kolory. Przykład: #define COLOR_GREY 0xAFAFAFAA

Następnie otwieramy plik: PAWNO - RGB to HEX exe szukamy sobie nowy kolor. I definiujemy nową nazwe np.:

#define COLOR_LIGHTGREEN 0x18FE12FF

 

 

 

5. 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

Gdy to już mamy przystępujemy do pracy:

 

AddPlayerClass(281,491.5403,-10.1736,1000.6797,205.3798,0,0,0,0,0,0); // coord 1

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

AddPlayerClass(281,487.0723,-13.4085,1000.6797,220.7422,0,0,0,0,0,0); // coord buy

 

 

 

AddPlayerClass(281,491.5403,-10.1736,1000.6797,205.3798,0,0,0,0,0,0);

(ID gracza, X , Y , Z , A , bronie ID)

 

Potrzebujesz współrzędnych X i Y bierzesz:

najniższy X "483.8130"

wtedy 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: {483.8130,-18.0149, 491.7465,-10.1626} - to są współrzędne checkCoords - Strefy w której będzie znajdował się marker: ( new Float:checkCoords[MAX_POINTS][4] = { )

 

Aby mieć współrzędne ,,checkpoints" przepisujesz współrzędne: {487.0723,-13.4085,1000.6797} - to są współrzędne

z tej linijki: ( new Float:checkpoints[MAX_POINTS][3] = { ) - są to współrzędne w którym będzie znajdował się marker(czyli to czerwone kólko, cylinder w które trzeba wejść )

 

 

 

Kopiujemy potrzebne dane które utworzyliśmy i wklejamy do kodu źródłowego naszej mapki.

Kompilujemy skrypt i włączamy naszą mapke. Gdy pojedziemy do naszego miejsca zobaczymy

czerwone kółko. Oto nasz marker którego stworzyliśmy sami!

 

Thx dla 50p

 

 

 

 

6. Aby wszystko nam ładnie i pięknie chodziło... zapisujemy nasz projekt a potem musimy go skompilować czyli dajemy na compile.

 

 

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

 

 

 

7.Tworzymy własną wybierałkę gracza/playera =

 

 

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:

 

public SetupPlayerForClassSelection(playerid)

{

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

 

P.S. To są moje współrzędne które sam zrobiłem. Są wzięte z mapy która jest na n2.

Współrzędne można wziąć z samp_debug exe lub przez San Andreas Place Manager.

Wygodny jest ten drugi sposób bo można to robić latająć JetPackiem i wtedy jest łatwiej.

Ale jak kto woli. Gdy robimy współrzędne za pomocą samp_debug exe wyciągamy współrzędne stąd:

AddStaticVehicle(521,2000.8287,1527.6210,14.1892,1.3089,36,0);

AddPlayerClass(0,2292.7839,2452.5076,10.8203,89.9717,0,0,0,0,0,0);

Pamiętajmy że robiąć współrzędne przez San Andreas Place Manager będziemy musieli pozmieniać

przecinki jak kopiujemy współrzędne.

Aha i 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:

 

public OnPlayerRequestClass(playerid, classid)

 

{

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 ??);

}

 

 

Aha. Na początku lepiej aby SetPlayerCameraPos i SetPlayerCameraLookAt były takie same.

Później łatwiej wam będzie zrobić własną wybierałke playera.

 

 

 

8. Dodawanie muzyki w tle podczas wybierania gracza/playera

 

 

Aby dodać muzyczke trzeba znaleźć to:

public SetupPlayerForClassSelection(playerid)

{

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. Waży 16 MB

Aha, i jak jest interior 0 czyli na dworze to muzyka będzie grać chyba przez

cały czas gry więc odradzam dodawanie muzyki gdy interior jest zerowy.

 

 

 

9.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. Jest to opisane w punkcie: 5

Bierzemy się do roboty…

Szukamy na początku kodu mapki zdefiniowane posiadłości:

Wygląda to tak: #define CP_NAZWA NR.

I na samym dole dodajemy nową definicje:

 

#define CP_STARFISH 11

 

STARFISH – jest to nasza nazwa, jaka będzie występowała w kodzie źródłowym

11 – a jedenaście jest 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:

 

#define P_STARFISH 8

 

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:

#define MAX_POINTS 11

11- oznacza maksymalną liczbę posiadłości. Zmieniamy ją na:

#define MAX_POINTS 12

12 – ponieważ chcemy dodać jedną posiadłość

 

Zaraz pod: #define MAX_POINTS 12 jest linijka:

new Float:checkCoords[MAX_POINTS][4] = {

{2100.6367,1841.2338, 2352.1677,2014.0052} //komentarz nieobowiązkowy

};

 

To co jest pogrubione na czarno jest to rozmiar strefy w której będzie znajdował się marker.

Współrzędne strefy bierzemy z samp_debug exe Jak zrobić strefę dowiemy się z punktu: 5

Aha nie zapomnijmy o dodanie wyżej przecinka!!! Wyglądać będzie to w moim przypadku tak:

{416.7485,-84.4242, 422.6890,-74.0611}, //BOTIQUE Tu jest przecinek po nawiasie

{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ę:

new Float:checkpoints[MAX_POINTS][3] = {

{2163.3354,1904.5193,10.8125} //komentarz nie obowiązkowy

 

To co pogrubiłem na czarno są to współrzędne w którym będzie znajdował się nasz marker.

Współrzędne bierzemy z samp_debug.exe Jak zrobić współrzędne dowiemy się w punkcie: 5

Aha i tutaj także pamiętajmy o przecinku:

{418.5547,-80.1667,1001.8047}, //BOTIQUE tutaj za nawiasem jest przecinek

{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:

new checkpointType[MAX_POINTS] = {

CP_STARFISH

STARFISH - jest to nazwa którą zdefiniowaliśmy wcześniej i musi być wszędzie taka sama

 

Aha i przecinki…

CP_BOTIQUE, - tutaj jest

CP_STARFISH - tutaj na końcu nie ma

};

 

Jedziemy dalej

Mamy teraz linijke:

#define MAX_PROPERTIES 8

8 - jest to liczba określająca ile budynków możemy dodać

Zmieniamy ją na 9 :

#define MAX_PROPERTIES 9

Ponieważ chcemy dodać nową posiadłość

 

Poniżej linijki: #define MAX_PROPERTIES 9

Mamy coś co jest najprostsze. Musimy ustalić nazwę posiadłość, cenę i kwotę jaką dany gracz będzie otrzymywać po kupnie budynku.

Mamy tak:

new propertyNames[MAX_PROPERTIES][32] = {

"Nazwa naszej posiadłości"

 

Wygląda to tak:

"Botique", pamiętajmy o przecinkach!! Tutaj jest

"Kasyno Star Fish" Tutaj nie ma

};

 

Następne to cena:

new propertyValues[MAX_PROPERTIES] = {

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:

new propertyEarnings[MAX_PROPERTIES] = {

20000

 

W całości wygląda to tak:

1500, jest przecinek

20000 nie ma przecinka

};

 

I ostatnie które trzeba zmienić to:

new propertyOwner[MAX_PROPERTIES] = {999,999,999,999,999,999,999};

Dopisujemy trzy dziewiątki na końcu:

new propertyOwner[MAX_PROPERTIES] = {999,999,999,999,999,999,999,999};

 

I przechodzimy do dalszej częśći… Szukamy komendy: /buy

Mamy coś takiego:

//------------------- /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 to co pogrubiłem na czarno czyli:

case CP_STARFISH: {

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:

public OnPlayerEnterCheckpoint(playerid)

{

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");

*/

 

I tak. Pamiętajmy aby to co jest pogrubione na czarno umieścić pomiędzy tymi znakami które są zaznaczone na czerwono. Kolor żółty jest to treść komunikatu jaki zostanie wyświetlony gdy wejdziemy do czerwoneo kółka.

I krótkie wyjaśnienie:

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. Jak dodać lub zdefiniować nowe kolory dowiemy się z punktu: 4

 

 

 

10. Dodawanie broni by Rogal24

 

 

Szukamy linijki #define MAX_WEAPONS 8 zmieniamy na #define MAX_WEAPONS 9

 

Potem czas na nazwę broni pod linijką

new weaponNames[MAX_WEAPONS][32] = {

Dodajemy nazwe np

"Minigun"

ale musimy pamiętać o przecinku będzie to tak:

"m4", - tu jest przecinek

"Minigun" - a tu go nie ma

 

Jedziem dalej pod linijką

new weaponIDs[MAX_WEAPONS] = {

dodajemy

[id broni] //np. nasza nazwa/komentarz

38 //Minigun

pamiętajmy ciągle o przecinku będzie to wyglądało tak:

31, //M4- przecinek po liczbie

38 //minigun - tu niema przecinka

 

Teraz czas na koszt broni, szukamy linijki:

new weaponCost[MAX_WEAPONS] = {

i dodajemy cenę np:

20000

Pamiętamy o przecinku bez niego ani rusz! Będzie to wyglądało tak:

3000, - jest przecinek

20000 - nie ma go

 

I ostatnia linijka to:

new weaponAmmo[MAX_WEAPONS] = {

wpisujemy pod nią ilość amunicji np.:

240

przypomnę przecineczek...

120, - jest

240 - nie ma

 

 

 

 

Dodaje te kolory które są opisane :P

 

 

EDIT

 

A tu download :

 

To jest ukryta treść, proszę

sygnatura_old.png
 

| 2x Kidmod | Exmoderator | ExMPC Media Team | 3x Combat Arms Private | Banned | ExMPC Modder Team | Blue Member |

Opublikowano

Spoko Tut.

 

 

Tego szukałem. :)

 

 

Łap +

Lenovo Legion Slim 5 User
CPU: 
AMD Ryzen™ 7 8845HS GPU: NVIDIA® GeForce RTX™ 4060 (140W) RAM: 32 GB DDR5 5600 Mhz SSD: GoodRam PX700 1TB + SAMSUNG 970 Evo Plus 1TB 

Opublikowano

Doran dałem link do Twojego downloadu :P

sygnatura_old.png
 

| 2x Kidmod | Exmoderator | ExMPC Media Team | 3x Combat Arms Private | Banned | ExMPC Modder Team | Blue Member |

  • Rayzer. zmienił(a) tytuł na Poradnik do Pawno SA:MP
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...