←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Z nazwy broni do jej ID

Zablokowany

  • +
  • -
sebul - zdjęcie sebul 20.05.2011

Witam. Czy da się z nazwy broni "wyciągnąć" jej ID? Czyli powiedzmy mam "weapon_usp" i otrzymam z tego 16... Tak się zastanawiam, czy można by to zrobić w taki sposób, żeby najpierw usunąć przedrostek "weapon_", a potem dodać "CSW_" i chyba jeszcze zamiany liter na duże, zadziałało by takie coś?
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 20.05.2011

nie
weapon_usp to string , ciag znakow
CSW_USP to definicja a nie ciag znakow

AMX Mod X - Half-Life Scripting for Pros!
uzyj tego
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 20.05.2011

weapon_usp to string , ciag znakow
CSW_USP to definicja a nie ciag znakow

Znaczy o tym wiedziałem, ale myślałem, że z ciągu znaków można przejść do definicji.

A co do tej funkcji, to właśnie tak jakby sobie przypominałem, że coś takiego chyba było, ale nie znałem jej nazwy. Chyba można zamknąć.
Odpowiedz

  • +
  • -
diablix - zdjęcie diablix 20.05.2011

Witam. Czy da się z nazwy broni "wyciągnąć" jej ID? Czyli powiedzmy mam "weapon_usp" i otrzymam z tego 16... Tak się zastanawiam, czy można by to zrobić w taki sposób, żeby najpierw usunąć przedrostek "weapon_", a potem dodać "CSW_" i chyba jeszcze zamiany liter na duże, zadziałało by takie coś?


Można zmienić nazwe, naprzykład tak (o ile o to Ci chodziło)

new szWeapon[23];
get_weaponname(index, szWeapon, sizeof szWeapon - 1);
replace(szWeapon, sizeof szWeapon - 1, "weapon_", "CSW_");
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 20.05.2011

nie ma możliwości operowania na danych znając ich nazwę, a poza tym definicje są dostępne wyłącznie na etapie kompilacji, więc nie ma absolutnie żadnej wbudowanej opcji na zamianę napisu na adres stałej

możesz to zrobić w drzewie Trie:, ale jest gotowa funkcja więc po co?
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 20.05.2011

możesz to zrobić w drzewie Trie:, ale jest gotowa funkcja więc po co?

Jakaś czarna magia... :D Interesowało mnie tylko wyciągnięcie ID z nazwy broni, zrobiłem takie coś
public DeathMsg() {
new weaponname[32];
read_data(4, weaponname, 31);
funkcja(weaponname);
}
public funkcja(weapon[]) {
new weaponname[32];
formatex(weaponname, charsmax(weaponname), weapon);
if(!equal(weaponname, "weapon_", 7))
format(weaponname, charsmax(weaponname), "weapon_%s", weaponname);

new weaponid = get_weaponid(weaponname);
}

i chyba wszystko jest dobrze... Choć w sumie można by te id wyciągnąć już w funkcji pierwszej i chyba tak zrobię, bo te dane wysyłane są forwardem (jest ich trochę więcej niż w tym przykładzie).
Użytkownik sebul edytował ten post 20.05.2011 13:50
Odpowiedz

Adminek AMXX.PL - zdjęcie Adminek AMXX.PL 20.05.2011

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: wyjasnione

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany