I

IstarsILeon

Usuario (Argentina)

Primer post: 16 jul 2012Último post: 16 jul 2012
2
Posts
15
Puntos totales
1
Comentarios
C
crear niveles zombie plague
Hazlo Tu MismoporAnónimo7/16/2012

Hola soy novato en taringa viene con la intencion de eseñarles a los que son nuevos en temas de plugin y pawn del amx studio . Hoy les enseñare a crear sistema de niveles para su zp . Bueno comenzemos . Se van a // Player vars Debajo de new g_survivor[33] // is surivor Agregan : g_level[33] // la variable de los niveles Bien ahora vamos a poner el sonido cuando pasa de nivel y cuando baja de nivel nos vamos a : new const sound_win_zombies[][] = { "zombie_plague/zombiewin.wav" } debajo agregamos : new const sound_level_up[][] = { "zombie_plague/za_levelup.wav" } new const sound_level_down[][] = { "zombie_plague/za_leveldown.wav" } Bien ahora hay que precacharlo nos vamos a : // Custom sounds y debajo agregamos : for (i = 0; i < sizeof sound_level_up; i++) engfunc(EngFunc_PrecacheSound, sound_level_up) for (i = 0; i < sizeof sound_level_down; i++) engfunc(EngFunc_PrecacheSound, sound_level_down) for (i = 0; i < sizeof sound_win_zombies; i++) Bien ahora vamos a setear los niveles y los niveles maximos nos vamos a : // Player Vars al final antes de llegar a //Game vars y ahi agregamos : #define MAX_LVL 6 // si agregan mas nivels cambien ese 6 por la cantidad de niveles que pusieron new const iLevels[MAX_LVL] = { 0, 1, 50, 100, 150, 200 } // ahi agregamos 6 niveles si quieren mas sigan poniendo , y la cantidad de ammo packs que quieren para el proximo nivel Bien ahora vamos a restringir las armas por niveles nos vamos a : public show_menu_buy1(taskid) y lo cambiamos por esto: // Buy Menu 1 public show_menu_buy1(taskid) { // Get player id static id (taskid > g_maxplayers) ? (id = ID_SPAWN) : (id = taskid); // Zombies, survivors or wesker get no guns if (g_zombie || g_survivor || g_wesker || !is_user_alive(id)) return; // Bots pick their weapons randomly if (is_user_bot(id)) { buy_primary_weapon(id, random_num(0, sizeof g_primary_items - 1)) menu_buy2(id, random_num(0, sizeof g_secondary_items - 1)) return; } static menu[999], len, weap len = 0 // Title len += formatex(menu, sizeof menu - 1 - len, "^nyCategoria %s - Arma Primaria r[%d-%d]^n^n", g_categoryb ? "B" : "A", WPN_STARTID+1, min(WPN_STARTID+7, WPN_MAXIDS)) // 1-7. Weapon List for (weap = WPN_STARTID; weap < min(WPN_STARTID+7, WPN_MAXIDS); weap++) if (g_level,g_resets >= g_primary_level,resetsprimary) len += formatex(menu, sizeof menu - 1 - len, "r%d.w %s [yMin Nivelw%d]^n", weap-WPN_STARTID+1, WEAPONNAMES[get_weaponid(g_primary_items)], g_primary_level) else len += formatex(menu, sizeof menu - 1 - len, "r%d.d %s [rMin Nivelw%dd]^n", weap-WPN_STARTID+1, WEAPONNAMES[get_weaponid(g_primary_items)], g_primary_level) // 8. Back 9. Next - 0. Exit len += formatex(menu, sizeof menu - 1 - len, "^nr8.y Anterior^nr9.y Siguiente^n^nr0.y Salir") show_menu(id, KEYSMENU, menu, -1, "Buy Menu 1") } Ahora vamos a crear la const para los niveles de las armas . nos vamos a // Buy Menu: Primary and Secondary Weapons y debajo agregamos : new const g_primary_level[] = {0, 1,2, 3, 4, 5, 6, 6, 6, 6, 6, 1, 2, 1, 3, 5,4, 6 } // 18 armas = 18 levels para las armas del 1al 6 si agregaron mas level cambien los 6 por otros niveles ejemplo 50 , 75 etc. Ahora lo que hicimos antes fue hacer que se vea en el menu de las armas que level pide , ahora lo vamos a bloquear si no tiene el nivel suficiente no la podra comprar entonces nos vamos a public menu_buy1(id, key) y lo cambiamos por esto : // Buy Menu 1 public menu_buy1(id, key) { // Zombies, survivors or weskers get no guns if (g_zombie || g_survivor || g_wesker || !is_user_alive(id)) return PLUGIN_HANDLED; // Special keys / weapon list exceeded if (key >= MENU_KEY_BACK || WPN_SELECTION >= WPN_MAXIDS) { switch (key) { case MENU_KEY_BACK: // back { if (WPN_STARTID-7 >= 0) WPN_STARTID -= 7 } case MENU_KEY_NEXT: // next { if (WPN_STARTID+7 < WPN_MAXIDS) WPN_STARTID += 7 } case MENU_KEY_EXIT: // exit { return PLUGIN_HANDLED; } } // Show buy menu again show_menu_buy1(id) return PLUGIN_HANDLED; } if(g_level < g_primary_level[WPN_SELECTION]) { show_menu_buy1(id) client_print(id, print_center, "No Tenes Nivel Suficiente Para usar esta Arma (Nivel Requerido %d)", g_primary_level[WPN_SELECTION]) zp_colored_print(id, "^x04^x01 No Tenes Nivel Suficiente Para usar esta Arma ^x03(Nivel Requerido %d)", g_primary_level[WPN_SELECTION]) return PLUGIN_HANDLED; } // Buy primary weapon buy_primary_weapon(id, WPN_SELECTION) // Show pistols menu show_menu_buy2(id) return PLUGIN_HANDLED; } Bueno ahora vamos a setear que cuando el player entre al server sea level 1 como hacemos nos vamos a // Reset Player Vars y nos vamos a la parte de if (resetall) ahi agregamos : g_level = 1 Ahora vamos a crear el famoso hud que nos indica los niveles que tenemos nos vamos a // Show your health , tambien si usan versiones anteriores van a // Show health y debajo buscamos esto: if (g_showstats) y lo cambiamos por este : if (g_showstats) { set_hudmessage(212, 255, 255, 0.1, 0.1, 0, 6.0, 9.9999) ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "Clase: %s^nNivel: %d^nAmmoPacks: %d^nVitalidad: %d", class, g_level[id,g_ammopacks, pev(id, pev_health)) } else if (!g_showstats) return; } } Bien ahora esta 100% funcional los niveles lo que vamos a hacer es crear un print que informe cuando subimos y pasamos de nivel , nos vamos al final del plugin incluso debajo de la } y agregamos : // Actualizar nivel y rango public update_level(taskid) { static id id = ID_UPDATE; // Subir nivel if (g_level < 255) { while (g_ammopacks >= iLevels[g_level + 1]) { g_level++ zp_colored_print(id, "^x04^x01 Felicidades! Has ascendido a nivel: ^x04%d^x01", g_level) OnePlaySound(id, sound_level_up[random_num(0, sizeof sound_level_up -1)]) } } // Decrecer nivel if (g_level > 1) { while (g_ammopacks < iLevels[g_level]) { g_level-- zp_colored_print(id, "^x04^x01 Mala suerte! Has descendido a nivel: ^x04%d^x01", g_level) OnePlaySound(id, sound_level_down[random_num(0, sizeof sound_level_down -1)]) } } Bueno ya esta funcional copilen , pegen el amxx en plugin , creen una partida en el cs y disfruten leveleando a lo loco , un salu2 y nos vemos en la prox guia de los sistemas de reset , menus , submenus y guardado nvault , fvault .

15
0
T
tutorial crear menus y submenus zombie plague
Hazlo Tu MismoporAnónimo7/16/2012

Hola aqui les dejo un tuto echo por mi de como se crea un menu y de el un submenu : Bueno empezemos lo primero que deben hacer es ir a su .sma lo abren se van al final del plugin incluso debajo del } y agregan : public menu_jugadores(id) // menu_jugadores es el nombre que le di si quieren otro lo cambian { new menu = menu_create("^nrConfigurar Perfil", "menu_jugadores_handler") menu_additem(menu, "wCosas", "1", 0) menu_setprop(menu,MPROP_EXITNAME,"ySalir") menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0) return PLUGIN_HANDLED } public menu_jugadores_handler(id, menu, item) { if (item == MENU_EXIT) return PLUGIN_HANDLED new data[6], iName[64], access, callback; menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback); switch (str_to_num(data)) { case 1: menu_cosas(id) } return PLUGIN_HANDLED; } Bueno hay tenemos nuestro menu ahora hacemos el submenu public menu_cosas(id) // este es el submenu { new menu = menu_create("^nrConfigurar Perfil", "menu_cosas_handler") menu_additem(menu, "wCosas", "1", 0) menu_setprop(menu,MPROP_EXITNAME,"ySalir") menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0) return PLUGIN_HANDLED } public menu_cosas_handler(id, menu, item) { if (item == MENU_EXIT) return PLUGIN_HANDLED new data[6], iName[64], access, callback; menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback); switch (str_to_num(data)) { case 1: { fm_set_user_health(id,500) // pueden poner otras cosas este es un ejemplo } } return PLUGIN_HANDLED; } Bueno ese fue mi pequeño tutorial espero que les alla servido no vemos en el prox salu2

0
4
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.