Han ocurrido los siguientes errores: | |||||||||||||||
Warning [2] Undefined variable $unreadreports - Line: 119 - File: global.php(961) : eval()'d code PHP 8.1.27 (Linux)
|
TUTORIAL (AMX Mod X - Scripting ) | Programación para principiantes - Versión para impresión +- MxEMexico (https://www.mxemexico.com) +-- Foro: Counter Strike 1.6 (https://www.mxemexico.com/forumdisplay.php?fid=77) +--- Foro: Tutoriales (https://www.mxemexico.com/forumdisplay.php?fid=95) +--- Tema: TUTORIAL (AMX Mod X - Scripting ) | Programación para principiantes (/showthread.php?tid=239) |
TUTORIAL (AMX Mod X - Scripting ) | Programación para principiantes - Fury - 06-24-2017 Esto se lo robé a Alucard de este post. Que a su vez es una tracucción de este post de joaquim Cabe aclarar que posiblemente en algunas partes no lo traduzca textualmente, cambie un poco las palabras y la explicacion pero siempre llevando al mismo objetivo. En la programación, todo esta representado por números. Una letra es un numero, una palabra es un grupo de números, un color es un grupo de 3 números (RGB = Red, Green, Blue = Rojo, Verde, Azul). Entonces para programar hay que tratar con números. PARTE 1 - Variables, Números 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: Código PHP: Código: 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 declaración de una variable. Ahora, para guardar un numero dentro de esta variable hacemos lo siguiente: Código PHP: Código: NombreVariable = 5 * El 5 es solo un ejemplo. * Le podemos asignar el numero a la variable apenas la creamos o luego de crearla, acá un ejemplo asignándole el numero en el momento que creamos la variable: Código PHP: Código: new NombreVariable = 5 Ahora, para tener un grupo de números, necesitamos hacer uso de los arrays... de la siguiente forma: Código PHP: Código: new GrupoVariable[x] * En x iría 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: Código PHP: Código: new Color[3] // creamos una variable con un array de 3 grupos Pawn nos provee de operadores aritméticos, entonces podemos hacer algo así: Código PHP: Código: new Color[3] Con este code anteriormente mostrado, tenemos un problema con la función creada. El problema es que si uno de nuestros colores tiene un numero como por ejemplo 0, al usar la función OscurecerColor, el color valor de tal color va a quedar en negativo (-10) y los valores de color deben ir entre 0 y 255. Así que para eso debemos ponerle determinadas condiciones dentro de la función para que no suceda esto... y se hace de la siguiente forma: Código PHP: Código: OscurecerColores(Color[3]) Ahora, para hacer que la función sea mas practica, les voy a dar el siguiente ejemplo: Código PHP: Código: OscurecerColores(Color[3], parametro) Ah todo esto, obviamente podemos crear la misma función pero en vez de que sea para oscurecer, podemos hacer que "ilumine" o sea, que el color sea mas clorita. Y simplemente tenemos que cambiar el signo menos por el mas, de la siguiente forma: Código PHP: Código: OscurecerColores(Color[3], parametro1, parametro2, parametro3) Obviamente al hacer esto también 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: Código PHP: Código: if(Color[0] > 255) // Si el valor del color supera los 255 PARTE 2 - Caracteres, Strings, Arrays de caracteres Definición de string: Un string es definido como un grupo de 2 o mas caracteres continuos. En programación, un string es solo un array de números que están representados como un conjunto de ellos. Cada carácter 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 números y caracteres de puntuación). Al final de un string hay un carácter nulo, siempre... también 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 elementos, o como los quieran llamar ><), ya que hay se va a guardar ese carácter 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 carácter 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. Acuérdense 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 mayúscula y en minúscula 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' Definición 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 automáticamente, y también incluye el elemento extra para el carácter nulo al final. Código PHP: Código: new szVariable[] = "auto" * Como verán, siempre cuando asignan un valor de string lo deben hacer encerrándolo 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 programación. 2. Ahora vamos a crear un array de 5 elementos. Fíjense como creamos la variable, usando 1 numero mas al tamaño del array, ya que es necesario por lo previamente explicado. Código PHP: Código: szVariable[0] = 97 // a String terminado en carácter nulo: Como mencionamos antes, cuando un carácter nulo (valor 0) en encontrado en el array, es considerado el final del string. Para verlo en acción, acá un pequeño ejemplo: Código PHP: Código: new szVariable[] = "terrorista" Loopeando a través de los caracteres de un string: Al hacer un loop, hacemos una acción repetida (una X cantidad de veces seteada en esta bool) recorriendo X cosa, en este caso los caracteres de un string. Uno por uno, carácter por carácter, 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). Explicación 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!] Código PHP: Código: // Expresion1: Declaramos "i" como la variable que vamos a usar para titular al indice del array (tiene el valor de 0 por defecto). 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). Código PHP: Código: new szString[] = "esto es un string" Y como otro ejemplo, aca un codigo que crea un string donde guarda todas las minusculas del alfabeto: Código PHP: Código: new szAlfabeto[27] // 26 letras en el alfabeto + un elemento extra para el caracter nulo. 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: Código PHP: Código: // Para definir el string en un array de dos dimensiones, asignamos el valor del string cuando la creamos: 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. PARTE 3 - Sentencias Condicionales (Condiciones) Lo Basico: Las condiciones son sentencias que sirven para decidir si se va a continuar con el codigo establecido dentro de dicha condicion. Son como guias, que determinan el camino del plugin, dependiendo de las condiciones que se usen y dependiendo si se cumplen o no. Realmente son muy faciles de usar, asi que dificilmente se puede tener complicacion al entenderlas y aplicarlas en un codigo. Aparte de ser una de las cosas que mas se usa, en la creacion de plugins. Las condiciones pueden ser combinadas entre si... y pueden ser mediante and (y) o mediante or (o). && Es el simbolo usado para "y". || Es el simbolo usado para "o". Ejemplo: Código PHP: Código: // x es mayor a 0 o menor o igual a 255 Los desiguales tienen un caso especial y pueden usarse de diferente forma: Código PHP: Código: // x es mayor a 0 y menor o igual a 5 Esa forma, solo funciona en ciertos rangos de valores especificos. Y solo funciona con &&, no con || Código PHP: Código: // x es mayor a 5 o menor a 0 Las condiciones tambien se pueden usar para chequear que algo no sea verdadero. ! Se usa para lo contrario a verdadero, o sea... False. Es decir, lo opuesto != Se usa cuando algo no es igual Código PHP: Código: // x no es menor a 0 Código PHP: Código: // x es mayor a 0 y g es menor a 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: Código PHP: Código: if( [condicion] ) 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. Código PHP: Código: if( [condicion 1] ) Aca un ejemplo mas para que lo entiendan mejor: Código PHP: Código: new x = 5 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: Código PHP: Código: while( [condicion] ) 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: Código PHP: Código: do 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: Código PHP: Código: for( [inicial]; [condicion]; [incremento] ) // Los punto y coma en este caso son obligatorios! 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: Código PHP: Código: // Contando de 1 a 5: 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": Código PHP: Código: for( new i = 0; i < 4; i++ ) Dentro de los loops, tambien se puede forzar a que finalice dicho loops, si se cumple cierta condicion, con el operador "break": Código PHP: Código: for( new i = 0; i < 4; i++ ) 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: Código PHP: Código: switch( variable ) // No necesariamente tiene que ser una variable, puede ser una funcion directamente 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 Código PHP: Código: new x = 1, y = 4; 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: Código PHP: Código: 25 / 4 = 6 R 1 En cuanto al operador Bitsum (desplazamiento de bits o como lo quieran llamar) ya hay un tuto que explica esto, traducido por larito, el cual se encuentra en este link. 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: Código PHP: Código: new x = 5; Pero esto lo podemos simplificar aun mas, de una forma mas rapida y sencilla, que es la siguiente: Código PHP: Código: variable (operador)= valor; Ejemplo: Código PHP: Código: new x = 5; Pero en ciertos casos, cuando necesitamos aumentar o restar una variable + 1, hay una forma aun mas sencilla que es la siguiente: Código PHP: Código: new x = 1; Y obviamente, lo mismo va para el -= 1, el uso de los dos -- Código PHP: Código: new x = 1; post: https://amxmodx-es.com/Thread-Programaci%C3%B3n-para-principiantes RE: TUTORIAL (AMX Mod X - Scripting ) | Programación para principiantes - isr4el - 06-26-2017 ._. .. RE: TUTORIAL (AMX Mod X - Scripting ) | Programación para principiantes - ChrstopH - 06-26-2017 deberías agregarle otro ejemplos más básicos, como en que caso usar los if , else if o cascadas, switch, dor do while y while, ya que no todos tienen buena lógica & con eso haces que la comprensión sea más rápida.. aparte el titulo debería decir introducción al amx mod scripting o como se llame.. RE: TUTORIAL (AMX Mod X - Scripting ) | Programación para principiantes - Fury - 06-27-2017 (06-26-2017, 07:46 PM)ChrstopH escribió: deberías agregarle otro ejemplos más básicos, como en que caso usar los if , else if o cascadas, switch, dor do while y while, ya que no todos tienen buena lógica & con eso haces que la comprensión sea más rápida.. Tienes razón. Gracias por la sugerencia bb RE: TUTORIAL (AMX Mod X - Scripting ) | Programación para principiantes - PlayEasymx - 07-07-2017 No creo que usar variables sea de principiantes.. switch ni todo ese pedo la malloria.. Como dice chris, te falto las if, else if, prechachear un sonido ya sea mp3 o .wav, falto para reproducirlos, tanto para mp3 y wav, dar dinero, sacar dinero, ver el dinero, etc etc, lo mas basico es creo crear un cmd y mendar un menssaje. RE: TUTORIAL (AMX Mod X - Scripting ) | Programación para principiantes - [F]orget - 04-15-2018 (07-07-2017, 01:52 AM)PlayEasymx escribió: No creo que usar variables sea de principiantes.. switch ni todo ese pedo la malloria.. ola me gustaria que alguien me ayudara a crear plugins en amxx plox agregenme a steam para recibir acesorias de amxx scripting RE: TUTORIAL (AMX Mod X - Scripting ) | Programación para principiantes - GabsHp - 04-15-2018 (04-15-2018, 04:23 AM)[F]orget escribió:(07-07-2017, 01:52 AM)PlayEasymx escribió: No creo que usar variables sea de principiantes.. switch ni todo ese pedo la malloria.. Es más difícil que alguien te lo explique, lo puedes aprender tu mismo modificando algunos plugins ya creados. Con eso vas agarrando practica y te familiarizas con el lenguaje. |