Pytanie dotyczące sklepu
NAVIK
20.10.2016
Witaj jak stworzyć kupno modelu w sklepie . Piszę tu poniewaz nie mogę znaleźć pomocy w dokumentacji
mam następujący kod
case 0: { if(kasa >= 10) { cod_set_user_coins(id, kasa-10); cs_set_user_model( index, "v_blackwhite.mdl"); client_print(id, print_chat, "[COD:MW] Kupiles Skina!"); } else client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!"); }
Lecz ta funkcja mi nie działa jaka funkcja odpwieda za zmiane modela broni?
NEQU#
20.10.2016
case 0: { if(kasa >= 10) { cod_set_user_coins(id, kasa-10); cs_set_user_model( index, "v_blackwhite.mdl"); client_print(id, print_chat, "[COD:MW] Kupiles Skina!"); } else client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!"); }
zamień na
case 0: { if(kasa >= 10 && !kupil_skina[id]) { cod_set_user_coins(id, kasa-10); kupil_skina[id] = true podmianaskina(id) client_print(id, print_chat, "[COD:MW] Kupiles Skina!"); } else client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!"); }
i gdzieś na dole dodaj
public podmianaskina(id) { if(kupil_skina[id]) { cs_set_user_model( index, "v_blackwhite.mdl"); } }
Nie wiem czy zadziała, ale może chociaż pomoże Ci to rozwiązać twój problem.
Użytkownik NEQU# edytował ten post 20.10.2016 14:04
NAVIK
20.10.2016
Nie jestem w tym dobry, ale zakładam że musisz stworzyć funkcję bool, np.pod includami dodajnew bool:kupil_skina[33]case 0: { if(kasa >= 10) { cod_set_user_coins(id, kasa-10); cs_set_user_model( index, "v_blackwhite.mdl"); client_print(id, print_chat, "[COD:MW] Kupiles Skina!"); } else client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!"); }zamień na
case 0: { if(kasa >= 10 && !kupil_skina[id]) { cod_set_user_coins(id, kasa-10); kupil_skina[id] = true podmianaskina(id) client_print(id, print_chat, "[COD:MW] Kupiles Skina!"); } else client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!"); }i gdzieś na dole dodaj
public podmianaskina(id) { if(kupil_skina[id]) { cs_set_user_model( index, "v_blackwhite.mdl"); } }Nie wiem czy zadziała, ale może chociaż pomoże Ci to rozwiązać twój problem.
Niestety nie trybi
RomanHardcor
20.10.2016
Ty chcesz zmienić model broni czy postaci?
Bo jeśli postaci to natyw dobry ale źle użyty.
Np jeśli model postaci ma nazwę model321 to musi on być umieszczony w /models/player/model321/model321.mdl
Ale używamy to wtedy już tak cs_set_user_model(id, "model321"); ponieważ już jakby to powiedzieć... Samo ustala ścieżkę od /models/player/nazwamodelu/nazwamodelu.mdl
I nie piszemy w tym natywie końcówki .mdl
Natomiast jeśli mówimy o modelu broni robimy to np ja sobie tak zrobiłem w vipie.
Ten kod umieściłem sobie na samej górze a niżej wytłumaczę Ci jak poprawnie zrobić by zmieniało.
Oczywiście możesz sobie ścieżkę od razu do kodu wprowadzić
new const MDL_P_LOM[] = "models/vip/p_lom.mdl"; new const MDL_V_LOM[] = "models/vip/v_lom.mdl";
entity_set_string(id, EV_SZ_viewmodel, MDL_V_LOM); // Odpowiada za zmiane modelu widzianego z 1 osoby entity_set_string(id, EV_SZ_weaponmodel, MDL_P_LOM); // Odpowiada za zmiane modelu widzianego z 3 osoby
Niby mógłbyś umieścić owy kod w swoim sklepie ale nie do końca będzie działać bo jeśli ktoś zmieni broń i z powrotem na tą broń gdzie ma być zmieniony model to będzie podstawowy model ustawiony.
A więc robimy tak, dopisujesz ten kod w funkcji plugin_init
register_event("CurWeapon", "event_modele", "be", "1=1") //Ten event wychwytuje moment zmiany broni
I tworzysz sobie funkcje event_modele może się u Ciebie nazywać inaczej to tylko przykład.
Załóżmy że mam na górze stworzoną zmienną stałą czyli coś takiego.
new const MDL_P_M4A1[] = "models/Blantever/p_m4.mdl"; new const MDL_V_M4A1[] = "models/Blantever/v_m4.mdl";
A w funkcji event_modele robimy coś takiego.
public event_modele(id) { if(get_user_weapon(id) == CSW_M4A1 && ma_m4[id]) { entity_set_string(id, EV_SZ_viewmodel, MDL_V_LOM); entity_set_string(id, EV_SZ_weaponmodel, MDL_P_LOM); } }
Ten warunek oznacza, że wykona się funkcja niżej jeśli ma określoną broń i zmienna jest ustawiona na true a więc na górze pod bibliotekami dodajemy także zmienną.
new bool: ma_m4[33];
Oczywiście możesz sobie zmienić model innej broni, tutaj masz nazwy broni do warunku get_user_weapon oczywiście chodzi o te z przedrostkiem CSW_ czyli w kolumnie "name".
https://amxx.pl/topi...ive-item-speed/
Powodzenia, starałem się wytłumaczyć najlepiej jak umiem
//EDIT
A i zapomniałem o najważniejszym, w case dajesz taki kod np jeśli zmienna nazywa się ma_m4.
ma_m4[id] = true;
Przykładowe użycie w pluginie zmiany modelu, np tutaj jest, że sprawdza na początku rundy kto ma 6 fragów lub więcej i ustawia wtedy zmienną na true czyli na 1.
przyklad2.sma 742 bajtów
27 Ilość pobrań
Użytkownik RomanHardcor edytował ten post 20.10.2016 15:36
NAVIK
20.10.2016
Nakierowałeś mnie aczkolwiek stoje znów mam taki kod
#include <amxmodx> #include <amxmisc> #include <engine> #include <cstrike> #include <engine> new gSoundShop[] = "cod/witajsklep.wav"; new bool:ma_m4[33]; new const MDL_P_M4A1[] = "models/Blantever/p_m4.mdl"; new const MDL_V_M4A1[] = "models/Blantever/v_m4.mdl"; native cod_set_user_coins(id, wartosc); native cod_get_user_coins(id); public plugin_init() { register_clcmd("say /sklep", "cmd_menu"); register_clcmd("say sklep", "cmd_menu"); register_clcmd("say /shop", "cmd_menu"); register_plugin("model", "1.0", "RomanHardcor"); register_event("CurWeapon", "event_modele", "be", "1=1") } public cmd_menu(id) { client_cmd(id,"spk %s",gSoundShop); if(is_user_alive(id)) { menu_l1(id); } else { ColorChat(id, RED, "[INFO] Aby uzywac /sklepu musisz byc zywy!"); } return PLUGIN_HANDLED; } stock menu_l1(id) { new menu = menu_create("SKLEP By NiXeL", "menu_m4a1a"); menu_additem(menu, "\r[M4A1] \ySkin do broni");//1 menu_display(id, menu); client_cmd(id, "spk MUZYKA"); } public menu_m4a1a(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return; } switch(item) { case 0: { if(is_user_alive(id)) menu_m4a1(id); } } menu_destroy(menu); } stock menu_m4a1(id) { new menu = menu_create("[M4A1] Skin do broni:", "menu_l2q_a"); menu_additem(menu, "DragonKing \yKoszt: \r[10m]");//1 menu_display(id, menu); } public event_modele(id) { if(!is_user_alive(id) || !is_user_connected(id)) return PLUGIN_CONTINUE; new kasa = cod_get_user_coins(id) case 0: { if(kasa >= 15) { cod_set_user_coins(id, kasa-15); if(get_user_weapon(id) == CSW_M4A1 && ma_m4[id]) { entity_set_string(id, EV_SZ_viewmodel, MDL_V_M4A1); entity_set_string(id, EV_SZ_weaponmodel, MDL_P_M4A1); } client_print(id, print_chat, "[COD:MW] Kupiles skin!"); } else client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo monet!"); }
błąd przy kompilacji przy linijce public event_modele(id)
RomanHardcor
20.10.2016
Powiem Ci szczerze, że nie zbyt ogarniam ten kod bo pełno stocków ale zaraz Ci zrobię taki przykładowy sklep i zaraz edytuję posta i Ci pokaże jak to ma wyglądać.
A coś Ty odwalił w event_modele to ja nie wiem
Miałeś dać w case menu z modelami a kod event_modele nie ruszać dosłownie chyba że po to by zmienić broń gdzie ma się model zmienić.
Więc tak jak mówię, lookaj tutaj bo edytuje ten post
RomanHardcor
20.10.2016
Przepraszam za post pod postem lecz nie mogę już edytować poprzedniego choć dużo czasu nie minęło.
Sprawdź to, pisane na szybko więc mogą się wkraść drobne błędy ale myślę że ogarniesz o co chodzi bo trochę źle żeś zrobił według tego mojego "poradnika".
Jak nie będziesz ogarniał to pisz a ja tymczasem idę do sklepu to odczytam jak wrócę
przyklad2.sma 2,09 KB
20 Ilość pobrań