Големи Адмираций OciXCrom,евала за всичко което си направил до сега и продължавай да правиш занапред,за да се научин и ние на нещо.
Аз бих те помолих,ако е възможно да хванеш един малък обикновен сма файл(плугин) и всяка една фукнция всяка една променлива да я обясниш
за какво как и защо,примерно като по горе ти написа szUserId[8] променливата е ясна,но тая 8ца неми е ясна,за какво служи,какъв е максимума на цифвите в тая променлива 10-22-32 -33,защо е така,ето такива неща лично на мен ще ми помогнат да се науча,това което мога в момента е нещо минимално и просто,но както ти каза,аз не го разбирам,аз просто пипам тук там,докато не стане нещо,гледам два сродни плъгина и пиша,но това което го пиша,него сващам защо как и за какво се пише така...Ще съм благодарен да пуснеш една тема Дори бих бил благодарен на личен урок по скайп разговор Зада ми обясниш всичко от до най важните неща!Благодаря и още веднъж Адмираций
Как да създам меню в което да излизат имената на играчите ?
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Как да създам меню в което да излизат имената на играчите ?
Въпросното число означава колко "символа" може да държи променливата. В случая тя трябва да държи userid-то на играча (което може да се види с командата amx_who - числото след SteamID-то). Не бях сигурен колко е максималната възможна дължина на userid и не ми се занимаваше да търся, и затова написах 8. Надали ще е повече от 8 цифри, тъй че не е проблем.примерно като по горе ти написа szUserId[8] променливата е ясна,но тая 8ца неми е ясна,за какво служи,какъв е максимума на цифвите в тая променлива 10-22-32 -33,защо е така
В случая на szName[32] - 32 е максималната дължина на име, което един играч може да има. Реално можеш да пишеш което искаш число, обаче ако сложиш примерно 16, а играчът има 20 символа/букви в ника, само първите 16 ще се покажат/прочетат. Ако пък сложиш повече от 32, няма да има никакъв проблем, обаче е напълно ненужно и създаваш излишна неизползвана мемория, тъй като името никога няма да е по-дълго от 32.
-
User12
Извън линия - Потребител
- Мнения: 321
- Регистриран на: 25 Яну 2018, 22:39
- Местоположение: Сливен
- Се отблагодари: 40 пъти
- Получена благодарност: 17 пъти
- Обратна връзка:
Как да създам меню в което да излизат имената на играчите ?
Може ли да ми разясниш точно каква е разликата в този код : и в този :
Код за потвърждение: Избери целия код
menu_item_getinfo(iMenu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
Код за потвърждение: Избери целия код
menu_item_getinfo(iMenu, iItem, iUnused, szUserId, charsmax(szUserId), szName, charsmax(szName), iUnused)
OciXCrom™ написа: ↑21 Мар 2018, 23:08 За да ползваш избрания играч в меню handler-а, трябва да подадеш неговото userid при добавяне на предметите в менюто. За да направиш това, преди for цикъла от предишния ми пост, добави нова променлива szUserId[8]. След това, в цикъла запазваш userid-то на играча в новата променлива като string.
И menu_additem реда го правиш така:Код за потвърждение: Избери целия код
num_to_str(get_user_userid(iPlayers[i]), szUserId, charsmax(szUserId))
Handler-ът на менюто ще ти го дам готов, тъй като нямам много време да обяснявам. Опитай се да разбереш какво се случва в този код и ако не разбираш някоя част, питай.Код за потвърждение: Избери целия код
menu_additem(iMenu, szName, szUserId)
Код за потвърждение: Избери целия код
public Nastroiki(id, iMenu, iItem) { if(iItem == MENU_EXIT) { menu_destroy(iMenu) return PLUGIN_HANDLED } new szName[32], szUserId[8], iUnused menu_item_getinfo(iMenu, iItem, iUnused, szUserId, charsmax(szUserId), szName, charsmax(szName), iUnused) new iPlayer = find_player("k", str_to_num(szUserId)) if(iPlayer) CC_SendMessage(id, "^1[^4Server Menu^1] ^1Igrachut ^4%s ^1ima ^4%d ^3tochki", szName, gKillerPoints[iPlayer]) menu_destroy(iMenu) return PLUGIN_HANDLED }
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Как да създам меню в което да излизат имената на играчите ?
Няма разлика в този случай. Просто аз ползвам една променлива (iUnused) за третия и последния аргумент, а при теб бяха две отделни (access и callback). Направил съм го с една защото нито една от стойностите на двата параметра не ти е нужна (даже съм сложил име unused, демек неизползвано/ненужно), обаче функцията налага да се подадат в променлива.
-
gadinkata
Извън линия - Потребител
- Мнения: 259
- Регистриран на: 21 Мар 2018, 12:33
- Местоположение: Враца
- Се отблагодари: 25 пъти
- Получена благодарност: 7 пъти
- Обратна връзка:
Как да създам меню в което да излизат имената на играчите ?
За това говоря,стана ми ясно отностно тея неща,ако примерно стеам ид-то ми се състой от 12 цифри,му задаваме szUserId[12]OciXCrom™ написа: ↑22 Мар 2018, 00:22Въпросното число означава колко "символа" може да държи променливата. В случая тя трябва да държи userid-то на играча (което може да се види с командата amx_who - числото след SteamID-то). Не бях сигурен колко е максималната възможна дължина на userid и не ми се занимаваше да търся, и затова написах 8. Надали ще е повече от 8 цифри, тъй че не е проблем.примерно като по горе ти написа szUserId[8] променливата е ясна,но тая 8ца неми е ясна,за какво служи,какъв е максимума на цифвите в тая променлива 10-22-32 -33,защо е така
В случая на szName[32] - 32 е максималната дължина на име, което един играч може да има. Реално можеш да пишеш което искаш число, обаче ако сложиш примерно 16, а играчът има 20 символа/букви в ника, само първите 16 ще се покажат/прочетат. Ако пък сложиш повече от 32, няма да има никакъв проблем, обаче е напълно ненужно и създаваш излишна неизползвана мемория, тъй като името никога няма да е по-дълго от 32.
А ще отговориш ли, szUserId неможе ли да е по друг начин написана или това си е код който си отговаря за ид-то на играч,офф незнам дали ме разбра,може ли да е nnUserId,и те умолявам,направи един урок,с един прост плугин, конект съобщение примерно и всяко едно нещо го обясни подробно,ако нете затруднява,най добре ще е видео урок,защото по бързо става
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Как да създам меню в което да излизат имената на играчите ?
SteamID не е еднакво с UserID-то.
SteamID: STEAM_0:123456789 (също се нарича и AuthID)
UserID: 3 (или някое друго число)
Ако твоето има 12, а някой друг играч има 13, какво правим? Големината на масива (променливата) трябва да я направиш такава, че да може в нея да се запази всякакъв възможен вариант на SteamID. Няма как да знаеш дали играчите в сървъра ще имат 24, 26, 29 или еди колко си цифри в SteamID-то. В случая на SteamID, максималната възможна дължина е 35, тъй че ще го направиш szSteamID[35], за да има достатъчно място.
Името на променливата не е от никакво значение. Можеш да го направиш и userid[8], USERID[8], id_na_usera[8], asd[8], ASDADASDASDASDSDA[8] и прочие. За самия компилатор и плъгина не е от значение, обаче от значение е за хората, които четат кода, затова е препоръчително да се слагат ясни имена. szUserId - въпросното "sz" означава, че става дума за string (текст), тъй като запазваме userid-то като текст - "3", а не като число - 3. Ако беше число, правилно е да се напише iUserId (i = integer). Прочети тази тема за повече информация относно именуването на променливите - viewtopic.php?f=26&t=1046
SteamID: STEAM_0:123456789 (също се нарича и AuthID)
UserID: 3 (или някое друго число)
Ако твоето има 12, а някой друг играч има 13, какво правим? Големината на масива (променливата) трябва да я направиш такава, че да може в нея да се запази всякакъв възможен вариант на SteamID. Няма как да знаеш дали играчите в сървъра ще имат 24, 26, 29 или еди колко си цифри в SteamID-то. В случая на SteamID, максималната възможна дължина е 35, тъй че ще го направиш szSteamID[35], за да има достатъчно място.
Името на променливата не е от никакво значение. Можеш да го направиш и userid[8], USERID[8], id_na_usera[8], asd[8], ASDADASDASDASDSDA[8] и прочие. За самия компилатор и плъгина не е от значение, обаче от значение е за хората, които четат кода, затова е препоръчително да се слагат ясни имена. szUserId - въпросното "sz" означава, че става дума за string (текст), тъй като запазваме userid-то като текст - "3", а не като число - 3. Ако беше число, правилно е да се напише iUserId (i = integer). Прочети тази тема за повече информация относно именуването на променливите - viewtopic.php?f=26&t=1046
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 0 Отговори
- 1459 Преглеждания
-
Последно мнение от SkandaU
-
- 22 Отговори
- 9479 Преглеждания
-
Последно мнение от thoughtz
-
- 3 Отговори
- 1937 Преглеждания
-
Последно мнение от HawKing
-
- 3 Отговори
- 1852 Преглеждания
-
Последно мнение от BeliaL
-
- 2 Отговори
- 1788 Преглеждания
-
Последно мнение от Gmilanov
-
- 4 Отговори
- 1769 Преглеждания
-
Последно мнение от KARASKO
-
- 2 Отговори
- 1180 Преглеждания
-
Последно мнение от cgozzie
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 6 госта