Forrás: Fade, www.sampforum.hu
Üdv.
Ebben a tutorialban leírom hogy hogy kell kezelni Incognito Audio Pluginját.
(Letöltés lap alján)
Akkor nézzük.
Miután letöltötted a plugint csomagold ki a szerver mappádba.
Ha kicsomagoltad, a server.cfg-be írd be a plugint.
plugins audio
Linux esetén:
plugins audio.so
Hogyha kicsomagoltad láthatsz egy mappát audiopacks néven. Ez tárolja a hanganyagokat.
Azon belül default_pack, és another_pack.
Ezeket hagyd figyelmen kívül nem kellenek.
Hozz létre az audipacksban egy új mappát, mindegy hogy milyen néven.
Vegyük példának a custom nevet!
servermappa/audiopacks/custom
Ide másold be a kívánt zenéket, amiket a szerverre fel akarsz tenni.
Ajánlatos, hogy a nevüket lerövidítsd, mert kezelni nehezebb ha hosszú.
Ha ez megvolt, akkor a szerver mappádban lévo audio.ini fájlt nyisd meg.
itt alapból ezeket találod:
; audio.ini
;
; Notes:
; ------
; 1. The section names (text enclosed in brackets) correspond to the
; folder names in the audiopacks directory.
; 2. The keys (numbers to the left) are the audio IDs, and the values
; are the file names.
; 3. Remote files must be prefixed with http:// or ftp:// (these do
; not need to be in your audiopacks directory).
; 4. Audio archives are marked by the key "archive" rather than an
; audio ID. The values for these are the archive names. See the
; readme text document in the server package for a list.
[default_pack]
1 = test.wav
2 = example.mp3
3 = track.ogg
4 = file.wma
archive = CR
archive = SCRIPT
[another_pack]
1 = http://www.website.com/example.mp3
2 = ftp://localhost/test.wav
3 = track.ogg
4 = file.wma
archive = AMBIENCE
archive = CUTSCENE
A szögletes zárójelek közé a mappák nevei vannak írva. (amik voltak default_pack, és another_pack)
Hozz létre egy új sort, és szögletes zárójelek közé írd a mappád nevét amit létrehoztál.
Custom példa.
[custom]
1 = zene.mp3
a zene.mp3-at nevezd át az egyik zene fájl nevére amit betettél.
Az 1 a hang azonosítója.
Ha egy új zenét akarsz berakni akkor azt ajánlatos csinálod hogy a következo számot írod be és utána a zenét.
Tehát pl van 3 zenéd. Ez így néz ki:
[custom]
1 = zene.mp3
2 = hang.mp3
3 = valami.mp3
(nem csak mp3-at lehet lehet wav, wma stb...)
Tehát ha újat akarsz betenni csak ennyit kell:
4 = egyhang.mp3
Aztán 5 = stb...
Ha a zenéket betetted akkor ezeket is tedd a végére:
archive = AMBIENCE
archive = CUTSCENE
Igazából én se tudom mire jók, de nélkülük nem megy.
Ha ez kész akkor jöhet a pawn-os rész.
Nos akkor eloször is ágyazzuk be a függvénykönyvtárat scriptünkbe/módunkba:
#include <audio>
Hozzuk létre a TCP szervert, amin a hangok és a csomagok fognak "utazni":
Audio_CreateTCPServer(port); //ide azt a portot írd amin fut a szervered! alap: 7777
Lehet úgy is, hogy ha nem tudod a portját a szerverednek, vagy megváltoztattad:
new port = GetServerVarAsInt("port"); //lekérdezzük a szerver portját, és a port változóban tároljuk
Audio_CreateTCPServer(port); //Létrehozzuk a TCP szervert
Ezután beállítjuk a csomagot.
Audio_SetPack("custom", true); //ha igazra állítod (true) akkor a pack küldheto a játékosoknak, ha hamis (false) akkor nem!
A custom helyére a te mappád neve kerül.
Most pedig el kell küldenünk a csomagot a játékosnak ha csatlakozik.
public Audio_OnClientConnect(playerid)
{
Audio_TransferPack(playerid); //elküldjük a játékosnak a csomagot
}
Ez a függvény csak annak hívódik meg akinek van kliens oldali hang pluginja.
Ha játék közben állítódik be egy csomag akkor a következot kell tenni:
public Audio_OnSetPack(audiopack[])
{
for (new i = 0; i < MAX_PLAYERS; i++)
{
Audio_TransferPack(i); //mindenkinek elküldi
}
return 1;
}
Ez mindenkinek elküldi HA a csomagot beállította a szerver.
A beállításról ennyit most jöjjön a lejátszás.
Lejátszásnál lehetoségünk van változót használni a tároláshoz, amit majd a hang megállításánál kell használnunk.
Hozzunk létre egy tömböt ami minden játékosnak külön elemet ad.
new hang[MAX_PLAYERS];
És ezután amikor szeretnénk, lejátsszuk a hangot a játékosunknak:
Hang[playerid] = Audio_Play(playerid,1); //csak a megadott játékosnak játsza le (playerid)
Az 1-es szám a hang azonosítója amit az audio.ini -be adtunk meg. (az 1 = hang.mp3 például)
Ennek a függvénynek több paramétere is van még, loopolás (ha meg áll a zene akkor újrakezdi automatikusan), szüneteltetés, lemixelés (<- én sem tudom mit értenek ez alatt...)
Ha meg szeretnénk állítani a hangot, akkor az Audio_Stop függvényt kell alkalmaznunk.
Audio_Stop(playerid,Hang[playerid]); //csak a megadott játékosnak állítja meg (playerid)
Itt viszont nem az audio.ini -s azonosítót kell megadni hanem amit lejátszásnál használtunk. (Hang[playerid])
Az alapfokú kezelés ennyi, a középfokról is ejtek egykét szót.
Van még lehetoség a hangok cifrázására például háttéreffekt, 3D pozíció a hangnak (csak a hatósugarán belül lehet hallani), effektek, és még sok más.
Ennyi lenne a tutorial remélem értheto.
Összes függvény + letöltés:
http://forum.sa-mp.com/index.php?topic=106960.0
FONTOS: Hogy halld a zenéket a kliens oldali plugint fel kell tenned.
|
Van ilyen [FS] amivel zenét lehet játszani a serveren úgy hogy mindenki hallja....