Advertisement
Guest User

emisser, Creacion de emisoras de radio In Game, by Escobar

a guest
Apr 8th, 2013
444
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.82 KB | None | 0 0
  1. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
  2. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
  3. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
  4. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
  5. //---------------- ------------- ----------- ------------------ -----------//
  6. //Sistema de emisoras por Escobar para la comunidad en general. ----------//
  7. //Respetando los creditos en el GM también respetas el trabajo del creador//
  8. //--------------- ------------------- ------------------------- ----------//
  9.  
  10.  
  11. #include <a_samp>
  12. #include "../include/gl_common.inc"
  13. #include <Dini>
  14. #define SetVar SetPVarInt
  15. #define GetVar GetPVarInt
  16. public OnFilterScriptInit()
  17. {
  18. print("\n--------------------------------------");
  19. print(" Sistema de emisoras cargado correctamente");
  20. print("--------------------------------------\n");
  21. Loadmisser();
  22. print("Emisoras cargadas correctamente");
  23. checkemisser();
  24. return 1;
  25. }
  26.  
  27. public OnFilterScriptExit()
  28. {
  29. Savemisser();
  30. for(new p = 0;p < GetMaxPlayers(); p++)
  31. {
  32. if(IsPlayerConnected(p))
  33. {
  34. SetVar(p, "pvar1", 0);
  35. SetVar(p, "edit", 0);
  36. SetVar(p, "habil", 0);
  37. SetVar(p, "Play", 0);
  38. }
  39. }
  40. return 1;
  41. }
  42.  
  43. public OnPlayerSpawn(playerid)
  44. {
  45. checkindex(playerid);
  46. return 1;
  47. }
  48.  
  49. new emisser[11][256];
  50. new owner[11][256];
  51. new url[11][256];
  52. public OnPlayerCommandText(playerid, cmdtext[])
  53. {
  54. new cmd[256], idx; cmd = strtok(cmdtext, idx);
  55. // de admins -----------------------------------------------------
  56. if(strcmp("/editaremisora", cmdtext, true) == 0)
  57. {
  58. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xC7C7C7FF, #No Admin);
  59. new text[500];
  60. checkemisser();
  61. format(text, 500, "%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]", emisser[1], owner[1], emisser[2], owner[2], emisser[3], owner[3], emisser[4], owner[4], emisser[5], owner[5], emisser[6], owner[6], emisser[7], owner[7], emisser[8], owner[8], emisser[9], owner[9], emisser[10], owner[10]);
  62. ShowPlayerDialog(playerid, 9931, DIALOG_STYLE_LIST, "Emisora Lista", text, "Editar", "Cancelar");
  63. return 1;
  64. }
  65. if(strcmp("/owner", cmdtext, true) == 0)
  66. {
  67. if(GetVar(playerid, "edit") == 0) return SendClientMessage(playerid, 0xC7C7C7FF, "Admin: Use /editaremisora y seleccione la emisora a editar");
  68. ShowPlayerDialog(playerid, 9932, DIALOG_STYLE_INPUT, "Edicion Admin emisora [Dueño]", "\nAdmin: Ingresa el nombre del Dueño en siguiente recuadro y da click en Aceptar.", "Aceptar", "Cacenlar");
  69. return 1;
  70. }
  71.  
  72. if(strcmp("/name", cmdtext, true) == 0)
  73. {
  74. if(GetVar(playerid, "edit") == 0) return SendClientMessage(playerid, 0xC7C7C7FF, "Admin: Use /editaremisora y seleccione la emisora a editar");
  75. ShowPlayerDialog(playerid, 9933, DIALOG_STYLE_INPUT, "Edicion Admin emisora [Nombre]", "\nAdminn: Ingresa el nombre de la radio en el siguiente recuadro de texto y da click en Aceptar.", "Aceptar", "Cacenlar");
  76. return 1;
  77. }
  78. if(strcmp("/borrar", cmdtext, true) == 0)
  79. {
  80. new iem = GetVar(playerid, "edit");
  81. if(iem == 0) return SendClientMessage(playerid, 0xC7C7C7FF, "Admin: Use /editaremisora y seleccione la emisora a editar");
  82. new Format[128]; format(Format, 128, "¿Seguro que quieres resetear la emisora:%s de %s?", emisser[iem], owner[iem]);
  83. ShowPlayerDialog(playerid, 9934, DIALOG_STYLE_MSGBOX, "Borrar Emisora",Format, "Borrar", "Cancelar");
  84. return 1;
  85. }
  86. //---- Opcional, administradores permitiran la creacion de emisora a un usuario
  87. //Quitar si no utiliza, junto con la linea de /crearemisora (habil)
  88. if(strcmp("/permitir", cmd, true) == 0)
  89. {
  90. new tmp[128]; tmp = strtok(cmdtext,idx);
  91. if(!strlen(tmp)) return SendClientMessage(playerid, 0xC7C7C7FF, "/permitir [ id user ]");
  92. SetPVarInt(strval(tmp), "habil", 1);
  93. SendClientMessage(strval(tmp), 0xC7C7C7FF, "Un admin te dio permiso para adquirir emisora, {FFAE0D}/crearemisora");
  94. SendClientMessage(playerid, 0xC7C7C7FF, "Usuario permitido a la creación de una emisora.");
  95. return 1;
  96. }
  97. //--------------------------------------------------------------------
  98. if(strcmp("/crearemisora", cmdtext, true) == 0)
  99. {
  100. checkindex(playerid);
  101. if(GetVar(playerid, "pvar1") >= 1) return SendClientMessage(playerid, 0xC7C7C7FF, "Solo puedes tener una emisora a tu nombre");
  102. if(GetVar(playerid, "habil") == 0) return SendClientMessage(playerid, 0xC7C7C7FF, "Pide a un admin el permiso para crear una emisora."); // quitar si no utiliza
  103. ShowPlayerDialog(playerid, 9930, DIALOG_STYLE_INPUT, "Crea tu emisora", "Elije un nombre para tu emisora de radio, esta va a ser controlada solo por ti con el comando {FFAE0D}/musica\n{C7C7C7}Piensalo bien, luego no podrás cambiarlo.", "Aceptar", "Cancelar");
  104. return 1;
  105. }
  106. if(strcmp("/musica", cmdtext, true) == 0)
  107. {
  108. checkindex(playerid);
  109. if(GetVar(playerid, "pvar1") >= 1)
  110. {
  111. ShowPlayerDialog(playerid, 9929, DIALOG_STYLE_INPUT, "Emisora de Radio", "\nIngresa la url de tu emisora de radio o tema suelto.", "Play", "Cancelar");
  112. }
  113. else SendClientMessage(playerid, 0xC7C7C7FF, "No tienes una emisora de radio");
  114. return 1;
  115. }
  116. if(strcmp("/radio", cmdtext, true) == 0)
  117. {
  118. new text[500];
  119. format(text, 500, "%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]\n%s [%s]", emisser[1], owner[1], emisser[2], owner[2], emisser[3], owner[3], emisser[4], owner[4], emisser[5], owner[5], emisser[6], owner[6], emisser[7], owner[7], emisser[8], owner[8], emisser[9], owner[9], emisser[10], owner[10]);
  120. ShowPlayerDialog(playerid, 9928, DIALOG_STYLE_LIST, "Emisoras Disponibles", text, "Escuchar", "Cancelar");
  121. return 1;
  122. }
  123. if(strcmp("/radioff", cmdtext, true) == 0)
  124. {
  125. StopAudioStreamForPlayer(playerid);
  126. SetVar(playerid, "Play", 0);
  127. SendClientMessage(playerid, 0xC7C7C7FF, "Apagaste la radio, para encenderla {FFAE0D}/radio.");
  128. return 1;
  129. }
  130. return 0;
  131. }
  132.  
  133. #define CH "emisoras.ini"
  134. forward Savemisser();
  135. public Savemisser()
  136. {
  137. new str[128];
  138. if(!dini_Exists(CH)) dini_Create(CH);
  139. for(new emi = 1; emi < 11; emi++)
  140. {
  141. format(str, 128, "Radio%d", emi);
  142. dini_Set(CH, str, emisser[emi]);
  143. format(str, 128, "Owner%d", emi);
  144. dini_Set(CH, str, owner[emi]);
  145. }
  146. return 1;
  147. }
  148.  
  149. forward Loadmisser();
  150. public Loadmisser()
  151. {
  152. new str[128];
  153. if(!dini_Exists(CH)) dini_Create(CH);
  154. for(new emi = 1; emi < 11; emi++)
  155. {
  156. format(str, 128, "Radio%d", emi);
  157. emisser[emi] = dini_Get(CH, str);
  158. format(str, 128, "Owner%d", emi);
  159. owner[emi] = dini_Get(CH, str);
  160. }
  161. return 1;
  162. }
  163.  
  164. forward checkemisser();
  165. public checkemisser()
  166. {
  167. for(new emi = 1; emi < 11; emi++)
  168. {
  169. if(!strlen(emisser[emi]))
  170. {
  171. new textex[24]; format(textex, 24, "Sin señal");
  172. emisser[emi] = textex;
  173. }
  174. if(!strlen(owner[emi]))
  175. {
  176. new ownern[64]; format(ownern, 64, "Sin propietario");
  177. owner[emi] = ownern;
  178. }
  179. }
  180. return 1;
  181. }
  182.  
  183. new openid;
  184. forward openidex();
  185. public openidex()
  186. {
  187. for(new emi = 1; emi < 11; emi++)
  188. {
  189. if(strcmp(owner[emi], "Sin propietario", true)) continue;
  190. openid = emi;
  191. break;
  192. }
  193. return 1;
  194. }
  195.  
  196. forward releasepvars();
  197. public releasepvars()
  198. {
  199. for(new p = 0; p < GetMaxPlayers(); p++)
  200. {
  201. if(IsPlayerConnected(p))
  202. {
  203. SetVar(p, "pvar1", 0);
  204. checkindex(p);
  205. }
  206. }
  207. return 1;
  208. }
  209.  
  210.  
  211. forward checkindex(playerid);
  212. public checkindex(playerid)
  213. {
  214. new name[MAX_PLAYER_NAME];
  215. GetPlayerName(playerid, name,sizeof(name));
  216. for(new emi = 1; emi < 11; emi++)
  217. {
  218. if(!strlen(owner[emi])) continue;
  219. if(strcmp(owner[emi], name, true) == 0)
  220. {
  221. SetVar(playerid, "pvar1", emi);
  222. break;
  223. }
  224. }
  225. return 1;
  226. }
  227.  
  228. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  229. {
  230. if(dialogid == 9934)
  231. {
  232. if(response)
  233. {
  234. new ime = GetPVarInt(playerid, "edit");
  235. owner[ime] = "";
  236. emisser[ime] = "";
  237. checkemisser();
  238. releasepvars();
  239. SendClientMessage(playerid, 0xC7C7C7FF, "Emisora editada correctamente");
  240. }
  241. return 1;
  242. }
  243. if(dialogid == 9930)
  244. {
  245. openidex();
  246. if(openid == 0) return SendClientMessage(playerid, 0xC7C7C7FF, "No hay emisoras disponibles");
  247. if(response)
  248. {
  249. if(strlen(inputtext) < 4)
  250. {
  251. ShowPlayerDialog(playerid, 9930, DIALOG_STYLE_INPUT, "Crea tu emisora", "Elije un nombre para tu emisora de radio, esta va a ser controlada solo por ti con el comando /musica\nPiensalo bien, luego no podrás cambiarlo.", "Aceptar", "Cancelar");
  252. return SendClientMessage(playerid, 0xC7C7C7FF, "Elige un nombre de por lo menos {FFAE0D}4 {C7C7C7}carácteres.");
  253. }
  254. new name[MAX_PLAYER_NAME];
  255. GetPlayerName(playerid, name,sizeof(name));
  256. new Format[24]; format(Format, 24, "%s", inputtext);
  257. new Texto[128]; format(Texto, 128, "Nueva emisora creada {FFAE0D}[%s] {C7C7C7}Dueño: {FFAE0D}%s", inputtext, name);
  258. emisser[openid] = Format;
  259. owner[openid] = name;
  260. SendClientMessageToAll(0xC7C7C7FF, Texto);
  261. SetVar(playerid, "habil", 0); // quitar si no utiliza
  262. openid = 0;
  263. }
  264. return 1;
  265. }
  266. if(dialogid == 9929)
  267. {
  268. if(response)
  269. {
  270. new soraid = GetVar(playerid, "pvar1");
  271. new Format[128]; format(Format, 128, "%s", inputtext);
  272. url[soraid] = Format;
  273. SendClientMessage(playerid, 0xC7C7C7FF, "Url cargada correctamente");
  274. SetVar(playerid, "pvar1", 0);
  275. for(new p = 0; p<GetMaxPlayers();p++)
  276. {
  277. if(IsPlayerConnected(p))
  278. {
  279. if(GetPVarInt(p, "Play") == soraid)
  280. {
  281. PlayAudioStreamForPlayer(p, url[soraid]);
  282. }
  283. }
  284. }
  285. }
  286. return 1;
  287. }
  288. if(dialogid == 9933)
  289. {
  290. if(response)
  291. {
  292. new id = GetVar(playerid, "edit");
  293. new Format[24]; format(Format, 24, "%s", inputtext);
  294. emisser[id] = Format;
  295. checkemisser();
  296. SendClientMessage(playerid, 0xC7C7C7FF, #Emisora editada correctamente.);
  297. }
  298. return 1;
  299. }
  300. if(dialogid == 9932)
  301. {
  302. if(response)
  303. {
  304. new id = GetVar(playerid, "edit");
  305. new Format[24]; format(Format, 24, "%s", inputtext);
  306. owner[id] = Format;
  307. releasepvars();
  308. SendClientMessage(playerid, 0xC7C7C7FF, #Emisora editada correctamente.);
  309. }
  310. return 1;
  311. }
  312. if(dialogid == 9931)
  313. {
  314. if(response)
  315. {
  316. new id = listitem+1;
  317. SetVar(playerid, "edit", id);
  318. SendClientMessage(playerid, 0xC7C7C7FF, "Ahora puedes editar la emisora seleccionada.");
  319. SendClientMessage(playerid, 0xC7C7C7FF, "Use: {FFAE0D}/name {C7C7C7}para editar el nombre, {FFAE0D}/owner {C7C7C7}para editar el dueño, {FFAE0D}/borrar {C7C7C7}para eliminar.");
  320. SendClientMessage(playerid, 0xC7C7C7FF, "Para seleccionar otra emisora vuelva a usar {FFAE0D}/editaremisora.");
  321. }
  322. return 1;
  323. }
  324. if(dialogid == 9928)
  325. {
  326. if(response)
  327. {
  328. new id = listitem+1;
  329. if(strcmp(emisser[id], "Sin Señal", true) == 0) return SendClientMessage(playerid, 0xC7C7C7FF, "{FFAE0D}Emisora sin señal");
  330. new str[128]; format(str, 128, "Estas escuchando la emisora: {FFAE0D}%s , para apagar la radio {FFAE0D}/radioff", emisser[id]);
  331. SendClientMessage(playerid,0xC7C7C7FF, str);
  332. PlayAudioStreamForPlayer(playerid, url[id]);
  333. SetVar(playerid, "Play", id);
  334. }
  335. return 1;
  336.  
  337. }
  338. return 1;
  339. }
  340.  
  341. //----------------- ---------------------------- ---------------- ---------//
  342. //Sistema de emisoras por Escobar para la comunidad en general. ----------//
  343. //Respetando los creditos en el GM también respetas el trabajo del creador//
  344. //----------------- ---------------------------- -------------- ---------//
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement