Jump to content
  • 0

@radio help translate in rathena


Fae

Question


  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  14
  • Reputation:   0
  • Joined:  04/04/16
  • Last Seen:  

/*=========================================================
Hercules Radio
by Mumbles
===========================================================
Request: http://hercules.ws/board/topic/1676-rhelp/
===========================================================
Description:
A radio NPC that plays preset selection of client-side
songs (these songs are to be placed in the 'BGM' folder.

The command '@radio' was added as a convenience, to allow
songs to be played wherever the invoking player may be.
Songs are played on the map in which the NPC was invoked,
meaning that if a player is in pay_gld and types '@radio',
(s)he and everyone on the map will hear the selected song.

Each time a song is played, a lock is set for the preset
minutes; this lock prevents the NPC from being accessed.
A countdown in minutes and seconds is be displayed to
reflect the remaining time until the next song can be
played.
===========================================================
Compatibility:
Optimised for Hercules emulators.
===========================================================
Changelog:
v1.0 - First version.
	v1.0.1 - Removed support for backwards compatibility.
	v1.0.2 - Some housekeeping.
=========================================================*/

prontera,138,172,5	script	Hercules Radio::radio	4_F_05,{

	OnRequest:
		// Check voucher amount
		if (countitem(.voucher) < .amount) {
			message strcharinfo(0), "You must have "+ .amount +" "+ getitemname(.voucher) +" to play a song.";
			end;
		}
		
		// Create menu
		for (.@i = 0; .@i < getarraysize(.song$); .@i++) {
			.@choice$ += "'"+ .song$[.@i] +"' by "+ .artist$[.@i] +":";
		}
		
		// Display menu
		message strcharinfo(0), "Please select a song to play (cost: "+ .amount +" "+ getitemname(.voucher) +").";
		.@option = select(.@choice$) - 1;
		
		// Check lock time
		if (.lock > gettimetick(2)) {
			// Calculate time left
			.@minutes_left = (.lock - gettimetick(2)) / 60;
			.@seconds_left = (.lock - gettimetick(2)) % 60;
			
			// Display time left
			message strcharinfo(0), strnpcinfo(1) +" is not accepting requests at this time.";
			if (.@minutes_left < 1) {
				message strcharinfo(0), "Please try again in "+ .@seconds_left +" seconds.";
			} else {
				message strcharinfo(0), "Please try again in "+ .@minutes_left +" minute"+ (.@minutes_left > 1 ? "s" : "") +" and "+ .@seconds_left +" seconds.";
			}

			close;
		}
		
		// Delete required vouchers
		delitem .voucher, .amount;
		
		// Play and announce choice on the player's current map
		playbgmall .file$[.@option], strcharinfo(3);
		announce strnpcinfo(1) +": Now playing '"+ .song$[.@option] +"' by "+ .artist$[.@option] +".", bc_map;
		
		// Lock NPC for preset amount
		.lock = .minutes * 60;
		.lock += gettimetick(2);
		close;
		
		
	OnInit:
		// Configuration
		.voucher = TCG_Card;	// Voucher item ID
		.amount	= 5;			// Usage cost, in vouchers
		.minutes = 2;			// Lock time, in minutes
		
		// Create @radio command
		bindatcmd "radio", strnpcinfo(3) +"::OnRequest", 0, 40;
		
		// Songs
		// The song names for each track
		setarray .song$[0],		"Hunter X Hunter",
								"Chicksilog",
								"Bahay Kubo",
								"Magkabilang Mundo",
								"Iisa lang",
								"I Love You Girl";
								
		// Artists
		// The artist name for each track
		setarray .artist$[0],	"Ohayou",
								"Kamikazee",
								"Hale",
								"Jireh Lim",
								"Parokya Ni Edgar",
								"Ekulo";
								
		// Files
		// The file name for each track (no extension)
		setarray .file$[0],	"1001",
							"1002",
							"1003",
							"1004",
							"1005",
							"1006";
		
		// Waitingroom display
		// Configured to show the NPC's display name
		waitingroom strnpcinfo(1), 0;
	
	end;
		
}

Can someone make this work here in rathena thanks

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  14
  • Reputation:   0
  • Joined:  04/04/16
  • Last Seen:  


/*=========================================================

Hercules Radio

by Mumbles

Edited By: Maczekiel of FaeRO Ragnarok Online

===========================================================

===========================================================

Description:

A radio NPC that plays preset selection of client-side

songs (these songs are to be placed in the 'BGM' folder.

The command '@radio' was added as a convenience, to allow

songs to be played wherever the invoking player may be.

Songs are played on the map in which the NPC was invoked,

meaning that if a player is in pay_gld and types '@radio',

(s)he and everyone on the map will hear the selected song.

Each time a song is played, a lock is set for the preset

minutes; this lock prevents the NPC from being accessed.

A countdown in minutes and seconds is be displayed to

reflect the remaining time until the next song can be

played.

===========================================================

Compatibility:

Optimised for Hercules emulators. only

translated for Rathena

===========================================================

Changelog:

v1.0 - First version.

v1.0.1 - Removed support for backwards compatibility.

v1.0.2 - Some housekeeping.

v1.0.3 - I Added Dedication and global announcement

Thanks Aeromesi

=========================================================*/

prontera,148,178,5 script FaeRO DJ::radio 4_F_05,{

OnRequest:

// Check voucher amount

if (countitem(.voucher) < .amount) {

message strcharinfo(0), "You must have "+ .amount +" "+ getitemname(.voucher) +" to play a song.";

end;

}

switch(select("DedicationSong:No")) {

case 1:

mes "You like to Dedicate this to Someone, Right?.";

mes "type the name";

input .dedicate$;

next;

case 2:

mes "Choose Your Song";

set .bitter$,"NO ONE!";

next;

}

// Display menu

message strcharinfo(0), "Please select a song to play (cost: "+ .amount +" "+ getitemname(.voucher) +").";

set .@menu$,implode(.song$, ":");

set .@selection, select(.@menu$) -1;

// Check lock time

if (.lock > gettimetick(2)) {

// Calculate time left

.@minutes_left = (.lock - gettimetick(2)) / 60;

.@seconds_left = (.lock - gettimetick(2)) % 60;

// Display time left

message strcharinfo(0), strnpcinfo(1) +" is not accepting requests at this time.";

if (.@minutes_left < 1) {

message strcharinfo(0), "Please try again in "+ .@seconds_left +" seconds.";

} else {

message strcharinfo(0), "Please try again in "+ .@minutes_left +" minute"+ (.@minutes_left > 1 ? "s" : "") +" and "+ .@seconds_left +" seconds.";

}

close;

}

// Delete required vouchers

delitem .voucher, .amount;

// Play and announce choice on the player's current map

playbgmall .file$[.@selection], strcharinfo(3);

announce strnpcinfo(1) +": Now playing '"+ .song$[.@selection] +"' by "+ .artist$[.@selection] +" as requested by "+ strcharinfo(0) +" for "+ .dedicate$ +" "+ .bitter$ +".", bc_map;

// Lock NPC for preset amount

.lock = .minutes * 60;

.lock += gettimetick(2);

close;

OnInit:

// Configuration

.voucher = 7608; // Voucher item ID

.amount = 10; // Usage cost, in vouchers

.minutes = 4; // Lock time, in minutes

.minutesvip = 2;

// Create @radio command

bindatcmd "radio", strnpcinfo(3) +"::OnRequest", 0, 40;

bindatcmd "vipradio", strnpcinfo(3) +"::OnVip", 0, 40;

// Songs

// The song names for each track

setarray .song$[0], "Parokya ni Edgar",

"Tao Lang",

"Numb Encore",

"If i aint Got you",

"OFFENSE",

"Sayo",

"Magda",

"1 hit combo",

"Monster",

"OO",

"Pwede ba",

"Sana Sinabi",

"Jet Lag",

"SuperMan",

"Tadhana",

"Pilosopo",

"Dont you Remember u love me",

"With a Smile",

"Cerberus",

"Chiksilog",

"Hinahanap hanap kita",

"Love Ur Self",

"What do u mean",

"Huling Dance",

"Lunes",

"Asukal",

"Like im gona luz u",

"Lay me Down",

"Tattoed on my mind",

"Roses",

"Tulog",

"Indak",

"Dilem Ah",

"Sky Ful of Stars",

"So High",

"Legend",

"WhatsLove",

"Dazed n Confused",

"All i have",

"Disclosure",

"Lovin",

"too Close",

"Pusong Bato",

"Si Kae nga",

"Sila",

"Drive it lyk u stole",

"Fast Car",

"Home",

"All of ME",

"See you Again",

"Collide",

"Crazy Love",

"Everything",

"feeling Good",

"Mr. n Mrs JOnes",

"Put your head ",

"Sway",

"Tell Me Where it Hurts",

"Only Reminds me of U",

"Let me be D 1",

"Wag ka ng Umiyak",

"Kailan",

"Hanggang Dito Na lang",

"Iloveyou Goodbye",

"Much has been Said",

"Masaya",

"End of the Road";

// Artists

// The artist name for each track

setarray .artist$[0], "Parokya Ft Gloc9",

"Loonie",

"Linkin Park",

"alicia Keys",

"Himig Hambog",

"Silent Sanctuary",

"Gloc 9",

"Gloc 9",

"Paramore",

"Updharmadown",

"Soap Dish",

"Soap Dish",

"Simple Plan",

"Boyce Avenue",

"UpdharmaDown",

"Smugglaz Ft Loonie",

"Usher",

"Eraserheads",

"AbraFt.Loonie&Ron",

"BobbyTheGay",

"Sitti",

"Justin Bibe",

"Justin Fever",

"Kamikazee Ft Kyla",

"SpongeCoke",

"Moron5",

"Meghan Trainor",

"Mac Cover",

"sitti",

"Chainsmoker",

"Mac Cover",

"UpdharmaDown",

"Neli Ft Kelly",

"Coldplay",

"Dojo Cat",

"Drake",

"Ashanti Ft Fat JOe",

"Jake Miller",

"JLow Ft LLCool",

"Latch Ft Sam SMith",

"Mantsya",

"Next",

"BobbyTheBroken",

"ang hanap hanap",

"SUD",

"Glitch Mob",

"Tobtok Ft Kaltok",

"DAughtry",

"John Legend",

"WizKhalifa",

"Howie Day",

"Machael Buble",

"Machael Buble",

"Machael Buble",

"Machael Buble",

"On Bobby's Shoulder",

"Machael Buble",

"MYMP",

"MYMP",

"Master Pogi",

"KZ Tandingan",

"Noel Cabangon",

"Space Boy",

"Juris",

"kawayan",

"kawayan",

"boyzIIMen";

// Files

// The file name for each track (no extension)

setarray .file$[0], "1001",

"1002",

"1003",

"1004",

"1005",

"1006",

"1007",

"1008",

"1009",

"1010",

"1011",

"1012",

"1013",

"1014",

"1015",

"1016",

"1017",

"1018",

"1019",

"1020",

"1021",

"1022",

"1023",

"1024",

"1025",

"1026",

"1027",

"1028",

"1029",

"1030",

"1031",

"1032",

"1033",

"1034",

"1035",

"1036",

"1037",

"1038",

"1039",

"1040",

"1041",

"1042",

"1043",

"1044",

"1045",

"1046",

"1047",

"1048",

"1049",

"1050",

"1051",

"1052",

"1053",

"1054",

"1055",

"1056",

"1057",

"1058",

"1059",

"1060",

"1061",

"1062",

"1063",

"1064",

"1065",

"1066",

"1067";

// Waitingroom display

// Configured to show the NPC's display name

waitingroom strnpcinfo(1), 0;

end;

}

Edited by Fae
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

Did you try it already?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...