Raised This Month: $ Target: $400
 0% 

[ES] Recopilacion de Tutoriales v6.0


  
 
 
Thread Tools Display Modes
Alucard^
AMXX Moderator: Others
Join Date: Sep 2007
Location: Street
Old 07-13-2009 , 19:47   Re: [ES] Recopilacion de Tutoriales v0.3
#31

Quote:
Originally Posted by meTaLiCroSS View Post
PHP Code:
register_forward(FM_PlayerPreThink,"fw_prethink");
//agregamos esto en el plugin_init
//esto es para mostrar el icono cuando el usuario entra al server 
AJAJAJAJJAJAJA
Y hace tiempo que los traduci y si, es normal que tenga errores... justamente fue el tuto que lo pusieron aca sin avisarme (no digo que esta mal, solo que no lo pedi que lo pusieran ni nada por el estilo ya que quizas no estaba del todo seguro). Igual hasta lo que yo entiendo el FM_playerprethink tiene que ver con llamar alguna funcion del usuario que si no me equivoco tiene algo que ver cuando el player entra? o weno, la verdad que hace tiempo que no leo sobre scripting y no me acuerdo casi nada... Pero en el caso de que no me equivoque con lo que acabo de decir, a fin de cuentas es un procedimiento para dsp poder mostrar el icono... lo hice de la manera mas facil para que entiendan, ya que los users de mi foro muy pocos entienden de scripting.

Pero igual, mas alla de eso creo que reirte de esa forma excesiva, te tilda como un pelotudo... que en vez de reirte como tal pelotudo, podrias aportar y corregirlo pero no, creo que es mucho pensar no?

En fin, mas alla de ese error, hay otros errores? porque en ese caso se corrige y listo :p
Alucard^ is offline
Send a message via Skype™ to Alucard^
IneedHelp
Veteran Member
Join Date: Mar 2007
Location: Argentina
Old 07-13-2009 , 20:27   Re: [ES] Recopilacion de Tutoriales v0.3
#32

Para mi el que traduce un tutorial deberia decir para que tipo de nivel de scripter es, porque uno que recien empieza viendo 2394982389432 funciones obviamente se va a topar con todo y va a decir ¡ W T F ! ..lo normal seria explicar las funciones, o aunque sea dar links que digan que son, q hacen, etc...para mi ese tutorial esta bien solo que como dije antes, no todo se explica como deberia explicarse^
__________________
IneedHelp is offline
L//
Senior Member
Join Date: Aug 2008
Location: Not found
Old 07-13-2009 , 22:43   Re: [ES] Recopilacion de Tutoriales v0.3
#33

Hay tutoriales para todos, para todos los niveles, para algunos sirve para otros no, hay que valorar que se tomo el trabajo de traducirlo y hacerlo en un lenguaje bien sencillo, que para uno que recien se esta iniciando siempre viene muy bien, mas alla de que este errado en el concepto del forward, los que recien empiezan ni si quiera saben que es un forward.
__________________
L// is offline
Send a message via MSN to L//
Kiske
Veteran Member
Join Date: May 2009
Old 07-13-2009 , 23:10   Re: [ES] Recopilacion de Tutoriales v0.4
#34

Actualizado a la Version 0.4

Se Agrego el Nivel de Scripting
__________________

Kiske is offline
Send a message via Skype™ to Kiske
IneedHelp
Veteran Member
Join Date: Mar 2007
Location: Argentina
Old 07-14-2009 , 00:33   Re: [ES] Recopilacion de Tutoriales v0.4
#35

Tres Tutoriales de Codigo Pawn [Recomendado Para Empezar]

Fuente REAL: www.wgamers.com.ar ;D

Podrias poner los niveles en facil/medio/avanzado :F
__________________
IneedHelp is offline
Kiske
Veteran Member
Join Date: May 2009
Old 07-14-2009 , 01:00   Re: [ES] Recopilacion de Tutoriales v0.4
#36

Quote:
Originally Posted by IneedHelp View Post
Tres Tutoriales de Codigo Pawn [Recomendado Para Empezar]

Fuente REAL: www.wgamers.com.ar ;D

Podrias poner los niveles en facil/medio/avanzado :F
Ahora actualizo de esa Forma

La Fuente Real no hace falta.
La idea de este Post es Juntar Tutoriales, no importa quien los haya echo.
Pero lo pongo para que vean..
__________________

Kiske is offline
Send a message via Skype™ to Kiske
larito
Veteran Member
Join Date: Nov 2008
Location: Argentina- Mendoza
Old 07-14-2009 , 09:13   Re: [ES] Recopilacion de Tutoriales v0.4
#37

Tutorial: Commandos tipo "zp_ninja <name>"
Requerimientos: yo diria que fasil pero velo vos kiske

Explicacion: Este tutorial es para crear comandos con el cual podamos elegir a un player
y que ese player se transforme en un personaje , para ser mas claro dare un ejemplo: esto es para que podamos
elegir quien sera assassin , ninja o sniper, en su repectivo modo y cuado son de uno en especial.

Ejemplo con modo assassin.

Paso:
Code:
1. Registramos el comando
2. Creamos el public del comando
3. Crear la funcion "allowed_...."
4. Creamos el public con las funciones para que empiese el modo
5. Truco con el cual ara que funcione bien el comando
Empesemos abriendo el zombieplague40.sma:

1. Registramos el comando

Buscamos esto :
PHP Code:
register_concmd("zp_survivor",  "cmd_survivor",     ACCESS_FLAG"<name> - Turn someone into a Survivor"
Bueno alli se esta creando el comando del survivor (eso lo saven de cualquier mod), debajo del mismo creamos el nuestro
y en este caso nos quedaria asi.
PHP Code:
register_concmd("zp_assassin""cmd_assassin"ACCES_FLAG"<name - Turn someone into a Assassin"
Nota: esta frace del final de la linea "<name> - Turn someone into Assassin" no tiene nada que ver con el efecto
del comando solo es una breve explicacion que se ve al tocar "amx_help"


2. Creamos el public del comando

Buscamos este public public cmd_survivor(id, level, cid) y encontraremos algo como esto

PHP Code:
public cmd_survivor(idlevelcid)
{
    
// Check for access flag
    
if (!cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED;
    
    
// Retrieve arguments
    
static arg[32], player
    read_argv
(1argsizeof arg 1)
    
player cmd_target(idargCMDTARGET_ONLY_ALIVE CMDTARGET_ALLOW_SELF)
    
    
// Invalid target
    
if (!player) return PLUGIN_HANDLED;
    
    
// Target not allowed to be survivor
    
if (!allowed_survivor(player))
    {
        
client_print(idprint_console"[ZP] %L"id"CMD_NOT")
        return 
PLUGIN_HANDLED;
    }
    
    
command_survivor(idplayer)
    
    return 
PLUGIN_HANDLED;

Bueno debajo de eso crearemos el nuestro , es casi lo mismo pero tienes uno detalles cambiado

Primero agregamoes el public con sus parametros

PHP Code:
public cmd_assassin(idlevelcid)

Aqui le pondremos la condiciones es decir los accessos que debe tener,
si no los tiene no continua

PHP Code:
    if (!cmd_access(idlevelcid2)) return PLUGIN_HANDLED
Aqui guardamos en un array el argumento(nombre) cuando ejecutamos el cmd a alguien
Creamos el arrray y la variable "player"
PHP Code:
static arg[32], player 
Esto lee los argumentos y los juarda en el array
PHP Code:
  read_argv(1argsizeof arg 1
Aca seteamos las condiciones que tiene que tener
el player, ejemplo que este vivo(no estoy muy seguro si me equivoque diganme plis)
PHP Code:
player cmd_target(idargCMDTARGET_ONLY_ALIVE CMDTARGET_ALLOW_SELF
Si no es valido no continua
PHP Code:
  if (!player) return PLUGIN_HANDLED
Aqui se detecta si el player ya es assassin o si ya hay otro modo, ensi son mas condiciones(despues le explico como hacer esta funcion
de "allowed_assassin")
PHP Code:
    if (!allowed_assassin(player))
    {
        
client_print(idprint_console"[ZP] %L"id"CMD_NOT")
        return 
PLUGIN_HANDLED;
    } 
Si pasa todas esas condiciones se ejecuta esta funcion al player elegido.
PHP Code:
    command_assassin(idplayer)
    return 
PLUGIN_HANDLED

Bueno entonses nuestro public del comando y de condiciones nos quedaria asi:
PHP Code:
public cmd_assassin(idlevelcid)
{
    if (!
cmd_access(idlevelcid2)) return PLUGIN_HANDLED;
    
    static 
arg[32], player
    read_argv
(1argsizeof arg 1)
    
    
player cmd_target(idargCMDTARGET_ONLY_ALIVE CMDTARGET_ALLOW_SELF)
    
    if (!
player) return PLUGIN_HANDLED;

    if (!
allowed_assassin(player))
    {
        
client_print(idprint_console"[ZP] %L"id"CMD_NOT")
        return 
PLUGIN_HANDLED;
    }
    
    
command_assassin(idplayer)
    return 
PLUGIN_HANDLED

3. Crear la funcion "allowed_...."

En este caso seria "allowed_assassin", esta funcion es simple solo son para usarlas de condicion,
esas son condiciones como que no aya otro modo, que no aya empesado el modo assassin ni que el player sea assassin

Buscamos "allowed_survivor" (sin comillas) y encontraremos esto

PHP Code:
allowed_survivor(id)
{
    if (
g_endround || !g_newround || !is_user_alive(id) || !get_pcvar_num(cvar_surv) || task_exists(TASK_WELCOMEMSG) || fnGetAlive() < get_pcvar_num(cvar_survminplayers))
        return 
false;
    
    return 
true;

Debajo de ese aremos el nuestro

PHP Code:
allowed_assassin(id// Nombre del public
{
              
// Si termina o empiesa un modo o el user esta muerto o  el modo esta desactivado  O existe el TASK_WELCOMEMSG que es antes del round , o  la cantidad de user es menor a la requerida por el modo
    
if (g_endround || !g_newround || !is_user_alive(id) || !get_pcvar_num(cvar_assassin) || task_exists(TASK_WELCOMEMSG) || fnGetAlive() < get_pcvar_num(cvar_assassinminplayers))
        return 
false;
    
// Si esas condiciones se cumple devuelve 0 o false es decir no continua
    
    
return true;


4. Creamos el public con las funciones para que empiese el modo


Bueno buscamos "command_survivor(id, player)" (sin comillas) y encontraremos esto

PHP Code:
command_survivor(idplayer)
{
    static 
name1[32], name2[32]
    
get_user_name(idname1sizeof name1 1)
    
get_user_name(playername2sizeof name2 1)
    
    
// Show activity?
    
switch (get_pcvar_num(cvar_showactivity))
    {
        case 
1client_print(0print_chat"ADMIN - %s %L"name2LANG_PLAYER"CMD_SURVIVAL")
        case 
2client_print(0print_chat"ADMIN %s - %s %L"name1name2LANG_PLAYER"CMD_SURVIVAL")
    }
    
     
// Log to Zombie Plague log file?
    
if (get_pcvar_num(cvar_logcommands))
    {
        static 
logdata[100], authid[32], ip[16]
        
get_user_authid(idauthidsizeof authid 1)
        
get_user_ip(idipsizeof ip 11)
        
formatex(logdatasizeof logdata 1"ADMIN %s <%s><%s> - %s %L (Players: %d/%d)"name1authidipname2LANG_SERVER,"CMD_SURVIVAL"fnGetPlaying(), g_maxplayers)
        
log_to_file("zombieplague.log"logdata)
    }
    
    
// Turn into a Survivor
    
remove_task(TASK_MAKEZOMBIE)
    
make_a_zombie(MODE_SURVIVORplayer)

Como siempre debajo de el creamos el nuestro

Nombre del public
PHP Code:
command_assassin(idplayer)

Aca tomamos el dos nombres , del adm que ejecuto la accion y el que sera comvertido
PHP Code:
    static name1[32], name2[32]
    
get_user_name(idname1sizeof name1 1)
    
get_user_name(playername2sizeof name2 1
Aqui toma el nuemero en que esta la cvar_showactivty y dara un mensaje dependiendo de ello
PHP Code:
    switch (get_pcvar_num(cvar_showactivity))
    {
        
// Si esta en uno dara este
        
case 1client_print(0print_chat"ADMIN - %s %L"name2LANG_PLAYER"CMD_ASSASSIN")
        
// Si esta en dos dara este
        
case 2client_print(0print_chat"ADMIN %s - %s %L"name1name2LANG_PLAYER"CMD_ASSASSIN")
    } 
Aca toma la cvar_logcommands y si esta en 1 (activada) prosigue a lo de abajo
PHP Code:
  if (get_pcvar_num(cvar_logcommands))
    {
        
// Creamos estos arrays para useralso despues
        
static logdata[100], authid[32], ip[16]
        
// Tomamos el authid del adm y la ip del mismo
        
get_user_authid(idauthidsizeof authid 1)
        
get_user_ip(idipsizeof ip 11)
        
// Creamos el formatex , es decir el message que aparecera en el archivo zombieplague(en la carpeta "logs")
        
formatex(logdatasizeof logdata 1"ADMIN %s <%s><%s> - %s %L (Players: %d/%d)"name1authidipname2LANG_SERVER,"CMD_ASSASSIN"fnGetPlaying(), g_maxplayers)
        
// Aca seteamos donde se guardara todo
        
log_to_file("zombieplague.log"logdata)
    } 
// Esto sirve para guardarlo en el arhivo log no cambia nada en el comando. 
Aca removemos el task del makezombie es decir lo que nos impide empesar un modo(se activa cuando empiesa uno )
PHP Code:
    remove_task(TASK_MAKEZOMBIE
Esta esl a accion para que epiese el modo y asignarlo al player que se escribe en el cmd_assassin
PHP Code:
    make_a_zombie(MODE_ASSASSINplayer)

Entonses el code nos quedaria asi:

PHP Code:
command_assassin(idplayer)
{
    static 
name1[32], name2[32]
    
get_user_name(idname1sizeof name1 1)
    
get_user_name(playername2sizeof name2 1)
    
    switch (
get_pcvar_num(cvar_showactivity))
    {
        case 
1client_print(0print_chat"ADMIN - %s %L"name2LANG_PLAYER"CMD_ASSASSIN")
        case 
2client_print(0print_chat"ADMIN %s - %s %L"name1name2LANG_PLAYER"CMD_ASSASSIN")
    }
    
    if (
get_pcvar_num(cvar_logcommands))
    {
        static 
logdata[100], authid[32], ip[16]
        
get_user_authid(idauthidsizeof authid 1)
        
get_user_ip(idipsizeof ip 11)
        
formatex(logdatasizeof logdata 1"ADMIN %s <%s><%s> - %s %L (Players: %d/%d)"name1authidipname2LANG_SERVER,"CMD_ASSASSIN"fnGetPlaying(), g_maxplayers)
        
log_to_file("zombieplague.log"logdata)
    }

    
remove_task(TASK_MAKEZOMBIE)
    
make_a_zombie(MODE_ASSASSINplayer)

5. Truco con el cual ara que funcione bien el comando (ami no me andava bien antes de hacer esto)

Buscamos en el respectivo modo al cual le estemos creando el comando, en nuestro caso el modo_assasin
osea que buscamos

PHP Code:
g_lastmode MODE_ASSASSIN 
y encotraremos esto

PHP Code:
g_lastmode MODE_ASSASSIN        
// Choose player randomly?
id fnGetRandomAlive(random_num(1iPlayersnum)) 
Ahora agregaremos esto
PHP Code:
if(mode == MODE_NONE
y nos quedaria asi.

PHP Code:
g_lastmode MODE_ASSASSIN
// Choose player randomly?
if(mode == MODE_NONE)    
id fnGetRandomAlive(random_num(1iPlayersnum)) 
Aun no entendi porque pero ami me funciono bien el comando cuando ise esto.

Nota2: De esa manera yo ahroa tengo en el menu de admin la primer pag completa de comandos para comvertir a alguien

Espero que les funcione, cualquier consulta por MP en el foro o por mail
"[email protected]"

PD: yo lo ise con el zp v4.1 no se si sirve para 4.2 o 4.3
__________________
Facebook: Ariel Berardi
larito is offline
Send a message via MSN to larito
lucas_7_94
Leche Loco
Join Date: Mar 2009
Location: Argentina
Old 07-14-2009 , 09:58   Re: [ES] Recopilacion de Tutoriales v0.4
#38

Gracias Larito , Lo estaba necesitando . Ahora , a probar ^^
lucas_7_94 is offline
Send a message via Skype™ to lucas_7_94
larito
Veteran Member
Join Date: Nov 2008
Location: Argentina- Mendoza
Old 07-15-2009 , 09:13   Re: [ES] Recopilacion de Tutoriales v0.4
#39

Tutorial : agregar una pagina mas al menu de adm del zp
Requerimientos: tener un menu de adm lleno(sino es lo mismo que nada) , saver usar el nuevo menu y el viejo menu


Pasos:
PHP Code:
1. Crear la opcion 9 para cambiar de pagina
2. Crear los item del nuevo menu
3. Crear los 
case del nuevo menu 

Comensamos como siempre abriendo el zombie_plague40.sma

1. Crear la opcion 9 para cambiar de pagina


Buscamos el menu de admin en mi caso
PHP Code:
// Admin menu 
y tendremos debajo la funcionn
PHP Code:
show_menu_admin(id
donde abremos creado todos los formatex o item nustros.

Alfinal ,antes de llegar al 0, agregamos el item 9 (si ya teniamos uno lo borramos ) que seria algo como esto
PHP Code:
// 9. Next
len += formatex(menu[len], sizeof menu len"^n\r9.\y %L"id"MENU_NEXT"
Despues buscamos otra ves
PHP Code:
// Admin menu 
pero apareceria la funcion
PHP Code:
public menu_admin(idkey
y bueno despues del case 7(que seria el ultimo) agregamos el nuestro que seria asi
PHP Code:
case MENU_KEY_NEXT:
{
    
show_menu_admin2(id)
    return 
PLUGIN_HANDLED;

y ya tenemos nuestra opcion de ir al segundo menu (que aun no creamos) para ver mas opciones.

2. Crear los item del nuevo menu

Bueno al final de la funcion que vimos antes
PHP Code:
show_menu_admin(id
crearemos los items de nuestro menu (usando el menu basico)
PHP Code:
public show_menu_admin2(id// Creamos el name del public
{
     
// Creamos el titulo y el handle del menu
    
new amenu menu_create("Mas opciones de adm""mostrar_menu")
    
    
// Creamos las opciones que necesitemos (yo voy a poner solo 3)
    
menu_additem(amenu"Empesar modo swarm""1" )
    
menu_additem(amenu"Empesar modo plague""2")
    
menu_additem(amenu"Empesar modo infeccion""3")
    
    
menu_display(idamenu0)
    return 
PLUGIN_HANDLED

Y ya tenesmos la parte done mostramos el menu

3. Crear los case del nuevo menu


Para eso vamos al final de la funcion de
PHP Code:
public menu_admin(idkey
y creamos nuestor handle menu


PHP Code:
public mostrar_menu(idmenuitem// Public 
{
    
// El if para hacer la opcion de salir
    
if(item == MENU_EXIT) return PLUGIN_HANDLED 
    
// Las variables que siempre usamos
    
new data[6], iName[64], accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);
    
    
// Switch para los case
    
switch(str_to_num(data))
    {
        
// Agregamos nuestras opciones
        
case 1// Swarm
        
{
            if (
allowed_swarm())
                
command_swarm(id)
            else
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
            return 
PLUGIN_HANDLED;
        }
        case 
2// Plague
        
{
            if (
allowed_plague())
                
command_plague(id)
            else
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
            return 
PLUGIN_HANDLED;
        }
        case 
3// Infeccion
        
{
            if (
allowed_multi())
                
command_multi(id)
            else
                
zp_colored_print(id"^x04[ZP]^x01 %L"id"CMD_NOT")
            return 
PLUGIN_HANDLED;
        }
        
// Si se dan cuenta el code de adentro de los case no cambio
        // en nada de lo que seria el code del menu original , porque es lo mismo
    
}

Nota: hay otra forma de acerla que seria remplazar el old menu por el new menu pero seria mas largo aunque alli automaticamente
les crea las paginas y las opcienes de NEXT y BACK. No voy a responder dudas de como crear un new menu porque en lo reqrimientos dice
que tienen que entender los dos menus old menu y new menu
__________________
Facebook: Ariel Berardi
larito is offline
Send a message via MSN to larito
Fuerza
BANNED
Join Date: May 2009
Location: CENSURADO X ALUCARD
Old 07-15-2009 , 16:48   Re: [ES] Recopilacion de Tutoriales v0.4
#40

me parece que le falto como agregarle bazoka al nemesis lo hiso capostrike aca dejo el link
http://forums.alliedmods.net/showthread.php?t=86531
Fuerza is offline
Send a message via MSN to Fuerza
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 22:52.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode