GTA Közösség - A magyar GTA fórum

Multi Theft Auto (MTA) => MTA: Szerverfejlesztés => Segítségkérés => A témát indította: AceHardlightHUN - 2016. december 30. - 21:10:44

Cím: Loginpanel zene.
Írta: AceHardlightHUN - 2016. december 30. - 21:10:44
Sziasztok! a minap készítgettem a loginpanelemet, teljesen örültem, minden funkciója működik. akkor jöhet a csicsázás.
 
Amikor el akarok indítani egy zenét akkor ment, de erre lettem figyelmes:
 
https://www.youtube.com/watch?v=gxaH2ueMeWY&feature=youtu.be
 
 
 
itt a kód ami a zenét indítja:
 
 
 

function zene(login)
   zene = playSound(\"files/music.mp3\", true)
      --stopSound(zene)
end
addEventHandler( \"onClientResourceStart\", getRootElement(), zene)

 
 
Cím: Loginpanel zene.
Írta: Hasirama - 2016. december 30. - 21:18:45
Nem értem miért kell szétfloodolni:D
 
Mindig kérdezd le előtte, hogy van-e már. Ha van, törlöd:
 

if(isElement(zene) then
destroyElement(zene)
end
zene = playSound(\"files/music.mp3\", true)

 
 
Cím: Loginpanel zene.
Írta: AceHardlightHUN - 2016. december 30. - 21:29:42



   
      Nem értem miért kell szétfloodolni:D
   

[/quote]
 
Így akartam meggyőzni a nézőt hogy többször is elindul :D
 
 
 
Mellesleg a kódban van valami hiba. Alapból amit írtál a felépítésében furcsállok valamit, nem megy. Átírtam ilyenre:
 
 
 

function zene(login)
if(isElement(zene)) then
zene = playSound(\"files/music.mp3\", true)
else
destroyElement(zene)
end
end
addEventHandler( \"onClientResourceStart\", getRootElement(), zene)

 
Ezzel csak annyi a baj hogy a destroyElement első paraméterére azt kapja vissza hogy funkció
Cím: Loginpanel zene.
Írta: Hasirama - 2016. december 30. - 21:34:19
Mivel ugyan úgy nevezted el a kettőt:
 

function zeneFunction(login)
if (isElement(zene)) then
   destroyElement(zene)
end
zene = playSound(\"files/music.mp3\", true)
end
addEventHandler( \"onClientResourceStart\", getRootElement(), zeneFunction)

 
Így behülyült. És felcserélted. Akkor kell destroyolni, ha már létezik, nem pedig akkor, ha nem.
Cím: Loginpanel zene.
Írta: AceHardlightHUN - 2016. december 30. - 21:36:39
jaa, vágom. de tudod hogy nekem mi a bajom? sajnos nem részleteztem, de ha BÁRMILYEN scriptet elndítok akkor elkezdeni játszani a zenét. ugye a videóban ez az infobox volt.
Cím: Loginpanel zene.
Írta: Hasirama - 2016. december 30. - 21:40:29
Megmutatod a login-t? Lehet akkor tudok segíteni. Így vakon nem igazán
Cím: Loginpanel zene.
Írta: AceHardlightHUN - 2016. december 30. - 21:45:57
a script többi részével biztos nincsen baj. semmilyen összefüggést nem tettem a zene, és a többi funkció közé
 
Valahogy azt kéne elérni hogy lekérje az elindított resource nevét, majd egy if not- ba hozzáadni a destroyt valahogy így:
 
if not (isElement(login)) then
 
destroyElement(másik res neve)
Cím: Loginpanel zene.
Írta: Hasirama - 2016. december 31. - 07:54:54
Function-t nem tudsz destroyolni. Még azt lehetne, hogy player spawnolásakor beállítani egy element datát true-ra(Mondjuk online). És a zenénél belerakni egy olyat, hogy if not getElementData(localPlayer, \"online\") then
Cím: Loginpanel zene.
Írta: Robika1 - 2017. január 02. - 01:29:30
Szia.
Az a baj, hogy az onClientResourceStart eventnél getRootElement() van, ami azt jelenti, hogy ha bármilyen modot elindítasz, akkor meghívódik ez az event. root=minden
Az event source-ja ne root(összes mod) legyen, hanem csak ez a mod: getResourceRootElement(getThisResource())
 

addEventHandler(\"onClientResourceStart\", getResourceRootElement(getThisResource()), zeneFunction)

 
És így máris tök jól fog működni
 
Robika1
Cím: Loginpanel zene.
Írta: AceHardlightHUN - 2017. január 02. - 14:32:12
A te kommented vártam :D Köszönöm :D