Veteran Member
Join Date: Oct 2011
Location: banned country
|
03-27-2012
, 10:35
[TUT] Pawn desde 0
|
#1
|
hola estaba aburrido y empece este tutorial esperando el mensaje de una amiga xD
Acá vamos a ver de todo un poquito xD
Empecemos!
PHP Code:
#include <amxmodx> /* libreria la cual contiene la natives esenciales para el funcionamiento del plugin mas informacion en amxmodx.inc */
new Variable1 /* Aca creamos una variable la cual posee solamente 1 celda */
new Variable2[7] /* Aca en cambio creamos una variable la cual posee 7 celdas(normalmente se la llama Array o Matriz) esto equivale a 7 variables como Variable1 las celdas siguen este orden Variable[0], Variable[1], Variable[2], Variable[3], Variable[4], Variable[5], Variable[6] y en cada una pueden guardar un valor distinto */
new Variable3[33] /* Aca creamos una Array con 33 celdas, este tipo de arrays es utilizado amenudo para guardar algun valor para cada usuario 33 es debido a que el maximo de players en un servidor es 32 pero no se usa 32 dado que la celda 0 nunca se usa por que los index de cada usuario empieza desde 1 hasta 32 el index 0 es el worldspawn; en sintesis, el mapa */
new Variable4[33][3] /* Aca creamos una Array bidimencional con bidimencional me refiero que aparte de las 33 celdas para los usuarios tiene 3 celdas mas para guardar 3 datos distintos para cada usuario
Ejemplo:
Variable4[id][0] = 5 Variable4[id][1] = 10 Variable4[id][2] = true
true es igual a 1 y false igual a 0 */
/* ==========ADICIONAL========== Tambien se pueden utilizar las variables para almacenar palabras(strings{cadenas}) veran muchas cosas como
Ejemplo: new Name[32] get_user_name(id, Name, charsmax(Name))
esto almacena el nombre del player en una variable y se almacena de esta forma
supongamos que mi nick es Pepito
Name[0] = P Name[1] = e Name[2] = p Name[3] = i Name[4] = t Name[5] = o Name[6] = ^0
el ^0 significa que la cadena termina ahi y el resto de las celdas no se usaron; otra cosa, acostumbrensen a usar charsmax(VARIABLE) y no a poner la cantidad de celdas menos 1 muchos lo hacen asi(siguiendo el ejemplo anterior)
get_user_name(id, Name, 31)
------------
Agrego, para mostrar un numero seria de esta forma
client_print(id, print_chat, "%d", Variable4[id][0])
según el ejemplo anterior mostraría en el chat del player "5" sin las comillas("")
------------
Otra cosa.. me había olvidado de explicarlo, se le dice variable por que su contenido puede cambiar en cualquier momento */
public plugin_init() { // funcion que es llamada cuando se inicia el plugin register_plugin("Variables", "1.0", "[R]ak") /* Registramos el plugin 1er parametro = Nombre 2er parametro = Version 3er parametro = Autor */ }
PHP Code:
#include <amxmodx> /* libreria la cual contiene la natives esenciales para el funcionamiento del plugin mas informacion en amxmodx.inc */
new const Constante1 = 1 /* Aca creamos una constante la cual su valor SIEMPRE va a ser 1 pueden ponerle cualquier valor(en este caso numerico) */
const Constante2 = 1 /* Tambien podemos crear una constante de esta forma sin el new */
new const Constante3[] = "[R]ak" /* Aca creamos una constante la cual contiene una palabra(cadena{string}), veran que no asigne ningun numero entre los [ ], esto hace que detecte automaticamente las celdas necesarias para alojar la cadena;
Tambien se puede usar para almacenar numeros
Ejemplo
new const Constante3[] = { 4, 7, 0, 7, 9, 7, 9 }
Acuerdensen que SIEMPRE el ultimo valor no debe llevar coma(,)
*/
new const Constante4[][] = { "[R]ak", "CoQuito", "lucas_7_94", "shinoda", "Starsailor", "Neeeeeeeeeel.-", "Asdito", "xLeoNN", "AlgoChikitito" } /* Aca creamos una Constante la cual se utiliza para almacenar varias cadenas y no tener la nececidad de andar cambiando las celdas necesarias cada vez que queremos agregar una nueva
Ejemplo:
Entonces quedaria asi
Constante4[0] == [R]ak Constante4[1] == CoQuito Constante4[2] == lucas_7_94 Constante4[3] == shinoda Constante4[4] == Starsailor Constante4[5] == xLeoNN Constante4[6] == Neeeeeeeeeel.- Constante4[7] == Asdito Constante4[8] == AlgoChikitito
Si queremos mostrar alguna cadena la podriamos mostrar asi
client_print(id, print_chat, "%s", Constante4[0])
Esto le mostraria al player en el chat "[R]ak" sin las comillas(""); esto es solo un ejemplo, se pueden mostrar de muchas formas una cadena aparte de esta o utilizarla para otros motivos las cadenas.
Tambien podriamos usar numeros, lo cual nos permitiria almacenar distintos valores en cada celda
Ejemplo:
new const Constante4[][] = { { 27, 08, 91 }, { 15, 11, 93 }, { 07, 03, 94 }, { 19, 10, 94 } }
Entonces quedaria asi
Constante4[0][0] == 27 Constante4[0][1] == 08 Constante4[0][2] == 91
Constante4[1][0] == 15 Constante4[1][1] == 11 Constante4[1][2] == 93
Constante4[2][0] == 07 Constante4[2][1] == 03 Constante4[2][2] == 94
Constante4[3][0] == 19 Constante4[3][1] == 10 Constante4[3][2] == 94 */
new const Constante5[][][] = { { "[R]ak", "Veteran Spammer" }, { "lucas_7_94", "Spanish Moderator" }, { "shinoda", "Persona que provoca celos a mi novia" } } /* Es practicamente igual a la bidimencional solo que esta almacena 2 valores(pueden ser los que quieran)
Ejemplo de como quedaria:
Constante5[0][0] == [R]ak Constante5[0][1] == Veteran Spammer
Constante5[1][0] == lucas_7_94 Constante5[1][1] == Spanish Moderator
Constante5[2][0] == shinoda Constante5[2][1] == Persona que provoca celos a mi novia */
/* ==========ADICIONAL========== Mas adelante vamos a ver las Constantes Bidimencionales con strings y numeros.
cuando les mostre un ejemplo use 2 iguales(==), esto significa "es igual a", si usamos 1 solo igual(=) estamos asignando
Ejemplo:
new Variable
Variable = 2
if(Variable == 2) Variable = 0
creamos la variable, le asignamos el valor 2, if(si) variable es igual a 2 prosigue y le asigna el valor 0
-----------
Como dije antes, las constantes NO se les puede cambiar su valor */
public plugin_init() { // funcion que es llamada cuando se inicia el plugin register_plugin("Constantes", "1.0", "[R]ak") /* Registramos el plugin 1er parametro = Nombre 2er parametro = Version 3er parametro = Autor */ }
PHP Code:
#include <amxmodx> /* libreria la cual contiene la natives esenciales para el funcionamiento del plugin mas informacion en amxmodx.inc */
new Float:MiFloat = 1.0 /* Aca creamos un float no se confundan, Float, no float, y con los 2 puntos(:); es una variable pero que almacena numero decimales */
new const Float:MiFloatConstante1 = 1.0 /* Tambien podemos crear una float constante */
new const Float: MiFloatConstante2[] = { 1.0, 5.0, 7.7, 27.7 } /* Otro ejemplo de un float constante el cual posee varias celdas */
/* ==========ADICIONAL========== Ejemplo de como mostrar un float
client_print(id, print_chat, "%f", MiFloatConstante2[2])
esto mostraria en el chat del player "7.7" sin las comillas("")
-----------
se pueden utilizar la cantidad de decimales que quieran, tambien para mostrar sierta cantidad de decimales se usa %.0f <--- muestra 1 solo decimal (corrijanme si me equivoco.. nunca lo use xD)
-----------
Para transformar un Float a numero entero utilicen
floatround(NOMBRE_DE_LA_VARIABLE_FLOAT)
y para transformar un numero entero en decimal usen
float(NOMBRE_DE_LA_VARIABLE)
-----------
Como dije antes, no se olviden de usar Float:NOMBRE_DEL_FLOAT */
public plugin_init() { // funcion que es llamada cuando se inicia el plugin register_plugin("Floats", "1.0", "[R]ak") /* Registramos el plugin 1er parametro = Nombre 2er parametro = Version 3er parametro = Autor */ }
PHP Code:
#include <amxmodx> /* libreria la cual contiene la natives esenciales para el funcionamiento del plugin mas informacion en amxmodx.inc */
new Variable1, Variable2, Resultado
//Creamos 3 Variables para hacer algunos ejercicios
/* En muchos casos vamos a tener que manejarnos con numeros, los cuales como cualquier numero se puede sumar, restar, multiplicar, dividir y sacar porcentajes veamos ahora algunos ejemplos || Agradecimientos a Roccoxx por facilitarme los datos e.e || */
// Aritmeticos: Variable1 + Variable2 // :Retorna la suma de Variable1 y Variable2. Variable1 - Variable2 // :Retorna la resta de Variable1 y Variable2. Variable1 * Variable2 // :Retorna la multiplicacion de Variable1 y Variable2. Variable1 / Variable2 // :Retorna la division de Variable1 y Variable2. Variable1 % Variable2 // :Retorna el resto de la division de Variable1 y Variable2.
//Al decir retorna decimos como devuelve osea, veamos un ejemplo
Variable1 = 5 Variable2 = 2
Resultado = Variable1 + Variable2 // Esto dejaria a la variable Resultado con el valor 7
//Muy simple no? vamos a hacer algo un poco mas complejo
Variable1 = 7 Variable2 = 27
Resultado = ( ( Variable1 + Variable2 ) - (Variable2 - Variable1) ) * Variable1 /* Esto daria como resultado 98; hay que ser atentos con los "parentesis", ahora les paso a explicar paso a paso; en este caso primero se suma las variables ( 7 + 27 = 34 ), despues la resta de las variables ( 27 - 7 = 20 ), despues se restan esos 2 resultados ( 34 - 20 = 14 ) y por ultimo se lo multiplica 14 * 7 = 98 y ese resultado se le asigna a nuestra 3er variable(Resultado) */
/**********************************************************************/
/* Bien, ahora vamos a tener otro tipo de casos en los cuales solo nececitamos asignar el valor de 1 variable, asignarle la suma, resta, multiplicacion, division o el porcentaje de otra variable o simplemente simarle 1 o restarle 1 a una variable */
//Asignacion: Variable1 = Variable2 //:Asigna a Variable1 el valor de Variable2. Variable1 ++ //:Asigna a Variable1 el resultado de Variable1+1 DESPUES de ser utilizada. ++ Variable1 //:Asigna a Variable1 el resultado de Variable1+1 ANTES de ser utilizada. Variable1 -- //:Asigna a Variable1 el resultado de Variable1-1 DESPUES de ser utilizada. -- Variable1 //:Asigna a Variable1 el resultado de Variable1-1 ANTES de ser utilizada. Variable1 += Variable2 //:Asigna a Variable1 el resultado de Variable1+Variable2. Variable1 -= Variable2 //:Asigna a Variable1 el resultado de Variable1-Variable2. Variable1 *= Variable2 //:Asigna a Variable1 el resultado de Variable1*Variable2. Variable1 /= Variable2 //:Asigna a Variable1 el resultado de Variable1/Variable2. Variable1 %= Variable2 //:Asigna a Variable1 el resto de Variable1/Variable2.
//No creo que sea muy cumplicado esto; veamos unos simples ejemplos
Variable1 = 0 Variable2 = 27
Variable1 = Variable2
//Aca le asignamos el valor de Variable2 a Variable1 osea que el valor de Variable1 es 27
Variable1 = 0
Variable1++ // Aca estamos sumandole 1 a Variable1, asi que nos quedaria con el valor 1
Variable1-- // Aca le restamos 1 y nos quedaria con el valor 0
// Ahora vamos a ver algo un poquito mas complejo
Variable1 = 1 Variable2 = 7 new Variable3 = 27
Variable3 += ( Variable3 - ( Variable1 + Variable2 ) ) + Variable1 /* Esto nos daria 47; los +=, -=, *=, /= y %= lo que hace es asignar a la variable su mismo valor seguido del tipo de operacion; veamos, por si no se entiende, lo de arriba seria lo mismo si yo pusiera asi
Variable3 = Variable3 + ( ( Variable3 - ( Variable1 + Variable2 ) ) + Variable1 ) */
/**********************************************************************/
/* ==========ADICIONAL========== En este caso usamos numeros enteros, pero tambien podemos usar Floats.
En el siguiente tutorial vamos a ver bien como utilizar --Variable1 y ++Variable1 */
public plugin_init() { // funcion que es llamada cuando se inicia el plugin register_plugin("Operaciones Aritmeticas", "1.0", "[R]ak") /* Registramos el plugin 1er parametro = Nombre 2er parametro = Version 3er parametro = Autor */ }
PHP Code:
#include <amxmodx> /* libreria la cual contiene la natives esenciales para el funcionamiento del plugin mas informacion en amxmodx.inc */
/* Voy a dejar una breve introduccion de lo que vamos a ver en este tutorial.
Vamos a ver como funcionan los condicionales IF, ELSE IF, ELSE y el condicional "?" pero antes vamos a ver algunos parametros para estos || Agradecimientos a Roccoxx por facilitarme los datos e.e || */
new Variable1, Variable2
Variable1 == Variable2 //:Retorna "true" si Variable1 es igual a Variable2, de no ser asi retorna "false". Variable1 != Variable2 //:Retorna "true" si Variable1 no es igual a Variable2, de no ser asi retorna "false". Variable1 < Variable2 //:Retorna "true" si Variable1 es menor a Variable2, de no ser asi retorna "false". Variable1 > Variable2 //:Retorna "true" si Variable1 es mayor a Variable2, de no ser asi retorna "false". Variable1 <= Variable2 //:Retorna "true" si Variable1 es menor o igual a Variable2, de no ser asi retorna "false". Variable1 >= Variable2 //:Retorna "true" si Variable1 es mayor o igual a Variable2, de no ser asi retorna "false". !Variable2 //:Retorna "true" si Variable2 es false(igual a cero), de no ser asi retorna "false", Variable1 || Variable2 //:Retorna "true" si Variable1=true(mayor o igual a uno) o Variable2=true(mayor o igual a uno), de no ser asi retorna "false". Variable1 && Variable2 //:Retorna "true" si Variable1=true(mayor o igual a uno) y Variable2=true(mayor o igual a uno), de no ser asi retorna "false".
/* bien.. ahora ya entendemos la forma de chequear variables. ahora empecemos con un IF simple */
Variable1 = 7 Variable2 = 8
if(Variable1 == Variable2) { Variable1-- } else { Variable1++ }
/* Esto es muy simple; IF(si) Variable1 es igual a Variable2 prosegimos y le restamos uno al valor de Variable1; ELSE(de otro modo) le sumamos uno a Variable1. MUY simple.. veamos un ejemplo mas comlejo. */
Variable1 = 7 Variable2 = 3
if((Variable1 - Variable2) == ++Variable2) { Variable1++ }
/* En este caso no use ELSE( no es obligatorio usarlo ); veamos atentamente esto; si Variable1(7) menos Variable2(3) es igual a Variable2(4) prosigue y le suma uno a Variable1; bien como abran visto use ++Variable2, esto significa que antes de obtener el valor de Variable2 le sumo uno(3+1=4) entonces nos dara como verdadero el IF y va a proseguir. Ahora vamos a utilizar ELSE IF */
Variable1 = 27 Variable2 = 7
if(Variable1 == Variable2) { Variable1++ } else if(Variable1 < Variable2) { Variable2 -= Variable1 } else { Variable2 += Variable1 - Variable2 }
/* Como veran, ELSE IF funciona practicamente igual al IF solo que este va despues de un IF( NUNCA antes ); creo que no hay nada que explicar; cualquier cosa me avisan y edito. Ahora vamos a utilizar el condicional "?", es lo mismo que hacer if/else solo que en una sola linea; veamos un ejemplo. */
Variable1 = 5 Variable2 = 25
Variable1 != Variable2 ? (Variable1 *= Variable1) : (Variable1 /= 5)
/* Parece complicado pero es muy simple; veamos el paso a paso. Primero se chequea Variable1 != Variable2, en caso de ser "true" se ejecuta la primer accion seguida del "?" osea (Variable1 *= Variable1); en caso de ser "false" se ejecuta lo seguido del ":"( los dos puntos se utiliza para separar lo "true" de lo "false"{ en este caso } ) osea (Variable1 /= 5); por las dudas, si alguno se mareo les muestro como seria este ejemplo anterior con un IF y ELSE */
if(Variable1 != Variable2) Variable1 *= Variable1 else Variable1 /= 5 /* Ven, es lo mismo solo que en una sola linea; otra cosa por si no se dieron cuenta, en este caso no utilize brackets( llaves "{" y "}") dado que si van a poner una sola accion( no me sale la palabra correcta, cualquier cosa corriganmen xD ) no son obligatorios. Tambien podemos hacer varios chequeos; veamos un ejemplo */
Variable1 = 2
!Variable1 ? Variable1++ : !--Variable1 ? Variable1++ : !--Variable1 ? Variable1++ : (Variable1 = false)
/* Me parece que no entendieron nada xD tengo la mera imprecion; se los muestro como un IF para que lo entiendan mejor */
if(!Variable1) Variable1++ else { if(!--Variable1) // le restamos 1 antes de chequear Variable1++ else { if(!--Variable1) // le restamos 1 antes de chequear Variable1++ else Variable1 = false // aca le asignamos el valor false ( cero ) } }
/* Creo que asi lo van a entender mejor; vieron todo lo que hice en 1 sola linea; ustedes utilicen la forma que les sea mas comoda. Creo que eso es todo por ahora, si me olvide de algo despues lo agregare =P */
/**********************************************************************/
/* ==========ADICIONAL========== Pequeñas aclaraciones; True == Verdadero False == Falso < == el primer valor es menor al segundo ( yo para darme cuenta cual de los 2 es menor uso una simple informacion... "el menor se come al mayor" osea menor < mayor ) > == el primer valor es mayor al segundo ( lo mismo de arriba; mayor > menor )
Como habran visto en algunos casos cuando daba un ejemplo del condicional "?" utilizaba parentesis y en otros no, esto se debe a que cuando se le asigna a una variable un valor debemos utilizar parentesis; aparte de esto tambien con el condicional "?" podemos usarlo para mostrar una cadena distinta con un simple chequeo sin nececidad de repetir una funcion Ejemplo: */
client_print(id, print_chat, "[TUT] Usted Esta %s", is_user_alive(id) ? "Vivo" : "Muerto")
/* client_print --> Native( funcion de otro plugin o modulo ) la cual muestra un mensaje a todos o a un solo usuario un mensaje en el chat/consola/centro de la pantalla
id --> index de un usuario, el index es un numero que le asigna el servidor al usuario para ser identificado; este puede estar en el rando de 1 a 32
print_chat --> es una costante con el valor numero 3 el cual en la funcion client_print hace que el mensaje sea enviado al chat de/los usuarios
"[TUT] Usted Esta %s" --> es una cadena la cual sera mostrada al/los usuario/s; %s significa que va a ser remplazado por una cadena( string )
is_user_alive(id) --> esta native hace varios chequeos: 1ro: chequea el que index corresponda a un usuario ( este en el rango de 1 a 32 ), si esto no se cumple devuelve false( cero ) 2do: chequea que el usuario no sea un espectador o no alla elegido un team o una clase de team en caso de que algo de esto sea verdadero devuelve( retorna ) false 3ro: devuelve si el usuario esta conectado y vivo haciendo un chequeo con el condicional "?"
creo que esta todo mas que explicado;
nos vemos pronto(? */
public plugin_init() { // funcion que es llamada cuando se inicia el plugin register_plugin("Condicionales", "1.0", "[R]ak") /* Registramos el plugin 1er parametro = Nombre 2er parametro = Version 3er parametro = Autor */ }
De a poco avanza(? XD
Cualquier consulta, estoy para leerlas
__________________
Last edited by rak; 05-11-2012 at 23:57.
|
|