Menu wyboru modelu dla SVipa
nielot
20.08.2019
Chciałbym żeby po wpisaniu komendy /skin pojawi się menu. (jeżelu ma flagę ADMIN_LEVEL_
Gdy w terro:
1. Agent Smith (models/players/vipstt/smith.mdl)
2. Big Smoke (models/players/vipstt/smoke.mdl)
3. Spider-Man (models/players/vipstt/spider.mdl)
Gdy w ct:
1. Neo (models/players/vipsct/neo.mdl)
2. Bat-Man (models/players/vipsct/bat.mdl)
3. 007 (models/players/vipsct/007.mdl)
PS: to co w nawiasach to lokalizacja nie ma być tego w menu
Jeżeli gracz nie ma flagi A_L_B to niech się pojawi komunikat "Zapraszamy do kupna SVIPA"
Dziękuje
K@MILOVVSKY
20.08.2019
#include <amxmodx> #include <amxmisc> #include <cstrike> new const modelsTT[][] = { "models/players/vipstt/smith.mdl", "models/players/vipstt/smoke.mdl", "models/players/vipstt/spider.mdl" }; new const modelsCT[][] = { "models/players/vipsct/neo.mdl", "models/players/vipsct/bat.mdl", "models/players/vipsct/007.mdl" }; new const modelsNamesCT[][] = { "Neo", "Bat man", "007" }; new const modelsNamesTT[][] = { "Agent Smith", "Big Smoke", "Spider man" }; public plugin_precache() { for(new i = 0; i < sizeof modelsCT; i++) precache_model(modelsCT[i]) for(new i = 0; i < sizeof modelsTT; i++) precache_model(modelsTT[i]) } public plugin_init() { register_plugin("Wybor modelu", "v.1", "K@MILOVVSKY") register_clcmd("say /skin", "SkinMenu") } public SkinMenu(id) { new menu = menu_create("Wybierz model postaci", "SkinMenuHandler") switch(cs_get_user_team(id)) { case CS_TEAM_CT: { for(new i = 0; i < sizeof modelsNamesCT; i++) menu_additem(menu, modelsNamesCT[i]); } case CS_TEAM_T: { for(new i = 0; i < sizeof modelsNamesTT; i++) menu_additem(menu, modelsNamesTT[i]); } } menu_display(id, menu); return PLUGIN_HANDLED; } public SkinMenuHandler(id, menu, item) { switch(cs_get_user_team(id)) { case CS_TEAM_CT: { cs_set_user_model(id, modelsCT[item]) } case CS_TEAM_T: { cs_set_user_model(id, modelsTT[item]) } } }
Sprawdź. Nie testowałem, kompilować się kompiluje. Co do flag, sprecyzuj. Ma wyświetlać się tylko osobom, które posiadają wszystkie z flag czy którąkolwiek?
Użytkownik K@MILOVVSKY edytował ten post 20.08.2019 17:05
nielot
20.08.2019
#include <amxmodx> #include <amxmisc> #include <cstrike> new const modelsTT[][] = { "models/players/vipstt/smith.mdl", "models/players/vipstt/smoke.mdl", "models/players/vipstt/spider.mdl" }; new const modelsCT[][] = { "models/players/vipsct/neo.mdl", "models/players/vipsct/bat.mdl", "models/players/vipsct/007.mdl" }; new const modelsNamesCT[][] = { "Neo", "Bat man", "007" }; new const modelsNamesTT[][] = { "Agent Smith", "Big Smoke", "Spider man" }; public plugin_precache() { for(new i = 0; i < sizeof modelsCT; i++) precache_model(modelsCT[i]) for(new i = 0; i < sizeof modelsTT; i++) precache_model(modelsTT[i]) } public plugin_init() { register_plugin("Wybor modelu", "v.1", "K@MILOVVSKY") register_clcmd("say /skin", "SkinMenu") } public SkinMenu(id) { new menu = menu_create("Wybierz model postaci", "SkinMenuHandler") switch(cs_get_user_team(id)) { case CS_TEAM_CT: { for(new i = 0; i < sizeof modelsNamesCT; i++) menu_additem(menu, modelsNamesCT[i]); } case CS_TEAM_T: { for(new i = 0; i < sizeof modelsNamesTT; i++) menu_additem(menu, modelsNamesTT[i]); } } menu_display(id, menu); return PLUGIN_HANDLED; } public SkinMenuHandler(id, menu, item) { switch(cs_get_user_team(id)) { case CS_TEAM_CT: { cs_set_user_model(id, modelsCT[item]) } case CS_TEAM_T: { cs_set_user_model(id, modelsTT[item]) } } }Sprawdź. Nie testowałem, kompilować się kompiluje. Co do flag, sprecyzuj. Ma wyświetlać się tylko osobom, które posiadają wszystkie z flag czy którąkolwiek?
Jeżeli ma tą flage co na zdjeciu
Rivit
20.08.2019
1. Agent Smith (models/players/vipstt/smith.mdl)
2. Big Smoke (models/players/vipstt/smoke.mdl)
3. Spider-Man (models/players/vipstt/spider.mdl)
Gdy w ct:
1. Neo (models/players/vipsct/neo.mdl)
2. Bat-Man (models/players/vipsct/bat.mdl)
3. 007 (models/players/vipsct/007.mdl)
Niestety nie da sie tak zrobić.
Ścieżki muszą być np takie:
models/players/007/007.mdl
models/players/bat/bat.mdl
Łap z poprawionymi ścieżkami, dodaną flagą
wonsz żeczny
20.08.2019
#include <amxmodx> #include <amxmisc> #include <cstrike> new const modelsTT[][] = { "models/players/smith/smith.mdl", "models/players/smoke/smoke.mdl", "models/players/spider/spider.mdl" }; new const modelsCT[][] = { "models/players/neo/neo.mdl", "models/players/bat/bat.mdl", "models/players/007/007.mdl" }; new const FmodelsTT[][] = { "smith", "smoke", "spider" }; new const FmodelsCT[][] = { "neo", "bat", "007" }; new const modelsNamesCT[][] = { "Neo", "Bat man", "007" }; new const modelsNamesTT[][] = { "Agent Smith", "Big Smoke", "Spider man" }; public plugin_precache() { for(new i = 0; i < sizeof modelsCT; i++) precache_model(modelsCT[i]) for(new i = 0; i < sizeof modelsTT; i++) precache_model(modelsTT[i]) } public plugin_init() { register_plugin("Wybor modelu", "v.1", "K@MILOVVSKY") register_clcmd("say /skin", "SkinMenu") } public SkinMenu(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_B)){ client_print(id, print_chat, "Zapraszamy do kupna SVIPA"); client_print(id, print_center, "Zapraszamy do kupna SVIPA"); return PLUGIN_HANDLED; } new menu = menu_create("Wybierz model postaci", "SkinMenuHandler") switch(cs_get_user_team(id)) { case CS_TEAM_CT: { for(new i = 0; i < sizeof modelsNamesCT; i++) menu_additem(menu, modelsNamesCT[i]); } case CS_TEAM_T: { for(new i = 0; i < sizeof modelsNamesTT; i++) menu_additem(menu, modelsNamesTT[i]); } } menu_display(id, menu); return PLUGIN_HANDLED; } public SkinMenuHandler(id, menu, item) { switch(cs_get_user_team(id)) { case CS_TEAM_CT: { cs_set_user_model(id, FmodelsCT[item]) } case CS_TEAM_T: { cs_set_user_model(id, FmodelsTT[item]) } } }
Ten kod będzie poprawny.
Takie jest źle:
cs_set_user_model(id, "models/players/smith/smith.mdl")
Takie jest dobrze:
cs_set_user_model(id, "smith")
Aby oszczędzić tyle zmiennych, można by użyć do ustawiania modelu czegoś co pobiera całą ścieżkę np. EF_SetModel(), lecz nigdy tej funkcji nie używałem i nie chcę komuś wrzucać czegoś niesprawdzonego.
Użytkownik wonsz żeczny edytował ten post 20.08.2019 18:08
nielot
20.08.2019
Ej mam bad load skompilował byś mi go ? pls
Pokaż logi
L 08/20/2019 - 19:07:19: -------- Mapchange to cs_estate --------
L 08/20/2019 - 19:07:19: [AMXX] Plugin "skin.amxx" failed to load: Module/Library "cstrike" required for plugin. Check modules.ini.
L 08/20/2019 - 19:07:21: [admin.amxx] Login: ".:Dzidson:.<1><STEAM_ID_LAN><>" became an admin (account "loopback") (access "abcdefghijklmnopqrstu") (address "loopback")
L 08/20/2019 - 19:07:22: [admin.amxx] Login: ".:Dzidson:.<1><STEAM_ID_LAN><>" became an admin (account "loopback") (access "abcdefghijklmnopqrstu") (address "loopback")
L 08/20/2019 - 19:12:37: -------- Mapchange to deathrun_dojo --------
L 08/20/2019 - 19:12:37: [AMXX] Plugin "skin.amxx" failed to load: Module/Library "cstrike" required for plugin. Check modules.ini.
L 08/20/2019 - 19:12:38: [admin.amxx] Login: ".:Dzidson:.<1><STEAM_ID_LAN><>" became an admin (account "loopback") (access "abcdefghijklmnopqrstu") (address "loopback")
L 08/20/2019 - 19:12:39: [admin.amxx] Login: ".:Dzidson:.<1><STEAM_ID_LAN><>" became an admin (account "loopback") (access "abcdefghijklmnopqrstu") (address "loopback")
Rivit
20.08.2019
L 08/20/2019 - 19:12:37: [AMXX] Plugin "skin.amxx" failed to load: Module/Library "cstrike" required for plugin. Check modules.ini.
Nie masz moduły cstrike wgranego. Sprawdź jaką masz wersje amxx poprzez komende 'amxx version', a następnie wejdź tu: https://www.amxmodx.org/ i pobierz paczkę 'counter strike' dla twojej wersji
nielot
20.08.2019
L 08/20/2019 - 19:12:37: [AMXX] Plugin "skin.amxx" failed to load: Module/Library "cstrike" required for plugin. Check modules.ini.
Nie masz moduły cstrike wgranego. Sprawdź jaką masz wersje amxx poprzez komende 'amxx version', a następnie wejdź tu: https://www.amxmodx.org/ i pobierz paczkę 'counter strike' dla twojej wersji
https://www.amxmodx.org/downloads.php
to ?
Rivit
20.08.2019
Tak, jak serwer masz pod linuxem to pobierasz
Zakładam, że masz wersje 1.8.2 AMXX na serwerze