struktury tworzymy przy pomocy enum i operatora new pozwalają one w łatwy sposób w jednej tablicy przechowywać różne informacje Float,liczby całkowite,stringi według mnie po co rozbijać informacje o graczu na kilka różnych tablic jeśli można posługiwać się jedną
Prosta struktura:
#include <amxmisc>
#define PLUGIN "DarkGL"
#define VERSION "1.0"
#define AUTHOR "Simple Structure"
enum player
{
userid,
deaths,
kills
}
new players[33][player]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /test","test")
}
public test(id){
players[id][userid] = get_user_userid ( id)
players[id][deaths] = get_user_deaths(id);
players[id][kills] = get_user_frags(id);
client_print(id,print_chat,"Twoje userid to : %d | Masz %d fragow i %d dedow",players[id][userid],players[id][kills],players[id][deaths])
}
nie ma jednak możliwości zrobienia czegoś takiego:
#include <amxmisc>
#define PLUGIN "DarkGL"
#define VERSION "1.0"
#define AUTHOR "Simple Structure"
enum player{
origin[3]
}
new players[33][player]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /test","test")
}
public test(id){
get_user_origin(id,players[id][origin])
client_print(id,print_chat,"Origin x,y,z : %d | %d | %d",players[id][origin][0],players[id][origin][1],players[id][origin][2])
}
chyba że zrobimy to tak:
#include <amxmisc>
#define PLUGIN "DarkGL"
#define VERSION "1.0"
#define AUTHOR "Simple Structure"
enum player{
origin[3]
}
new players[33][player]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /test","test")
}
public test(id){
new iTmp[3];
get_user_origin(id,iTmp)
players[id][origin][0] = iTmp[0];
players[id][origin][1] = iTmp[1];
players[id][origin][2] = iTmp[2];
client_print(id,print_chat,"Origin x,y,z : %d | %d | %d",players[id][origin][0],players[id][origin][1],players[id][origin][2])
}
Przechowywanie wartości Float
z tym trzeba już kombinowac
#include <amxmisc>
#include <fun>
#define PLUGIN "DarkGL"
#define VERSION "1.0"
#define AUTHOR "Simple Structure"
enum player{
speed
}
new players[33][player]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /test","test")
}
public test(id){
players[id][speed] = _:get_user_maxspeed(id);
client_print(id,print_chat,"Twoja predkosc to %f",Float:players[id][speed])
}
co robi znacznik _: zapraszm do tutoriala R3X na ten temat
Turorial _:
Stringi
#include <amxmisc>
#define PLUGIN "DarkGL"
#define VERSION "1.0"
#define AUTHOR "Simple Structure"
enum player{
nick[64]
}
new players[33][player]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /test","test")
}
public test(id){
new szName[64];
get_user_name(id,szName,charsmax(szName));
copy(players[id][nick],63,szName)
client_print(id,print_chat,"Twoj nick to %s",players[id][nick])
}
w linijce z instrukcja copy drugi parametr to ilosc znakow niestety nie da sie sprawdzic ile ma tablica zadeklarowana w enum
i to by było wszystko zachęcam do stosowania struktur w swoich pluginach
coś niejasne , piszcie