Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // https://rathena.org/board/topic/117251-broadcaster-npc-request/
- /*
- DROP TABLE IF EXISTS `e_broadcast`;
- CREATE TABLE IF NOT EXISTS `e_broadcast` (
- `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
- `aid` int(11) NOT NULL DEFAULT '0',
- `cid` int(11) NOT NULL DEFAULT '0',
- `name` varchar(25) NOT NULL DEFAULT '',
- `message` varchar(255) NOT NULL DEFAULT '',
- `time` int(11) NOT NULL DEFAULT '0',
- `status` tinyint(3) NOT NULL DEFAULT '1',
- `repeat` tinyint(3) NOT NULL DEFAULT '1',
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM;
- */
- prontera,155,181,5 script Broadcaster 4_F_KAFRA1,{
- doevent "broadcast_main::OnTalk";
- }
- - script broadcast_main -1,{
- OnInit:
- .zeny = 100000;
- .broadcast_delay_second = 180;
- .log_limit = 3;
- end;
- OnTalk:
- .@size = query_sql("SELECT `id`,`message`,`time`,`repeat` FROM `e_broadcast` WHERE `cid` = "+getcharid(0)+" ORDER BY `id` DESC LIMIT "+.log_limit, .@id, .@message$, .@time, .@repeat);
- mes "Would you like to broadcast a message?";
- next;
- switch (select(
- "Broadcast",
- (.@size ? "History" : ""),
- "Cancel"
- )) {
- case 2:
- for (.@i = 0; .@i < .@size; .@i++) {
- mes (.@i + 1 )+". "+.@message$[.@i];
- mes " ";
- .@menu$ = .@menu$ + "Recent Broadcast # "+(.@i + 1) + ":";
- }
- .@i = select(.@menu$) - 1;
- if (.@repeat[.@i]) {
- mes "This broadcast cant be used to repeat now.";
- close;
- }
- .@broadcast_message$ = .@message$[.@i];
- case 1:
- if (.@broadcast_message$ == "") {
- mes "Enter your broadcast message:";
- input .@broadcast_message$;
- }
- next;
- mes "Confirm to broadcast this?";
- mes "^777777"+.@broadcast_message$+"^000000";
- mes " ";
- if (.zeny) {
- mes "Zeny: "+F_InsertComma(.zeny)+"z";
- mes " ";
- }
- if (select("Confirm", "Cancel") == 1) {
- .@gettimetick = gettimetick(2);
- if (.zeny > 0 && Zeny <= .zeny) {
- mes "You dont have enough zeny.";
- }
- else if (.broadcast_delay_second > 0 && .@gettimetick < (.@time + .broadcast_delay_second)) {
- mes "You cant broadcast for next "+((.@time + .broadcast_delay_second) - .@gettimetick)+" second(s)";
- }
- else {
- Zeny -= .zeny;
- announce "<"+strcharinfo(0)+">: "+.@broadcast_message$, bc_all;
- query_sql("INSERT INTO `e_broadcast` (`aid`,`cid`,`name`,`message`,`time`,`repeat`) VALUES ( "+getcharid(3)+","+getcharid(0)+",'"+escape_sql(strcharinfo(0))+"','"+escape_sql(.@broadcast_message$)+"', "+.@gettimetick+","+(.@repeat[.@i] > 0)+")");
- if (.@id[.@i] > 0) {
- query_sql("UPDATE `e_broadcast` SET `repeat` = 1 WHERE `id` = "+.@id[.@i]+" LIMIT 1");
- }
- mes "done.";
- }
- }
- break;
- default:
- break;
- }
- close;
- }
Add Comment
Please, Sign In to add comment