Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

func_hibiki9090 - zdjęcie

func_hibiki9090

Rejestracja: 15.12.2022
Aktualnie: Nieaktywny
Poza forum Ostatnio: 28.02.2024 18:54
-----

#210083 Struktury

Napisane przez DarkGL w 27.01.2011 21:22

W temacie o enum R3X , goq i owner podjęli temat ale nie omówili go dokładnie :>
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 :)
  • +
  • -
  • 17