Jump to content
  • ¡Hola, Invitado! Únete a nuestra comunidad y construyamos juntos algo increíble.

    ¡Bienvenido a nuestra comunidad! Al unirte, formarás parte de una comunidad apasionada por MAPPING. Para participar activamente, simplemente haz clic en el botón ‘Conectarse’ o ‘Registrarse’. Una vez registrado, podrás publicar mensajes, compartir tus experiencias y explorar los diversos foros disponibles. ¡Esperamos verte pronto y compartir momentos increíbles juntos!

[ZP][Tutorial] Tutoriales pequeños

Valorar este tema


Publicaciones recomendadas

Publicado

Hola !

 

Bueno este es mi 2do tutorial con relacion a Zombie Plague

Hoy aprenderemos :

 

- Cambiar la version del Zombie Plague

- Mensajes al Ganar AmmoPacks

- Agregar o editar los mensajes que se muestran al empezar el round

- Agregar Efectos al Ambiente ( Zombie Plague 4.2 )

- Modificar los HUD originales

- Cambiar la posicion de los HUD

- Cambiar los models de los players, admins, survivor, nemesis etc.. (Zombie Plague 4.2)

- Cambiar el color a los Menus

- Congelar al nemesis

- Poder dañar a los zombies congelados

- Hacer que los Admins Ganen el Doble de AmmoPacks

 

Comenzamos,

Primero que todo deben abrir el archivo zombie_plague40.sma

para poder hacer todo lo siguiente :

 

Cambiar la version del Zombie Plague

 

Deben Buscar lo siguiente :

 

// Plugin Version

Donde tendran esto :

new const PLUGIN_VERSION[] = "4.2"

( o 4.3 depende de la version de su zp :P )

 

Ustedes lo pueden cambiar a su gusto:

 

new const PLUGIN_VERSION[] = "MZ"

Asi el nombre de partida seria :

 

Zombie Plague MZ

 

 

Mensajes al Ganar AmmoPacks

 

Deben buscar la siguiente linea en su ZP

 

// Reward ammo packs for every [ammo damage] dealt

tendran algo parecido a esto

 

           // Reward ammo packs for every [ammo damage] dealt
           while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
           {
               g_ammopacks[attacker]++
               g_damagedealt[attacker] -= get_pcvar_num(cvar_ammodamage)
           }

Para que nuestro mensaje salga cada ves que el player gane 1 ammopacks debemos agregar un mensaje simplemente asi :

 

zp_colored_print(attacker, "^x04[ZP]^x03 Ganaste 1 ammopack, ahora tienes %d ammopack%s",g_ammopacks[attacker], g_ammopacks[attacker] == 1 ? "" : "s")

Osea nos quedaria asi :

 

           while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
           {
               g_ammopacks[attacker]++
               zp_colored_print(attacker, "^x04[ZE]^x03 Ganaste 1 ammopack, ahora tienes %d ammopack%s",g_ammopacks[attacker], g_ammopacks[attacker] == 1 ? "" : "s")
               g_damagedealt[attacker] -= get_pcvar_num(cvar_ammodamage)
           }

Agregar o editar los mensajes que se muestran al empezar el round

 

Deben buscar :

 

// Welcome Message Task

Hay encontraremos que hay 2 mensajes

   zp_colored_print(0, "^x01**** ^x04%s^x01 ****", g_modname)
   zp_colored_print(0, "^x04[ZP]^x01 %L", LANG_PLAYER, "NOTICE_INFO1")

Nosotros podemos agregar un mensaje y lo tendriamos que agregar asi :

 

   zp_colored_print(0, "^x01**** ^x04%s^x01 ****", g_modname)
   zp_colored_print(0, "^x03[ZE]^x04 Visita www.Mapping-Zone.net")
   zp_colored_print(0, "^x04[ZP]^x01 %L", LANG_PLAYER, "NOTICE_INFO1")

 

Agregar Efectos al Ambiente ( Zombie Plague 4.2 )

 

En el ZP vienen integrados 3 Ambientes :

 

- Nieve

- lluvia

- Niebla

 

Para activar cualquiera de estos debemos buscar :

 

// Weather Effects: uncomment a line to have the desired effect

Hay nos encontraremos con esto :

 

//#define AMBIENCE_RAIN // Rain
//#define AMBIENCE_SNOW // Snow
#define AMBIENCE_FOG // Fog

Para poder activar o desactivar uno solo deben quitarle los "//" de adelante

por ejemplo aca los activamos todos

 

#define AMBIENCE_RAIN // Rain
#define AMBIENCE_SNOW // Snow
#define AMBIENCE_FOG // Fog

Modificar los HUD originales

 

Bueno para los que no saben que son,

Son los que te muestran tu vida, clase, ammopacks etc..

 

Para poder agregar mas cosas debemos buscar :

 

// Show health, class and ammo packs
[/php

Hay nos encontraremos con algo como esto :

[php]
       // Show health, class and ammo packs
       set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
       ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "%L: %d - %L %s - %L %d", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[iD_SHOWHUD])

Nose asusten al ver el codigo, la verdad es facil :)

 

para poder agregar mmm puede ser una pagina web debemos agregarle unos cuantos caracteres

 

ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "%L: %d - %L %s - %L %d - Visita Mapping-Zone", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[iD_SHOWHUD])
   }

Cambiar la posicion de los HUD

 

para cambiar la posicion de los HUD deben buscar lo siguiente :

 

// HUD messages

Como vemos tenemos esto:

 

// HUD messages
const Float:HUD_EVENT_X = -1.0
const Float:HUD_EVENT_Y = 0.17
const Float:HUD_INFECT_X = 0.05
const Float:HUD_INFECT_Y = 0.45
const Float:HUD_SPECT_X = 0.6
const Float:HUD_SPECT_Y = 0.8
const Float:HUD_STATS_X = 0.02
const Float:HUD_STATS_Y = 0.9

Nosotros solo editaremos estos :

 

HUD_STATS_X
HUS_STATS_Y

Que son los que el player ve...

 

para editar la posicion debemos editar los numeros que vienen al lado

"0.02 y 0.9"

 

Si no saben como obtener las coordenadas le recomiendo que se descarguen el AMXX-STUDIO y usar el Hudmessage Generator

(Generators -> Hudmessage Generator)

 

Cambiar los models de los players, admins, survivor, nemesis etc.. (Zombie Plague 4.2)

 

Para eso debemos buscar esto :

 

new const model_nemesis[][] = { "zombie_source" } // Nemesis
new const model_survivor[][] = { "leet", "sas" } // Survivor
new const model_human[][] = { "artic" } // Humano
new const model_admin[][] = { "vip" } // Admin (humano)
new const model_admin_zombie[][] = { "zombie_source" } // Admin (zombie)

Para editarlos solo debemos cambiar los nombres que salen, por ejemplo

 

new const model_nemesis[][] = { "mz_nem" } // Nemesis
new const model_survivor[][] = { "mz_surv1", "mz_surv2" } // Survivor
new const model_human[][] = { "mz_humano" } // Humano
new const model_admin[][] = { "mz_admin" } // Admin (humano)
new const model_admin_zombie[][] = { "mz_zombie" } // Admin (zombie)

Si quieren agregar mas de un model a los humanos o a los nemesis

solo deben agregar una "," y escribir el nombre entre comillas, Fijense que en el survivor hay mas de un model seteado..

 

Cambiar el color a los Menus

 

Para esto debemos buscar :

 

// Game Menu

y nos encontraremos con esto :

 

// Game Menu
show_menu_game(id)
{
   static menu[250], len, userflags
   len = 0
   userflags = get_user_flags(id)
   
   // Title
   len += formatex(menu[len], charsmax(menu) - len, "\y%s^n^n", g_modname)
   
   // 1. Buy weapons
   if (get_pcvar_num(cvar_buycustom))
       len += formatex(menu[len], charsmax(menu) - len, "\r1.\w %L^n", id, "MENU_BUY")
   else
       len += formatex(menu[len], charsmax(menu) - len, "\d1. %L^n", id, "MENU_BUY")
   
   // 2. Extra items
   if (get_pcvar_num(cvar_extraitems) && g_isalive[id])
       len += formatex(menu[len], charsmax(menu) - len, "\r2.\w %L^n", id, "MENU_EXTRABUY")
   else
       len += formatex(menu[len], charsmax(menu) - len, "\d2. %L^n", id, "MENU_EXTRABUY")
   
   // 3. Zombie class
   if (get_pcvar_num(cvar_zclasses))
       len += formatex(menu[len], charsmax(menu) - len, "\r3.\w %L^n", id,"MENU_ZCLASS")
   else
       len += formatex(menu[len], charsmax(menu) - len, "\d3. %L^n", id,"MENU_ZCLASS")
   
   // 4. Unstuck
   if (g_isalive[id])
       len += formatex(menu[len], charsmax(menu) - len, "\r4.\w %L^n", id, "MENU_UNSTUCK")
   else
       len += formatex(menu[len], charsmax(menu) - len, "\d4. %L^n", id, "MENU_UNSTUCK")
   
   // 5. Help
   len += formatex(menu[len], charsmax(menu) - len, "\r5.\w %L^n^n", id, "MENU_INFO")
   
   // 6. Join spec
   if (!g_isalive[id] || !get_pcvar_num(cvar_blocksuicide) || (userflags & g_access_flag[ACCESS_ADMIN_MENU]))
       len += formatex(menu[len], charsmax(menu) - len, "\r6.\w %L^n^n", id, "MENU_SPECTATOR")
   else
       len += formatex(menu[len], charsmax(menu) - len, "\d6. %L^n^n", id, "MENU_SPECTATOR")
   
   // 9. Admin menu
   if (userflags & g_access_flag[ACCESS_ADMIN_MENU])
       len += formatex(menu[len], charsmax(menu) - len, "\r9.\w %L", id, "MENU_ADMIN")
   else
       len += formatex(menu[len], charsmax(menu) - len, "\d9. %L", id, "MENU_ADMIN")
   
   // 0. Exit
   len += formatex(menu[len], charsmax(menu) - len, "^n^n\r0.\w %L", id, "MENU_EXIT")
   
   show_menu(id, KEYSMENU, menu, -1, "Game Menu")
}

Si se fijan adelante de cada nombre de los menus sale \w en algunos, aca tienen algunos colores que pueden utilizar :

 

R=rojo
Y=Amarillo
D=Gris
W=Blanco

Poder congelar al nemesis

 

Para esto debemos buscar

 

// Nemesis shouldn't be frozen

y Borramos esto

 

       // Nemesis shouldn't be frozen
       if (g_nemesis[victim])
       {
           // Get player's origin
           static Float:origin2F[3]
           pev(victim, pev_origin, origin2F)
           
           // Broken glass sound
           engfunc(EngFunc_EmitSound, victim, CHAN_BODY, grenade_frost_break[random_num(0, sizeof grenade_frost_break - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
           
           // Glass shatter
           engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin2F, 0)
           write_byte(TE_BREAKMODEL) // TE id
           engfunc(EngFunc_WriteCoord, origin2F[0]) // x
           engfunc(EngFunc_WriteCoord, origin2F[1]) // y
           engfunc(EngFunc_WriteCoord, origin2F[2]+24.0) // z
           write_coord(16) // size x
           write_coord(16) // size y
           write_coord(16) // size z
           write_coord(random_num(-50, 50)) // velocity x
           write_coord(random_num(-50, 50)) // velocity y
           write_coord(25) // velocity z
           write_byte(10) // random velocity
           write_short(g_glassSpr) // model
           write_byte(10) // count
           write_byte(25) // life
           write_byte(BREAK_GLASS) // flags
           message_end()
           
           continue;
       }  

Y nos quedara asi :

 

                  while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, originF, NADE_EXPLOSION_RADIUS)) != 0)
   {
       // Only effect alive unfrozen zombies
       if (!is_user_alive(victim) || !g_zombie[victim] || g_frozen[victim] || g_nodamage[victim])
           continue;
       
       // Freeze icon?
       if (get_pcvar_num(cvar_hudicons))
       {
           message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, _, victim)
           write_byte(0) // damage save
           write_byte(0) // damage take
           write_long(DMG_DROWN) // damage type - DMG_FREEZE
           write_coord(0) // x
           write_coord(0) // y
           write_coord(0) // z
           message_end()
       }
       // Mucho mas code 

Gracias Raddish :)

 

Poder dañar a los zombies congelados

 

Para esto deben buscar :

 

if (g_nodamage[victim] || g_frozen[victim])
       return HAM_SUPERCEDE;

[/php]

 

y dejarlo asi:

 

if (g_nodamage[victim])
       return HAM_SUPERCEDE;  

 

Hacer que los Admins Ganen el Doble de AmmoPacks

 

Debemos buscar :

 

// Reward ammo packs for every [ammo damage] dealt

Si esque ya editaron la parte de cuando ganan un Pack les salga un mensaje

tendran esto :

 

           while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
           {
               g_ammopacks[attacker]++
               zp_colored_print(attacker, "^x04[ZE]^x03 Ganaste 1 ammopack, ahora tienes %d ammopack%s",g_ammopacks[attacker], g_ammopacks[attacker] == 1 ? "" : "s")
               g_damagedealt[attacker] -= get_pcvar_num(cvar_ammodamage)
           }

Para que el admin gane x2 AmmoPacks debemos dejarlo asi :

 

           while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
      {
       //ADMIN_RESERVATION
       if (get_user_flags(attacker) & ADMIN_LEVEL_
       {
           g_ammopacks[attacker]+= 2
           zp_colored_print(attacker, "^x04[ZE]^x03 Ganaste 1 ammopack, ahora tienes %d ammopack%s",g_ammopacks[attacker], g_ammopacks[attacker] == 1 ? "" : "s")
           g_damagedealt[attacker] -= ammodamage
           }
       else
       {
           g_ammopacks[attacker]++
           zp_colored_print(attacker, "^x04[ZE]^x03 Ganaste 1 ammopack, ahora tienes %d ammopack%s",g_ammopacks[attacker], g_ammopacks[attacker] == 1 ? "" : "s")
           g_damagedealt[attacker] -= ammodamage
       }
     }

Si quieren que gane x3 o x4 o x5 xd deben editar esta parte :

 

g_ammopacks[attacker]+= 2

y Cambiar el Numero "2" por 5 o 4 o 3 o 6 o 8 xd... A su gusto :)

 

 

Es todo por Hoy! Espero ayan entendido todo y que les aya gustado, todo esto

Menos lo de congelar al nemesis fue escrito por mi

 

Si esque quieren que yo les aga algun tutorial diganme de que se trata y lo

ago :)

 

Cualquier duda, postear abajo, mensaje privado, Msn, Steam :)

 

Saludos!

4884015992_70165c3b88.jpg

Steam ID :

Rafabassflow

Skype : ciio.cl

Flickr :

Bryan Olmos

I'm Moderator

:misarmas:

Publicado
while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
      {
           g_ammopacks[attacker]+= is_user_admin(attacker) ? 2 : 1
           zp_colored_print(attacker, "^x04[ZE]^x03 Ganaste 1 ammopack, ahora tienes %d ammopack%s",g_ammopacks[attacker], g_ammopacks[attacker] == 1 ? "" : "s")
           g_damagedealt[attacker] -= ammodamage
           }

Mini optimizacion, buen tuto, para los nuevos que qieren aprender lo basico en pawn

 

Gracias x el aporte ^^

messi-4.png

 

Mapping-Zone.NET

Publicado
while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
      {
           g_ammopacks[attacker]+= is_user_admin(attacker) ? 2 : 1
           zp_colored_print(attacker, "^x04[ZE]^x03 Ganaste 1 ammopack, ahora tienes %d ammopack%s",g_ammopacks[attacker], g_ammopacks[attacker] == 1 ? "" : "s")
           g_damagedealt[attacker] -= ammodamage
           }

Mini optimizacion, buen tuto, para los nuevos que qieren aprender lo basico en pawn

 

Gracias x el aporte ^^

 

Es casi lo mismo, solo que con menos lineas y no seteas que admin gana, solo seteas que si es admin (cualquier nivel) gana doble :)

4884015992_70165c3b88.jpg

Steam ID :

Rafabassflow

Skype : ciio.cl

Flickr :

Bryan Olmos

I'm Moderator

:misarmas:

Publicado
Es casi lo mismo, solo que con menos lineas y no seteas que admin gana, solo seteas que si es admin (cualquier nivel) gana doble :)

 

Si digamos que lo que yo puse es para que el que sea admin, gane doble ammopacks, si lo qieren hacer x flags, es la forma de ciio :b

messi-4.png

 

Mapping-Zone.NET

  • 4 meses después...
Publicado

Muchas gracias Por El tuto . me sirvio Un monton !

tengo un problema , Mi Hud lo veo bien!

pero cuando apunto a otra persona Veo sus stat y su nombre , y es molesto .! podrian ayudarme ! gracias

 

Estoy intentando hacer mi server de zp.

Y Bueno kisiera saber si tienen algun tuto de como puedo poner classes de zombie y Humanos por level.

agregarle stats a cada clase de humano

Y armas Por level!.

 

Muchisimas Gracias! Espero Respuesta! ^^

  • 8 meses después...
Publicado

Muy buen tuto yo lo hice , pero cuando trato de compilar el zombie_plague40 me tira errores.........

me baje otros zombies_plague40 y pasa los mismo pero con diferentes errores , me podrian pasar uno que no me tire errores , por favorr... Gracias :(=E):

thump476906elguachinxdc.gif

 

:pokerface:

Publicado
Muy buen tuto yo lo hice , pero cuando trato de compilar el zombie_plague40 me tira errores.........

me baje otros zombies_plague40 y pasa los mismo pero con diferentes errores , me podrian pasar uno que no me tire errores , por favorr... Gracias :(=E):

 

No debe ser error del zombie_plague, pone los errores qe te tiro cuando compilaste.

messi-4.png

 

Mapping-Zone.NET

Crear una cuenta o conéctate para comentar

Tienes que ser miembro para dejar un comentario

Crear una cuenta

Regístrese para obtener una cuenta nueva en nuestra comunidad. ¡Es fácil!

Registrar una nueva cuenta

Conectar

¿Ya tienes una cuenta? Conéctate aquí.

Conectar ahora
×
×
  • Crear nuevo...

Información importante

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