View Single Post
  #1  
Old 01-18-2008, 08:30 PM
Knightmare1 Knightmare1 is offline
Billy Allan
Knightmare1's Avatar
Join Date: Apr 2007
Posts: 804
Knightmare1 can only hope to improve
a few different Questions...

Well, first and foremost, i have always wonderd how to do this, play uploaded songs. would you do
PHP Code:
playmidilevels/music/<filename>.mp3); 
i am making a radio with different Stations for all the Administrators, it changes from channel 1-9. im using the one that Rapidwolve made, but it isnt working. the script for item Radio:
PHP Code:
function onActionServerside(action){ 
  switch (
action){ 
    case 
"updateChannel"
      
findNPC("Radio").refresh(params[1]); 
  break; 
  } 


public function 
updateChannelVars(djtextsongdjhead){ 
  
player.triggerClient("gui"name"recRadioParams"djtextsongdjhead); 

//#CLIENTSIDE 

function onCreated() 
  
setVars(); 


function 
onActionClientside(action){ 
  switch (
action){ 
    case 
"recRadioParams"
      
updateChannelVars(params[1], params[2], params[3], params[4]); 
  break; 
  } 


function 
onKeyPressed(codekey){ 
  if (
client.radio true){ 
    if (
key in serverr.radio.validstations){ 
     
doChangeStation(key); 
    } 
  } 


function 
onWeaponFired() 
  
toggleRadio(); 


function 
setVars(){ 
  if (
client.radiochannel == nullclient.radiochannel 1
    
updateChannel(client.radiochannel); 
    
client.radio false
    
this.sx screenwidth - (32 9.5); 
    
this.sy 35
    
this.font "Tahoma"
    
this.fontsize .65
    
this.textstyle "b"
    
stopmidi(); 


public function 
updateChannelVars(djrtextsongdjhead){ 
  
this.djhead temp.djhead
  
this.rtext temp.rtext
  
this.dj temp.dj
  
this.song temp.song


public function 
updateChannel(channel
  
triggerServer("gui"name"updateChannel"channel); 


public function 
doChangeStation(channel){ 
  
updateChannel(channel); 
  
client.radiochannel channel


public function 
toggleRadio(){ 
  if (
client.radio == false){ 
    
client.radio true
    
drawRadio(); 
    
setTimer(.05); 
  } 
else{ 
  
destroyRadio(); 
  
setTimer(0); 
  } 


function 
drawRadio(){ 
  
updateChannel(client.radiochannel); 
  
client.radio true;  
  
onTimeout(); 


function 
destroyRadio(){ 
  
client.radio false
  
stopmidi(); 
  
hideimgs(-1,1000); 


function 
onTimeout(){ 
  
showimg(202this.djheadthis.sxthis.sy 25); 
  
changeimgvis(202,4); 
  
changeimgpart(202,3,69,26,23); 

  
showText(200this.sx 140this.sy 25"Tahoma""ic"serverr.("radio" client.radiochannel "name")); 
  
changeimgvis(2007); 
  
changeimgzoom(200this.fontsize .1); 
  
showText(201this.sx 140this.sy 10"Tahoma""ic"this.dj); 
  
changeimgvis(2017); 
  
changeimgzoom(201this.fontsize .1); 

  
tokens wraptext2(255this.fontsize" "this.font "@" this.fontstyle "@" this.rtext); 
  
hideimgs(250,300); 
    for (
this.0this.tokens.size(); this.i++){ 
      
showText(250 this.ithis.sxthis.sy + (this.15), this.fontthis.textstyletokens[this.i]); 
      
changeimgvis(250 this.i7); 
      
changeimgzoom(250 this.ithis.fontsize); 
  } 
    if (
this.song != null
      
playlooped(this.song); 
       else 
      
stopmidi(); 
      
setTimer(.05); 

and the script for NPC Radio:
PHP Code:
public function doUpdateStation(stationiddjtextsonghead){ 
  
this.radio.("station_" stationid) = {djtextsonghead}; 
  
refresh(stationid); 


public function 
doUpdateSong(stationidsongdjdjhead){ 
  
temp.text this.radio.("station_" stationid)[1]; 
  
this.radio.("station_" stationid) = new [4]; 
  
this.radio.("station_" stationid)[1] = temp.text
  
this.radio.("station_" stationid)[2] = song
  
this.radio.("station_" stationid)[0] = dj
  
this.radio.("station_" stationid)[3] = djhead
  
refresh(stationid); 


public function 
doUpdateText(stationidtextdjdjhead){ 
  
temp.song this.radio.("station_" stationid)[2]; 
  
this.radio.("station_" stationid) = new [4]; 
  
this.radio.("station_" stationid)[2] = temp.song
  
this.radio.("station_" stationid)[1] = text
  
this.radio.("station_" stationid)[0] = dj
  
this.radio.("station_" stationid)[3] = djhead
  
refresh(stationid); 


public function 
refresh(stationid){ 
  for (
pallplayers){ 
    
with (p){ 
      if (
client.radiochannel == stationid){ 
      
temp.newdj this.radio.("station_" stationid)[0]; 
      
temp.newtext this.radio.("station_" stationid)[1]; 
      
temp.newsong this.radio.("station_" stationid)[2]; 
      
temp.newhead this.radio.("station_" stationid)[3]; 
      
p.findWeapon("Radio").updateChannelVars(temp.newdjtemp.newtexttemp.newsongtemp.newhead); 
      } 
    } 
   } 

and for the class radiostation-control:

PHP Code:
function onPlayerChats(){ 
if (
player.chat.starts(":song")) findNPC("Radio").doUpdateSong(this.stationidplayer.chat.substring(6), player.accountplayer.head); 
if (
player.chat.starts(":text")) findNPC("Radio").doUpdateText(this.stationidplayer.chat.substring(6), player.accountplayer.head); 

and the script for the item NPC in the level you wish to change stuff is:
PHP Code:
  join("radiostation-control");
  
this.stationid 1
and he tells you to put this in your serverflags:
PHP Code:
serverr.radio.validstations=
and something else, but i dont know, this is what he says:
Quote:
Originally Posted by Rapidwolve View Post
To give the radio station a name create another server flag 'serverr.radio#name' and its value should be the desired name.
__________________
I am the devil, I am here to do to devils work.
Reply With Quote