Raised This Month: $ Target: $400
 0% 

Minitutorial de arrays dinamicas


  
 
 
Thread Tools Display Modes
Author Message
01101101
BANNED
Join Date: Nov 2009
Location: 9`su 09`n0n7e`r0f76a
Old 01-17-2010 , 04:22   Minitutorial de arrays dinamicas
#1

Esto lo creo porque si bien es algo bastante basico, note que la mayoria no lo sabe.

Imaginate que tenes que registrar clases zombies, lo que la mayoria pensaria seria crear una variable como por ejemplo

zombie_class_hp[20]

Y ahi guardas la hp de cada clase zombie. Aunque como vemos, hay un limite hay, no podemos pasar las 20 clases zombies porque no nos alcanzara el array. Que hacemos entonces? Creamos una array dinamca, esto significa que su tamaño puede variar.

Primero registramos lo que seria el pointer del array haciendo

PHP Code:
new Array:mi_array_dinamica 
Luego, para crearla (normalmente en plugin_init, pero la puedes crear donde te sea necesario) ponemos

PHP Code:
mi_array_dinamica ArrayCreate(11
El primer 1 significa la segunda dimension. Como guardamos una sola cosa en el array, ponemos 1, si fuese un string deberiamos usar mas. Para que entiendan

PHP Code:
g_texto[20][20]
--->
ArrayCreate(201
El segundo digito es cuantas celdas vienen creadas por default. Esto probablemente siempre lo usemos en 1.

Para insertar una celda hacemos

PHP Code:
ArrayPushCell(mi_array_dinamican
Donde n es el valor

Y para obtenerla

PHP Code:
Valor ArrayGetCell(mi_array_dinamican
Donde n es la celda.

Para cambiar el valor de una celda hacemos

PHP Code:
ArraySetCell(mi_array_dinamicaxn
Donde x es la celda y n el valor.

Luego, para manejarnos con strings

PHP Code:
ArrayPushString(mi_array_dinamicainput
Donde input es un string.

PHP Code:
ArrayGetString(mi_array_dinamicaxbufferlen
Donde x es la celda, buffer donde guardara el string y len, el lenght del string.

PHP Code:
ArraySetString(mi_array_dinamicaxinput
Donde x es la celda y input el string.

Tambien podes usar Arrays de 2 dimensiones, si a alguien le interesa que explique eso diga, aunque habiendo explicado esto es medio obvio.

Tiene varias funciones mas, pero ni ganas de explicarlas lol.

Last edited by 01101101; 08-15-2010 at 00:49.
01101101 is offline
Kiske
Veteran Member
Join Date: May 2009
Old 01-17-2010 , 04:42   Re: [ES] Minitutorial de arrays dinamicas?
#2

Las "Celdas" me sirven para tener mas de 1 dato en esa misma array ?

Ejemplo:

PHP Code:
new Array:Variables
new Celda[2]

plugin_init()
{
     
Variables ArrayCreate6)
     
ArrayPushCellVariables)
     
ArraySetCellVariables150 )
     
ArraySetCellVariables275 )
}

public 
client_putinserverIndex )
{
     
Celda[0] = ArrayGetCellVariables1)
     
Celda[1] = ArrayGetCellVariables2)

     
client_printIndexprint_chat"El valor de la Celda 1 es %d y de la Celda 2 es %d"Celda[0], Celda[1] )

Ese Code funcionaria ?
__________________


Last edited by Kiske; 01-17-2010 at 04:49.
Kiske is offline
Send a message via Skype™ to Kiske
01101101
BANNED
Join Date: Nov 2009
Location: 9`su 09`n0n7e`r0f76a
Old 01-17-2010 , 04:59   Re: [ES] Minitutorial de arrays dinamicas?
#3

No, esta mal. Deberia ser asi:

PHP Code:
new Array:Variables

plugin_init
()
{
     
Variables ArrayCreate(1)
     
ArrayPushCellVariables50)
     
ArrayPushCellVariables50)
}

public 
client_putinserverIndex )
{
     
client_printIndexprint_chat"El valor de la Celda 1 es %d y de la Celda 2 es %d"ArrayGetCellVariables0), ArrayGetCellVariables1))

01101101 is offline
Kiske
Veteran Member
Join Date: May 2009
Old 01-17-2010 , 05:10   Re: [ES] Minitutorial de arrays dinamicas?
#4

Quote:
Originally Posted by 01101101 View Post
No, esta mal. Deberia ser asi:

PHP Code:
new Array:Variables

plugin_init
()
{
     
Variables ArrayCreate(1)
     
ArrayPushCellVariables50)
     
ArrayPushCellVariables50)
}

public 
client_putinserverIndex )
{
     
client_printIndexprint_chat"El valor de la Celda 1 es %d y de la Celda 2 es %d"ArrayGetCellVariables0), ArrayGetCellVariables1))

Pero entonces las "Celdas" para que servirian ?
__________________

Kiske is offline
Send a message via Skype™ to Kiske
01101101
BANNED
Join Date: Nov 2009
Location: 9`su 09`n0n7e`r0f76a
Old 01-17-2010 , 05:13   Re: [ES] Minitutorial de arrays dinamicas?
#5

Para guardar datos o.o eso es muy basico, las array normales ya lo tienen

new array[20] eso tiene 20 celdas.
01101101 is offline
Kiske
Veteran Member
Join Date: May 2009
Old 01-17-2010 , 05:34   Re: [ES] Minitutorial de arrays dinamicas?
#6

Quote:
Originally Posted by 01101101 View Post
Para guardar datos o.o eso es muy basico, las array normales ya lo tienen

new array[20] eso tiene 20 celdas.
Y si yo en mi Ejemplo quise guardar 2 DATOS, pq esta mal ?
__________________

Kiske is offline
Send a message via Skype™ to Kiske
01101101
BANNED
Join Date: Nov 2009
Location: 9`su 09`n0n7e`r0f76a
Old 01-17-2010 , 05:39   Re: [ES] Minitutorial de arrays dinamicas?
#7

Se ve que no entendiste porque son dinamicas.
01101101 is offline
g_often
Senior Member
Join Date: Jan 2010
Location: In your mind
Old 01-17-2010 , 05:41   Re: [ES] Minitutorial de arrays dinamicas?
#8

osea es mejor utilizar
PHP Code:
ArrayCreate(11)

//que

g_texto[20][20]? 

pd: esto estaría mal?

PHP Code:
new Array:Variables[20]

public 
plugin_init()
{
     
Variables[0] = ArrayCreate(1)
     
ArrayPushCellVariables[0], 50)
     
ArrayPushCellVariables[1], 50)
}

public 
client_putinserverIndex )
{
     
client_printIndexprint_chat"El valor de la Celda 1 es %d y de la Celda 2 es %d"ArrayGetCellVariables[0], 0), ArrayGetCellVariables[1], 1))

g_often is offline
01101101
BANNED
Join Date: Nov 2009
Location: 9`su 09`n0n7e`r0f76a
Old 01-17-2010 , 05:45   Re: [ES] Minitutorial de arrays dinamicas?
#9

Quote:
Originally Posted by g_often View Post
osea es mejor utilizar
PHP Code:
ArrayCreate(11)

//que

g_texto[20][20]? 

pd: esto estaría mal?

PHP Code:
new Array:Variables[20]

public 
plugin_init()
{
     
Variables[0] = ArrayCreate(1)
     
ArrayPushCellVariables[0], 50)
     
ArrayPushCellVariables[1], 50)
}

public 
client_putinserverIndex )
{
     
client_printIndexprint_chat"El valor de la Celda 1 es %d y de la Celda 2 es %d"ArrayGetCellVariables[0], 0), ArrayGetCellVariables[1], 1))

u.u no entienden. El sentido es que la cantidad de celdas (lo que va entre corchetes) es dinamico. Si usas Variables[20], nunca podes tener mas de 20 variables, con eso podes tener tanto una variable como 10000.

Y esta mal tu ejemplo.

PHP Code:
new Array:Variables

public plugin_init()
{
     
Variables ArrayCreate(1)
     
ArrayPushCellVariables50)
     
ArrayPushCellVariables50)
}

public 
client_putinserverIndex )
{
     
client_printIndexprint_chat"El valor de la Celda 1 es %d y de la Celda 2 es %d"ArrayGetCellVariables0), ArrayGetCellVariables1))

Ahi si esta bien.

Last edited by 01101101; 01-17-2010 at 06:38.
01101101 is offline
g_often
Senior Member
Join Date: Jan 2010
Location: In your mind
Old 01-17-2010 , 05:51   Re: [ES] Minitutorial de arrays dinamicas?
#10

edito: me confundí

Last edited by g_often; 01-17-2010 at 05:54.
g_often is offline
 



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 11:57.


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