[ROZWIĄZANE] Zwrócenie c-stringu
diggs
31.10.2011
Witam, męczę się i głowię jak w pawnie można zwrócić tablice (c-stringa).
Przykład:
[...]
show_hudmessage(id, "Zwrocony tekst: %s", oddajtxt(id));
[...]
public oddajtxt(id)
{
new name[32];
get_user_name(pid, name, 31);
return name;
}
Oczywiście przykład nie działa tak jak powinien.
Użytkownik diggs edytował ten post 31.10.2011 19:02
Przykład:
[...]
show_hudmessage(id, "Zwrocony tekst: %s", oddajtxt(id));
[...]
public oddajtxt(id)
{
new name[32];
get_user_name(pid, name, 31);
return name;
}
Oczywiście przykład nie działa tak jak powinien.
Użytkownik diggs edytował ten post 31.10.2011 19:02
sebul
31.10.2011
Chyba tak się nie da, bo i w żadnym pluginie nie widziałem czegoś podobnego, do tego zrobiłeś tutaj błąd ^ ^ jak już to
public oddajtxt(id)
{
new name[32];
get_user_name(id, name, 31);
return name;
}
diggs
31.10.2011
Nie istotne czy mam błąd w przykładzie, chodzi czy i jak to zrobić muszę wywołać funkcje która wygeneruje mi tekst i chce żeby ona mi ten tekst zwróciła, ale + dla ciebie za spostrzegawczość ;]
Vertricus
31.10.2011
Nie da się zwrócić tablicy w pawnie, no może dynamiczną ale i tak zaleca się robienie tego w ten sposób
tablica(x[32])
{
copy(x, 31, "Moj string");
}
Co do tego ze sie da dynamiczną ale nie powinno:
http://www.amxmodx.o...go=func&id=1206
Opis copy:
http://amxx.pl/dokumentacja/f1377/copy
zerknij sobie w stocki które są w bibliotekach, z reguły tak to działa
dla przykładu nie robimy:
name = get_user_name(id)
Użytkownik Vertricus edytował ten post 31.10.2011 19:42
tablica(x[32])
{
copy(x, 31, "Moj string");
}
Co do tego ze sie da dynamiczną ale nie powinno:
http://www.amxmodx.o...go=func&id=1206
Opis copy:
http://amxx.pl/dokumentacja/f1377/copy
zerknij sobie w stocki które są w bibliotekach, z reguły tak to działa
dla przykładu nie robimy:
name = get_user_name(id)
Użytkownik Vertricus edytował ten post 31.10.2011 19:42
diggs
31.10.2011
@Vertricus - a przez referencje jakoś by nie dało? Co do sposobu z copy czy mam to skopiować do tablicy x która jest globalna czy do tej której np przekazuje przy wywoływaniu tej funkcji?
R3X
31.10.2011
Można zwracać tekst, ale tworzą się właśnie dziwne referencje i czasami kod nie zachowuje się jak tego byśmy chcieli.
Podałem zły przykład to podam i dobry:
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); new szNick[32]; szNick = getText(); log_amx("No siema %s", szNick); } getText() { new szText[] = "ziom"; return szText; }
Podałem zły przykład to podam i dobry:
getText(szText[], len) { return copy(szText, len, "ziom"); }
DarkGL
31.10.2011
a jak już jesteśmy w temacie to nie można robić konstrukcji takiej
return "tekst";kompilator się na tym wywali
diggs
31.10.2011
Mi nie działa a robię to tak:
Jak nic z tym nie zrobię to jutro zrobię to od d*py strony.
Użytkownik diggs edytował ten post 31.10.2011 21:28
public native_get_text(id, szText[], len) { new text[64]; ArrayGetString(g_Text, num[id], text, 63); return copy(szText, len, text); } [...] new szcos[64]; diggs_get_text(id, class_name, 64); show_hudmessage(id, "Tekst: %s", szcos); [...]Efektem tego jest napis "Tekst:"
Jak nic z tym nie zrobię to jutro zrobię to od d*py strony.
Użytkownik diggs edytował ten post 31.10.2011 21:28
R3X
31.10.2011
czy dobrze widzę, że to natyw? to pewniak że nie działa ze stylem=1
musisz użyć style=0 i set_string()
musisz użyć style=0 i set_string()
diggs
01.11.2011
R3X dobrze widzisz i wielkie dzięki za to, ale jutro już to zrobię na dziś mam dość. Dam znać jak mi poszło.
Edit 01.11.2011
R3X jeszcze raz dzięki za spostrzegawczość, właśnie dopisałem 1 linijkę i chodzi jak ta bajka dodam że w stylu 1 też sie da wystarczy tylko na samym początku naszej funkcji dodać wywołanie funkcji param_convert( num ) i jako parametr podać numer argumentu w którym przekazana ma być tablica.
Po raz kolejny zawiniła moja skłonność do popełniania banalnych błędów...
Użytkownik diggs edytował ten post 01.11.2011 07:35
Edit 01.11.2011
R3X jeszcze raz dzięki za spostrzegawczość, właśnie dopisałem 1 linijkę i chodzi jak ta bajka dodam że w stylu 1 też sie da wystarczy tylko na samym początku naszej funkcji dodać wywołanie funkcji param_convert( num ) i jako parametr podać numer argumentu w którym przekazana ma być tablica.
Po raz kolejny zawiniła moja skłonność do popełniania banalnych błędów...
Użytkownik diggs edytował ten post 01.11.2011 07:35
DarkGL
01.11.2011
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL