Jump to content

Tabla de líderes

  1. Hardcook

    Hardcook

    Registrado sin publicaciones


    • Puntos

      11

    • Contenido

      591


  2. Gabii

    Gabii

    Zona Minecraft


    • Puntos

      9

    • Contenido

      971


  3. S34Qu4K3

    S34Qu4K3

    Mapper


    • Puntos

      5

    • Contenido

      967


  4. PeritaMapper

    PeritaMapper

    Administrador


    • Puntos

      4

    • Contenido

      1.543


Contenido popular

Showing content with the highest reputation on 13/08/10 en Mensajes

  1. Hoy, buscando un "Sky Enviroment" para mi mapa del desierto encontré una página web donde hay cielos muy buenos para poner en los mapas. Link:http://kk3d.de/counter-strike/skies/index.htm Además a la izquierda de cada cielo dice las coordenadas casi exactas para poner en los atributos de la entidad light_enviroment, por ejemplo: de donde viene la luz y de que color es (Así el mapa queda más lindo) Están muy buenos, los recomiendo.
    1 punto
  2. Configurar Batch-Compiler (P'erita) Como cambiar el Sky/Cielo (P'erita) Tipos de texturas (P'erita) Como usar herramienta corte (P'erita) ZHLT (S34Qu4K3) Optimizar fps en el Valve hammer editor (martinssj4) 17 Tipos de texturas (tada-s) Pitch Yaw Roll (X Y Z) (tada-s) Qué es un BSP? Cómo funciona? (tada-s) Qué es un CSG? Cómo funciona? (tada-s) Configuración para la compilación final (tada-s) func_breakable (Diegrox!) Medidas utiles -en unidades- (Santi) Render FX, Render Mode y FX Amount. (Diegrox!) ¿Que es una FGD? (Martinssj4) Aclaración: Diferencia model/prefab (Incrusser) Solución: Vista Wireframe en Camara 3D (Incrusser) Solución: Leak ¿que es? y ¿como encontrarlo? (OxiB00ST!) Solución: Problema de la camara 3D Con "Selection tool" (martinssj4) Solución: Map Differs from Server (martinssj4) Solución: File Acces Denied (joex09) Solucion: Non-sprite set to glow! (martinssj4) Solucion: Error:Lightmap for texture too large (martinssj4) Configurar el Valve Hammer Editor (tada-s) Iluminar mapa sin entidades (martinssj4) Archivos .res (martinssj4) Crear nuestro primer mapa. (aagguuu) Crear una escalera (aagguuu) Como crear cielo en un mapa Agregar texturas a un wad (YOYOMV) Crear mapa simple para principiantes (P'erita) Crear objeto que se rompe al disparar (P'erita) Crear escalera simple (P'erita) Crear Push (P'erita) Crear Teleport (P'erita) Sector que saca vida (P'erita) Poner a todos con las mismas armas (P'erita) Crear vidrios blindados y vidrios rompibles (P'erita) Crear puerta simple (P'erita) Crear Mapa para BaseBuilder (P'erita) Func_pushable parte 1 (valeen.conti) Func_pushable parte 2 (martinssj4) Hacer un laser (valeen.conti) Hacer recargador de vida y escudo (valeen.conti) Crear una piramide (valeen.conti) Insertar un model al VHE (valeen.conti) Como hacer que no se pueda comprar (-.ezeequieL) Entidad func_breakable (Diegrox!) Crear Minas explosivas(4RQU1T3CT0) Agregar sonido/musica al mapa. (rokeet) Crear un mapa 'Assasination' [as_] (OxiB00ST!) Hacer una cinta transportadora (DelincuenT69) Crear casa con techo (t0pline) Tu Primer Mapa HE_ (APPLE-COS) Crear mapa facil (patopato) Crear mapa estilo aim_pistols (Pitobitomapper) Herramienta carve (Incrusser) Entidad func_wall_toggle (martinssj4 Perder todas las armas (martinssj4) Func_rot_button (explicacion y guia) (martinssj4) Transformar texturas de CSS a CS 1.6 (TheNecko) Uso de texturas/herramientas (anderson) Guia multi_manager (teoria) (Anderson) Abrir puertas (multi_manager) (Anderson) Crear gallina del cs_italy (martinssj4) Parametros HLRAD (s34qu4k3) Arma que se pueda manejar (TheNeCko) Explocion y destruccion realista (Tuchix) Efecto de luz FADE (S34Qu4K3) Crear archivo .RAD (S34Qu4K3) Poner sonidos de ambiente (P'erita) Crear sector de bomba C4 (P'erita) Crear Texturas WADS (P'erita) Crear arcos (P'erita) Poner texto en tu mapa (P'erita) Crear mapa para MOD BaseBuilder (P'erita) Agregar zona de buy y sacar BUY en respawn (Perita) Compilar partes de un mapa (Santi) Fluidos I: Agua, lava, etc... (OxiB00ST!) Fluidos II: Agua en movimiento (OxiB00ST!) Hacer una camara al estilo cs_assault (OxiB00ST!) Entidad multisource (OxiB00ST!). Cambiar el arma con la que se spawnea y hacer Buyzones. (OxiB00ST!) Explosión y destrucción realista (Tuchix) Entidad func_pendulum (Ezeh) Crear decal (tada-s) Usar trigger_gravity (tada-s) Terreno Nivel Facil (tada-s) Texturas animadas (tada-s) Crear árbol para mapping (tada-s) Textura NULL (Diegrox!) Crear Iglú (Refugio de Nieve) (Sr.Retry.-) Colocar creditos brillantes en un mapa (Morte) Crear un efecto terremoto (Morte) Objeto que va de lado a lado (valeen.conti) Hacer rejas JailBreak (valeen.conti) Entidad multi_manager (valeen.conti) Crear objetos visible de un lado e invisible del otro (valeen.conti) Hacer una cama elastica (N0.F34R) Hacer efecto cascada/ducha (DelincuenT69) Crear Mapas soccerjam (RespawN) Crear Trampas DeathRun (t0pline) Poner los Sprites a las entidades (topline) Texturas detalladas (4RQU1T3CT0) Anuncio (RespawN) Crear Pruerta Vertical (anderson) Func_Rotating (Anderson) Crear trampa que cae jaula (t0pline) Crear columbio o Amaca(Apple) GenSurf Montañas y posos (Apple) Como hacer bloques de Longjumps (ChaosAD) Crear y agregar Sprite (Manuz) Escaleras en forma espiral (Apple) Crear mapa Vb_ Boleey ball (Apple) Crear escalera espiral, distinto metodo (AXO) Crear mapa fy_ Todos los pasos! (astar007) Crear solidos rocosos (PITITTIS) Deathrun Grenade Launcher (Chaosmedia) Crear Wad con HLTAGCONVERTER (astar007) Crear Mapas VB_ (Volley Ball Mod) (APPLE-COS) Como Crear Bloques De Long Jump (ChaosAD) Textura de pared en photoshop parte 1 (Emi) Textura de pared en photoshop parte 2 (Emi) Textura Cesped en photoshop (Percival) Crear láser manejable (Pibitomapper) Crear efecto fade (ChaosAD) Crear objetivo movible, mapas training (martinssj4) Recuperar solido Original (martinssj4) Crear arco , forma diferente (topline.) Entidad env_render (Emi) Entidad func_wall (Emi) Light environment [avanzado] (Sr.Retry) Entidad Func_door (Emi) Crear piso con reflejo Entidad trigger_changetarget Activar/Desactivar teleport Botón que da armas (Incrusser) Entidad Multisource (emi) HINT, SKIP y VISLeaves (S34Qu4K3) Crear una curva (Ezeh) Como hacer mapas Bhop (P'erita) Trampas para Deathrun (P'erita) Crear vehiculo/auto (P'erita) Manipulación de vertices (P'erita) Crear rampa de surf (P'erita) Hacer montañas con el metodo del triangulo (Santi) Entidades momentary_door & momentary_rot_button (Sr.Retry.-) Textura de concreto con Photoshop y Wally (Emi) Crear esferas (Emi) Montañas sin WALLBUG (ChaosAD) Crear boton que da armas (t0pline) Crear rio con relieve (Emi) Crear Puerta con Contraseña(Sr.Retry.) Crear mapa DeathRace (Apple) Cambiar color de entidades (t0pline) Crear bomba estilo crossfire (Tuchix) Crear Deathrun Grenader Launcher (chaosmedia90) Pasar formato .RMF a .MAP(martinssj4) Si ven algun tutorial que este en la seccion/dificultad equivocada, mandar un PM a tada-s o Martinssj4
    1 punto
  3. 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 VersionDonde tendran esto : new const PLUGIN_VERSION[] = "4.2"( o 4.3 depende de la version de su zp ) 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] dealttendran 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 TaskHay 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 effectHay 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.9Nosotros 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] dealtSi 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!
    1 punto
  4. TODOS LOS ARCHIVOS √ Actualización 02.08.10 √ NOTA: Talvez tengan que esperar un momento para ingresar ya que no esta del todo completo, pero esto les facilitara la entrada.
    1 punto
  5. #2 Zombie Rampage - 200.43.193.198:27016 El servidor se encuentra funcionando bajo caidas constantes y es probable que experimenten perdidas de level y lag. Incubus no se encuentra OnLine para que verifique el problema pero es imposible solucionarlo. Hasta entonces se les avisara por medio de este post.
    1 punto
  6. Descripción: El software AutoCAD ® Electrical es AutoCAD ® para diseñadores de controles. Construido específicamente para crear y modificar esquemas de controles eléctricos, AutoCAD Electrical incluye toda la funcionalidad de AutoCAD más un conjunto completo de funciones CAD eléctricas. completas bibliotecas de símbolos y herramientas para automatizar las tareas de ingeniería eléctrica ayudar a ahorrar horas de esfuerzo, para que pueda dedicar más tiempo innovando. Como parte de la solución Autodesk para Prototipos Digitales ®, AutoCAD ® Electrical hace fácil compartir la intención del diseño eléctrico de control con otras aplicaciones de Autodesk, permite que tanto los equipos eléctricos y mecánicos, para trabajar en colaboración en prototipos digitales. AutoCAD Electrical incluye la gestión de datos integrada con Autodesk ® Vault, una aplicación centralizada para grupos de trabajo que almacena de forma segura y gestiona los datos del progreso trabajando de diseño y documentos relacionados. Para funcionalidad adicional, como el control de revisión, archivo y seguridad de las carpetas y listas de materiales y la gestión de la OCE, aprender más acerca de la completa familia de productos Bóveda – Autodesk ® Vault grupo de trabajo, de colaboración Autodesk ® Vault y Autodesk ® Vault Manufacturing. descarga: 3gb http://shareflare.net/download/7446.5271bde464d5577c38b923cf21/AUTODESK.AUTOCAD.ELECTRICAL.V2011.WIN32_ISO.rar.html
    1 punto
  7. Os presento mi primera guia,que sirve para hacer cintas transportadoras. Las texturas que mas se utilizan para estos casos son : "Scroll_conv3" y "Scrollwater1", aunque tambien sirven las demas texturas. Sin la entidad la textura solo se mueve, pero no transporta. Para que transporte vamos al sólid presionamos "Ctrl + T" y seleccionamos la funcion "func_conveyor". De esta lista de opciones la mas importante es: "Conveyor Speed" (La velocidad de la cinta) , si quieres la misma velocidad que la textura ponlo de 20 a 25,pero podeis elegir la velocidad qe os sea conveniente. Por ejemplo: yo para mi mapa jailbreak (que encuanto lo termine lo subire) he hecho un circuito de karts, pero no de los convencionales, sino de una pista muy larga con coches muy veloces.Asi que en el final del trayecto alguien tiene que verificar quien a sido el ganador,por eso e puesto dos cintas una en cada direccion con una velocidad de 800. PD: Alguien podria subir de nuevo el prefab de bmw y nissan si lo tubieseis, me serian muy utiles. Gracias de antemano !!
    1 punto
  8. NiCo-Z-

    [Prefabs] Catapulta

    Les Dejo Otro Prefabs De Catapulta Saludos http://www.mediafire.com/?t6t185i02z6v3e0
    1 punto
  9. ppola.f

    [Mapa a Duo] ppola.f

    Mz. Hago esto para informarles que tengo unas re ganas de hacer un mapa ZM a Duo con Alguien. Lo empezamos desde mañana a las 8 masomenos ya que no salgo mañana :_ Tirenme los nombres de los que quieren y despues los elijo, al lado pongale una razón Gracias EJEMPLO: ppola.f - [Me gustaría hacer un mapa con vos] Graciaaaaaaaaaaaaaaas. LISTA: NiCo-Z- Shun anderson
    1 punto
  10. Bueno.. xD eso miren estaba al pedo y veo que dice Internacional é Nacional... No seria Nacional é Internacional O.o? OMG otra cosa... Dice boxeo hay... sere ignorante pero no creo que sea una clase de musica O.o
    1 punto
  11. No es lo unico, no se que hace reggaeton y cumbia en música, pero es lo de menos xD. Siempre me voy a preguntar que corno es "Boxeo" en música xD.
    1 punto
  12. Swa

    Volvi..

    Bueno despues de una etapa furstrante con mi corte de inetenet, volvi, de un dia para el otro no tube mas y con mi flia solo pagamos los viernes las facturas, Se me corto el lunes. Toda la semana inactivo, sepan disculpar. En fin, volvi.
    1 punto
  13. NiCo-Z-

    [Prefabs] Puerta Rotatil

    Les Dejo Otro Prefabs De Una Puerta Rotatil Saludos http://www.mediafire.com/?izqrk5xt3bj8t6e
    1 punto
  14. Como muchos abran notado, es que el servidor ahora esta más "Oscuro", es por que no tiene más la claridad de antes, que beneficiaba a los humanos. La idea de un zombie plague, es que los Humanos tengan que esconderse, y defenderse de los zombies, cosa que con brillo no era posible. Ya muchas quejas llegaron a Incubus sobre esto, entonces, para saber si en realidad quieren esta fruta, voten que quieren como estaba antes, si quieren jugar Zombie Plague, voten que quieren oscuridad.
    1 punto
  15. S34Qu4K3

    [Duda] Shutbox

    Ademas, P´erita ya sabe que conspiramos contra el, no necesita leer los privados ni del shout ni de los mensajes privados
    1 punto
  16. Santi

    [Pedido] Firma y avatar

    Mil disculpas por el retraso, aca te dejo las dos cosas :
    1 punto
  17. NiCo-Z-

    [Prefabs] Piscina

    Hola Les Dejo Un Prefabs De Piscina Saludos Útil Para Jailbreak http://www.mediafire.com/?chrodh3fphzpoel
    1 punto
  18. PeritaMapper

    vBExperience

    Lo veo medio "infantil é competitivo" si sin eso hacen post para ganar gracias y mensajes imaginate con eso! , mas aya de eso bugea mucho lo que es el vbulletin, aparte me gusta mas lo simple le da un toque al foro en cambio muchos foros usan eso.
    1 punto
  19. mArr

    [Cumpleaños] ESE TU RE ELE!!

    re tarde feliz cumpleañooos
    1 punto
  20. Mañana 18:30 Horas se cierra la votación y el thread. Y se define si se queda como esta, o vuelve la luz. Adiós.
    1 punto
  21. Polo

    [Cumpleaños] ESE TU RE ELE!!

    feliz cumple, casi ni te conzco, pero pareces buena onda espesro conocerte mas D:
    1 punto
  22. Independientemente de los resultados de la votación, se va a dejar oscuro por 1 dia para que tengan tiempo de probarlo
    1 punto
  23. Gabii

    [Cumpleaños] ESE TU RE ELE!!

    Feliz cumple loco pasala joya
    1 punto
  24. Rewolf.-

    [Cumpleaños] ESE TU RE ELE!!

    Feliz cumple wachiin pasala bemm!
    1 punto
  25. 1 punto
  26. antss

    Pack De Prefabs

    me sirvio bastante el de steps para hacer la discoteca de mi jail jej
    1 punto
  27. DXD913

    Pack De Prefabs

    Mmmm me sirve, pero una pregunta ¿Que texturas utiliza?
    1 punto
  28. xRivas

    Pack De Prefabs

    ami la verdad a mi nivel me parecen bastante simples pero para los que empiezan... buen post
    1 punto
  29. Intoxx

    Pack De Prefabs

    Shun: vi que en varios post, intentabas ayudar a la gente (está bien tu gesto), pero les decís las cosas erróneas o por la mitad como en este caso. Los prefab pueden venir con el .rmf que esos si los podés abrir en cualquier lado, pero tambíen hay prefabs con la extensión .ol, que van en Valve Hammer Editor/Prefabs y luego en el vhe, donde creas los prefabs buscas el prefab/s
    1 punto
  30. Me tira error el batch compiler, alguien tiene idea?
    1 punto
  31. Percival

    Pack De Prefabs

    lo guardas en cualquier lado solo basta con abrirlos con vhe
    1 punto
  32. Si, esta todo bien. EDIT: Ahora compila, pero tira este error. Error: Error opening C:\Documents and Settings\Administrador\Escritorio\Java\Java\MAPPING\Test1.bsp: No such file or directory
    1 punto
  33. 3buo

    Pack De Prefabs

    Donde pongo los prefabs???:mmm::mmm:
    1 punto
  34. JaiiRiToO

    Pack De Prefabs

    Gracias estan buenos y son muchos Gracias :telefono:
    1 punto
  35. PeritaMapper

    Pack De Prefabs

    Trata de dejar mas info de que son etc... gracias por el aporte.
    1 punto
  36. Shargeras

    Pack De Prefabs

    Muy chido el pack me sirvio, recien estoy empezando a mapear pero al llebar un rato aciendo el map le doy a compilar (lo de probar) y me pone error en el rad y no m deja jugarlo si alguien me puede ayudar...
    1 punto
  37. Viste, no me equivoque... D:
    1 punto
  38. 1 punto
  39. Alguien seria tan amable de poder conseguirme las texturas source? Desde ya gracias, si esta en un mal subforo algun mod que me lo mueva, gracias.
    1 punto
  40. -----------------Mapas BunnyHop----------------- Los mapas bhop_ (que proviene de Bunnyhop, la tecnica de salto) son mapas "puzzle" en los que no hay terroristas, y el objetivo es cruzar los diferentes retos usando la tecnica de salto llamada "Bunnyhop", "Bunny" o "Bhop". Objetivos: Anti-Terroristas: Llegar al final del mapa.
    1 punto
  41. Muchas gracias. /Closed!
    1 punto
  42. Bueno, esto es una traduccion de Alucard^ de este tutorial (en ingles): http://forums.alliedmods.net/showthread.php?t=91207 hecho por joaquim... da un breve comienzo a la programacion (pawn) antes de entrar en lo que es la programacion en AMXX. En la programacion, todo esta representado por numeros. Una letra es un numero, una palabra es un grupo de numeros, un color es un grupo de 3 numeros (RGB = Red, Green, Blue = Rojo, Verde, Azul). Entonces para programar hay que tratar con numeros. PARTE 1 - Variables, Numeros y Numeros de Arrays Para poder guardar un numero, tenemos que buscar el lugar donde guardarlo... y ese lugar es denominado variable. Hacemos lo siguiente: new NombreVariable * new significa que estamos creando una nueva variable. * NombreVariable es el nombre que le asignamos a la variable que creamos. * Le podemos poner cualquier nombre, pero siempre es conveniente usar el nombre mas apropiado, dependiendo del uso de esta y de lo que queramos guardar adentro. Esto es llamado declaracion de una variable. Ahora, para guardar un numero dentro de esta variable hacemos lo siguiente: NombreVariable = 5 * El 5 es solo un ejemplo. * Le podemos asignar el numero a la variable apenas la creamos o luego de crearla, aca un ejemplo asignandole el numero en el momento que creamos la variable: PHP Code: new NombreVariable = 5 Ahora, para tener un grupo de numeros, necesitamos hacer uso de los arrays... de la siguiente forma: new GrupoVariable[x] * En x iria el numero que quieran, o que necesiten usar. Obviamente x no va, es solo un ejemplo. * Ese numero representa el numero de grupos que va a contener esa variable. * Y cada grupo puede contener un numero... Para acceder a cada grupo debemos hacer lo siguiente: new Color[3] // creamos una variable con un array de 3 grupos // Ahora para asignarle un numero a cada grupo: Color[0] = 255 Color[1] = 0 Color[2] = 0 // Como se habran dado cuenta, se empieza desde 0... por lo que el ultimo numero desaparece. // O sino tambien podriamos hacer asi: new Color[3] Color = { 255, 0, 0 } // Y por ultimo tambien asi: new Color[3] = { 255, 0, 0 } Pawn nos provee de operadores aritmeticos, entonces podemos hacer algo asi: new Color[3] Color[0] = Color[0] - 10 Color[1] = Color[1] - 10 Color[2] = Color[2] - 10 // Entonces antes de crear nuestro color podemos hacerlo mas oscuro, restandole una cantidad de 10 en cada monto de color // Ahora si queremos hacer lo mismo con varios colores, terminaria siendo re largo... por eso podemos crear algo llamado "funcion" de esta forma: OscurecerColores(Color[3]) { Color[0] = Color[0] - 10 Color[1] = Color[1] - 10 Color[2] = Color[2] - 10 } // Color[3] es solo un nombre que no necesariamente se tiene que usar, ahi van a ir los distintos colores que uno va a usar. // Entonces al crear esa funcion, despues la podemos a usar de forma simple para oscurecer distintos colores, de la siguiente forma: // Primero creamos las variables de los colores con sus arrays y sus valores de color. new UnColor[3] = { 100, 100, 100} new OtroColor[3] = { 50, 100, 150} new OtroColorMas[3] = { 255, 30, 233} // Y despues para oscurecerlos con la funcion que habiamos creado es simplemente asi: OscurecerColores(UnColor) OscurecerColores(OtroColor) OscurecerColores(OtroColorMas) // Esto automaticamente le resta 10 a cada valor de color. // Entonces los colores quedarian asi: /* UnColor = 90 90 90 OtroColor = 40 90 140 OtroColorMas = 245 20 223 */ Con este code anteriormente mostrado, tenemos un problema con la funcion creada. El problema es que si uno de nuestros colores tenie un numero como por ejemplo 0, al usar la funcion OscurecerColor, el color valor de tal color va a quedar en negativo (-10) y los valores de color deben ir entre 0 y 255. Asi que para eso debemos ponerle determinadas condiciones dentro de la funcion para que no suceda esto... y se hace de la siguiente forma: OscurecerColores(Color[3]) { Color[0] = Color[0] - 10 Color[1] = Color[1] - 10 Color[2] = Color[2] - 10 if(Color[0] < 0) { Color[0] = 0 } if(Color[1] < 0) { Color[1] = 0 } if(Color[2] < 0) { Color[2] = 0 } // Agarremos una condicion de ejemplo: /* if(Color[0] < 0) { Color[0] = 0 } */ // Lo primero es la condicion, quiere decir que si el primer valor es menor de 0 se cumple lo de abajo. // Y lo de abajo setea ese valor a 0. Entonces si el valor es menor a 0 (negativo) esta condicion hace que se quede en 0 y no se reste mas. } Ahora, para hacer que la funcion sea mas practica, les voy a dar el siguiente ejemplo: OscurecerColores(Color[3], parametro) { Color[0] = Color[0] - parametro Color[1] = Color[1] - parametro Color[2] = Color[2] - parametro } // Con esto hacemos que sea mas dinamico y que no necesariamente le reste 10, sino que le reste lo que queramos cuando usemos la funcion para oscurecer tal color... // Un ejemplo claro seria: new UnColor[3] = { 100, 100, 100} OscurecerColores(UnColor, 30) // Entonces el color nos quedaria: 70 70 70 // Tambien podriamos hacer algo asi: OscurecerColores(Color[3], parametro1, parametro2, parametro3) { Color[0] = Color[0] - parametro1 Color[1] = Color[1] - parametro2 Color[2] = Color[2] - parametro3 } new UnColor[3] = { 100, 100, 100} OscurecerColores(UnColor, 30, 50, 10) // Y nos quedaria asi: 70 50 90 // Esto es para que entiendan la forma en la que se puede agregar los distintos parametros en una funcion que creemos... Ah todo esto, obviamente podemos crear la misma funcion pero en vez de que sea para oscurecer, podemos hacer que "ilumine" o sea, que el color sea mas clarito. Y simplemente tenemos que cambiar el signo menos por el mas, de la siguiente forma: OscurecerColores(Color[3], parametro1, parametro2, parametro3) { Color[0] = Color[0] + parametro1 Color[1] = Color[1] + parametro2 Color[2] = Color[2] + parametro3 } Obviamente al hacer esto tmb vamos a tener el problema de que no tiene que superar los 255 del valor de cada color... por lo que tenemos que aplicar las mismas condiciones que hicimos antes pero en vez de usar el signo < debemos usar el > y para dar un pequeño ejemplo: if(Color[0] > 255) // Si el valor del color supera los 255 { Color[0] = 255 // Se setea lo maximo (255) }
    1 punto
  43. PARTE 4 - Operadores Matematicos Lo Basico: Como todos saben, los operadores matematicos standars son: Suma Resta Multiplicacion Division Y pueden ser usados facilmente dentro de la programacion: new x = 1, y = 4; // Suma x = y + 1; // ahora x es igual a 5 // Resta y = x - 2; // ahora y es igual a 2 // Multiplicacion x = y * 2; // ahora x es igual a 4 // Division y = 12 / x; // ahora y es igual a 3 En la programacion hay mas operadores matematicos, aparte de los 4 standars mencionados anteriormente: -Modulo -Desplazamiento de bits (Bit Shifting o Bitsum) El operador Modulo da el valor del resto luego de la division entre dos numeros. Un ejemplo: 25 / 4 = 6 R 1 // Esto significa que 25 dividido 4 da 6, ya que // 4 tiene que multiplicarse 6 veces, sin embargo // el resultado de esa multiplicacion da 24, y el resto // de eso es 1. Pero para obtener correctamente el resto // lo hacemos de la siguiente forma: new x = 25 % 4; // x vale 1, ya que es el resto de esa division x = 113 % 100; // x vale 13, ya que es el resto de esa division En cuanto al operador Bitsum (desplazamiento de bits o como lo quieran llamar) mas adelante pongo un tuto Incrementos: Las variables en ciertos momentos deben ser manipuladas, es decir... que a veces necesitamos aumentarlas, restarlas, o cualquier otro uso de operadores matematicos al valor original de dicha variable. Un claro ejemplo seria el siguiente: new x = 5; // Le asignamos el valor 5 a la variable x x = x + 1; // Le incrementamos 1 a la variable x, ahora el valor es de 6 x = x * 2; // Le multiplicamos por 2 a la variable x, ahora el valor es de 12 x = x / 4; // Le dividimos por 4 a la variable x, ahora el valor es de 3 x = x - 2; // Le restamos 2 a la variable x, ahora el valor es de 1 Pero esto lo podemos simplificar aun mas, de una forma mas rapida y sencilla, que es la siguiente: variable (operador)= valor; // Como veran aca se hace la operacion directamente, // sin tener que poner nuevamente la variable a modificar // es practicamente como hacer valor (operador) valor solo // que en este caso el resultado se le asigna a la variable Ejemplo: new x = 5; // Le asignamos el valor 5 a la variable x x *= 10; // Multiplicamos la variable x por 10, ahora da 50 x -= 10; // Restamos 10 a la variable, ahora da 40 x /= 2; // Dividimos la variable por 2, ahora da 20 x += 4; // Aumentamos 4 a la variable, ahora de 24 Pero en ciertos casos, cuando necesitamos aumentar o restar una variable + 1, hay una forma aun mas sencilla que es la siguiente: new x = 1; // Le asignamos el valor 1 a la variable x x++; // De esta forma se aumenta + 1 a la variable, // por lo que ahora el valor de x es 2 // ++ es el equivalente a hacer "+= 1" o "+ 1" // dependiendo el metodo que usemos de los ya // explicados anteriormente // Aparte de eso, el ++ puede ser usado antes de // la variable, como en el siguiente ejemplo: ++x; // Sin embargo, hay una cierta diferencia entre estas 2 // formas, ++variable incrementa la variable ANTES de ser // usada, en cambio variable++ aumenta la variable DESPUES // de ser usada, ver los siguientes ejemplos para su entendimiento: new x = 1; new y = x++; // x = 2, y = 1 // "x" fue incrementado a 2 DESPUES de ser asignado a "y" x = 1; y = ++x; // x = 2, y = 2 // "x" fue incrementado a 2 ANTES de ser asignado a "y" Y obviamente, lo mismo va para el -= 1, el uso de los dos -- new x = 1; new y = --x; // x = 0, y = 0 x = 10; y = x--; // x = 9, y = 10 __________________
    1 punto
  44. // x no es menor a 0 !(x < 0) // x no es igual a 0 x != 0 // x es mayor a 0 y g es menor a 2 x > 0 && g < 2 // Lo mismo que arriba, pero con el operador opuesto: !(x <= 0 || g >= 2) // Esta condicion se lee de la siguiente forma: // Si x <= 0, devuelve false (falso) // Si g >= 2, devuelve false (falso) // Sino, devuelve true (verdadero), es decir... si es: x > 0 y g < 2 Sentencia "IF": La sentencia de condicion "if" es lo principal para usar las condiciones anteriormente explicadas. Es decir, que es el metodo por el cual se usan. La estructura de las condiciones son de la siguiente forma: if( [condicion] ) { // Codigo que se ejecutara si la condicion se cumple } // Ahora, un ejemplo de tal estructura: if( x > 1 ) { // Este codigo se ejecutara si x es mayor a 1 } Al mismo tiempo tambien esta el "else if" y el "else" que son otras sentencias de condicion, pero que van de la mano. No puede haber un "else if" o un "else" si no hay un "if" previo. if( [condicion 1] ) { // condicion #1 es verdadera } else if( [condicion 2] ) { // condicion #1 es falsa // y la condicion #2 es verdadera } else { // condicion #1 es falsa // y la condicion #2 es falsa } // Aunque no necesariamente tiene que haber un "else if" // Puede ir un if y luego un else, entonces si la condicion del if no se cumple // Se ejecuta lo que esta dentro del else Aca un ejemplo mas para que lo entiendan mejor: new x = 5 if( x > 3 ) { // 1 } else if( x < 4 ) { // 2 } else { // 3 } // En este caso mostraria lo que esta en el "1". Sin embargo... // Si cambiamos el 5 de la variable "x" por un 4. Mostraria lo que esta en el "3". // Otro dato a dar, es que el "else if" puede ser usado mas de una vez. // No necesariamente tiene que ser 1, esto son solo ejemplos. Loops (Bucle): Hay 3 tipos de loops que se pueden usar, y son los siguientes: while do, while for La lista esta ordenada en cuestion a la dificultad. Igualmente, no son muy dificiles, sin embargo al principio cuesta un poco entender su funcionamiento, pero principalmente... usarlas/aplicarlas dentro de un plugin. Los loops, sirven para ejecutar un bloque de codigo, en forma repetitiva. De acuerdo a distintas condiciones y/o parametros que le asignamos. El loop while continua ejecutando mientras que la condicion se siga cumpliendo, es decir... que de true (verdadero/positivo). La estructura de este loop, es la siguiente: while( [condicion] ) { // Bloque de codigo } La forma en la que trabaja el while es la siguiente: Chequea la condicion establecida Si la condicion se cumple, ejecuta el codigo; de lo contrario, finaliza el loop Vuelve al primer paso Como veran, el while es muy similar al "if", a diferencia de que este se repite constantemente. El loop do, while es practicamente lo mismo al while. La unica diferencia es el orden en el que trabaja y se usa: do { // Bloque de codigo } while( [condicion] ); // El punto y coma no es necesario, solo si el punto y coma esta forzado en el plugin La forma en la que trabaja el do, while es la siguiente: Ejecuta el codigo dentro Chequea la condicion establecida Si la condicion se cumple, ejecuta el codigo; de lo contrario, finaliza el loop Vuelve al segundo paso El loop for es mas complicado que los otros loops, sin embargo no es algo realmente dificil. Cuestion de ver, entender y practicar. Generalmente es usado para contar de un numero a otro (Recuerden que todo representa numeros en la programacion). El "for" consta de 3 partes (parametros): inicial, condicion, incremento. Inicial - Creacion de variables para usar en el loop. Condicion - Sentencia de condicion para chequear si el loop debe continuar. Incremento - Incrementar el valor de la variable que fue creada. La estructura del loop "for" es la siguiente: for( [inicial]; [condicion]; [incremento] ) // Los punto y coma en este caso son obligatorios! { // Bloque de codigo } La forma en la que trabaja el for es la siguiente: Se ejecuta el incial Si la condicion es cumple, ejecuta el codigo; de lo contrario, finaliza el loop Ejecuta el bloque de codigo Ejecuta el incremento Vuelve al segundo paso Algunos ejemplos: // Contando de 1 a 5: for( new i = 1; i <= 5; i++ ) // i++ incrementa la variable i de a 1 { // Bloque de codigo } // Contando de 10 a 1: for( new i = 10; i >= 1; i-- ) // i-- decrece la variable i de a 1 { // Bloque de codigo } Dentro de los loops, se puede forzar para que una parte del codigo sea salteada y se vuelva a la condicion del loop. Esto se hace con el operador "continue": for( new i = 0; i < 4; i++ ) { if( i == 2 ) { continue; } // Bloque de codigo que se ejecutara excepto cuando i sea igual a 2 // Es decir que se va a ejecutar cuando i sea igual a 0, 1, 3 y 4 } Dentro de los loops, tambien se puede forzar a que finalice dicho loops, si se cumple cierta condicion, con el operador "break": for( new i = 0; i < 4; i++ ) { if( i == 2 ) { break; } // Este codigo solo se ejecutara cuando la variable i es igual a 0 y 1 // Cuando la variable i es igual a 2, el loop finaliza } Sentencia "Switch": Los switch son para determinar ciertos bloques de codigos dependiendo el resultado que de una funcion, una variable, etc... Son practicamente iguales al if. En muchos casos es mas comodo, prolijo, facil, etc... usar switch que conficiones con IF: switch( variable ) // No necesariamente tiene que ser una variable, puede ser una funcion directamente { case VALOR1: { // variable es igual a VALOR1 } case VALOR2: { // variable es igual a VALOR2 } case VALOR3: { // variable es igual a VALOR3 } } // En el caso del switch, en vez de else, aca se usa "default": switch( variable ) // No necesariamente tiene que ser una variable, puede ser una funcion directamente { case VALOR1: { // variable es igual a VALOR1 } case VALOR2: { // variable es igual a VALOR2 } default: { // variable no es igual a ninguno de los otros case's // Es decir que no es ni VALOR1 ni VALOR2 } } __________________
    1 punto
  45. PARTE 2 - Caracteres, Strings, Arrays de caracteres Definicion de string: Un string es definido como un grupo de 2 o mas caracteres continuos. En programacion, un string es solo un array de numeros que estan representados como un conjunto de ellos. Cada caracter en el conjunto de caracteres ASCII es representado por un valor entero en el rango de 0 y 255. En esta parte del tutorial vamos a solo considerar letras del alfabeto a pesar de que el conjunto de caracteres ASCII tiene muchos otros tipos de caracteres (incluyendo numeros y caracteres de puntuacion). Al final de un string hay un caracter nulo, siempre... tambien conocido como EOS (End of String) y el valor en ASCII es de 0. Cuando se define un array, en la cual se va a guardar un string, siempre hay que agregar 1 numero mas al tamaño del array (o grupos, o espacios, o slots, o como los quieran llamar ><), ya que hay se va a guardar ese caracter nulo que queda al final del string. Un ejemplo: Si quieren guardar en un string la palabra "auto", deben definir el array de una nueva variable, szVariable[5]. Como ven auto tiene solo 4 letras, pero el array que creamos contiene 5, ya que como dijimos le tenemos que agregar 1 mas, el cual va a contener ese caracter nulo. Cuando declaramos un array, por defecto cada elemento/grupo/espacio en el array tiene el valor de 0 (nulo), por ese motivo no se necesita setear manualmente el ultimo valor a 0. Acuerdense siempre de que un array siempre comienza por el 0, entonces un array definido con un tamaño de 5 va a ser ordenado desde el 0 hasta el 4 y el 5 va a ser nulo (0)... [ 0 , 1 , 2 , 3 , 4 ]. Conjunto de caracteres ASCII: Siempre tengan en cuenta que los caracteres en mayuscula y en minuscula son considerados totalmente distintos. Ejemplo: 'a' no es lo mismo que 'A' Valores enteros de caracteres ASCII: El rango de A-Z en valores enteros es de 65-90. 65 es 'A' y 90 es 'Z' El rango de a-z en valores enteros es de 97-122. 97 es 'a' y 122 es 'z' Definicion de strings con ejemplos de codigo: Supongan que queremos definir un string y guardar la palabra "auto" o "AUTO". Lo podemos hacer de 2 formas: 1. Si vas a asignar un valor de string a tu variable cuando la creas, no necesitas de especificar el tamaño del array. El compilador lo hace automaticamente, y tambien incluye el elemento extra para el caracter nulo al final. new szVariable[] = "auto" new szVariable[] = "AUTO" * Como veran, siempre cuando asignan un valor de string lo deben hacer encerrandolo con comillas. * el "sz" al comienzo del nombre de la variable no es obligatorio, pero generalmente se usa para saber que esa variable contiene un string. Es una buena costumbre en programacion. 2. Ahora vamos a crear un array de 5 elementos. Fijense como creamos la variable, usando 1 numero mas al tamaño del array, ya que es necesario por lo previamente explicado. new szVariable[5] szVariable[0] = 119 // a szVariable[1] = 111 // u szVariable[2] = 114 // t szVariable[3] = 100 // o szVariable[4] = 0 // nulo .. Esto no es necesario ya que el valor default es 0 como dijimos antes. szVariable[0] = 87 // A szVariable[1] = 79 // U szVariable[2] = 82 // T szVariable[3] = 68 // O szVariable[4] = 0 // nulo .. Esto no es necesario ya que el valor default es 0 como dijimos antes. // Cabe aclarar que no necesitas memorizar los valores de ASCII por cada caracter. // Podes asignar un caracter a cada elemento del array usando las comillas simples. Ejemplo: szVariable0] = 'a' szVariable[1] = 'u' szVariable[2] = 't' szVariable[3] = 'o' szVariable[4] = '^0' // Obviamente este ultimo tambien es nulo y no es necesario declararlo, // pero es para que entiendan su funcionamiento y estructura. String terminado en caracter nulo: Como mensionamos antes, cuando un caracter nulo (valor 0) en encontrado en el array, es considerado el final del string. Para verlo en accion, aca un pequeño ejemplo: new szVariable[] = "terrorista" szVariable[4] = 0 // Le seteamos el valor 0 (nulo) al caracter 'o' // Ya que la estructura de tal string, es asi: szVariable[0] = 't' szVariable[1] = 'e' szVariable[2] = 'r' szVariable[3] = 'r' szVariable[4] = 'o' // Aca szVariable[5] = 'r' szVariable[6] = 'i' szVariable[7] = 's' szVariable[8] = 't' szVariable[9] = 'a' // Entonces al setearle el caracter 'o' a nulo, logramos que el string quede asi: // "terror" en vez de "terrorista" Loopeando a travez de los caracteres de un string: Al hacer un loop, hacemos una accion repetida (una X cantidad de veces seteada en esta bool) recorriendo X cosa, en este caso los caracteres de un string. Uno por uno, caracter por caracter, y en el ejemplo siguiente se va a mostrar como hacer esto e ir contando el numero de letras y espacios que se encuentran dentro del string. Podemos hacer esto de 2 maneras diferentes, usando condiciones (if/else) o switch. La estructura del loop es la siguiente: for ( expresion1 ; expresion2 ; expresion3). Explicacion de las expresiones: expresion1: Evaluada solo una vez, antes de de que comience el loopeo. Esto es usado para declarar una variable que usamos en el loop. expresion2: Evaluada antes de cada iteracion. El loopeo es continuo hasta que esta expresion devuelva el valor de false (falso). Es decir que esta condicion no se cumpla... ya que esta expresion seria una condicion. expresion3: Evaluada despues de cada iteracion. Normalmente usado para incrementar el indice de la variable que fue declarada en la expresion1. Nota: Se pueden omitir todas las expresiones de una loop lo cual produce un loop infinito (bucle infinito): for ( ; ; ) [No intentes esto mientras no sepas lo que estas haciendo!] // Expresion1: Declaramos "i" como la variable que vamos a usar para titular al indice del array (tiene el valor de 0 por defecto). // Expresion2: Continua repitiendose hasta que "i" sea mayor a 9 ( i > 9 ). El loop va a continuar mientras "i" sea menor o igual a 9 ( i <= 9 ). // Expresion3: Si la condicion de la expresion2 se cumple, la variable "i" incrementa a 1 por cada loopeo. // Ejemplo: for ( new i ; i <= 9 ; i++ ) { // Aca va el codigo que se repite por cada iteracion } // Con este loop, el codigo va a empezar con i = 0, despues ejecuta el codigo que esta en el bloque y luego vuelve a la linea del for-loop para evaluar la condicion de la expresion2. // Si la condicion de la expresion2 da el valor de true (verdadero), evalua la expresion3 y procede a ejecutar devuelta, el codigo que esta en el bloque. // Esto continua hasta que la expresion2 de el valor de false (falso). Es decir, hasta que i (0) llegue hasta 9 (ya que por cada iteracion "i" incrementa en 1. strlen() es una funcion que esta integrada en el AMXX Core (el nucleo del amxx), esta funcion devuelve la longitud de un string, es decir la cantidad de caracteres que tiene un string (excluyendo al valor nulo). new szString[] = "esto es un string" new iLongitud = strlen( szString ) new iEspacios; new iLetras_t; for ( new i = 0 ; i < iLongitud ; i++ ) { if ( szString[i] == ' ' ) iEspacios++ else if ( szString[i] == 't' ) iLetras_t++ } // Comienza de 0 y loopea mientras el indice de la variable "i" sea menor a la longitud del string de la variable szString[] // Usamos "<" y no "<=" ya que siempre tiene que ser un numero menor porque como se deben acordar el ultimo elemento es nulo // O tambien podemos usar switch en vez de if/else: for ( new i = 0 ; i < iLongitud ; i++ ) { switch ( szString[i] ) { case ' ': iEspacios++ case 't': iLetras_t++ } } // El resultado de esto (de cualquiera de las 2 formas) es: // Espacios = 3 y Letras 't' = 2 // Podemos mostrar este resultado agregando un client_print despues del loop: client_print(id, print_chat, "Espacios = %i y Letras 't' = %i", iEspacios, iLetras_t) Y como otro ejemplo, aca un codigo que crea un string donde guarda todas las minusculas del alfabeto: new szAlfabeto[27] // 26 letras en el alfabeto + un elemento extra para el caracter nulo. // 'a' tiene un valor en ASCII de 97, entonces solo tenemos que agregarlo // a nuestro indice del loop, ya que se incrementa con cada paso for ( new i = 0 ; i < 26 ; i++ ) szAlfabeto[i] = i + 97 // Asignamos el valor de ASCII al array y despues incrementamos el valor ASCII de la variable // Esto es lo que va a ocurrir mientras se ejecuta el loop: /* szAlfabeto[0] = 97 // a szAlfabeto[1] = 98 // b szAlfabeto[2] = 99 // c szAlfabeto[3] = 100 // d ... szAlfabeto[25] = 122 // z */ // Creo, que tambien se puede hacer de la siguiente manera: for ( new i = 0 ; i < charsmax(szAlfabeto) ; i++ ) szAlfabeto[i] = i + 97 // Ya tambien asi: for ( new i = 0 ; i < sizeof(szAlfabeto) - 1 ; i++ ) szAlfabeto[i] = i + 97 // Pero no estoy seguro de esto... cualquiera cosa lo podrian probar Array de 2 Dimensiones: Podes crear un array con varios strings, yo use siempre estos 2 terminos en ingles ya que creo que es la mejor manera de aprender, conociendolos por estos nombres... sin embargo si quieren una correcta traduccion de estos 2 terminos a "Array de Strings" lo pueden entender como "Matriz de Cadenas". Esto es conocido como un array de dos dimensiones. Un ejemplo: // Para definir el string en un array de dos dimensiones, asignamos el valor del string cuando la creamos: new szString[][] = { "esto" , "es" , "un" , "array" , "de" , "dos", "dimensiones" } // Los strings son accesibles mediante el index de dicho string // Ejemplo: szString[0] = "esto", szString[1] = "es" // Estructura: new szString[numero de strings][Longitud de cada string] // Recuerden que tambien pueden hacer algo asi por si les es mas comodo: new szString[][] = { "esto", "es", "un", "array", "de", "dos", "dimensiones" // El ultimo va sin coma, siempre } // Tambien, esto se hace de la misma forma que cuando usamos un array normal. // Es cuestion de entender el orden de cada cosa, para obtener el string "array", usamos szString[3] // Y para obtener la letra 'a' de "array" es simplemente szString[3][0] y para la letra 'r' es szString[3][1] y asi sucesivamente Hay una numerosa cantidad de funciones integradas en el AMXX Core que hacen mas facil la manipulacion de los strings. Y las pueden ver en este link
    1 punto
  46. Hardcook

    Buenas

    Hola si. Boinas. Buenas. Hello. ARRE LOCO! Volví (Gracias P'erita por avisar que habias abierto el foro) Gretz.
    1 punto
Esta tabla de líderes esta establecida para Argentina - Buenos Aires/GMT-03:00
×
×
  • Crear nuevo...

Información importante

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