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:
playmidi( levels/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(dj, text, song, djhead){ 
  
player.triggerClient("gui", name, "recRadioParams", dj, text, song, djhead); 
} 
//#CLIENTSIDE 

function onCreated() 
  
setVars(); 


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

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

function 
onWeaponFired() 
  
toggleRadio(); 


function 
setVars(){ 
  if (
client.radiochannel == null) client.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(dj, rtext, song, djhead){ 
  
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(202, this.djhead, this.sx, this.sy - 25); 
  
changeimgvis(202,4); 
  
changeimgpart(202,3,69,26,23); 

  
showText(200, this.sx + 140, this.sy - 25, "Tahoma", "ic", serverr.("radio" @ client.radiochannel @ "name")); 
  
changeimgvis(200, 7); 
  
changeimgzoom(200, this.fontsize - .1); 
  
showText(201, this.sx + 140, this.sy - 10, "Tahoma", "ic", this.dj); 
  
changeimgvis(201, 7); 
  
changeimgzoom(201, this.fontsize - .1); 

  
tokens = wraptext2(255, this.fontsize, " ", this.font @ "@" @ this.fontstyle @ "@" @ this.rtext); 
  
hideimgs(250,300); 
    for (
this.i = 0; this.i < tokens.size(); this.i++){ 
      
showText(250 + this.i, this.sx, this.sy + (this.i * 15), this.font, this.textstyle, tokens[this.i]); 
      
changeimgvis(250 + this.i, 7); 
      
changeimgzoom(250 + this.i, this.fontsize); 
  } 
    if (
this.song != null) 
      
playlooped(this.song); 
       else 
      
stopmidi(); 
      
setTimer(.05); 
} 
and the script for NPC Radio:
PHP Code:
public function doUpdateStation(stationid, dj, text, song, head){ 
  
this.radio.("station_" @ stationid) = {dj, text, song, head}; 
  
refresh(stationid); 
} 

public function 
doUpdateSong(stationid, song, dj, djhead){ 
  
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(stationid, text, dj, djhead){ 
  
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 (
p: allplayers){ 
    
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.newdj, temp.newtext, temp.newsong, temp.newhead); 
      } 
    } 
   } 
} 
and for the class radiostation-control:

PHP Code:
function onPlayerChats(){ 
if (
player.chat.starts(":song")) findNPC("Radio").doUpdateSong(this.stationid, player.chat.substring(6), player.account, player.head); 
if (
player.chat.starts(":text")) findNPC("Radio").doUpdateText(this.stationid, player.chat.substring(6), player.account, player.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=1 
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