Forum tu wszystko o gierkach
witaj na stronce o grach itp
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

poradnik do pawno smungllera

 
Napisz nowy temat   Odpowiedz do tematu    Forum tu wszystko o gierkach Strona Główna -> o gta san andreas
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
damian11
Administrator



Dołączył: 05 Paź 2006
Posty: 18
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Nie 15:03, 15 Paź 2006    Temat postu: poradnik do pawno smungllera

witam smungller dał mi pozwolenie nap ozyczenie jego poradnika oto on:
Witam w poradniku do robienia map w PAWNO do SA-MP!!!
Myślę że sie wam podoba? Więc nie przedłużając bierzcie się do czytania

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

[link widoczny dla zalogowanych]
[link widoczny dla zalogowanych]
Dodałem nowe programy do downloadu.
Są tam najpotrzebniejsze rzeczy. Polecam do ściągania.

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

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:

AddStaticPiskup( );

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

AddStaticPiskup(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:

AddStaticPiskup(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 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:
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ść )

Tutaj macie link do obrazka jak to wygląda:

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 Wink

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 z tą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 ??);
}

Chyba pomogłem? Jak czegoś nie wiecie to się pytać.
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. W linku jest obrazek, który mniej więcej wyjaśnia o co w tym chodzi... Link do zdjęcia: [link widoczny dla zalogowanych]


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



Może jeszcze coś dodam jak będziecie chcieli.
Prosze się pytać jak czegoś nie wiecie.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
[ZSRR]Black
początkujący



Dołączył: 10 Paź 2006
Posty: 8
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Nie 0:51, 05 Lis 2006    Temat postu:

Damian to programowanie pawno jest skomplikowane . A ty umiesz troche pawno czy nie.
Ja kompletnie jestem nie obczajony.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
damian11
Administrator



Dołączył: 05 Paź 2006
Posty: 18
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Wto 15:49, 07 Lis 2006    Temat postu:

[ZSRR]Black napisał:
Damian to programowanie pawno jest skomplikowane . A ty umiesz troche pawno czy nie.
Ja kompletnie jestem nie obczajony.

spox ja umiem ale nie tak jak smungller tylko mi powiec jaką chcesz teamatch czy detmatch?? to ci zrobie


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum tu wszystko o gierkach Strona Główna -> o gta san andreas Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group
Regulamin