Jump to content

totopizza

Mapper
  • Contenido

    137
  • Ingreso

  • Última visita

  • Días ganados

    3

Todo lo publicado por totopizza

  1. Nombre: Niveles por macro Author: Metrikcz Imágenes: No hay... Fuente: [TUT] Niveles por macro Resto del Tutorial: Bueno aquí les dejo un sistema de levels por macro Aclaro que este sistema sirve para cualquier MOD #include <amxmodx> #include <hamsandwich> // Lo usaremos para registrar el event cuando el jugador muere #define PLUGIN "Tutorial Levels" // Nombre de plugin #define VERSION "1.0" // Version #define AUTHOR "Metrikcz" // Author // Macro, en este definiremos la cantidad de experiencia que se ocupara para cada nivel, es una operacion // donde %1 es el level del usuario, Por ejemplo: // si es level 8 el resultado seria: 640 --- > 8 * 8 * 10 = 640 // El macro ustedes lo pueden definir a como ustedes quieran la operacion, como la sientan mas comoda #define level_up(%1) (%1 * %1 * 10) // Variables donde almacenaremos el nivel y experiencia del jugador new g_level[33], g_exp[33] // Variable de la cvar new cvar_expkill, cvar_maxlevel new menu public plugin_init() { // Registramos el plugin register_plugin(PLUGIN, VERSION, AUTHOR) // registramos el evento cuando alguien muere RegisterHam(Ham_Killed, "player", "fw_playerkilled_post", 1) // Registramos el comando para que el usuario vea su level y para que vea la exp de cada level register_clcmd("say /level", "clcmd_saylevel") register_clcmd("say /levels", "clcmd_saylevels") // registramos la cvar cvar_expkill = register_cvar("exp_kill", "25") cvar_maxlevel = register_cvar("maxlevel", "100") // Creamos el menu, global porque nunca cambiara amenos que cambien el valor de la cvar de maxlevel create_menu() } create_menu() { // Creamos el menu, primer parametro nombre del menu, el segundo es el handler menu = menu_create("Tutorial Sistema de Levels | Experiencia para cada level", "handler_menu") //Creamos una variable en la cual guardaremos el valor de el level maximo new len[40], maxlevel = get_pcvar_num(cvar_maxlevel) // Lopeamos entre todos los posibles levels for(new i = 0; i < maxlevel; i++) { formatex(len, charsmax(len), "\wLevel: \y%d - \r%i", i+1, level_up(i)) menu_additem(menu, len, "1") // tercer parametro no importa } } // Foward Cuando el usuario entra al servidor public client_putinserver(id) { // Reiniciamos los valores de level y experiencia g_level[id] = 1 g_exp[id] = 0 } public fw_playerkilled_post(victim, attacker) { // chequeamos si el atacante esta conectado, si no lo esta ignoramos la funcion if(!is_user_connected(attacker)) return HAM_IGNORED; // chequeamos si la victima es igual al attacker, osea si el jugador se suicido if(victim == attacker) return HAM_IGNORED; // Llamamos a la funcion donde al atacante le daremos la experiencia de la cvar // get_pcvar_num(cvar_exp_kill) Obtiene el valor de la cvar para darle la exp de la cvar // Primer parametro define para quien va la experiencia y el segundo la cantidad set_exp(attacker, get_pcvar_num(cvar_expkill)) // Le mandamos un mensaje disiendo que gano "X" experiencia por matar client_print(attacker, print_chat, "Ganas %d Experiencia por Matar", get_pcvar_num(cvar_expkill)) return HAM_IGNORED; } set_exp(id, exp) { // Le damos al usuario la experiencia del segundo parametro "exp" g_exp[id] += clamp(exp, 0, level_up(get_pcvar_num(cvar_maxlevel))) //Llamamos a esta funcion para checar su ha subido de nivel update_level(id) } update_level(id) { // Checamos si su experiencia es mayor o igual a la necesaria para su siguiente nivel y si no es el level maximo, por ejemplo: // Digamos que es level 5, la experiencia necesaria para su siguiente level es 250 deacuerdo al macro (5*5*10=250) // si su exp es 253 muy bien se cumple la condicion y subira de level // level_up(g_level[id]) == level_up(5) porque suponiendo que g_level[id] es 5 asi seria while(g_exp[id] >= level_up(g_level[id]) && g_level[id] < get_pcvar_num(cvar_maxlevel)) { // Aumentamos su level g_level[id]++ /* g_level[id] += 1 || es lo mismo que lo de arriba */ // Mandamos un mensaje disiendo que subio de level client_print(id, print_chat, "Felicidades has ascendido al level: %d", g_level[id]) } } public clcmd_saylevel(id) { // Mandamos un mensaje mostrando su level y experiencia client_print(id, print_chat, "Su level: %d / %d| Experiencia: %d / %i", g_level[id], get_pcvar_num(cvar_maxlevel), g_exp[id], level_up(g_level[id])) // Mandamos un return plugin_handled para que no salga en el say cuando el wey escribe /level // Regularmente no deberia de salir pero a algunos servers se les bugea el say (zp) y si aparece return PLUGIN_HANDLED; } public clcmd_saylevels(id) menu_display(id, menu, 0) public handler_menu(id, menu, item) { // si no le pico al 0, osea para salir del menu, le mostraremos el menu de nuevo if(!(item == MENU_EXIT)) clcmd_saylevels(id) } say /level - Vemos el level del usuario y level maximo y tambien vemos su exp y experiencia necesaria para su siguiente level say /levels - Vemos la lista de levels y la experiencia que se necesita para cada uno!
  2. Nombre del plugin: Show HUD Armor & Health Author: acetatomil Descripción: con este plugin podremos saber nuestra vida y armor mientras estamos vivos. Imágenes: No hay... Fuente: Show Armor & Health Código: #include <amxmodx> #include <amxmisc> #include <fakemeta> #define PLUGIN "Show HUD Armor & Health" #define VERSION "1.0" #define AUTHOR "acetatomil" #define TASK_HUD 2100 new SyncHUD public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) SyncHUD = CreateHudSyncObj() } public client_putinserver(id) { set_task(1.0, "ShowHUD", id+TASK_HUD, _, _, "b") } public client_disconnect(id) { remove_task(id+TASK_HUD) } public ShowHUD(taskid) { new id = taskid-TASK_HUD if (!is_user_alive(id)) { id = pev(id, pev_iuser2) if (!is_user_alive(id)) return; } set_hudmessage(0, 255, 0, 0.39, 0.8, 0, 6.0, 1.0) ShowSyncHudMsg(id, SyncHUD, "Heatlh: %d Armor: %d", get_user_health(id), get_user_armor(id)) }
  3. Nombre del plugin: Matanzas y Muertes por HUD Author: K.-' Descripción: Con este plugin sabremos simpre cuantos frags y muertes tenemos Imágenes: Fuente: Show Frags y Muertes por hud Código: #include <amxmodx> #include <amxmisc> #define PLUGIN "Plugin peruano" #define VERSION "1.0" #define AUTHOR "K.-'" new g_conectado[33] new g_hud public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) g_hud = CreateHudSyncObj() } public client_putinserver(id) /* Cuando el cliente (PLAYER) entra al server : */ { g_conectado[id] = 1 set_task(2.0,"hud_personal",id+100,_,_,"b"); // Hacemos un hud con "B" , signifca que se actualiza solo cada 2 seg } public client_disconnect(id) /* Cuando el cliente se desconecta del server */ { g_conectado[id] = 0 // Le Seteamos la variable g_conectado[33] en false o 0 , es lo mismo. } public hud_personal(taskid) // El hud , registrado cuando el cliente entra al servidor { new id = taskid - 100; // Algun dia voy a saber explicar esto if (!g_conectado[id]) return; set_hudmessage(85, 255, 212, 0.80, 0.12, 0, 6.0, 12.0) // Las caracteristicas del Hud ShowSyncHudMsg(id, g_hud, "Matanzas %d^nMuertes %d", get_user_frags(id), get_user_deaths(id)) }
  4. Nombre del Plugin: Anti Graffitis Author: Avila Descripción: Con este plugin, podremos bloquear los graffitis en el servidor. El jugador no podra pintar en la pared Imágenes: No hay... Fuente: Anti Graffitis Código: #include <amxmodx> #include <engine> #define PLUGIN "Anti Graffitis" #define VERSION "1.0" #define AUTHOR "Avila" const IMPULSE_SPRAY = 201 new g_msgSayText, g_bMsgSend; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("HLTV", "event_round_start", "a", "1=0", "2=0"); register_impulse(IMPULSE_SPRAY, "cmd_grafity") g_msgSayText = get_user_msgid("SayText") } public event_round_start() g_bMsgSend = 0; public cmd_grafity(id) { if (~g_bMsgSend & (1 << id-1)) { g_bMsgSend ^= (1 << id-1) message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, id); write_byte(id); write_string("^x01[AMXX] No esta permitido poner^x04 graffitis^x01 en este servidor"); message_end(); } return PLUGIN_HANDLED }
  5. Nombre del plugin: Player PRo Author: Metrikcz Descripcíon: Con este plugin, podremos saber quien es el mejor jugador, el que tiene mas frags mediantes un Mensaje HUD Imágenes: No hay.. Fuente: Player PRo Código: #include <amxmodx> #include <hamsandwich> #define PLUGIN "Player PRo" #define VERSION "1.1" #define AUTHOR "Metrikcz" new g_maxplayers, g_player_proname[32] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Killed, "player", "reload_playerpro", 1) g_maxplayers = get_maxplayers() set_task(1.0, "show_playerpro", _, _, _, "b") } public show_playerpro() { set_hudmessage(0, 255, 255, 0.80, 0.11, 1, 1.0, 1.0) show_hudmessage(0, "Jugador en cabeza: %s", g_player_proname) } public reload_playerpro() { new sort[33][2], count for(new id = 1; id <= g_maxplayers; id++) { if(is_user_connected(id)) { sort[count][0] = id sort[count][1] = get_user_frags(id) count++ } } SortCustom2D(sort, count, "sort_player_frags") get_user_name(sort[0][0], g_player_proname, charsmax(g_player_proname)) } public sort_player_frags(pl1[], pl2[]) { if(pl1[1] > pl2[1]) return -1; else if(pl1[1] < pl2[1]) return 1; return 0; }
  6. Esto es un copy and paste! Nombre del plugin: AdminConnect1.0 Author: Skylar Descripción: Version 1.0 - Al entrar un admin sale un say, ejemplo del say "Nombre - Skylar || Admin - Vip" Version 1.1 - En el say sale "Nombre - Skylar || Admin - VIP || Vencimiento - 22/04/2015" y automaticamente se desactiva el admin cuando haya vencido. Adentro del sma pueden configurar los flags de los admin(Vip, full y basic) y el nombre del admin Creditos - alan_el_more( por su plugin de admin vencimiento ) Include unixtime ------------------------- Imágenes: No hay.. Fuente: AdminConnect1.0 Código sma: Descargar AdminConnect1.0 ------ Descargar AdminConnect1.1
  7. Esto es un Copy and Paste! Autor: Pancho.-'+hud;Erater Descripción Extendida: Bueno esto lo hice hace mucho, y no sabia si ponerlo en plugins nuevos o aportes. Al final me decidi por aportes, pero edite el autor por mi y le di agradecimientos a Empower, ya que uso su algoritmo para detectar cuando es scroll. Es un buen metodo por cierto. Si bien esta el de Empower, es como que le falta un "plus" ya que detecta el scroll pero no lo bloquea completamente, y a mi se me ocurrio esta idea para bloquearlo definitivamente. Yo lo testie en mi server y funciona perfecto. Pero eso si!, no tuve buena experiencia ya que la mayoria duckeaba con la rueda.. o ni sabia lo que era scroll :roflmao: tanta gente pidiendo un anti-scroll bueno aca les traigo uno, y espero que les sirva. Anti-Scroll Fade to Black (v1.2) Que es Scroll?: Descripcion corta: Cuando un player duckea con scroll (rueda del mouse), a este mismo se le pondra la pantalla en negro o del color que hallamos pre-configurado con "color_type". A su vez tambien sera "tosqueado" (trabado). Nota: El fadescreen ira desapareciendo de a poco. Librerias: Cvars: anti_scroll "1" (cualquier valor diferente a 1, desactiva el plugin) screen_fade "1" (cualquier valor diferente a 1, desactiva el fadescreen) color_type "0 000 0" (cambia el color al momento de mostrar el fadescreen, formato RGB) Nota: Si ponen el valor en "255 0 0" o derivados del rojo. El hud de cuenta regresiva no se vera o sera dificultoso verlo. Instalacion: Inconvenientes (posibles bugs): v1.2 - (Esperando a ser encontrados). Creditos: v1.0- Pancho.-'+hud;Erater (mi tag de scripter). Empower (por tomar prestado el algoritmo de la deteccion del scroll). ConnorMCLoad (por el include). bibu (por sugerirme utilizar el include de screenfade). v1.2 - ErikMav94 (por ayudarme a setear task por id de player) Por Hacer: - Cuando el jugador recibe una flashbang, hacer que el efecto siga si el player scrolleo y el Fade Screen es colocado. (Solucionado) Changelog: Imagenes: v1.2 - Nuevo hud con un conteo regresivo hasta que se acabe el pantallazo: (Problemas de flashbang y transparencias arreglados). Nuevos creditos al primer spawn: ---------------- Es mas un post de la publicacion de un nuevo plugin pero.. hasta tiene Changelog :proud: Bueno tan solo deseaba compartirlo, si coinsideran que puede ir en Plugins Nuevos, bueno pueden moverlo y si no dejenlo aca en aportes!, espero que le sirva a mas de uno!. PD: No puse ni una sola tilde! Saludos!!! ----------------------------- Fuente: Anti-Scroll Fade to Black Código sma: Descargar Código inc: Descargar
  8. Mala suerte lo han borrado!
  9. Exelente Tutorial, no tenia ni idea de que se podia hacer eso....
  10. totopizza

    lebbek

  11. Bienvenido!!
  12. pues veo que lleva mucho trabajo PD: me gustaria aprender ese truco xDD
  13. Están muy buenas! felicidades pero esto lo haces con el vhe? porque vi el de los auriculares, y vi que tienen resplandor en el suelo
  14. totopizza

    Ilusión...

    jaja estaba en google buscando fotos y me encuentro esta XD Esta muy buena jaja
  15. Muy buen Tuto
  16. Muchas gracias, jaja cuidado se caen en una trampa que hay ahí :'D
  17. O Dios Mio, pero que hermosas puertas, estan muy buenas, Buen aporte!
  18. Usé el siguiente guardado: #include <adv_vault> Para que funcione el guardado tienes que tener activado el adv_vault.amxx en plugins.ini, aquí te dejare de donde lo puedes descargar. https://amxmodx-es.com/Thread-API-Advanced-Vault-System-1-4c-23-12-2014 PD: se me olvidada, para que las natives funcionen, el plugins tAPI_sis_frags.amxx tiene que estar activado :|
  19. Muchas gracias, el guardado lo puse por nick, simplemente podrían usar cualquier sistema de registro y así evitarian que entren con los nicks y que les arruinen su scorer. Ahora del otro lado de que tu me dices sobre el nvault, dejame decirte que yo ese guardado nunca lo supe usar, me contaron algunos amigos que sí, a ellos aveces se les bugeaba borrandole los datos como tu lo acabas de mencionar. PD: También podrían usar el no name changed
  20. Parte #2 [-] Nombre del plugin: tAPI_Informacion.sma [-] Creador del plugin: totopizza [-] Breve descripción: Con este plugin, podrán ver su información, mediante unos comandos del say. [-] Comandos: [TABLE=class: grid, width: 500, align: center] [TR] [TD=align: center]Comando [/TD] [TD=align: center]say [/TD] [TD=align: center]say_team [/TD] [TD=align: center]consola [/TD] [/TR] [TR] [TD=align: center]/informacion [/TD] [TD=align: center]Sí [/TD] [TD=align: center]Sí [/TD] [TD=align: center]No [/TD] [/TR] [TR] [TD=align: center]/info [/TD] [TD=align: center]Sí [/TD] [TD=align: center]Sí [/TD] [TD=align: center]No [/TD] [/TR] [TR] [TD=align: center]/hora [/TD] [TD=align: center]Sí [/TD] [TD=align: center]No[/TD] [TD=align: center]No [/TD] [/TR] [/TABLE] [-] Código: #include <amxmodx> #include <amxmisc> #include <fun> #include <tAPI>//Incluimos el include para que funcionen los dias, horas, minutos etc.. new const szTag[] = "[Mundo Mapping]";//Este es un prefix, o como ustedes le quieran llamar public plugin_init() { register_plugin("Menu de informacion", "v1.0", "totopizza"); register_clcmd("say /info", "clcmd_info",_,"< Muestra tu informacion en un menu>");//Comando say para abrir el menu de informacion register_clcmd("say /informacion", "clcmd_info",_,"< Muestra tu informacion en un menu>");//Comando say para abrir el menu de informacion register_clcmd("say_team /info", "clcmd_info",_,"< Muestra tu informacion en un menu>");//Comando say_team para abrir el menu de informacion register_clcmd("say_team /informacion", "clcmd_info",_,"< Muestra tu informacion en un menu>");//Comando say_team para abrir el menu de informacion register_clcmd("say /hora", "clcmd_hora",_, "< Muestra la hora local del server>"); register_menucmd(register_menuid("Menu informacion"), 1023, "info_key"); } public clcmd_info(id) { static tTexto[256], tName[32], len; len = 0; get_user_name(id, tName, charsmax(tName));//Obtenemos el nombre del player, con tName new dia, hora, mins, segs, keys = MENU_KEY_0; dia = tGet_user_days(id);//Obtenemos los dias jugados del player hora = tGet_user_hrs(id);//Obtenemos las horas jugados del player mins = tGet_user_mins(id);//Obtenemos los minutos jugados del player segs = tGet_user_segs(id);//Obtenemos los segundos jugados del player len += formatex(tTexto[len], charsmax(tTexto) - len, "\r%s \yInformación de la cuenta:\w %s^n", szTag, tName); len += formatex(tTexto[len], charsmax(tTexto) - len, "\r* \wTiempo jugado: \d%d \yDias \w| \d%d \yHoras \w| \d%d \yMinutos \w| \d%d \ySegundos^n^n",dia,hora,mins,segs); len += formatex(tTexto[len], charsmax(tTexto) - len, "\r* \y Frags: \d%d^n", tGet_user_frags(id)); len += formatex(tTexto[len], charsmax(tTexto) - len, "\r* \y Muertes: \d%d^n^n", tGet_user_muertes(id)); len += formatex(tTexto[len], charsmax(tTexto) - len, "\r0. Salir"); show_menu(id, keys, tTexto, -1, "Menu informacion");//Mostramos el menu return PLUGIN_HANDLED; } public info_key(id, keys, menu) { if(keys == 1) return PLUGIN_HANDLED; else return PLUGIN_HANDLED; return PLUGIN_HANDLED; } public clcmd_hora(id) { new szHora[20]; get_time("%I:%M:%S %p", szHora, charsmax(szHora)); tChat(id, "^4%s ^1La hora local del servidor es: ^4%s", szTag, szHora) } public tChat(id, const input[], any:...) { static szMsg[191], msgSayText; if (!msgSayText) msgSayText = get_user_msgid("SayText"); replace_all(szMsg, 190, "!g", "^4"); replace_all(szMsg, 190, "!y", "^1"); replace_all(szMsg, 190, "!team", "^3"); vformat(szMsg, 190, input, 3); message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, .player = id); write_byte(id ? id : 33); write_string(szMsg); message_end(); } - - - Actualizado - - - Parte #3 [-] Nombre del include: tAPI.inc [-] Creador del include: totopizza [-] Breve descripción: Con este include podrán saber los frags, muertes, dias, horas, minutos, segundos, del usuario, tambien le podran dar, se los dejo aquí con una descripción: [TABLE=class: grid, width: 500, align: center] [TR] [TD=align: center]Native[/TD] [TD=align: center]GET[/TD] [TD=align: center]SET[/TD] [TD=align: center]Descripción[/TD] [/TR] [TR] [TD=align: center]tGet_user_frags(id)[/TD] [TD=align: center]Sí[/TD] [TD=align: center]No[/TD] [TD=align: center]Con esta native podemos saber los frags del jugador[/TD] [/TR] [TR] [TD=align: center]tGet_user_muertes(id)[/TD] [TD=align: center]Sí[/TD] [TD=align: center]No[/TD] [TD=align: center]Con esta native podemos saber las muertes del jugador[/TD] [/TR] [TR] [TD=align: center]tGet_user_segs(id)[/TD] [TD=align: center]Sí[/TD] [TD=align: center]No[/TD] [TD=align: center]Con esta native podemos saber los segundos que tiene el jugador[/TD] [/TR] [TR] [TD=align: center]tGet_user_mins(id)[/TD] [TD=align: center]Sí[/TD] [TD=align: center]No[/TD] [TD=align: center]Con esta native podemos saber los minutos que tiene el jugador[/TD] [/TR] [TR] [TD=align: center]tGet_user_hrs(id)[/TD] [TD=align: center]Sí[/TD] [TD=align: center]No[/TD] [TD=align: center]Con esta native podemos saber las horas que tiene el jugador[/TD] [/TR] [TR] [TD=align: center]tGet_user_days(id)[/TD] [TD=align: center]Sí[/TD] [TD=align: center]No[/TD] [TD=align: center]Con esta native podemos saber los días que tiene el jugador[/TD] [/TR] [TR] [TD=align: center]---------------------------------------------------------------------------------[/TD] [TD=align: center]--------------[/TD] [TD=align: center]-------------[/TD] [TD=align: center]------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------[/TD] [/TR] [TR] [TD=align: center]tSet_user_frags(id, frags)[/TD] [TD=align: center]No[/TD] [TD=align: center]Sí[/TD] [TD=align: center]Con esta native podemos sumarle una cantidad de frags al player[/TD] [/TR] [TR] [TD=align: center]tSet_user_muertes(id, muertes)[/TD] [TD=align: center]No[/TD] [TD=align: center]Sí[/TD] [TD=align: center]Con esta native podemos darle una cantidad de muertes al player[/TD] [/TR] [TR] [TD=align: center]tSet_user_screenfade(id,rrr,ggg,bbb,duracion, alpha)[/TD] [TD=align: center]No[/TD] [TD=align: center]Sí[/TD] [TD=align: center]Con esta native podemos darle un ScreenFade al jugador, duración en minutos, alpha es la opacidad, esto es como el env_fade[/TD] [/TR] [TR] [TD=align: center]tSet_info(id, info)[/TD] [TD=align: center]No[/TD] [TD=align: center]Sí[/TD] [TD=align: center]Con esta native podemos darle una info en la tabla de scorer al player: info = 0 (Solo le damos los frags) info = 1 (Solo le damos las muertes) info = 2 (Le damos los frags y muertes)[/TD] [/TR] [TR] [/TR] [/TABLE] - - - Actualizado - - - Codigo del inc: /****************************************** ** Included by totopizza ** ********** ************ *******************************************/ #if defined _tAPI_included #endinput #endif #define _tAPI_included native tGet_user_frags(id) native tGet_user_muertes(id) native tGet_user_segs(id) native tGet_user_mins(id) native tGet_user_hrs(id) native tGet_user_days(id) native tSet_user_frags(id, frags) native tSet_info(id, info) native tSet_user_muerts(id, muertes) native tSet_user_screenfade( id, rrr, ggg, bbb, duracion,alpha ) - - - Actualizado - - - Para este plugin deberan usar el guardado creado por destro: https://amxmodx-es.com/Thread-API-Advanced-Vault-System-1-4c-23-12-2014
  21. [-] Nombre del plugin: tAPI_sis_frags.sma [-] Creador del plugin: totopizza [-] Breve descripción: Este plugin lo ise yo se 0, el plugin consiste en un sistema que te guarda los frags, muertes, también tiene un sistema de tiempo jugado - dias, horas, minutos, segundos - con guardadoal entrar tú al servidor se te darán los frags y muertes, también se te dará el conteo del tiempo jugado, al desconectarte se te guardaran los datos, también cuenta con un sistema de servers, te aparecen en consola. [-] Código: #include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <cstrike> #include <fun> #include <adv_vault> #define TASK_CONTEO 5012 #define TASK_ID ( taskid - TASK_CONTEO) #define TIME_ANUNCIO 300.0 // 5 minutos new const szTag[] = "[Mundo Mapping]"; new const szWeb[] = "http://www.mundo-mapping.net/foro/"; #pragma semicolon 1 enum _:DATA_SERVER { SERVER[32], IP[25] }; new const szServers[][DATA_SERVER] = { /* Nombre del Server Ip del server */ { "[Mundo-Mapping] Servidor 1", "123.123.123.123:27015" }, { "[Mundo-Mapping] Servidor 2", "123.123.123.123:27016" }, { "[Mundo-Mapping] Servidor 3", "123.123.123.123:27017" } }; enum { CAMPO_FRAGS=0, CAMPO_MUERTES, CAMPO_SEGUNDOS, CAMPO_MINUTOS, CAMPO_HORAS, CAMPO_DIAS, MAX_CAMPOS }; new g_campos[MAX_CAMPOS], tGuardado; new tPlayerName[33][32]; new t_frags[33], t_muertes[33], t_segundos[33], t_minutos[33], t_horas[33], t_dias[33]; new g_msgScreenFade; public plugin_init() { register_plugin("SIS. FRAGS-MUERTES-DIAS", "v1.0", "totopizza"); //Menu... register_clcmd("chooseteam", "clcmd_menu"); register_clcmd("jointeam", "clcmd_menu"); //Guardado tGuardado = adv_vault_open("Tguardado", false); g_campos[CAMPO_FRAGS] = adv_vault_register_field(tGuardado, "FRAGS"); g_campos[CAMPO_MUERTES] = adv_vault_register_field(tGuardado, "MUERTES"); g_campos[CAMPO_SEGUNDOS] = adv_vault_register_field(tGuardado, "SEGUNDOS"); g_campos[CAMPO_MINUTOS] = adv_vault_register_field(tGuardado, "MINUTOS"); g_campos[CAMPO_HORAS] = adv_vault_register_field(tGuardado, "HORAS"); g_campos[CAMPO_DIAS] = adv_vault_register_field(tGuardado, "DIAS"); adv_vault_init(tGuardado); //Hams RegisterHam(Ham_Spawn, "player", "fw_hamspawn", 1);//al revivir RegisterHam(Ham_Killed, "player", "fw_hamkilled", 1);//Al matar set_task(TIME_ANUNCIO, "tAnuncio", _,_,_, "b"); g_msgScreenFade = get_user_msgid( "ScreenFade" );//Para que funcione el efecto del ScreenFase o lo que hacemos con los mapas: env_fade } /***************************** * NATIVES * ******************************/ public plugin_natives() { register_native("tGet_user_frags", "tGet_user_frags", 1); register_native("tGet_user_muertes", "tGet_user_muertes", 1); register_native("tGet_user_segs", "tGet_user_segs", 1); register_native("tGet_user_mins", "tGet_user_mins", 1); register_native("tGet_user_hrs", "tGet_user_hrs", 1); register_native("tGet_user_days", "tGet_user_days", 1); register_native("tSet_user_frags", "tSet_user_frags", 1); register_native("tSet_user_muertes", "tSet_user_muertes", 1); register_native("tSet_user_screenfade", "tSet_user_screenfade", 1); } /********************************** * Player Killed and Player Spawn * ***********************************/ public fw_hamspawn(id) { //tSet_info - id, 0 = frags, 1 = muertes, 2 = frags y muertes tSet_info(id, 2); tChat(id, "^4%s ^1Preciona la letra ^4M ^1Para abrir el menú principal", szTag); } public fw_hamkilled(victim, attacker) { if(!is_user_connected(victim) || !is_user_connected(attacker)) return HAM_IGNORED; if( victim == attacker) { t_frags[victim]--; t_muertes[victim]++; return HAM_IGNORED; } t_frags[attacker]++; t_muertes[victim]++; tSet_user_screenfade(victim, 255, 000, 000, 2, 100);//Esto es como el env_fade de los mapas (: return HAM_IGNORED; } /***************************** * MENU and SERVERS * ******************************/ public clcmd_menu(id) { if(get_user_team(id) == 1 || get_user_team(id) == 2) { new menu = menu_create("\r[Mundo Mapping] \yMenú principal", "opc_menu"); menu_additem(menu, "\wMi Información", "1"); menu_additem(menu, "\yLista de Servidores", "2"); if(is_user_admin(id)) menu_additem(menu, "\yMenú de Admin", "3"); else menu_additem(menu, "\dMenú de Admin", "3"); menu_setprop(menu, MPROP_EXITNAME, "\ySalir"); menu_display(id, menu, 0); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } public opc_menu(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } switch(item) { case 0: client_cmd(id, "say /info"); case 1: show_servers(id); case 2: { if(!is_user_admin(id)) { tChat(id, "^4%s ^1No tienes acceso a este menú!", szTag); return PLUGIN_HANDLED; } else { client_cmd(id, "amxmodmenu"); } } } menu_destroy(menu); return PLUGIN_HANDLED; } public show_servers(id) { console_print(id, "=============== %s ===============", szTag); static i; for(i = 0; i < sizeof(szServers); i++) console_print(id, "#%d | %s - IP: %s", i+1, szServers[i][sERVER], szServers[i][iP]); console_print(id, "Está es la lista de Nuestros Servidores"); console_print(id, "=============== %s ===============", szTag); client_cmd(id, "toggleconsole"); return PLUGIN_HANDLED; } /********************************** * Client Connect and Disconnec * ***********************************/ public client_putinserver(id) { get_user_name(id, tPlayerName[id], charsmax(tPlayerName[])); t_frags[id] = 0; t_muertes[id] = 0; t_segundos[id] = 0; t_minutos[id] = 0; t_horas[id] = 0; t_dias[id] = 0; tCargar(id); set_task(1.0, "start_conteo", id); } public client_disconnect(id) { tGuardar(id); remove_task(id+TASK_CONTEO); } /***************************** * GUARDADO * ******************************/ public tCargar(id) { if(!adv_vault_get_prepare(tGuardado, _, tPlayerName[id])) return; t_frags[id] = adv_vault_get_field(tGuardado, g_campos[CAMPO_FRAGS]); t_muertes[id] = adv_vault_get_field(tGuardado, g_campos[CAMPO_MUERTES]); t_segundos[id] = adv_vault_get_field(tGuardado, g_campos[CAMPO_SEGUNDOS]); t_minutos[id] = adv_vault_get_field(tGuardado, g_campos[CAMPO_MINUTOS]); t_horas[id] = adv_vault_get_field(tGuardado, g_campos[CAMPO_HORAS]); t_dias[id] = adv_vault_get_field(tGuardado, g_campos[CAMPO_DIAS]); tSet_info(id, 2); } public tGuardar(id) { adv_vault_set_start(tGuardado); adv_vault_set_field(tGuardado, g_campos[CAMPO_FRAGS], t_frags[id]); adv_vault_set_field(tGuardado, g_campos[CAMPO_MUERTES], t_muertes[id]); adv_vault_set_field(tGuardado, g_campos[CAMPO_SEGUNDOS], t_segundos[id]); adv_vault_set_field(tGuardado, g_campos[CAMPO_MINUTOS], t_minutos[id]); adv_vault_set_field(tGuardado, g_campos[CAMPO_HORAS], t_horas[id]); adv_vault_set_field(tGuardado, g_campos[CAMPO_DIAS], t_dias[id]); adv_vault_set_end(tGuardado, 0, tPlayerName[id]); } /***************************** * TIEMPO JUGADO * ******************************/ public start_conteo(id) set_task(1.0, "tiempo_jugado", id+TASK_CONTEO,_,_, "b"); public tiempo_jugado(taskid) { t_segundos[TASK_ID]++; if(t_segundos[TASK_ID] > 60) { t_minutos[TASK_ID]++; t_segundos[TASK_ID] = 0; } if(t_minutos[TASK_ID] > 60) { t_horas[TASK_ID]++; t_minutos[TASK_ID] = 0; t_segundos[TASK_ID] = 0; } if(t_horas[TASK_ID] >= 24) { t_dias[TASK_ID]++; t_horas[TASK_ID] = 0; t_minutos[TASK_ID] = 0; t_segundos[TASK_ID] = 0; } return PLUGIN_HANDLED; } public tAnuncio() tChat(0, "^4%s ^1Visita nuestro foro para más información ^4%s", szTag, szWeb); /***************************** * NATIVE GET * ******************************/ public tGet_user_frags(id) return t_frags[id]; public tGet_user_muertes(id) return t_muertes[id]; public tGet_user_segs(id) return t_segundos[id]; public tGet_user_mins(id) return t_minutos[id]; public tGet_user_hrs(id) return t_horas[id]; public tGet_user_days(id) return t_dias[id]; /***************************** * NATIVE SET * ******************************/ public tSet_user_frags(id, frags) return t_frags[id] += frags; public tSet_user_muertes(id, muertes) return t_muertes[id] += muertes; public tSet_info(id, info) { static i; for(i = 1; i < get_maxplayers() ; i++) { if(!is_user_connected(i)) continue; if(info == 0) set_user_frags(i, t_frags[i]); if(info == 1) cs_set_user_deaths(i,t_muertes[i]); if(info >= 2) { set_user_frags(i, t_frags[i]); set_user_frags(i, t_frags[i]); cs_set_user_deaths(i,t_muertes[i]); } } } public tSet_user_screenfade(id, rrr, ggg, bbb, duracion, alpha) { message_begin( id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, g_msgScreenFade, _, id ); write_short( duracion * 4096 ); write_short( duracion * 4096 ); write_short( 0x0000 ); write_byte( rrr ); // Color 1 write_byte( ggg ); // Color 2 write_byte( bbb ); // Color 3 write_byte( alpha ); message_end( ); } /***************************** * COLOR MENSAJE * ******************************/ public tChat(id, const input[], any:...) { static szMsg[191], msgSayText; if (!msgSayText) msgSayText = get_user_msgid("SayText"); replace_all(szMsg, 190, "!g", "^4"); replace_all(szMsg, 190, "!y", "^1"); replace_all(szMsg, 190, "!team", "^3"); vformat(szMsg, 190, input, 3); message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, .player = id); write_byte(id ? id : 33); write_string(szMsg); message_end(); }
  22. Muchas Gracias! Me alegra que te haya gustado
  23. -Slots: 32 -FPS: Más de 70 -Tipo: Zombie Escape -Peso: 768 Kilo Bytes -Descripción: Este mapa esta orientado al video juego clasico PACMAN. Espero que les guste el mapa y que lo disfruten en sus servidores/amigos/solo (? -Imágenes: -Link de Descarga: El mapa lo pueden descargar dando clic Aquí
  24. totopizza

    1993

    podrías explicar en que consiste el mapa
  25. Hola, esto iria en la sección Scripting, cuando crees el tema, o lo muevan a esa sección te explicare.
×
×
  • Crear nuevo...

Información importante

Al utilizar nuestra web, aceptas nuestras Política de privacidad estás de acuerdo con las condiciones establecidas.