Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2015-04-30, 00:22


Porucznik







Wiek: 30
Na forum: 5010 dni
Posty: 33
Nick w MP: Porucznik

Piwa: 1

Respekt: 50

Witam,
chcia?bym zrobi? system po?aru. Chc? zrobi? co? bardzo prostego. Ot?? aby po wpisaniu komendy np. /pozar wybucha? po?ar w tym miejscu gdzie stoj?. To jest bana?, ale sk?d wzi?? po?ar? To jest jaki? obiekt czy co? Jak ustali? rozmiar po?aru oraz co zrobi? aby co? wykona?o si? po jego ugaszeniu? S? jakie? funkcje za to odpowiadaj?ce?

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
MareczeQ
Wysłany: 2015-04-30, 06:27


kazami

Pawner/PTG






Wiek: 27
Na forum: 4596 dni
Posty: 405
Nick w MP: adi888

Piwa: 43

Respekt: 76,3

Ostrzeżeń: 80%
Po?ar to jest obiekt. Hp mo?esz zapisa? robi?c enuma i w zmiennej.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-05-01, 22:28


Porucznik







Wiek: 30
Na forum: 5010 dni
Posty: 33
Nick w MP: Porucznik

Piwa: 1

Respekt: 50

A czy co? wi?cej mo?esz powiedzie? Jaki? przyk?ad mo?esz pokaza?? Jakie id ma po?ar?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-05-02, 09:08


kazami

Pawner/PTG






Wiek: 27
Na forum: 4596 dni
Posty: 405
Nick w MP: adi888

Piwa: 43

Respekt: 76,3

Ostrzeżeń: 80%
-,- tyle ile ci powiedzia?em powinno ci starczy? na rozpocz?cie pisania skryptu. Jakie id ma po?ar ? No jak go tworzysz to p?tla b?dzie robi? id jak zrobisz enuma i max_pozarow np. 20 , twoje pytanie jakie id ma po?ar oznacza to ?e nie masz zielonego poj?cia o czym my piszemy.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-05-02, 13:50


Iggy

#admin






Wiek: 26
Na forum: 4596 dni
Posty: 3469
Nick w MP: Iggy

Piwa: 1716

Respekt: 915
Respekt: 915Respekt: 915


   Administrator: Admin ma zawsze rację | REGULAMIN FORUM | REKLAMA/VIP | .
kazami, chyba po to jest forum, aby pom?c, co nie? A nie "naje?d?a?" na ka?dego, ?e czego? nie wie.

Co do pytania to w samp, po?ar jest to obiekt. ID takich "specjalnych" obiekt?w, powiniene? znale?? gdzie? na google. :)

Jeszcze znalaz?em co? takiego przepatruj?c inny temat z podobnym problemem, mo?e Ci si? przyda. :)

http://gtao.pl.com/showth...&highlight=fire

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-05-02, 14:29


kazami

Pawner/PTG






Wiek: 27
Na forum: 4596 dni
Posty: 405
Nick w MP: adi888

Piwa: 43

Respekt: 76,3

Ostrzeżeń: 80%
Iggy, ?le zroumia?em , ehh chodzi?o mu o id po?aru czyli obiektu -,- niech napisze ?e id obiektu po?aru , zreszt? google od tego jest wszystko mo?na znale?? a po?owa na tym forum chcia?a by odrazu gotowca

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-05-02, 16:15


carl0987







Wiek: 37
Na forum: 4891 dni
Posty: 295
Nick w MP: Lolek

Piwa: 10

Respekt: 50

No to? napisa? : Czy to jest jaki? obiekty czy co? Jakie id ma po?ar?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-05-02, 16:25


dawka0202







Wiek: 37
Na forum: 4881 dni
Posty: 10

Piwa: 136

Respekt: 90

Ostrzeżeń: 100%
"kazami" napisał/a:

Iggy, ?le zroumia?em , ehh chodzi?o mu o id po?aru czyli obiektu -,- niech napisze ?e id obiektu po?aru , zreszt? google od tego jest wszystko mo?na znale?? a po?owa na tym forum chcia?a by odrazu gotowca


Kazami, na google wszystko mo?na znale??? Tak, mo?na znale??, ale mo?na znale?? na google co? bardzo szybko dlatego ?e w?a?nie ludzie pisz? o tym samym po 50 razy na ka?dym innym forum, a jak by by? tylko 1 taki temat, i nie by?o by ?adnych s??w kluczowych? Nie znalaz? by? tego co by? chcia?. Masz do niego jakie? pretensje ?e zaczyna programowa? i potrzebuje pomocy, ogarnij cz?owieku, bo odk?d zobaczy?e? ten j?zyk to PAWN masterem nie by?e?, te? musia?e? si? nauczy?, wi?c..

Kod:

Po?ar to jest obiekt. Hp mo?esz zapisa? robi?c enuma i w zmiennej.


Ale mu tu bardzo pomog?e?, my?lisz ?e pocz?tkuj?cy w PAWN wie jak zapisa? HP robi?c enuma w zmiennej? Nie, mog?e? mu da? jaki? link do systemu po?ar?w, czy te? jak zapisywa? dane, strasznie si? natrudzi?e?, tak mu pomog?e?, ?e a? da?e? gotowca, ogarnij cz?owieku.

Porucznik:

http://www.gtaonline.pl/83328.htm
http://www.gtaonline.pl/91062.htm
http://www.gtaonline.pl/86219.htm
http://www.gtaonline.pl/73274.htm
http://www.gtaonline.pl/69259.htm

Jak wszystko poczytasz, to zrozumiesz mniej wi?cej o co tu chodzi. Je?li jednak chcesz ten system udoskonali?, pisz do mnie na PW, pomog? Ci.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-05-14, 16:04


Dero

www.polishRPG.pl






Wiek: 31
Na forum: 4539 dni
Posty: 11
Nick w MP: Richard Schroetter

Piwa: 12

Respekt: 74

Takie porady to nic mu nie dadz?.

Pisanie systemu po?ar?w musisz zacz?? od kuchni. SA:MP nie oferuje synchronizacji po?ar?w, jakie znasz z GTA, dlatego na og?? nie mo?esz stworzy? ognia (poza stworzeniem wybuchu, ale to nie b?dzie satysfakcjonuj?ce).

Dlatego taki system po?ar?w b?dzie trzeba napisa? zupe?nie od nowa. Je?eli nigdy nie pisa?e? tego typu rzeczy, to mo?e to by? dla Ciebie trudne. Najpierw postaw sobie problem.

Potrzebujemy systemu po?ar?w. Czym jest i co ma robi??

Potrzebujemy ognia, SA:MP daje nam obiekt ognia.
Ogie? musi zabiera? HP graczom w pobli?u.
Ogie? musi da? si? ugasi?.

Rozprzestrzenianie si? te? mo?na zrobi?, polecam do tego plugin mapandreas. O ile stworzenie obiektu ognia w danym miejscu jest proste, to do jego ugaszenia i zabierania HP potrzeba czego? wi?cej, dlatego na tym si? skupi?.

Jak wiemy, skrypty w og?le polegaj? na reakcjach. Gracz wysy?a informacj? do serwera, a serwer (zgodnie z tym, co ma zdefiniowane w skrypcie) odpowiednio reaguje na tak? informacj? i wysy?a odpowied? do gracza.

Skrypt sam nie jest inteligentny, jest algorytmem. Nie ma w nim funkcji "NiechOgienRaniGraczyWPobli?u". Otrzymanie informacji od gracza - przeanalizowanie przez skrypt - wys?anie odpowiedzi, inaczej skryptu nie wywo?asz. St?d w?a?nie callbacki, kt?re reaguj? na dan? czynno?? gracza.

Wobec tego funkcja ranienia graczy przez ogie? musi by? napisana od zera. Jak to ma dzia?a?? Zacznijmy od p?tli.

for(new i; i<MAX_PLAYERS; i++)
{
//skrypt
}
tu bym osobi?cie skorzysta? z nowej funkcji sampa daj?c? mo?liwo?? zoptymalizowania takiej p?tli, ale to teraz tylko by nakomplikowa?o ten skrypt i utrudni?o t?umaczenie.

Mamy p?tl?, kt?ra wykona "// skrypt" tyle razy, ile mo?e by? graczy na serwerze. Posiada ona te? indeks, zmienn? o nazwie i. Jak nazwa wskazuje zmienia si? ona. Przy ka?dym wykonaniu p?tli i b?dzie wynosi?o tyle, ile razy do tej pory wykona? si? kod.

for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
//skrypt
}
}

Tym razem p?tla wykona si? 500 razy, i je?li gracz o id = i (razie, za kt?rym wykona?a si? petla) jest na serwerze, to wykona si? to, co mamy w miejscu //skrypt.

Teraz musimy sprawdzi?, czy gracz znajduje si? blisko, powiedzmy, 3 metry od ognia. SA:MP daje nam funkcj? IsPlayerInRangeOfPoint(id gracza, dystans, x, y, z), kt?ra sprawdzi, czy gracz znajduje si? w promieniu dystans od punktu x, y, z. Ale my nie mamy x, y, z!

Dlatego w momencie tworzenia obiektu ognia na ziemi musisz zapisa? jego pozycj? do zmiennej globalnej. Je?eli chcesz, by ognia by?o wi?cej, musisz u?y? tablicy. Je?eli nie wiesz, czym jest tablica, to ci??ko, bo nie widzi mi si? teraz Ci t?umaczy? ca?ej dokumentacji pawn. Dlatego w celach edukacyjnych zapiszemy pozycje ognia do jednej zmiennej, wi?c w jednym momencie na serwerze b?dzie m?g? by? tylko jeden ogie?, jak ogarniesz to, to sobie to kiedy? przepisz na tablice.

Gdzie? u g?ry gamemode'a, pod include'ami musisz stworzy? trzy zmienne globalne typu float. Dlaczego? Bo ze zmiennych globalnych b?d? korzysta? trzy funkcje.

- Tworzenie ognia zapisze pozycje x, y, z ognia do tych zmiennych.
- Ranienie przez ogie? b?dzie musia?o te pozycje x, y, z wykorzysta?, by sprawdza?, czy gracz jest w pobli?u ognia.
- Gaszenie tak samo.

Dlaczego float? Bo zwyk?a zmienna tworzona samym new to liczba ca?kowita (1, 12, -120, 1231). A pozycje w SA:MP s? ju? w zbiorze liczb wymiernych (0.31; 431.2131), dlatego takiego typu zmiennych potrzebujemy.

for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInRangeOfPoint(playerid, 3, pozycja_ognia_x, pozycja_ognia_y, pozycja_ognia_z)
{
//skrypt
}
}
}


A w miejscu skrypt zapisz w zmienej lokalnej hp gracza, odejmij od niej jakie? 5hp i nadaj graczowi HP wg. tej zmiennej z tymi odj?tymi 5cioma hp. A funkcj? z p?tl? umieszczamy oczywi?cie w timerze, co sekund? wykonywanym wielokrotnie.

Jak jeste? ?ebski, to gaszenie napiszesz sam. Jak nie, to znaczy, ?e i ten m?j wyw?d wy?ej by? niepotrzebny, bo i tak by? gotowca wola?. Brak tabulator?w nieumy?lny, ale okno tekstowe w phpbb to kiepskie ?rodowisko programistyczne.

Podpis
I'll do what I can to be a confident wreck.
Postaw piwo autorowi tego posta
 

 
Tagi: jak :: zrobić :: system :: pożaru? :: porady
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie 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
Dodaj temat do Ulubionych
Wersja do druku