Manejo de Arrays
#1
Hola buenas noches, estoy empezando a aprender sobre arrays, y me surgio un problema pues no se utilizar para nada los arrays en pawn, no logro entender si se los toma como objetos o no, ya que en la documentacion hay funciones tipo Get y tipo Set

intente hacer esto pero no me da


Código PHP:
enum  _:DATOS {
     ID,
     LVL,
     PUNTOS
}

new Array:
MiArray
//En plugin init
MiArray ArrayCreate100 ); // lei por ahi que solo le debo dar el tamaño 

// Luego intente hacer esto, lo cual no me dio error, hasta ahi todo bien
for(new i=05i++){
    new 
Data[DATOS]
    
Data[ID] = i
    Data
[LVL] = i+1
    Data
[PUNTOS] = i+2
    ArrayPushArray
(MiArrayData)
}
// quiero guardar enums en los arrays, ahora para mostrar no se 
El problema me surge cuando quiero ver esos datos, quiero recorrer el array, se como obtener el tamaño, pero no se como obtener cada enum de ese array, o si quiera como acceder a cada uno, tambien como acceder a cada dato de ese enum que esta en una posicion determinada del array, si alguien me ayuda se los agradeceria.
En la documentacion solo menciona GetString, y GetCell, pero no logro entender como utilizarlo, desde ya muchas gracias
Aporte(?
Discord: leo$#9073
Responder
#2
Cada elemento del array tiene un índice y puedes acceder directamente.
Si el Array tiene N elementos debes acceder a los índices del 0 al N-1.

Ejemplo:
Considera un Array de 5 elementos.
Debes acceder a los índices del 0 al 4.

Código PHP:
enum  _:DATOS {
    ID,
    LVL,
    PUNTOS
}
new Array:
MiArray
#define MAX_ELEMENTS 5 // cuantos elementos para el ejemplo.

// plugin_init()
    
MiArray ArrayCreate(DATOS);

// plugin_end()
    
ArrayDestroy(MiArray)

// llenar_array()
    
new Data[DATOS]
    for(new 
i=0MAX_ELEMENTSi++){
        Data[ID] = i*i
        Data
[LVL] = 0
        Data
[PUNTOS] = 0
        ArrayPushArray
(MiArrayData)
}

// leer_data_indice(pos)
    
new Data[DATOS]
    
ArrayGetArray(MiArraypos 1Data// leer_data_indice(3) lee el índice en la posición 2.
    
client_print(0print_chat"ID : %d"Data[ID])

// actualizar_data_indice(pos)
    
new Data[DATOS]
    
ArrayGetArray(MiArraypos 1Data// actualizar_data_indice(3) actualiza el índice en la posición 2.
    
Data[LVL] = Data[LVL] + 1
    Data
[PUNTOS] = Data[PUNTOS] + 1000
    ArraySetArray
(MiArraypos 1Data)
    
client_print(0print_chat"ID : %d - Nuevo LVL: %d - Nuevos PUNTOS: %d"Data[ID], Data[LVL], Data[PUNTOS]) 
Búsqueda de la ecuación perfecta.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)