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! ^^

Publicado

creo q me explique mal , perdon

doy un ejemplo:

de lvl 1 a lvl 2 se necesiten 50 ap

de lvl 300 a lvl 301 se necesiten 1000 ap.

 

no c si me entienden :P :

 

Salu2

  • 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 nuevo...

Información importante

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