Skocz do zawartości
Sim00n

Pierwszy wideo kurs programowania w Pawn po Polsku

Rekomendowane odpowiedzi

33uvq8j.jpg

 
 
 
Cześć, z tej strony Szymon Puzdrowski aka Sim00n.
Chciałbym przedstawić Ci wideo kurs programowania w Pawn, który przygotowuję z myślą o najbardziej początkujących skrypterach zaczynających zabawę w SA-MP.
 
W serii znajdziesz takie rzeczy jak:

  • Wprowadzenie do mechaniki języka zawierające typy danych, stringi, algebrę, operatory, tablice, instrukcje warunkowe, pętle, switche, enumy, zmienne statyczne oraz więcej.
  • Wprowadzenie do mechaniki pisania skryptów specyficznie pod SA-MP bazując na callbackach, funkcjach i timerach.
  • Cały proces projektowania konkretnego systemu.
  • Wykorzystanie baz danych.
  • Użycie aktualnie popularnych pluginów.

Po skończeniu podstawowego kursu zabierzemy się za napisanie w pełni funkcjonalnej mapy, która będzie dostępna na Githubie do pobrania za darmo jako materiały do kursu.
Wszystkie odcinki kursu znajdziesz na moim kanale youtube. W momencie pisania tego tematu dostępne jest już 14 odcinków a kolejne będą pojawiały się wkrótce.
 
Nie zapomnij subskrybować mojego kanału abyś dostawał natychmiastowe powiadomienia o nowych odcinkach.
Więcej informacji o mnie znajdziesz na mojej stronie Google+ a projekty nad którymi pracuje/pracowałem na mojej stronie Github. Linki znajdują się w obrazkach poniżej.
 
Zapraszam do oglądania,
Szymon.
 

2rpp4kp.jpg 2d962rc.jpg 2w3t9og.jpg m9orp5.jpg

 

 

 

Spoiler

Odcinek 1: https://www.youtube.com/watch?v=SVuOAtvE0MA
Odcinek 1.5: https://www.youtube.com/watch?v=1SDe38KFpC4
Odcinek 2: https://www.youtube.com/watch?v=KB3O7GEI7_A
Odcinek 3: https://www.youtube.com/watch?v=niO94dUEz7I
Odcinek 4: https://www.youtube.com/watch?v=oLAp6rWuu4Q
Odcinek 5: https://www.youtube.com/watch?v=-K-NKsIYeYw
Odcinek 6: https://www.youtube.com/watch?v=nskan_35lCg
Odcinek 7: https://www.youtube.com/watch?v=UEqX4uCRMPM
Odcinek 8: https://www.youtube.com/watch?v=lBy3wSt2JJc
Odcinek 9: https://www.youtube.com/watch?v=Bd9ytLbtvCs
Odcinek 10: https://www.youtube.com/watch?v=eTigZ_RWv18
Odcinek 11: https://www.youtube.com/watch?v=4L3gQl8Sek4
Odcinek 12: https://www.youtube.com/watch?v=rYq7-mRFO2s
Odcinek 13: https://www.youtube.com/watch?v=QpTl_yuIlLI
Odcinek 14: https://www.youtube.com/watch?v=gbPqRZ5RTAA
Odcinek 15: https://www.youtube.com/watch?v=pBvDIjApTW0
Odcinek 16: https://www.youtube.com/watch?v=okDRZaCCTeo
Odcinek 17: https://www.youtube.com/watch?v=w85R6Rr5sK0
Odcinek 18: https://www.youtube.com/watch?v=4rNQdx93Jqs
Odcinek 19: https://www.youtube.com/watch?v=xST21cD68wQ
Odcinek 20: https://www.youtube.com/watch?v=-ZZKzAF3668
Odcinek 21: https://www.youtube.com/watch?v=NeF-i2XnMVk
Odcinek 22: https://www.youtube.com/watch?v=JpZZXQJqgWw
Odcinek 23: https://www.youtube.com/watch?v=G9H5m3nhTUQ
Odcinek 24: https://www.youtube.com/watch?v=lfB3ybb5eFo
Odcinek 25: https://www.youtube.com/watch?v=_nHlX63r8bw
Odcinek 26: https://www.youtube.com/watch?v=yZB7jXG4Ry4
Odcinek 27: https://www.youtube.com/watch?v=oisinoNnZA0
Odcinek 28: https://www.youtube.com/watch?v=e90a0iJhcFk
Odcinek 29: https://www.youtube.com/watch?v=IPFW2OueSBI
Odcinek 30: https://www.youtube.com/watch?v=GQ0gmuOR4Ig
Odcinek 31: https://www.youtube.com/watch?v=CR2Hjdb3blc
Odcinek 32: https://www.youtube.com/watch?v=PeD6UkwQx0g

 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki!

 

W kolejnym LudumDare niestety nie mogę brać udziału bo będzie 22-25 Sierpnia a właśnie 22 wprowadzam się do akademika na studiach i będę musiał się organizować przez te parę dni.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

[...] zamierzasz robić też coś dla bardziej zaawansowanych? Np. tworzenie własnego pluginu?

 

Mógłbym zrobić kurs tworzenia pluginów ale na pewno po tym jak skończę tą serię a filmów do nakręcenia jest jeszcze bardzo dużo.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Odcinek 6 oraz 7 wrzucone.

 

Wreszcie ktoś porządny wziął się za poradniki video, a nie jakiś NickSamp ;) - Oczywiście leci sub, no to co oglądamy ;>

 

Huh?

 

 

 

Oczywiście leci sub, no to co oglądamy ;>

 

Dzięki :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

W 7 odcinku jest taki fragment kodu:

new max_players = 100;
.
.
.
new players[max_players][3];

Nie wiem czy to przeoczyłeś, czy to po prostu żeby nie komplikować sprawy, ale to nie przejdzie bo wymiary tablicy musza być const

const max_players = 100;
//lub za pomocą define
#define max_players 100
Edytowane przez Maciej

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Uh, miło Ciebie oglądać z NickSamp cośtamileś.

 
Umm ... co?
 

Jakie plany na dalsze odcinki?

 

[2014-07-08 14:54:32] Bantu: Co będzie w następnej części?
[2014-07-08 14:56:41] Sim00n [ls-rp.net]: Nie wiem jeszcze co w następnej.
[2014-07-08 14:56:48] Sim00n [ls-rp.net]: Propozycje?
[2014-07-08 14:57:08] Sim00n [ls-rp.net]: Trzeba skończyć pokazywać im mechanike języka a potem można zacząć kodzić jakieś systemy.
[2014-07-08 14:57:36] Sim00n [ls-rp.net]: Jeszcze trzeba im pokazać komendy, czaty, dialogi, sampowe menu, pickupy, itd
[2014-07-08 14:57:44] Sim00n [ls-rp.net]: Duuuuużo jeszcze zanim zakodzimy coś na tych filmikach.
[2014-07-08 14:57:56] Sim00n [ls-rp.net]: I ktoś mi dał propozycję żeby potem nakręcić serie o robieniu pluginów do sampa.
[2014-07-08 14:58:51] Bantu: A nie skończyłeś już tej podstawowej mechaniki?
[2014-07-08 15:00:04] Sim00n [ls-rp.net]: No podstawowa mechanika to jeszcze #undef, #pragma na początek i te wszystkie standardowe pierdoły jak INVALID_PLAYER_ID, etc.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wrzuciłem kolejne 6 odcinków serii oraz 1 odcinek dodatkowy o numerze 1.5, w którym tłumaczę jak podpiąć kompilator do sublime'a.

Zapraszam do oglądania.

 

Jeżeli seria się podoba i chce mnie wspomóc to roześlij linki do znajomych i zachęć do subskrybowania. :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Idziesz z nimi jak burza :] Moim skromnym opowiadasz ciekawie, choć troszkę za cicho. Nie jest problemem podkręcić głośniczki, ale różnica między Twoim głosem a muzyczką z intro jest ogromna.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ale różnica między Twoim głosem a muzyczką z intro jest ogromna.

 

W pierwszych paru odcinkach jest bardzo dużo, w kolejnych przyciszyłem intro do 40% poprzedniej wartości a w tych nowych 6 przyciszyłem intro i outro o 40% i zwiększyłem mój głos o 50%. Mogę jeszcze nad tym popracować.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Co do odcinka 1.5 - ta "para śmieci" to wymuszenie na kompilatorze sprawdzania, czy w skrypcie zostały użyte nawiasy () i średnik ; - bez nich skrypt sam z siebie się również skompiluje, ale język będzie podobny do LUA. Przykład:

main() {
    printf "test"
    return false
}
Takie coś śmiało się skompiluje z taką linią komend:

"cmd": ["pawncc.exe", "-d3 -i includes", "$file"],
bez opcji -;+ -(+, natomiast gdy je dodasz, kompilator stwierdzi:

error 076: syntax error in the expression, or invalid function call

warning 215: expression has no effect

error 001: expected token: ";", but found "return"

error 001: expected token: ";", but found "}"

Możesz też zasymulować kompilację do AMX bez średników za pomocą pragmy:

#pragma semicolon false
i również kod:

main() {
    printf("test")
    return false
}
nawet będąc skompilowany za pomocą takiej linii komend:

"cmd": ["pawncc.exe", "-d3 -i includes", "$file", "-;+ -(+"],
się skompiluje.

Druga sprawa to -d3, wbrew pozorom każda aplikacja w debugu jest wolniejsza, niż zoptymalizowana, także skrypt będzie o parę setnych milisekundy wolniejszy. Poza tym - dlaczego nie dodałeś -O1 (O2 jest niedostępne i nawet sam serwer SA:MP się pluje o to, wyświetlając Run time error 18: "File is for a newer version of the AMX")? Według domyślnej specyfikacji

-O<num> optimization level

0 no optimization -- to jest niepotrzebne, bo po prostu nie optymalizuje niczego

1 JIT-compatible optimizations only -- to działa i kompiluje cały skrypt w czasie rzeczywistym za pomocą wbudowanego JIT

2 full optimizations -- to niestety - nie działa

możesz śmiało dodać opcję -O1 do linii komend i to będzie działało zarówno na Linuksie, jak i na Windowsie. Edytowane przez Shiny

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jasne Shiny, jest tu dużo wartościowych informacji. Powiedz mi gdzie dokładnie miałem je umieścić? Pomiędzy "hej zmienne deklaruje się słowem 'new'" a "tak działa warunek 'if'" ... ?

Czasem trzeba odpuścić sobie takie szczegóły tworząc poradnik dla osoby, która nie zna nawet podstaw języka.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki wszystkim za subskrypcje - przekroczyłem dzisiaj 100 \o/

Dziękuję Wam bo 75% odsłon z linków spoza youtube pochodzi z pawno.pl

 

Nowe odcinki wkrótce. W między czasie odpowiem też na jakiekolwiek pytania i bardzo mile widziane sugestie co chcecie zobaczyć w kolejnych odcinkach.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zabierz się za pierwsze systemy, najlepsza nauka przychodzi przez praktykę - a 'uczniowie' będą bardziej zmotywowani kiedy zobaczą fajne efekty pracy. //EDIT: Teraz zauważyłem, że dopiero co wytłumaczyłeś co do łączenia się z serwerem. Może kolejny odcinek będzie dotyczący MySQL, a potem coś bardziej zaawansowanego? ;) Jak dla mnie to nawet nie ma póki co oglądać, zbyt proste rzeczy. Z resztą ja sam wolę uczyć się na swoich błędach niż przez 20 minut oglądać poradnik. Wiki SA-MP'a ma świetnie wytłumaczenia co do wbudowanych funkcji, większość pluginów jest również świetnie opisana. ;) Nic tylko czytać, kodzić i kodzić.

 

Poza tym chyba trochę zagalopowałeś się z tym tworzeniem całej mapy Roleplay w poradnikach, bo jak sam powinieneś wiedzieć - to MASA czasu, kodzenia, siedzenia nad tym, myślenia by wszystko było zoptymalizowane i razem tworzyło całość. Tworzenie takiego kompleksowego poradnika i wrzucanie go jako jedną paczkę ma kolejną wadę - powstaną kolejne, kolejne serwery które będą zarządzane przez dzieci które nigdy nie powinny się za cokolwiek takiego brać.

Edytowane przez ELAPIDAE

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Powiedziałem, w którymś z odcinków, że mapy roleplay jednak nie zrobimy. Będzie to bardziej lepianka różnych skryptów, z których zrobimy jakiś mniejszy serwer żeby po prostu pokazać jak zrobić jakąś działającą całość z logowaniem, rejestracją, CRUD pojazdów, obiektów, etc.

 

Wprowadzanie MySQL (czy jakichkolwiek pluginów poza sscanfem) w tym momencie nie ma sensu bo tak jak powiedziałem, jest to poradnik dla początkujących i trzeba im przedstawić podstawy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki wszystkim za subskrypcje - przekroczyłem dzisiaj 100 \o/

Dziękuję Wam bo 75% odsłon z linków spoza youtube pochodzi z pawno.pl

 

Nowe odcinki wkrótce. W między czasie odpowiem też na jakiekolwiek pytania i bardzo mile widziane sugestie co chcecie zobaczyć w kolejnych odcinkach.

Może coś o operacjach bitowych? Jak tworzyć flagi, jak ich używać i tak dalej, przy okazji można też wspomnieć o zastosowaniu ich w OnPlayerKeyStateChange i GetPlayerKeys  :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×