Team One.'Shot Cs
Team One Shot Cs  
  inicio
  Contacto
  Team One Shot
  miembros del team
  probate en el team
  Pedi Tu Admin Aca
  informacion del team
  Tutoriales
  bajar ping
  crear server dedicado
  crea tu cfg
  Crea tu prorio plugins
  instalar plugins
  saca tu server en internet
  Solucion a que tu server deje de funcionar
  guias
  solucion lista en blanco
  Comandos
  comando rcon
  comandos para admin
  comandos amx
  Descargas
  plugins
  sXe 10.2
  Hl-Booster (Anti-Lag)
  Cheatin Deadth
  Anti-Dos
  hal-life creator
  amxmodx 8.1
  Config para tu cs
  Cfg para bajar lag de tu sv
  Cfg Para Bajar Lag
  Cfg para surf
  Multi Cfg
  Entretenimiento
  paginas amigas
  oracion cs
  creador de pinguinos
  creador cuenta regresiva
  creador de cubo
  cursores
  Encuestas
  Mods
  Mod Deathrun
  Mod Gumgame
  Mod Super-Hero
  Mod Deathmatch
  Mod Zombie Plague Infection
  Mod paintball
  Mod Chicken
  Mapas
  pack de mapas as_
  pack de mapas awp_
  pack de mapas cs_
  pack de mapas de_
  pack de mapas fy_
  pack de mapas surf_
  pack de 112 mapas
Crea tu prorio plugins
Guia: Como crearse su propio plugin [NIVEL NOVATO] 
Introduccion: 
¿que son los plugin? 
Los pugins son unos archivos que utiliza el AMX para realizar tareas 
Ej: 
-Ejercer un comando a tal momento 
-Eliminar algun archivo 
-Leer un archivo 
-Reaccionar al accionarse un comando 
-Reproducir sonidos 
-Dejar mensajes 
-Realizar eventos (Los evntos serian cuando sucede algo en el cs, Ej : headshot) 
-Kickear, banear, slapear automaticamente 
-Volcacion de sangre 
etc 
¿que son? 
Aunque no lo creas son como un *.txt , se lo habre con el block de notas... 

Requisitos: 
Los requisitos dependerian de la cantidad de plugins o q cantidad contiene el plugin ... yo tengo una memoria de 120 MB y si lo lanzo a internet me da 300 latency por ahi XD ... claro q si tienes de 256 o 512 o tansolo juegas por LAN esto no es un problema. 
Otra cosa que se necesita es tener el block de notas o algo que lea .txt q no sea el Microsoft word. 

Que me debo bajar: 
Nada de nada (amenos q sea el Block de notas XD) 
Debes tener el AMXMOD 
Si recuerdas donde instalaste el AMX , en el caso general de el winzip lo pudiste haber descomprimido en unnziped/amx , adento de la carpeta de AMX tiene q haber una karpeta llamada "examples". Si no la tienes bajate el amx de nuevo 

Comenzar: 
1°. No creas q esto es sensillo , es un poco complicado 

Entra a la carpeta de EXAMPLES y veráz archivos llamados: 
admin.sma 
adminvote.sma 
adminchat.sma 
adminhelp.sma 
mapchopser.sma 

puedes abrirlos con el block de notas. 
Si te sucede como ami q se ven unos cuadraritos negros y no se entiende nada podes aser lo siguiente 
1° . Seleccionar un cuadradito 
2° . Presionar Ctrl + C 
3° . Presiona F3 (debe aparecerte el buscador o sino aslo manualmente) 
4° . En donde te deja escribir teclea Ctrl + V 
5° . Poner buscar siguiente 
6° . Salir del buscador 
7° . vamos al principio del texto, que el | tambien se valla. 
8° . Ahora aremos seguido F3 y Enter ,F3 y Enter ,F3 y Enter ,F3 y Enter ,F3 y Enter , ... no le erres a repetir , enter y enter , enter y F3 , porque despues puede no funcionar el plugin 

Ahora tenemos el ejemplo echo , con eso N05 podremos guiar... 

Les dare que sigunifica la mayoria de las cosas: 

Veran que al comienzo hay algo asi 
/* AMX Mod script. 

* (c) Copyright 2002-2003, OLO 
* This file is provided as is (no warranties). 

*/ 
eso es el credito ... se pone "/*" al comienzo de cada credito y "*/" al final (lo que no se es si es necesario los * en la parte de adentro XD) 

Mas abajo se encontrara 
#include <amxmod> 
#include <amxmisc> 
o solo 
#include <amxmod> 

#include: Si se fijan en examples/include habra unos archivos inc que tambien se abren con el block... 
en este caso el #include <amxmod> esta queriendo incluir lo que tiene ese amxmod 
ATENCION NUNCA MODIFICAR ESOS ARCHIVOS 

Fijense el archivo admin ... lo usare como ejemplo para enseniales q hace cada unas de sus lienas 


#define MAX_ADMINS------------64 
Define un numero con letras , en este caso es 64 , todo va con mayuscula 


new admin_password[MAX_ADMINS][32] 
aca utilizo el MAX_ADMINS , osea q podemos enves de new admin_password[MAX_ADMINS][32] podemos poner new admin_password[64][32] 
esto de new crea un , un , un , un , como decirlo . Lo entenderan mas tarde pero les puedo explicar algo 
El 64 son las cantidades de admins , como dije habia maximo 
Quedaria dibidida en 64 partes y cada parte solo puede tener 32 caracteres ( letras , incluyendo los espacios) 
por ahora no se le assigno nada al ,al ,al ,al ,al por ahora llamemola "linea nueva" 
osea que el 
admin_password[0] no tiene nada 
admin_password[1] no tiene nada 
admin_password[2] no tiene nada 
admin_password[3] no tiene nada 
... 


new admin_num = 0 
Este solo tiene numero asignado , no tiene limite de caracteres ni tampoco se dibide ... esta "linea nueva" se puede sumar y restar 

en otros casos hay lago asi: 

new nuevalinea[32] 
tiene de limite 32 caracteres, si queremos podemos a 33 o 34 o 35 y asi... o puede estar dividido en 32 partes 

new nuevalinea[32] = {"Palabras1","Palabras2","Palabras3","Palabras4",y mas alla} 
esta dibidida en 32 partes y cada una tiene accinada lo que esta en { } , Palabra1 pertenese a nuevalinea[0], palabra2 pertenece a nuevalinea[1] y asi ... 
tambien se puede poner numeros pero no se le ponen comillas como 
new nuevalinea[32] = {0,3,6,8,23,56,y asi} 
y si queremos que toda la division tenga un mismo numero ponemos puntos suspenciovos 
new nuevalinea[32] = {15,...} 
ahora las 32 partes tienen un valor de 15 


public admin_cmd(){ 
Como explicar eso... public seria digamos una parte del plugin XD , admin_cmd es como se llama ese public , los () son como un new que viene de otra parte del plugin que lo acciono , ese plugin tiene varios new y eso se envia a traves del () ... 
LOS NEW QUE ESTAN DENTRO DEL PUBLIC SON SOLO DE AHI, NO SALEN A MENOS QUE LO MANDES POR ()... 
el { significa que abre el ese public 


----------------if (admin_num >= MAX_ADMINS){ 
Ahi dice que cuando el admin_num que nos acordamos que era 0 es mayor o igual a MAX_ADMIN que nos acordamos que MAX_ADMINS representaba el 64 se activara lo de abajo 
If dice que cuando algo sea igual, mayo o menor pase lo que esta abajo que se lo habre con un { 


--------------------------------server_print("Admins limit reached!" 
Despues de que el admin_num fue mayor que 64, server_print muestra en la consola del server el mensaje que sigue ( se lo escribe en comillas porque si no lo hacemos el plugin lo tomara como una "linea nueva" , pero si es un numero no es necesario) ("Admins limit reached!" 

--------------------------------return PLUGIN_HANDLED 
Se detiene de leer , lo de abajo del public ya no cuenta... 

----------------} 
Esta cerrando el if que pusimos en esa coumna ... al que me refiero es el if (admin_num >= MAX_ADMINS){ osea que si el admin_num es menor q el MaX_ADMINS el se saltea esa parte hasta el } de esa columna 

----------------new data[32] 
Se creo una "linea nueva" del public , solo pertenece ahi! 

----------------read_argv(1,admin_name[admin_num],31) 
Lee el comando que se acciono... 
el 1 representa el valor del comando ... 
Si se fijan a lo ultimo del PLUGIN habra algo asi 
register_srvcmd("amx_admin","admin_cmd" 
cuando accione el "amx_admin" se acciona el public admin_cmd 
yo acciono el amx_admin <y aca seria el read_argv(1> 
read_argv(1,admin_name[admin_num],31) 
admin_name[admin_num] 
recuerdan la "linea nueva" admin_num que esta mas arriba , tiene valor 0 
osea que quedaria 
admin_name[0] le damos el valor de lo que se escribio despues del comando... osea 
amx_admin "N050Tr05" 
y el valor ahora de 

admin_name[0] = N050Tr05 

el 31 ese que esta ahi es el maxmimo de caracteres ... siempre pongan uno menos que el otro , 32 a 31 , 64 a 63 y asi 

despues estan los otros de read_argv 
es el que esta segundo en el comando 
amx_admin N050Tr05 ******* 
Fijense que este read_argv ahora tiene un "2" despues ... 


----------------admin_priv[admin_num] = read_flags(data) 
recuerdan mas arriba la "linea nueva" que es new admin_priv[MAX_ADMINS], que es new admin_priv[64]... 
para asignrle nu valor a esa lineanueva solo debemos poner el nombre: 
admin_priv[admin_num] que si recuerdan admin num es 0 entonces seria 
admin_priv[0] 
el = le esta asignando lo que es read_flags(data) 
read_flags(data) , lee la letra o letras que le pusimos . abcde , abc , bd , eso... y lo transforma en numero 
a = 1 ... 2 a la 0 potencia (matematicas) 
b = 2 ... 2 a la 1 potencia (matematicas) 
c = 4 ... 2 a la 2 potencia (matematicas) 
d = 8 ... 2 a la 3 potencia (matematicas) 
e = 16 ... 2 a la 5 potencia (matematicas) 
f = 32 ... 2 a la 6 potencia (matematicas) 
g = 64 ... 2 a la 7 potencia (matematicas) 
h = 128 ... 2 a la 8 potencia (matematicas) 
i = 256 ... 2 a la 9 potencia (matematicas) 
... 

----------------admin_num++ 
Asignacion de una suma al admin_num 
La suma es de 0 + 1... 
entonces el admin_num ahora es 1 ... si se vuelve a accionar el amx_admin sera lo mismo solo que ahora el admin_priv[0] no sera 0 sino admin_priv[1] ... luego llegara al 64 y ahi si que es mayor q el MAX_ADMIN ... ok?... 

----------------return PLUGIN_HANDLED 
Cuando se ocupa una o mas veses en el public eso se pone return PLUGIN_HANDLED al final y despues e pone el } alado del margen para cerrar el plugin 



---------------------------------------------------------------------------------------------------------------- 
Mas abajo esta get_access(id,name[],authid[],ip[], password[]){ 
fijense que no tiene public alado y tiene en el () palabras como les habia explicado ... 

veran las "lineas nuevas" 

estara algo asi 
for(new i = 0; i < admin_num; ++i) { 

eso quiere decir que se hace una lineanueva y se va comparando 
quedaria 
i = 0 
se compara si i es menor que el admin num y si es asi se hace todo lo de abajo ocupando la i cuando se termina eso se suma esa i ... i = 0 , 0 + 1 = 1... ahora i vale 1 entonces se vuelve a comparar y si i es menor que la cantidad de admin se activa todo lo de abajo y cuando termina i se suma ... i = 1 ... 1 + 1= 2 ... ahora i vale 2 ... asi susesibamente y cuando i ya sea igual o mayor que admin_num ya la especie de public que no lo es se cierra 


checka una mirada a include/amxcont.inc y busca FLAG_AUTHID ... el numero es algo asi (1<<2) ... en este caso es una c . si a nuestro admin le pusimos una C se activara lo siguiente 

if (admin_flags & FLAG_AUTHID) { 
mira mas arrba abiamos mostrado lo que era admin_flags ... 
si admin_flag[0] (por ahora es 0) 
a = (1<<0) 
b = (1<<1) 
c = (1<<2) 
es igual a FLAG_AUTHID que FLAG_AUTHID es (1<<2) se activa lo de abajo y se sierra esa con el } 

mas abajo esta 
else if (admin_flags[i] & FLAG_IP) { 
que dice? 
pero si admin_flag.... 
else significa PERO 
osea que si se activo el IF de arrba no se puede activar ese if porque este es solo PERO 

asi susesibamente 


index = i 
esta diciendo que el significado de index que mas arriba dice que vale -1 ahora vale i ... cuando vale i ? puede valer 0 , 1 ,2 ,etc 


if (index != -1) { 
Este no esta incluido con el for de arriba 
Dice que si index NO ES IGUAL A -1 se abre lo de abajo 


new sflags[32] 
get_flags(admin_priv[index],sflags,31) 
actuan juntos ... se creo una lineanueva y el valor de esa linea es de las letras que le dimos a nuestro admin (admin_priv[index] (index es igual al valor de i y i es el numer0 de admin))...sflags no va entre comillas porque es una nuevalinea 

result |= 8 
no entendi ... sorry 

log_to_file(logfilename,"Login: ^"%s<%d><%s><>^" become an admin (account ^"%s^" (access ^"%s^" (address ^"%s^"",name,get_user_userid(id),authid,admin_name[index] ,sflags,ip) 

graba en amx/logs lo siguiente Login: "%s<%d><%s><>" become an admin (account "%s" (access "%s" (address "%s" 
que es %s? ... eso es un valor que dice por ahi ese ",name" el primer %s va con el primer con coma , el segundo que es un %d va con get_user_userid(id) .... porque %d? ... se usa %d para las lineasnuevas que se dividen , tambien se ocupa para la userid 
^ ¿que es el ^? 
este esta junto a la " ... ^" 
cuando queremos poner por ejemplo 

bind 2 "spk "hello men"" 
queremos que las comillas verdes sean parte del spk pero solo queda 
bind 2 "spk " hello men"" 

el rojo con el rojo y el verde con el verde 
en el amx funcionaria (como ejemplo , no lo vallan a intentar) bind 2 "spk ^"hello men^"" 

el verde abarca el spk y el rojo abarca el bind.... 

en este caso se remplaza el ^" se lo toma como " 



new defaccess[32] 
get_cvar_string("amx_default_access",defaccess,31) 
Checka el cvar amx_default_access y le da el valor al defaccess 


BAMOS AL SIGUIENTE PUBLIC 

new result = get_access(id,username,userauthid,userip,password) 

¿que es get_access? 
fijense arriba .. el que estubimos biendo , el que no tiene public , se llama get_access y lleva (id,name[],authid[],ip[], password[]) como el get_access(id,username,userauthid,userip,password)... se traslado las nuevaslineas al otro ... 
esto debe ser asi ... el get_access checka todo eso y el result son las flags que le pusimos a nuestro admin 

ya me estoy cansando asi que aca llegue ... este fue un ejemplo para que se guien mas o menos como se hace un plugin del amx ... yo lo tube que descubrir yo solito ... si tienen el sma para hacer hagan lo siguiente: 
1° . Creen una carpeta que se llame como quieran y ahi manden todos los sma de ejemplos... 
2° . El suyo dejen lo en examples 
3° . Mandar el sc.exe . Cual de todos? . el que tiene esa tuerquita 
4° . Mirar los errores que aparecen . Te dice que renglon fue ... te lo dice entre parentecis ... por ej 
MIPLU~1.SMA(28) : .... el numero ese es el renglon en el que esta el error 
+ Contador +  
 
casino contador de visitas
 
 
   
+ Reloj +  
 
 
Hoy habia 14 visitantes (55 clics a subpáginas) ¡Aqui en esta página!
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis