Tak jak w temacie. Jak to naprawić?
Dodam że w plugin_init()
Dodałem opcje:
Użytkownik Black004 edytował ten post 03.03.2019 10:42
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Napisano 03.03.2019 10:39
Tak jak w temacie. Jak to naprawić?
Dodam że w plugin_init()
Dodałem opcje:
Użytkownik Black004 edytował ten post 03.03.2019 10:42
Napisano 04.03.2019 16:55
Napisano 04.03.2019 17:50
Co naprawić? Dajesz nam 0 info, a oczekujesz, że Ci ktoś pomoże...
Napisano 06.03.2019 18:55
Chciałbym zrobić sklep skinów za pieniądze, ale nie podmienia tych skinów. Mianowicie po wpisaniu komendy /1234 Otwiera się "public wyborskinKNIVE(id)"
Po wybraniu skina z menu on się nie podmienia z tym domyślnym skinem noża w cs.
" if(!sprawdz(id, 5)) return PLUGIN_HANDLED; " To sprawdza czy gracz ma określona ilość monet za skina.
Napisano 06.03.2019 19:32
new weapon = read_data(2);
read_data mozesz uzywac w eventach.
handler od menu to nie jest event..
zeby pobrac bron gracza uzyj: https://amxx.pl/doku...get-user-weapon
Napisano 06.03.2019 21:45
Teraz mam problem taki. Kiedy chce wybrać Bayonet lore. Nie podmienia mi tego skina, a karambita już tak. I do tego kiedy mam karambita i jak zmienię broń np. na glocka i znowu wezme kose to ten skin znika.
Napisano 06.03.2019 21:57
Kod dawaj jako załącznik, bądź wstawke w odpowiednich tagach w poście (jesli kod nie jest przydługawy)
Co do tematu.
Musisz sobie zrobić zmienną, która Ci trzyma info o tym jaki skin ma gracz. I wtedy w curweapon robisz switcha z read_data i podmieniasz model. Ewentualnie możesz skorzystać z lepszej metody, którą wstawiam do tego posta. Mój kod podmienia modele, ale ideę powinieneś załapać.
#include <amxmodx>
#include <cstrike>
#include fakemeta
#include hamsandwich
#define m_pPlayer 41
public plugin_init()
{
register_plugin("Modele", "1.0", "riviT")
RegisterHam(Ham_Item_Deploy, "weapon_ak47", "fwHamItemDeployPost", 1)
RegisterHam(Ham_Item_Deploy, "weapon_m4a1", "fwHamItemDeployPost", 1)
RegisterHam(Ham_Item_Deploy, "weapon_awp", "fwHamItemDeployPost", 1)
}
public plugin_precache()
{
precache_model("models/vip/v_ak47vip.mdl");
precache_model("models/vip/v_m4a1vip2.mdl");
precache_model("models/vip/v_awp.mdl");
}
public fwHamItemDeployPost(ent)
{
static id;
id = get_pdata_cbase(ent, m_pPlayer, 4);
if(!is_user_alive(id)) return;
if(get_user_flags(id) & ADMIN_LEVEL_H){ //vip
switch(cs_get_weapon_id(ent))
{
case CSW_M4A1: set_pev(id, pev_viewmodel2, "models/vip/v_m4a1vip2.mdl")
case CSW_AK47: set_pev(id, pev_viewmodel2, "models/vip/v_ak47vip.mdl")
case CSW_AWP: set_pev(id, pev_viewmodel2, "models/vip/v_awp.mdl")
}
}else{ //zwykly gracz
switch(cs_get_weapon_id(ent))
{
case CSW_M4A1: set_pev(id, pev_viewmodel2, "models/vip/v_m4a1vip2.mdl")
case CSW_AK47: set_pev(id, pev_viewmodel2, "models/vip/v_ak47vip.mdl")
case CSW_AWP: set_pev(id, pev_viewmodel2, "models/vip/v_awp.mdl")
}
}
}
Napisano 07.03.2019 18:14
Coś takiego?
Napisano 08.03.2019 16:01
Napisano 09.03.2019 08:18
@Ref...
Napisano 09.03.2019 23:48
Dobra dałem sobie rade z modelami... Mógłby ktoś powiedzieć jak ustawić żeby gracz płacił za ten model chodzi mi tylko gdzie to wstawić:
if(!sprawdz(id, <tutaj ma być cena za skin>)) return PLUGIN_HANDLED;
Próbowałem zrobić to tak:
new const noz_cena[][32]=
{
"0",
"1",
"1"
};
I tu by były ceny za noże i poźniej zrobić tak:
for(new i = 0; i<sizeof noz_cena; i++){
if(!sprawdz(id, noz_cena[i])) return PLUGIN_HANDLED;
Ale jest błąd podczas kompilacji właśnie w tym:
Argument type mismatch (argument 2)
Użytkownik Black004 edytował ten post 09.03.2019 23:51
Napisano 10.03.2019 01:50
Napisano 10.03.2019 08:48
Pokaż tą funkcje Sprawdz
public sprawdz(id,jbpack){
if (ilosc_jbpack[id] >= jbpack){
ilosc_jbpack[id] -= jbpack
return true;
}
if(ilosc_jbpack[id] < jbpack)
{
ColorChat(id, RED, "NIE MASZ TYLE DOLARÓW ABY TO KUPIĆ!");
return false;
}
return PLUGIN_CONTINUE;
}
Napisano 10.03.2019 16:25
new const noz_cena[]=
{
0,
1,
1
};
Napisano 10.03.2019 16:56
Teraz się powielają opcje z menu tak:

I gdzie powinna być cena jest jak widać "T$models/v_knife.mdl"
Kod:
public SkinKNIVE(id)
{
{
new skin[64]
new menu = menu_create("\wWybierz nóż","handle_menuKNIVE")
for(new i = 0; i<sizeof noz_skin; i++)
for(new i = 0; i<sizeof noz_cena; i++)
{
formatex(skin, charsmax(skin), "%s%s \w| Cena: \w%s", (zmiana1[id]==i) ? "\r":"\y", noz_skin[i], noz_cena[i]);
menu_additem(menu, skin);
}
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_display(id,menu,0)
return PLUGIN_HANDLED;
}
}
public handle_menuKNIVE(id, menu, item){
if (item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_HANDLED;
}
for(new i = 0; i<sizeof noz_cena; i++){
if(!sprawdz(id, noz_cena[i])) return PLUGIN_HANDLED;
}
zmiana1[id] = item;
menu_destroy(menu);
return PLUGIN_HANDLED;
}
Użytkownik Black004 edytował ten post 10.03.2019 16:58
Napisano 10.03.2019 17:21
Cena: \w%s
->
Cena: \w%i
Bo cena nie jest juz stringiem a intem
Napisano 10.03.2019 17:45
Cena: \w%s->
Cena: \w%iBo cena nie jest juz stringiem a intem
Dzięki, działa. Natomiast dalej powiela się menu chodzi mi o to że ciągle się wyświetla to samo co w poprzednim poście, ale ceny już działą
A powiesz jeszcze jak zrobić informacje pomyślnie kupiłeś <tutaj nazwa skina>, lub kiedy gracz już go miał to Pomyślnie założyłeś <nazwa skina>
Użytkownik Black004 edytował ten post 10.03.2019 17:47
Napisano 10.03.2019 19:19
masz dwie pętle, są zbedne, wystarczy jedna
for(new i = 0; i<sizeof noz_skin; i++) for(new i = 0; i<sizeof noz_cena; i++)
->
for(new i = 0; i<sizeof noz_skin; i++)
+poformatuj sobie ładnie kod, bo bolą oczy jak się patrzy na niego
Napisano 13.03.2019 11:03
masz dwie pętle, są zbedne, wystarczy jedna
for(new i = 0; i<sizeof noz_skin; i++) for(new i = 0; i<sizeof noz_cena; i++)->
for(new i = 0; i<sizeof noz_skin; i++)+poformatuj sobie ładnie kod, bo bolą oczy jak się patrzy na niego
Dzięki, działa.
Skapnąłem się teraz że podczas kupowania skina potrzeba tyle kasy ile jest w tym:
new const noz_cena[]=
{
0,
11,
2
};
Czyli jak wybiorę obojętnie jaki chce skin do kosy to i tak potrzeba 0+11+2 i to będzie 13. Ale zabiera nam tyle ile wynosi cena skina jakiego wybierzemy, ale za to żeby go kupić potrzebujemy 13 powiedzmy na to dolarów. A jak nie mamy tych 13 dolarów to plugin nam go w ogóle nie da jak to naprawić? Dam tu kawałek kodu pewnie tu jest błąd.
for(new i = 0; i<sizeof noz_cena; i++){
if(!sprawdz(id, noz_cena[i])) return PLUGIN_HANDLED;
Jakby co zmienna która pobiera jaki skin wybraliśmy to zmiana1[id]
Napisano 13.03.2019 11:09
Jeżeli to ten public po wybraniu skina to zamień na to:
public handle_menuKNIVE(id, menu, item)
{
if (item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_HANDLED;
}
if(!sprawdz(id, noz_cena[item])){
client_print(id, print_chat, "Nie stac cie na tego skina.");
return PLUGIN_HANDLED;
}
client_print(id, print_chat, "Kupiles skin: %s", noz_skin[item]);
zmiana1[id] = item;
menu_destroy(menu);
return PLUGIN_HANDLED;
}
Powinno pokazać też nazwę wybranego/kupionego skina.
0 użytkowników, 1 gości, 0 anonimowych