Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] Nie podmienia modelu broni.


  • Zamknięty Temat jest zamknięty
59 odpowiedzi w tym temacie

#1 Black004

    Wszechpomocny

  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 03.03.2019 10:39

Tak jak w temacie. Jak to naprawić?

 

 

Dodam że w plugin_init()

 

Dodałem opcje:

Spoiler

Użytkownik Black004 edytował ten post 03.03.2019 10:42

  • +
  • -
  • 0

#2 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 04.03.2019 16:55

@Ref
  • +
  • -
  • 0

#3 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 04.03.2019 17:50

Co naprawić? Dajesz nam 0 info, a oczekujesz, że Ci ktoś pomoże...


  • +
  • -
  • 1

#4 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

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.


  • +
  • -
  • 0

#5 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

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


  • +
  • -
  • 1

#6 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

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.

 

http://wklejto.pl/719607


  • +
  • -
  • 0

#7 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

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")
		}
	}

}
	


  • +
  • -
  • 1

#8 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 07.03.2019 18:14

Coś takiego? 

 

Spoiler
W plugin init dodałem 
Spoiler
 
I zrobilem zmienną:
Spoiler
 
Pewnie coś źle zrobiłem, ponieważ nie działa w ogóle dawania skina :/

  • +
  • -
  • 0

#9 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 08.03.2019 16:01

@Ref
  • +
  • -
  • 0

#10 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 09.03.2019 08:18

@Ref...


  • +
  • -
  • 0

#11 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

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

  • +
  • -
  • 0

#12 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 10.03.2019 01:50

Pokaż tą funkcje Sprawdz
  • +
  • -
  • 0

#13 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

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;
}

  • +
  • -
  • 0

#14 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 10.03.2019 16:25

Parametry to liczby a Ty próbujesz stringa/tablice ( ciąg znaków )
Skoro ceny to po prostu jakoś wartość zamien stringi na liczby tzn.

new const noz_cena[]=
{
	0,
	1,
	1
	
};

  • +
  • -
  • 1

#15 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 10.03.2019 16:56

Teraz się powielają opcje z menu tak:

 

a3b448edf7343e0edbe27d279c307cf5_orig.jp

 

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

  • +
  • -
  • 0

#16 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 10.03.2019 17:21

Cena: \w%s

->

Cena: \w%i

Bo cena nie jest juz stringiem a intem


  • +
  • -
  • 1

#17 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 10.03.2019 17:45

Cena: \w%s

->

Cena: \w%i

Bo 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

  • +
  • -
  • 0

#18 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

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


  • +
  • -
  • 1

#19 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

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]


  • +
  • -
  • 0

#20 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

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.


  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych