Skocz do zawartości

3 Poradniki LUA


Simi
 Udostępnij

Rekomendowane odpowiedzi

Ten poradnik jest z Archiwum pawno.pl

Witam,

Postanowiłem na odpracowanie ostrzeżenia wytłumaczyć jak zrobić system koncertów.

Na początek tworzymy 2 foldery, pierwszy o nazwie client a drugi o nazwie server. Później w folderze client tworzymy plik client.lua i edytujemy go (Polecam Notepad2, Notepad++):

Tworzymy funkcję odtwarzającą dźwięk "muza.mp3" po otrzymaniu tzw "sygnału" od triggera:

 
function odtworzDzwiek ( ) 
local sound = playSound3D("muza.mp3", 391, -2685, 7, true) 
setSoundVolume(sound, 0.9) -- set the sound volume to 50 
end 
addEvent( "odtworzDzwiek", true ) 
addEventHandler( "odtworzDzwiek", getRootElement(), odtworzDzwiek) 
Uwaga! Tutaj wpisujemy pozycje z mapy: local sound = playSound3D("muza.mp3", 391, -2685, 7, true) Jak widać mamy już zdefiniowany skrypt po stronie klienta, teraz czas na serwer. Tworzymy plik server.lua w wcześniej utworzonym folderze server i edytujemy go: Teraz zdefiniujemy komendę dla admina aby wysyłała każdemu triggerClientEvent, aby odpalała się wszystkim graczą na serwerze w pozycji podanej w pliku "client.lua".
 
local ksyst = "admin" 
function odpalmuze(gracz,cmd) 
if ksyst == "admin" then 
if IsPlayerAdmin(gracz) == false then 
outputChatBox ( "#FF0000** Error:#0AC419 you are not admin.", gracz, 255, 255, 255, true ) --gdy gracz nie jest adminem 
return 
end 
end 
triggerClientEvent ( getRootElement(), "odtworzDzwiek", getRootElement()) 
-- wywolujemy sygnal do graczy 

end 
addCommandHandler("odpalmuze", odpalmuze) -- nazwa komendy na odpalanie muzyki i definicja jaka funkcje ma odpalac 

function set_cmd(gracz,cmd,argument) 
if argument == "admin" or argument == "all" then 
ksyst = argument 
end 
end 
addCommandHandler("set_cmd", set_cmd) 


function IsPlayerAdmin(gracz) 
local acc = getPlayerAccount ( gracz ) 
local name = getAccountName ( acc ) 
local Ad = isObjectInACLGroup ( "user." .. name, aclGetGroup ( "Admin" ) ) 
return Ad 
end 
Skrypt mamy gotowy, teraz czas obszukać jakąś mp3 (lecz ogg jest lepsze ponieważ ma mniejszy rozmiar i taką samą jakość, gdy chcemy wybrać ogg musimy w client.lua podmienić rozszerzenie .mp3 na .ogg) i zmieniamy jej nazwę na podaną w pliku client.lua czyli w tym przypadku jest to muza.mp3, pamiętajmy że wklejamy ją do katalogu głównego skryptu. Czas na mete, tworzymy plik meta.xml w głównym katalogu i wypełniamy go takim zapisem:
 
<meta> 
<info author="i386x" version="1.1" /> 
<script src="client/client.lua" type="client" /> 
<script src="server/server.lua" type="server" /> 
<file src="muza.mp3" /> 
</meta> 
Administrator serwera pod komendą /odpalmuze odtwarza muzykę KAŻDEMU w danym miejscu   Poradnik by i386x, zakaz kopiowania na inne fora, zakaz zmiany autora w pliku meta.xml, Ten poradnik jest odpracowaniem ostrzeżenia na forum Pawno.pl

Poradnik jest bardzo prosty do zrozumienia zrobiłem go w formie Screenów więc każdy "newbie" powinien wiedzieć  

1.Otwieramy plik (domyślnie C:\Program Files\MTA San Andreas\server\mods\deathmatch\mtaserver.conf i ustawiamy 2 rzeczy widoczne na obrazkach:

http://iv.pl/images/uqn7twinv21m17own.png

http://iv.pl/images/0vd6nbu6vaktcuepymk.png

2.

http://iv.pl/images/yedmnpk05c107qw88mq.png

Włączamy serwer i wpisujemy http://iv.pl/images/qc6yu7c2lr5vtfcy8odp.png

Powinno być tak po wpisaniu  :

http://iv.pl/images/nfbxnlv5z23brs15g9t.png

Poradnik by Wisnia75(Zabrania się kopiowania na inne fora niż pawno.pl, złamanie tego prawa traktowane jest jako złamanie prawa polskiego kodeksu praw)

Ten poradnik jest z Archiwum pawno.pl

Mniej więcej wygląda to tak: http://iv.pl/images/81449797637046962991.jpg Zaczynamy  
  • Utwórz plik logo.lua oraz edytuj go
Stworzymy teraz funkcje, która wyświetli nam obrazek w podanej pozycji ekranu(można ją zdobyć w gui editorze):
 
function showClientImage() 
guiCreateStaticImage( 0.017578, 0.929666, 0.335781, 0.075521, "logo.png", true ) 
end 
addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource() ), showClientImage ) 
(Możemy sobie zmienić pozycje w tej
guiCreateStaticImage( 0.017578, 0.929666, 0.335781, 0.075521, "logo.png", true )
Linijce. Ale w tym przypadku jest pod hudem) i Zapisujemy plik jako dalej logo.lua. Wyjaśnienie:
  • function showClientImage() - Tworzymy funkcję guiCreateStaticImage( 0.017578, 0.929666, 0.335781, 0.075521, "logo.png", true ) - Tworzymy obrazek addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource() ), showClientImage ) - "Definiujemy" kiedy ma działać ten obrazek ( w tym przypadku po starcie skryptu).
Teraz podmieniamy logo.png na swoje logo (w formacie .png).
  • Tworzymy Mete
 
<meta> 
<info author="Wisnia75" version="1.0" /> 
<script src="logo.lua" type="client" /> 
<file src="logo.png" /> 
</meta> 

Wyjaśnienie:


  • <meta> - start mety
    <info author="Wisnia75" version="1.0" /> - informacja o autorze i wersji
    <script src="logo.lua" type="client" /> - ścieżka do skryptu i typ skryptu ( w tym przypadku po stronie klienta)
    <file src="logo.png" /> - ścieżka obrazka
    </meta> - zakończenie mety

Zakaz kopiowania! By i386x Wszelkie prawa zastrzeżone!

Odnośnik do komentarza
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

×