kINg BiT Publicado 29 de enero del 2017 Denunciar Compartir Publicado 29 de enero del 2017 Hola Nostalgia Gamers Aquí dejo un tutorial de armas por niveles y aquí esta, tienen dudas por favor díganlo. Cita #include <amxmodx> #include <hamsandwich> #include <fun> #include <cstrike> #define PLUGIN "Tutorial Armas por niveles" #define VERSION "1.1" #define AUTHOR "[M]etrikcz" #define user_level(%1) g_level[%1] // variable de su nivel deben de modificarla aqui! new g_menu[33], g_level[33] enum armas_caracteristicas { // crearemos un enum para que nos sea mas facil, comodo y mejor utilizar el const NOMBRE[20], CSW_NAME, WEAPON_NAME[20], BPAMMO, NIVEL } new const g_armas_prim[][armas_caracteristicas] = { // Nombre en el menu | CSW_ | weapon_ | Balas | Nivel { "Schmidt TMP" , CSW_TMP , "weapon_tmp", 60, 1}, { "Ingram MAC-10" , CSW_MAC10 , "weapon_mac10" , 60, 2}, { "UMP 45" , CSW_MP5NAVY , "weapon_mp5navy" , 60, 3}, { "Navy MP5" , CSW_UMP45 , "weapon_ump45" , 60, 4}, { "M3 Super 90" , CSW_M3 , "weapon_m3" , 28, 5}, { "XM1014 M4" , CSW_XM1014 , "weapon_xm1014" , 28, 6}, { "FN P90" , CSW_P90 , "weapon_p90" , 100, 7}, { "Schmidt Scout" , CSW_SCOUT , "weapon_scout" , 10, 8}, { "Famas" , CSW_FAMAS , "weapon_famas" , 90, 10}, { "IMI Galil" , CSW_GALIL , "weapon_galil" , 105, 12}, { "AK-47 Kalashnikov" , CSW_AK47 , "weapon_ak47" , 90, 14}, { "M4A1 Carbine" , CSW_M4A1, "weapon_m4a1", 90, 16}, { "SG-552 Commando" , CSW_SG552 , "weapon_sg552" , 90, 18}, { "Aug" , CSW_AUG , "weapon_aug" , 90, 20}, { "AWP Magnum Sniper" , CSW_AWP , "weapon_awp" , 10, 22}, { "G3SG1 Auto-Sniper" , CSW_G3SG1 , "weapon_g3sg1" , 60, 23}, { "SG-550 Auto-Sniper" , CSW_SG550 , "weapon_sg550" , 60, 24}, { "M249 SAW" , CSW_M249 , "weapon_m249" , 200, 25} // Importante que el ultimo no lleve coma ya que es el ultimo como en una oracion: pepito se cogio a sara, victoria, andrea (despues de andrea ya no lleva coma) } new const g_armas_sec[][armas_caracteristicas] = { // Nombre en el menu | CSW_ | weapon_ | Balas | Nivel { "Glock" , CSW_GLOCK18 , "weapon_glock18" , 40, 0}, { "USP" , CSW_USP , "weapon_usp", 12, 15}, { "P228" , CSW_P228 , "weapon_p228", 40, 30}, { "Deagle" , CSW_DEAGLE , "weapon_deagle", 21, 50}, { "Fiveseven" , CSW_FIVESEVEN , "weapon_fiveseven", 40, 70}, { "Dual Elite" , CSW_ELITE , "weapon_elite", 60, 90} } // funcion que se llama cuando inicia el plugin, osea en un cambio de mapa o inicio del servidor public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) // registramos plugin RegisterHam(Ham_Spawn, "player", "fw_spawn", 1) // registramos cuando el usuario revive register_clcmd("say /guns", "cmd_guns") // registramos el comando para abrirle el menu de armas } // funcion que se llama cuando el usuario reviva public fw_spawn(id) { if(cs_get_user_team(id) == CS_TEAM_CT) {// si es policia . g_menu[id] = 0 // en el menu que esta se lo setearemos en 0 show_guns_prim(id) // le abriremos el menu de armas primarias } } show_guns_prim(id) { new len[50], menu = menu_create("Eliga su arma primaria", "handler_prim") // creamos el menu en la variable menu for(new i = 0; i < sizeof g_armas_prim; i++) { // lopearemos entre todas las armas primarias que hay // si el level del usuario es mayor o igual al del arma ... if(user_level(id) >= g_armas_prim[i][NIVEL]) menu_additem(menu, g_armas_prim[i][NOMBRE], "") // agregamos el item normal else { // y si no lo es formatex(len, charsmax(len), "\r[ \yNivel Requerido: \d%d \r]", g_armas_prim[i][NIVEL]) menu_additem(menu, len, "") } } menu_display(id, menu, 0) // le mostramos el menu al usuario en la pagina 1 } public handler_prim(id, menu, item) { if(item == MENU_EXIT) { // si esta saliendo del menu, osea presiono 0 menu_destroy(menu) // destruimos el menu para ahorrar memoria return PLUGIN_HANDLED; // paramos la funcion } if(!(cs_get_user_team(id) == CS_TEAM_CT)) // checamos si no es policia return PLUGIN_HANDLED; // si no lo es detenemos la funcion if(user_level(id) < g_armas_prim[item][NIVEL]) { // si su nivel es inferior a la del arma client_print(id, print_center, "Bloqued Level: %d", g_armas_prim[item][NIVEL]) // le mandaremos un mensaje diciendo el nivel que ocupa show_guns_prim(id) // le abriremos de nuevo el menu return PLUGIN_HANDLED; // y paramos la funcion } strip_user_weapons(id) // le tiramos todas las armas give_item(id, "weapon_knife") // le damos el cuchillo ya que tambien se lo quita give_item(id, g_armas_prim[item][WEAPON_NAME]) // le damos la arma que eligio cs_set_user_bpammo(id, g_armas_prim[item][CSW_NAME], g_armas_prim[item][BPAMMO]) // damos el numero de balas del arma g_menu[id] = 1 // seteamos la variable en 1 y ya explicare luego para que la usamos show_guns_sec(id) // le llamamos a la funcion del menu de armas secundarias osea pistolas al usuario return PLUGIN_HANDLED; // y returneamos al final la funcion por reglas de pawn porque si no nos mandaria un waring } show_guns_sec(id) { new len[50], menu = menu_create("Eliga su arma secundaria", "handler_sec") // creamos el menu en la variable menu for(new i = 0; i < sizeof g_armas_sec; i++) { // lopearemos entre todas las armas secundarias que hay // si el level del usuario es mayor o igual al del arma ... if(user_level(id) >= g_armas_sec[i][NIVEL]) menu_additem(menu, g_armas_sec[i][NOMBRE], "") // agregamos el item arma normal else { // y si no lo es formatex(len, charsmax(len), "\r[ \yNivel Requerido: \d%d \r]", g_armas_sec[i][NIVEL]) menu_additem(menu, len, "") } } menu_display(id, menu, 0) // le mostramos el menu al usuario en la pagina 1 } public handler_sec(id, menu, item) { if(item == MENU_EXIT) { // si esta saliendo del menu, osea presiono 0 menu_destroy(menu) // destruimos el menu para ahorrar memoria return PLUGIN_HANDLED; // paramos la funcion } if(!(cs_get_user_team(id) == CS_TEAM_CT)) // checamos si no es policia return PLUGIN_HANDLED; // si no lo es detenemos la funcion if(user_level(id) < g_armas_sec[item][NIVEL]) { // si su nivel es inferior a la del arma client_print(id, print_center, "Bloqued Level: %d", g_armas_sec[item][NIVEL]) // le mandaremos un mensaje diciendo el nivel que ocupa show_guns_sec(id) // le abriremos de nuevo el menu return PLUGIN_HANDLED; // y paramos la funcion } give_item(id, g_armas_sec[item][WEAPON_NAME]) // le damos la arma secundaria que eligio cs_set_user_bpammo(id, g_armas_sec[item][CSW_NAME], g_armas_sec[item][BPAMMO]) // damos el numero de balas del arma g_menu[id] = 2 // seteamos la variable en 2 return PLUGIN_HANDLED; // y returneamos al final la funcion por reglas de pawn porque si no nos mandaria un waring } // funcion que se llamara cuando el usuario escriba /guns public cmd_guns(id) { // ahora aqui es donde utilizaremos la variable g_menu // en ella sabremos: si ya eligio armas, si no lo ha hecho, si eligio pero se quedo a medias // por ejemplo eligio primaria pero no eligio secundaria porque se le cerro o el mismo se salio sin querer // bien al respawnear no ha elegido armas y le seteamos la variable g_menu en 0, en "fw_spawn(id)" switch(g_menu[id]) { // swtich se ira directamente al case donde este su valor // si no ha elegido case 0: show_guns_prim(id) // abrimos armas primarias case 1: show_guns_sec(id) // abrimos secundarias ya que ya eligio primarias case 2: client_print(id, print_chat, "Usted ya eligio armas") // le desimos que ya eligio armas } } @Vergasaurio si no tenes idea, decime y te ayudo. Vergasaurio reaccionó a esto 1 Enlace al comentario Compartir en otros sitios More sharing options...
Vergasaurio Publicado 30 de enero del 2017 Denunciar Compartir Publicado 30 de enero del 2017 Hola, si no pongo armas por niveles en zp es por mayoria, la mayoria no quiere entrar y que sean nivel 10 con ak (por ej) y recien son TMP , a pesar de que es la idea de los niveles pero bueno, si en algun momento hacen votación o algo y sale mayoria armas por niveles y @Hazar me dice, lo actualizo, hasta entonces no. Enlace al comentario Compartir en otros sitios More sharing options...
LUq_Q Publicado 30 de enero del 2017 Denunciar Compartir Publicado 30 de enero del 2017 Para mi seria muy desnivelado el zombie asi, osea, uno que entra hace poco no va a tener ni daño, nada, contra uno que esta jugando hace ej 1 mes. Que se yo, mi punto de vista. Enlace al comentario Compartir en otros sitios More sharing options...
Posts recomendados