Jump to content

Tabla de líderes

Contenido popular

Showing content with the highest reputation on 01/07/19 en todas las areas

  1. Este evento surge de la Sugerencia Mapa en Conjunto. Y hago este post aparte porque ya es algo concreto y que vamos a realizar. Además hay que dejar claro en lo que estamos de acuerdo hasta ahora para poder seguir avanzando en el proyecto. Se que varios tienen algunas ideas pero solo podemos hacer una cosa y en esto estamos de acuerdo varios. Luego podemos hacer otro tipo de mapa. Tipo de mapa: Kz_ (Descripción mapa Kz) Ambiente: A discutir. (Montaña por ejemplo). Método de trabajo: - Cada uno se ocupa de la construcción, iluminación, detallado, debugging, etc. de su propia porción de mapa. - Vamos de a uno, hace una parte y luego se la pasa a otro que se encarga de unir la porción anterior con la suya y continuar el mapa. - Alguien que ya editó su parte, puede volver a pedir el mapa para mejorar su dicho sector. - Sin fechas límite pero que sea considerado y si no puede que le pase el mapa al que sigue. - Al momento de pasar el mapa, hacerlo por mensaje privado Por ahora eso, tenemos tiempo igual xD. Wads: - Developer (Descarga) - texturas_especiales (Descarga) - rockmm.wad (Descarga) - - ... (A proponer a partir del ambiente que se vote) Fgds: - cs 16expert-hex804 (Descargar) - counter-strike-SP (Descargar) Participantes: • Incrusser • Carnacleos • LeaN • karmanMZ • diego_201014 • DanielMap (Está abierto a todos los miembros de la comunidad, el que quiere participar que lo comente y será agregado, y de paso deje su opinión sobre el ambiente por favor) Antes de elegir quien comienza, quien sigue y demás. Debemos aclarar el ambiente y los wads a utilizar, luego comenzar.
    1 punto
  2. Son algunos inodoros, pileta y una ducha demasiado simple. Pueden ser usados para darse ejemplo o usarlos. Es decir crear uno con más forma(rendonda/real.. si se aplicara) para que quede bien. Algunos usuarios de seguro le den algún uso simple Descarga: Simple prefab bathroom (toilet, bathtub) (Counter-Strike 1.6 > Prefabs > Other/Misc) - GAMEBANANA
    1 punto
  3. Jairito Mapper

    RMF ze_area51_v1

    Hola a todos! Aqui dejo el RMF de un mapa muy jugado en el ZE que hice el año pasado. Es simple y dejo el RMF para que se den una idea de como creo los escapes y asi, porque la verdad soy malo para los tutoriales DESCARGA RMF: ze_area51_v1 MAPA ORIGINAL: Gamebanana - ze_area51_v1
    1 punto
  4. FREDDY

    [Prefab KZ] TimerCounter

    Bueno me gustaría compartir este prefabricado que encontré en un foro ruso y es algo "difícil" encontrarlo. El prefabricado es el Cronometro que toma tu tiempo en un mapa kz. Ya que muchos no saben hacerlo(me incluyo), esto creo que les vendría muy bien. Link de descarga: clic aquí
    1 punto
  5. Descubre la colección completa de mapas oficiales para Counter-Strike 1.6 con nuestros archivos RMF originales. Esta selección incluye todos los mapas clásicos que han definido la experiencia de juego de CS 1.6, permitiéndote revivir la nostalgia de las batallas épicas. Perfecto para jugadores veteranos y nuevos, estos mapas te ofrecen la oportunidad de explorar y disfrutar de los escenarios más icónicos del juego. ¡Descarga ahora y sumérgete en la acción! Les dejo los 14 rmf's de los mapas oficiales del CS 1.6. Puede servir para un remake, para saber como se trabajo en estructura, entidades y demas. as_oilrig.rmf cs_assault.rmf cs_havana.rmf cs_italy.rmf cs_militia.rmf cs_office.rmf de_aztec.rmf de_cbble.rmf de_chateau.rmf de_dust.rmf de_dust2.rmf de_inferno.rmf de_nuke.rmf de_train.rmf
    1 punto
  6. Bola giratoria convertida en Func_rotating y texturizada con texturas animadas (+) y null DESCARGA: bola_boliche
    1 punto
  7. Como les va, hoy les dejo un abecedario simple para que agregen a sus maps: Descarga: https://mega.co.nz/#!ot0V3IKI!1aZEIEwd2hxVrBWof8CtP8PLXoquE_cE3RjQ3BL2cyA Espero que le sirva de algo saludos!.
    1 punto
  8. Buenas mappers, en esta ocacion vengo con la siguiente idea (aunque ya sugerida por cierto usuario), pero algo diferente, mappear algo "random" a partir de un rmf ya empezado por mi. El que quiera participar que comente y el archivo se le pasara, para luego en el transcurso de 1 semana dicho usuario se lo pasara al que haya comentado despues de el, logimente agregando los wads que haya usado en un rar, en lo posible seria conveniente que se usaran un maximo de 5 wads. Texturas usadas: halflife.wad Orden de los participantes: 1:Zyon 2:Alexboos (no responde) 3: DanielMap 4:IvNN 5: diego_201014 6:[.] Puntito
    1 punto
  9. English You have to make some objects said by directors, this tournament is divided in three parts, in the first we will select the best five, in the secound the best three and then the final. The following features will be taken in count: -General desing of the prefab -Details -Used Textures -Staging -Lighting The election process will be carried out by the admins, but in the final stage the losers will also participate in the selection sending a pm to the admins. Participantes: CiNdOR^ qsc chaosmedia90 tada-s Dario livewire Micka!
    1 punto
  10. Resultados aim_ak-colt_desert | [.] Puntito Un buen mapa, algo simple para la expectativa, ya que sabemos que podes hacerlo mejor, pero también sabemos que no podes contar por ahora con el CS 1.6 para al menos testear tu propio mapa. Para criticar, la iluminación, ya que esta muy iluminado para tener un sky de noche, habría que editar la iluminación o cambiar el sky para coordinar el realismo en ese aspecto. Lo bueno es que está bien optimizado, de la jugabilidad no hay nada para criticar porque está bien, utilizaste bien las texturas y cuenta con un gran detalle en el centro del mapa incluyendo esa pequeña vegetación. aim_district | Darío Un mapa grande y con mucho detalle, realmente muy bueno estéticamente, pero tiene wpolys y epolys demasiado elevados, lo que hace al mapa (y me apena decirlo) directamente no apto para jugar. Creo que hubiera sido bueno evitar crear los caminos atras de las bases, y achicar el largo del mapa, eso hubiera ayudado bastante. Hay un bug en el piso destruido, te podes quedar trabado entre el solido clip y el cartel de prohibido el paso. Sin embargo, queremos recalcar que los detalles están muy buenos, el semáforo, los postes de luz, la habitación completa donde hay ácido, el detalle en la calle en general, incluso hay detalles donde ni un mapper los vería. Asi que quizás a pesar de haberlo observado todo, quizás no hayamos visto todo. Muy buenas ideas para la creación. aim_decound | Carnacleos De lo mejor estéticamente, por todo en general, la estructura, iluminación, detalles, texturas y tamaño de todo con respecto al jugador, lo único para criticar en este aspecto es la implementación del eco, ya que el espacio está bien cubierto con objetos y con la estructura que es variada, por ende, no es real el eco en el lugar. La jugabilidad es buena también, tiene bastante para cubrirse, ya sea con la estructura o con objetos del mapa, lo que si, de un lado hay unos estantes para cubrirse y en el lado del otro equipo no es así, está bueno romper un poco con la simetría, pero quizás esto juegue un poco en contra, igual es mínimo. Además el mapa tiene un tamaño adecuado. Pero, y este es uno de los peros que mas lamento, la optimización no es buena. Los wpolys llegan a los 2700, 2800 y 3000 ubicándose en el fondo. Los objetos y demás están bien editados como para no generar polígonos demás, así que claramente el problema es la gran cantidad de detalles puestos, también podría ser el hecho de usar escalas bajas en X e Y para las texturas (por ejemplo 0.30, 0.20, lo que eleva polígonos), digo esto porque se nota mucha calidad en las mismas, quizás me equivoque y los números son adecuados. La optimización es clave, igualmente recalco lo que dije en un principio. aim_gawwa | gaWWa* Las texturas, algunas están bien seleccionadas y otras están muy usadas. En cuanto a la iluminación, usual, no tiene mucho detalle, exceptuando las luces del medio que quedaron bien. Con respecto a la jugabilidad, está bien, creaste buenos escondites en general. Se nota que es un mapa simple, lamentablemente no tiene la dedicación esperada como mencionaste, igualmente a pesar de ser una creación rápida y repentina te las arreglaste bien para crear. aim_factory | DanielMap Buen mapa, sencillo y con calidad. En cuanto a las texturas, excelente selección. Los cortes en diagonal entre el camino y el pasto casi no se notan, asi que muy bien. Todo el borde de árboles quedó bien. Las ventanas tienen un tamaño excelente en proporción al jugador, como todo en general. En aspecto detalles está bien, si bien se puede rellenar con mas cosas, no tiene poco asi que no juega en contra. Buen detalle el sonido de los pájaros y también el game_text. Con respecto a la jugabilidad, el detalle de las columnas gruesas son algo clave para obtener una jugabilidad variada, no solo para esconderse sino para acercarse sigilosamente a la base contraria o al centro del mapa, de lo contrario la jugabilidad sería mas simple. La optimización está bastante bien cuidada llegando a los 300 wpolys aproximadamente. No tenemos críticas, excelente. aim_oldstylex | BetanSaim Un lindo mapa variado en detalles. De las texturas dos mínimas críticas, la primera es que hay un par de mismos sólidos con madera en una cara y concreto en otra, o madera en una cara y teja en otra, eso no termina de coincidir. Lo segundo es la textura negra/black utilizada en postes y soportes, eso no queda muy real, ya que la textura no tiene detalle en sí, iría mejor una textura de metal o de madera para el poste. Luego en el resto, y siguiendo con el tema texturas, está muy bien seleccionado y combinado, de lo mejor en ese sentido. Ahora en el tema jugabilidad, entretenido y diverso sin afectar una jugabilidad justa para este tipo de mapas. Un detalle singular el del sonido, bien. Y por último la optimización, excelente logro a pesar de usar variados recursos y varios cortes en los sólidos, muy bien. aim_destruction | diego_201014 Un mapa grande y detallado. Empezando por la crítica, la dimension del mapa afectó en la optimización, ya que los wpolys llegan a los 3000. Por otra parte 2 cuestiones, y primeramente aclaramos que son bugs del juego. La primera es que la lava es un func_water con Contents: lava, y el tener esto provoca un bug que hace que en la siguiente ronda, los jugadores que se hayan muerto en la lava aparezcan con menos vida (entre 70 y 90 hp). Lo segundo es que la creación del piso rompible en el centro del mapa, al romperse quedan flotando las cajas y las armas colocadas ahí. Igualmente repito, son bugs del juego, pero es mejor tratar de evitarlos (para la lava un func_water que no haga daño + trigger_hurt superpuesto, y para el centro rompible sacar las armas o evitar el problema de alguna otra manera). Igual está muy bueno el detalle junto con que se rompan algunas cajas al dispararles. Ahora hablando del tema texturas, muy bien su selección, gustó. La estructura y el diseño del mapa también ha gustado bastante, hay buena variación y se nota el trabajo realizado con buenas ideas acompañadas. Esto ayuda a la jugabilidad, además respetaste una igualdad para ambos equipos, lo único que afecta a la jugabilidad, es lo ya mencionado que es la optimización que provoca fps bajos. Ganadores
    1 punto
  11. totopizza

    [TUT] Niveles por macro

    Nombre: Niveles por macro Author: Metrikcz Imágenes: No hay... Fuente: [TUT] Niveles por macro Resto del Tutorial: Bueno aquí les dejo un sistema de levels por macro Aclaro que este sistema sirve para cualquier MOD #include <amxmodx> #include <hamsandwich> // Lo usaremos para registrar el event cuando el jugador muere #define PLUGIN "Tutorial Levels" // Nombre de plugin #define VERSION "1.0" // Version #define AUTHOR "Metrikcz" // Author // Macro, en este definiremos la cantidad de experiencia que se ocupara para cada nivel, es una operacion // donde %1 es el level del usuario, Por ejemplo: // si es level 8 el resultado seria: 640 --- > 8 * 8 * 10 = 640 // El macro ustedes lo pueden definir a como ustedes quieran la operacion, como la sientan mas comoda #define level_up(%1) (%1 * %1 * 10) // Variables donde almacenaremos el nivel y experiencia del jugador new g_level[33], g_exp[33] // Variable de la cvar new cvar_expkill, cvar_maxlevel new menu public plugin_init() { // Registramos el plugin register_plugin(PLUGIN, VERSION, AUTHOR) // registramos el evento cuando alguien muere RegisterHam(Ham_Killed, "player", "fw_playerkilled_post", 1) // Registramos el comando para que el usuario vea su level y para que vea la exp de cada level register_clcmd("say /level", "clcmd_saylevel") register_clcmd("say /levels", "clcmd_saylevels") // registramos la cvar cvar_expkill = register_cvar("exp_kill", "25") cvar_maxlevel = register_cvar("maxlevel", "100") // Creamos el menu, global porque nunca cambiara amenos que cambien el valor de la cvar de maxlevel create_menu() } create_menu() { // Creamos el menu, primer parametro nombre del menu, el segundo es el handler menu = menu_create("Tutorial Sistema de Levels | Experiencia para cada level", "handler_menu") //Creamos una variable en la cual guardaremos el valor de el level maximo new len[40], maxlevel = get_pcvar_num(cvar_maxlevel) // Lopeamos entre todos los posibles levels for(new i = 0; i < maxlevel; i++) { formatex(len, charsmax(len), "\wLevel: \y%d - \r%i", i+1, level_up(i)) menu_additem(menu, len, "1") // tercer parametro no importa } } // Foward Cuando el usuario entra al servidor public client_putinserver(id) { // Reiniciamos los valores de level y experiencia g_level[id] = 1 g_exp[id] = 0 } public fw_playerkilled_post(victim, attacker) { // chequeamos si el atacante esta conectado, si no lo esta ignoramos la funcion if(!is_user_connected(attacker)) return HAM_IGNORED; // chequeamos si la victima es igual al attacker, osea si el jugador se suicido if(victim == attacker) return HAM_IGNORED; // Llamamos a la funcion donde al atacante le daremos la experiencia de la cvar // get_pcvar_num(cvar_exp_kill) Obtiene el valor de la cvar para darle la exp de la cvar // Primer parametro define para quien va la experiencia y el segundo la cantidad set_exp(attacker, get_pcvar_num(cvar_expkill)) // Le mandamos un mensaje disiendo que gano "X" experiencia por matar client_print(attacker, print_chat, "Ganas %d Experiencia por Matar", get_pcvar_num(cvar_expkill)) return HAM_IGNORED; } set_exp(id, exp) { // Le damos al usuario la experiencia del segundo parametro "exp" g_exp[id] += clamp(exp, 0, level_up(get_pcvar_num(cvar_maxlevel))) //Llamamos a esta funcion para checar su ha subido de nivel update_level(id) } update_level(id) { // Checamos si su experiencia es mayor o igual a la necesaria para su siguiente nivel y si no es el level maximo, por ejemplo: // Digamos que es level 5, la experiencia necesaria para su siguiente level es 250 deacuerdo al macro (5*5*10=250) // si su exp es 253 muy bien se cumple la condicion y subira de level // level_up(g_level[id]) == level_up(5) porque suponiendo que g_level[id] es 5 asi seria while(g_exp[id] >= level_up(g_level[id]) && g_level[id] < get_pcvar_num(cvar_maxlevel)) { // Aumentamos su level g_level[id]++ /* g_level[id] += 1 || es lo mismo que lo de arriba */ // Mandamos un mensaje disiendo que subio de level client_print(id, print_chat, "Felicidades has ascendido al level: %d", g_level[id]) } } public clcmd_saylevel(id) { // Mandamos un mensaje mostrando su level y experiencia client_print(id, print_chat, "Su level: %d / %d| Experiencia: %d / %i", g_level[id], get_pcvar_num(cvar_maxlevel), g_exp[id], level_up(g_level[id])) // Mandamos un return plugin_handled para que no salga en el say cuando el wey escribe /level // Regularmente no deberia de salir pero a algunos servers se les bugea el say (zp) y si aparece return PLUGIN_HANDLED; } public clcmd_saylevels(id) menu_display(id, menu, 0) public handler_menu(id, menu, item) { // si no le pico al 0, osea para salir del menu, le mostraremos el menu de nuevo if(!(item == MENU_EXIT)) clcmd_saylevels(id) } say /level - Vemos el level del usuario y level maximo y tambien vemos su exp y experiencia necesaria para su siguiente level say /levels - Vemos la lista de levels y la experiencia que se necesita para cada uno!
    1 punto
  12. Nombre del plugin: Show HUD Armor & Health Author: acetatomil Descripción: con este plugin podremos saber nuestra vida y armor mientras estamos vivos. Imágenes: No hay... Fuente: Show Armor & Health Código: #include <amxmodx> #include <amxmisc> #include <fakemeta> #define PLUGIN "Show HUD Armor & Health" #define VERSION "1.0" #define AUTHOR "acetatomil" #define TASK_HUD 2100 new SyncHUD public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) SyncHUD = CreateHudSyncObj() } public client_putinserver(id) { set_task(1.0, "ShowHUD", id+TASK_HUD, _, _, "b") } public client_disconnect(id) { remove_task(id+TASK_HUD) } public ShowHUD(taskid) { new id = taskid-TASK_HUD if (!is_user_alive(id)) { id = pev(id, pev_iuser2) if (!is_user_alive(id)) return; } set_hudmessage(0, 255, 0, 0.39, 0.8, 0, 6.0, 1.0) ShowSyncHudMsg(id, SyncHUD, "Heatlh: %d Armor: %d", get_user_health(id), get_user_armor(id)) }
    1 punto
  13. Nombre del plugin: Matanzas y Muertes por HUD Author: K.-' Descripción: Con este plugin sabremos simpre cuantos frags y muertes tenemos Imágenes: Fuente: Show Frags y Muertes por hud Código: #include <amxmodx> #include <amxmisc> #define PLUGIN "Plugin peruano" #define VERSION "1.0" #define AUTHOR "K.-'" new g_conectado[33] new g_hud public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) g_hud = CreateHudSyncObj() } public client_putinserver(id) /* Cuando el cliente (PLAYER) entra al server : */ { g_conectado[id] = 1 set_task(2.0,"hud_personal",id+100,_,_,"b"); // Hacemos un hud con "B" , signifca que se actualiza solo cada 2 seg } public client_disconnect(id) /* Cuando el cliente se desconecta del server */ { g_conectado[id] = 0 // Le Seteamos la variable g_conectado[33] en false o 0 , es lo mismo. } public hud_personal(taskid) // El hud , registrado cuando el cliente entra al servidor { new id = taskid - 100; // Algun dia voy a saber explicar esto if (!g_conectado[id]) return; set_hudmessage(85, 255, 212, 0.80, 0.12, 0, 6.0, 12.0) // Las caracteristicas del Hud ShowSyncHudMsg(id, g_hud, "Matanzas %d^nMuertes %d", get_user_frags(id), get_user_deaths(id)) }
    1 punto
  14. Nombre del Plugin: Anti Graffitis Author: Avila Descripción: Con este plugin, podremos bloquear los graffitis en el servidor. El jugador no podra pintar en la pared Imágenes: No hay... Fuente: Anti Graffitis Código: #include <amxmodx> #include <engine> #define PLUGIN "Anti Graffitis" #define VERSION "1.0" #define AUTHOR "Avila" const IMPULSE_SPRAY = 201 new g_msgSayText, g_bMsgSend; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("HLTV", "event_round_start", "a", "1=0", "2=0"); register_impulse(IMPULSE_SPRAY, "cmd_grafity") g_msgSayText = get_user_msgid("SayText") } public event_round_start() g_bMsgSend = 0; public cmd_grafity(id) { if (~g_bMsgSend & (1 << id-1)) { g_bMsgSend ^= (1 << id-1) message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, id); write_byte(id); write_string("^x01[AMXX] No esta permitido poner^x04 graffitis^x01 en este servidor"); message_end(); } return PLUGIN_HANDLED }
    1 punto
  15. Nombre del plugin: Player PRo Author: Metrikcz Descripcíon: Con este plugin, podremos saber quien es el mejor jugador, el que tiene mas frags mediantes un Mensaje HUD Imágenes: No hay.. Fuente: Player PRo Código: #include <amxmodx> #include <hamsandwich> #define PLUGIN "Player PRo" #define VERSION "1.1" #define AUTHOR "Metrikcz" new g_maxplayers, g_player_proname[32] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Killed, "player", "reload_playerpro", 1) g_maxplayers = get_maxplayers() set_task(1.0, "show_playerpro", _, _, _, "b") } public show_playerpro() { set_hudmessage(0, 255, 255, 0.80, 0.11, 1, 1.0, 1.0) show_hudmessage(0, "Jugador en cabeza: %s", g_player_proname) } public reload_playerpro() { new sort[33][2], count for(new id = 1; id <= g_maxplayers; id++) { if(is_user_connected(id)) { sort[count][0] = id sort[count][1] = get_user_frags(id) count++ } } SortCustom2D(sort, count, "sort_player_frags") get_user_name(sort[0][0], g_player_proname, charsmax(g_player_proname)) } public sort_player_frags(pl1[], pl2[]) { if(pl1[1] > pl2[1]) return -1; else if(pl1[1] < pl2[1]) return 1; return 0; }
    1 punto
  16. Esto es un copy and paste! Nombre del plugin: AdminConnect1.0 Author: Skylar Descripción: Version 1.0 - Al entrar un admin sale un say, ejemplo del say "Nombre - Skylar || Admin - Vip" Version 1.1 - En el say sale "Nombre - Skylar || Admin - VIP || Vencimiento - 22/04/2015" y automaticamente se desactiva el admin cuando haya vencido. Adentro del sma pueden configurar los flags de los admin(Vip, full y basic) y el nombre del admin Creditos - alan_el_more( por su plugin de admin vencimiento ) Include unixtime ------------------------- Imágenes: No hay.. Fuente: AdminConnect1.0 Código sma: Descargar AdminConnect1.0 ------ Descargar AdminConnect1.1
    1 punto
  17. Esto es un Copy and Paste! Autor: Pancho.-'+hud;Erater Descripción Extendida: Bueno esto lo hice hace mucho, y no sabia si ponerlo en plugins nuevos o aportes. Al final me decidi por aportes, pero edite el autor por mi y le di agradecimientos a Empower, ya que uso su algoritmo para detectar cuando es scroll. Es un buen metodo por cierto. Si bien esta el de Empower, es como que le falta un "plus" ya que detecta el scroll pero no lo bloquea completamente, y a mi se me ocurrio esta idea para bloquearlo definitivamente. Yo lo testie en mi server y funciona perfecto. Pero eso si!, no tuve buena experiencia ya que la mayoria duckeaba con la rueda.. o ni sabia lo que era scroll :roflmao: tanta gente pidiendo un anti-scroll bueno aca les traigo uno, y espero que les sirva. Anti-Scroll Fade to Black (v1.2) Que es Scroll?: Descripcion corta: Cuando un player duckea con scroll (rueda del mouse), a este mismo se le pondra la pantalla en negro o del color que hallamos pre-configurado con "color_type". A su vez tambien sera "tosqueado" (trabado). Nota: El fadescreen ira desapareciendo de a poco. Librerias: Cvars: anti_scroll "1" (cualquier valor diferente a 1, desactiva el plugin) screen_fade "1" (cualquier valor diferente a 1, desactiva el fadescreen) color_type "0 000 0" (cambia el color al momento de mostrar el fadescreen, formato RGB) Nota: Si ponen el valor en "255 0 0" o derivados del rojo. El hud de cuenta regresiva no se vera o sera dificultoso verlo. Instalacion: Inconvenientes (posibles bugs): v1.2 - (Esperando a ser encontrados). Creditos: v1.0- Pancho.-'+hud;Erater (mi tag de scripter). Empower (por tomar prestado el algoritmo de la deteccion del scroll). ConnorMCLoad (por el include). bibu (por sugerirme utilizar el include de screenfade). v1.2 - ErikMav94 (por ayudarme a setear task por id de player) Por Hacer: - Cuando el jugador recibe una flashbang, hacer que el efecto siga si el player scrolleo y el Fade Screen es colocado. (Solucionado) Changelog: Imagenes: v1.2 - Nuevo hud con un conteo regresivo hasta que se acabe el pantallazo: (Problemas de flashbang y transparencias arreglados). Nuevos creditos al primer spawn: ---------------- Es mas un post de la publicacion de un nuevo plugin pero.. hasta tiene Changelog :proud: Bueno tan solo deseaba compartirlo, si coinsideran que puede ir en Plugins Nuevos, bueno pueden moverlo y si no dejenlo aca en aportes!, espero que le sirva a mas de uno!. PD: No puse ni una sola tilde! Saludos!!! ----------------------------- Fuente: Anti-Scroll Fade to Black Código sma: Descargar Código inc: Descargar
    1 punto
  18. jollero

    Crear y Guardar "Cajas"

    Hola a todos,Este es mi primer tutorial :c y quise hacerlo con algo referido al "mapping" aunque no tanto pero tal ves les sirva. En este tutorial les explicare como Crear y Guardar (Desde un archivo.ini) "Cajas" o el model que quieran,tambien de Como tocar y remover el mismo. En las siguiente variable(const) new const Model[] = "models/caja.mdl" Ustedes la modificaran a su gusto para indicar la ubicacion de su caja/model #Creditos: AguuS.- Pondre todo el "Code" entiquedas PHP: #include <amxmodx> #include <engine> new const PluginName[] = "[TUT] Crear y Guardar Cajas" //Nombre del Plugin new const PluginVersion[] = "1.0" //Version del Plugin new const PluginAuthor[] = "jollero" //Author del Plug new const Entidad[] = "Caja" //Creamos un Const,el cual registra la entidad "Caja" para detectarla new const Model[] = "models/caja.mdl" //Creamos un const,que determina la ubicacion de nuestra "Caja" new DirectorioFile[128] // Variable de nuestro Directorio public plugin_init() { register_plugin(PluginName,PluginVersion,PluginAuthor) //registramos el Plugin :V register_touch(Entidad,"player","TocarCaja") //Registramos el evento "Touch" que determina si el player Toco la "Caja" register_clcmd("say /menucajas","MenuDeCajas") //Registramos el menu para Tirar/Guardar/Borrar cajas } public plugin_precache() precache_model(Model) // precacheamos nuestra Caja public plugin_cfg() { new Directorio[64], MapaNombre[32]//Creamos variables :Directorio y nombre del mapa get_localinfo("amxx_configsdir", Directorio, charsmax(Directorio))//Obtenemos la obicacion correcta del directorio get_mapname(MapaNombre, charsmax(MapaNombre))//Obtenemos el nombre del Mapa strtolower(MapaNombre) // Nice formatex(DirectorioFile, charsmax(DirectorioFile), "%s/Cajas/%s.ini", Directorio, MapaNombre)//Le asignamos el directorio correcto if(!file_exists(DirectorioFile))//Si el directorio no Existe { server_print("No hay Cajas Guardadas")//Mensaje de que no hay cajas add(Directorio, charsmax(Directorio), "/Cajas")//Creamos el directorio if(!dir_exists(Directorio)) mkdir(Directorio) } else //Si existe .. CajasFile() //Leemos el archivo } CajasFile(){ new szData[64], szX[13], szY[13], szZ[13], Origin[3]//Vars new File = fopen(DirectorioFile, "rt")//Abrimos el Directorio para leer el texto while(!feof(File)) { fgets(File, szData, charsmax(szData))//Obtenemos el Texto del Archivo if(!szData[0] || szData[0] == ';' || szData[0] == ' ' || (szData[0] == '/' && szData[1] == '/'))//Si no hay texto o Es igual a ";" " " "/" "/" continue//continuamos parse(szData, szX, charsmax(szX), szY, charsmax(szY), szZ, charsmax(szZ)) Origin[0] = str_to_num(szX)//Le asignamos a szX la primera obicacion Origin[1] = str_to_num(szY)//Le asignamos a szY la segunda obicacion Origin[2] = str_to_num(szZ)//Le asignamos a szZ la tercera obicacion CrearCaja(Origin)//Creamos la caja con las Ubicaciones de el archivo } fclose(File)//Cerramos el Archivo } public CrearCaja(iOrigin[3]) { new iEnt = create_entity("info_target") // Creamos la caja con un nombre new Float:OriginF[3] //Creamos un float:OriginF IVecFVec(iOrigin, OriginF) //Creo:Igualamos el archivo Float:OriginF con nuestra ubicacion iOrigin entity_set_vector(iEnt, EV_VEC_origin, OriginF) //Le asignamos el Origin (Ubicacion guardada en el .ini o donde apuntamos) entity_set_string(iEnt, EV_SZ_classname, Entidad) // Le asignamos el Nombre de nuestra Caja entity_set_model(iEnt, Model) // Le damos el Models de nuestra Caja new Float:mins[3] = {-10.0, -10.0, 0.0} // El tamaño new Float:maxs[3] = {10.0, 10.0, 25.0} // El tamaño entity_set_size(iEnt, mins, maxs) //Le damos el Tamaño a nuestra caja entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER) // La hacemos solida entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_STEP) // Hacemos que no se mueva. drop_to_floor(iEnt) // La tiramos al piso. } public TocarCaja(iEntidad, iTocador) {// if (!is_valid_ent(iEntidad) || !is_valid_ent(iTocador) || !is_user_alive(iTocador)) // Si no es valida la Entidad o no es valido el Que toca la Caja,o no esta vivo el que la toca,retorneamos return PLUGIN_HANDLED // removemos la Caja que "X" Player toco remove_entity(iEntidad) return PLUGIN_HANDLED } public MenuDeCajas(id){ new iMenuCaja = menu_create("Menu Cajas","HandlerCajas") // Creamos nuestro menu de cajas con su respectivo Handler menu_additem(iMenuCaja,"Tirar Caja") //Creamos una Opcion para Tirar cajas menu_additem(iMenuCaja,"Borrar Cajas") // Creamos una Opcion para Borrar todas las Cajas menu_additem(iMenuCaja,"Guardar Cajas") //Creamos una Opcion para Guardar todas las Cajas menu_display(id,iMenuCaja,0) //Mostramos nuestro Menu } public HandlerCajas(id,menu,item){//Handler de Nuestro menu if(item == MENU_EXIT){ // si la Opcion seleccionada es Salir menu_destroy(menu) //Destruimos el Menu return PLUGIN_HANDLED //returneamos } switch(item){ case 0:{ new iOrigin[3] //Creamos el Origin get_user_origin(id,iOrigin,2) //Tomamos la Ubicacion de Apuntamos "2" CrearCaja(iOrigin)//Creamos la Cajas } case 1:{ new iEntidad = -1 //Creamos la Entidad while((iEntidad = find_ent_by_class(iEntidad,Entidad))) //Detectamos si la Entidad es la Caja remove_entity(iEntidad)// removemos las Cajas } case 2:GuardarCajas(id)//Guardamos nuestras Cajas } return PLUGIN_HANDLED } public GuardarCajas(id){ new szData[64], ent = -1,Float:Origin[3] //Creamos nuestras Variables :c if(file_exists(DirectorioFile)) //Si el archivo existe delete_file(DirectorioFile)//lo borramos new File = fopen(DirectorioFile, "at")//abrimos el archivo write_file(DirectorioFile, "//Posicion en el Mapa de las Cajas")//Mensaje al Principio del archivo que indica las Posiciones de las Cajas while((ent = find_ent_by_class(ent,Entidad)))//Detectamos si la Entidad es la Caja { entity_get_vector(ent, EV_VEC_origin, Origin) //Obtenemos los ORigin formatex(szData, charsmax(szData), "%f %f %f^n", Origin[0], Origin[1], Origin[2]) //Le asignamos a szData el valor de los Origins fputs(File, szData)// y Los metemos al .ini Listos para volverlos a cargar en el Siguiente la siguiente partida } fclose(File) //Cerramos el Archivo client_print(id, print_chat, "Cajas Guardadas") //Mensaje que dice que las Cajas se guardaron Correctamente } Espero les aya Gustado cualquier Duda o pregunta no duden en comentar Saluds;jollero
    1 punto
  19. Artículo publicado por Emi en Mapping Zone Mapa vs Mapper INTRODUCCIÓN A veces creemos que nuestro mapa esta listo y es perfecto. Pero siempre va a faltar algo, siempre vamos a poder seguir progresando como mappers y al mismo tiempo nuestros mapas progresan. De esta manera surge el título de este artí­culo. Es una pelea entre el diseño y la originalidad, los lí­mites del engine y la creatividad, los detalles y la jugabilidad, una pelea entre el mapa y el mapper. Aunque muchos mappers no la toman en cuenta a la hora de mappear, lo que hace a un mapa único de otros, es su jugabilidad. No son las texturas, no son los detalles, es la jugabilidad (desde mi punto de vista lo mas difí­cil de lograr). Si pensamos rápidamente en los mapas más populares de diversos mods la mayorí­a no son populares por sus detalles o por sus texturas, sino por su jugabilidad única. Un mapa sin jugabilidad es como una casa sin puertas, solamente sirve para ser vista. Paredes vacías, texturas repetidas, cajas por todos lados, estructuras sin formas, etc. Increí­ble el número de mapas que no toma en cuenta lo importante que es ser detallista en un mapa. La primera impresión de un mapa se tiene mirándolo, si el mapa no es agradable a la vista, raramente alguien lo trate de probar. A lo largo de este tema iré mostrando cómo improvisar sus habilidades como mappers. 1. Clásico de todos los dí­as, la típica habitación cuadrada y sin detalles con texturas de halflife.wad y sin iluminación alguna. Así es, las mismas texturas se repiten por paredes y pisos una y otra vez. 2. Un poco de edición y... 3. Ahora va mejor, pero sería mejor aun si... 4. Sería mejor aun con algunos cambios en la arquitectura del ambiente. Todaví­a podemos improvisar más. 5. Lo veo mucho mejor con esos bordes pero todaví­a lo veo como si ya lo conociera al mapa. Las texturas halflife.wad tienen ya aproximadamente 20 años y se convirtieron en una tremenda cagada. A pesar de que tu mapa ZOMBIE preferido use estas texturas o que te guste muchísimo nuke, dust2, inferno. Las texturas originales del juego están súper quemadas y cuando alguien ve esas texturas no piensa en tu mapa... piensa en el otro. 6. No cambié de mapa. Sigue siendo el mismo con unas texturas muy simples pero que nunca habí­an visto antes, y le agregue cajas por todos lados para tapar espacios vací­os. Si total todos hacen eso. Creo que hasta hace muy poco yo hacía lo mismo. Pero es un gran error que veo que se repite mucho últimamente. No abusemos de las cajas. 7. Se que queda muy vací­o, pero hay otras maneras de ser detallistas sin abusar de las cajas. 8. Terminamos de detallar todo lo que es arquitectura teniendo en cuenta paredes, techo y piso. Otra manera de ser detallista es usando toda la iluminación que nos brinda el juego. Desde light, light_spot hasta archivos rad. Como se ve agregue un par de luces en la pared a la altura del piso y otra sobre la puerta con dos entidades (light y light_spot para crear un efecto direccional de luz y otro radial). Estos detalles son básicos, lo demás esta en ustedes, en su originalidad y creatividad. Mapa vs Mapper. Los dos ganan o los dos pierden.
    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.