Cette fois, c'est une platine de DJ mobile et publique, accessible pour les autres joueurs que les DJ, pas forcément RP, mais cool à coder (J'ai appris l'avantage des array en E2 ici )
Pour une fois je me suis ordonné, je suis partit d'un dessin, que j'ai essayé d'adapter en E2, le voici :
Et voilà, je m'y suis collé.
Actuellement, rien ne fonctionne, je fais l'affichage, seul le son est exporté, il y a 3 musiques de disponibles, et le volume est ajustable
Le rendu actuel :
Et enfin pour ceux que ça intéresse, le code :
@name Test Sound
@inputs EGP:wirelink Plus Moins Stop
@outputs Volume
@persist Path:array Time:array Text:array Choice Color1:vector4 Color2:vector4 Volume
@trigger
runOnTick(1)
if (first()) {
Volume = 100
Vitesse = 100
Choice = 1
#Criminal = 1
Path:setString(1,"ltsa/criminal.mp3") Time:setNumber(1,162) Text:setString(1,"Criminal")
#Danza Kuro = 2
Path:setString(2,"ltsa/danza_kuduro.mp3") Time:setNumber(2,153) Text:setString(2,"Danza Kuduro")
#Cranck It UP = 3
Path:setString(3,"ltsa/david_guetta-crank_it_up.mp3") Time:setNumber(3,156) Text:setString(3,"Cranck it up")
EGP:egpClear()
Color1 = vec4(150,150,150,255)
Color2 = vec4(100,100,100,255)
EGP:egpRoundedBox(1,vec2(256,40),vec2(300,60)) EGP:egpColor(1,Color1)
EGP:egpText(2,"Platine de DJ", vec2(120,15)) EGP:egpSize(2,50) EGP:egpColor(2,Color2)
EGP:egpRoundedBox(3,vec2(200,200),vec2(350,225)) EGP:egpColor(3,Color1)
EGP:egpRoundedBox(4,vec2(450,200),vec2(75,225)) EGP:egpColor(4,Color1)
EGP:egpRoundedBox(5,vec2(450,112.5),vec2(75,62.5)) EGP:egpColor(5,Color2)
EGP:egpTriangle(6,vec2(450,82.5),vec2(425,112.5),vec2(475,112.5)) EGP:egpColor(6,Color1)
EGP:egpBox(7,vec2(450,125),vec2(25,25)) EGP:egpColor(7,Color1)
EGP:egpRoundedBox(8,vec2(450,200),vec2(75,62.5)) EGP:egpColor(8,Color2)
EGP:egpText(9,"Play",vec2(415,180)) EGP:egpSize(9,40) EGP:egpColor(9,Color1)
EGP:egpRoundedBox(10,vec2(450,282.5),vec2(75,62.5)) EGP:egpColor(10,Color2)
EGP:egpTriangle(11,vec2(450,312.5),vec2(425,280),vec2(475,280)) EGP:egpColor(11,Color1)
EGP:egpBox(12,vec2(450,270),vec2(25,25)) EGP:egpColor(12,Color1)
EGP:egpRoundedBox(13,vec2(256,350),vec2(475,45)) EGP:egpColor(13,Color1)
EGP:egpText(14,"Playlist : "+ Text:string(Choice),vec2(25,335)) EGP:egpSize(14,30) EGP:egpColor(14,Color2)
EGP:egpText(15,"Duree : "+ Time:number(Choice),vec2(325,335)) EGP:egpSize(15,30) EGP:egpColor(15,Color2)
EGP:egpRoundedBox(16,vec2(512/6,440),vec2(512/3-20,100)) EGP:egpColor(16,Color1)
EGP:egpText(17,"Volume : "+ Volume, vec2(15,400)) EGP:egpSize(17,25) EGP:egpColor(17,Color2)
EGP:egpRoundedBox(18, vec2((512/12)-1,460),vec2(512/6-20,60)) EGP:egpColor(18,Color2)
EGP:egpBox(19,vec2(512/12,460),vec2(50,15)) EGP:egpColor(19,Color1)
EGP:egpBox(20,vec2(512/12,460),vec2(15,50)) EGP:egpColor(20,Color1)
EGP:egpRoundedBox(21, vec2((512/12)*3,460),vec2(512/6-20,60)) EGP:egpColor(21,Color2)
EGP:egpBox(22,vec2((512/12)*3,460),vec2(50,15)) EGP:egpColor(22,Color1)
EGP:egpRoundedBox(23,vec2(512/2,440),vec2(512/3-20,100)) EGP:egpColor(23,Color1)
EGP:egpText(25,"Vitesse : "+ Vitesse, vec2(190,400)) EGP:egpSize(25,25) EGP:egpColor(25,Color2)
EGP:egpRoundedBox(26, vec2(512/2.4,460),vec2(512/6-20,60)) EGP:egpColor(26,Color2)
EGP:egpBox(27,vec2(512/2.4,460),vec2(50,15)) EGP:egpColor(27,Color1)
EGP:egpBox(28,vec2(512/2.4,460),vec2(15,50)) EGP:egpColor(28,Color1)
EGP:egpRoundedBox(29, vec2(512/1.71,460),vec2(512/6-20,60)) EGP:egpColor(29,Color2)
EGP:egpBox(30,vec2(512/1.71,460),vec2(50,15)) EGP:egpColor(30,Color1)
EGP:egpTriangle(32,vec2(400,400),vec2(450,400),vec2(450,450)) EGP:egpColor(31,Color2)
EGP:egpRoundedBox(160,vec2(512-(512/6),440),vec2(512/3-20,100)) EGP:egpColor(160,Color1)
}
if (Plus) { Choice++ }
if (Moins) { Choice-- }
if (changed(Choice)) { soundPlay(1,Time:number(Choice),Path:string(Choice)) }
if (Choice <= 0) {Choice = 3 }
if (Choice >= 4) {Choice = 1 }
if (Stop) { soundPitch(1,0) }
if (changed(Choice)) { EGP:egpSetText(14,"Playlist : "+ Text:string(Choice)) EGP:egpSetText(15,"Duree : "+ Time:number(Choice)) }
if (changed(EGP["User",entity]:keyUse()) && EGP["User",entity]:keyUse())
{
if (inrange(EGP:egpCursor(EGP["User",entity]), vec2(10,430),vec2(75,490)) && Volume <= 75) { Volume += 25 }
if (inrange(EGP:egpCursor(EGP["User",entity]), vec2(95,430),vec2(161,490)) && Volume >= 50) { Volume -= 25 }
}
if (changed(Volume)) { EGP:egpSetText(17,"Volume : "+ Volume) soundVolume(1,Volume/100) }