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

Natyw


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
14 odpowiedzi w tym temacie

#1 mordoryjacz

    Profesjonalista

  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:171
Offline

Napisano 26.05.2022 21:55

Jak zrobic natyw do wlaczania/wylaczania modeli w innym pluginie?

Mam plugin ma modele dla vipa z mozliwoscia wylaczenia/wlaczanie modeli w oddzielnym pluginie i chce zrobic zeby bylo mozna poprzez menu wylaczyc modele (menu mam w silniku serwera)

#include <amxmodx>
#include <cstrike>
#include <engine>
#include <colorchat>

#define FLAGA ADMIN_LEVEL_H

new bool:modele[33];

public plugin_init(){
	register_plugin("Plugin", "0.1", "mucek181")
	register_event("CurWeapon","CurWeapon","be","1=1");
	register_clcmd("say /modele", "m")
}

public client_authorized(id){
	modele[id] = true;
}

public m(id){

	if(!(get_user_flags(id) & FLAGA)){
		ColorChat(id, GREEN, "[DD2]^x01 Nie posiadasz^x03 VIP'a")
		return;
	}
 
	ColorChat(id, GREEN, "^x04Modele:^x03 %s", modele[id] ? "wylaczone" : "wlaczone")
	modele[id] = !modele[id]
}

public plugin_precache(){
		precache_model("models/DD2/v_ak47.mdl");
		precache_model("models/DD2/v_awp.mdl");
		precache_model("models/DD2/v_m4a1.mdl");
		precache_model("models/DD2/v_deagle.mdl");
		precache_model("models/DD2/v_knife.mdl");
		precache_model("models/DD2/v_usp.mdl");
		precache_model("models/DD2/v_glock18.mdl");
		precache_model("models/DD2/v_famas.mdl");
		precache_model("models/DD2/v_galil.mdl");

}

public CurWeapon(id)
{
	if(!is_user_alive(id)){
		return 0
	}

	if(!modele[id]){
		return 0
	}

	new weapon = read_data(2);

	if(weapon == CSW_AK47 && (get_user_flags(id) & FLAGA))
	{
		entity_set_string(id, EV_SZ_viewmodel, "models/DD2/v_ak47.mdl")
	}
	if(weapon == CSW_AWP && (get_user_flags(id) & FLAGA))
	{
		entity_set_string(id, EV_SZ_viewmodel, "models/DD2/v_awp.mdl")
	}
	if(weapon == CSW_M4A1 && (get_user_flags(id) & FLAGA))
	{
		entity_set_string(id, EV_SZ_viewmodel, "models/DD2/v_m4a1.mdl")
	}
	if(weapon == CSW_DEAGLE && (get_user_flags(id) & FLAGA))
	{
		entity_set_string(id, EV_SZ_viewmodel, "models/DD2/v_deagle.mdl")
	}
	if(weapon == CSW_KNIFE && (get_user_flags(id) & FLAGA))
	{
		entity_set_string(id, EV_SZ_viewmodel, "models/DD2/v_knife.mdl")
	}
	if(weapon == CSW_USP && (get_user_flags(id) & FLAGA))
	{
		entity_set_string(id, EV_SZ_viewmodel, "models/DD2/v_usp.mdl")
	}
	if(weapon == CSW_GLOCK18 && (get_user_flags(id) & FLAGA))
	{
		entity_set_string(id, EV_SZ_viewmodel, "models/DD2/v_glock18.mdl")
	}
	if(weapon == CSW_FAMAS && (get_user_flags(id) & FLAGA))
	{
		entity_set_string(id, EV_SZ_viewmodel, "models/DD2/v_famas.mdl")
	}	
	if(weapon == CSW_GALIL && (get_user_flags(id) & FLAGA))
	{
		entity_set_string(id, EV_SZ_viewmodel, "models/DD2/v_galil.mdl")
	}
}

  • +
  • -
  • 0

#2 PANDA_2zl

    Guru

  • Power User

Reputacja: 177
Profesjonalista

  • Postów:722
  • Imię:Michał
  • Lokalizacja:Kraków
Offline

Napisano 27.05.2022 06:49

https://amxx.pl/topic/20034-natywy/

https://amxx.pl/topic/28693-forwardy/

Do menu najprościej dodać wywołanie say /modele

Ale nie działa to na nonsteam, ale forwardem już da rade

Użytkownik SezonowyGracz edytował ten post 27.05.2022 07:07

  • +
  • -
  • 0

#3 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 27.05.2022 08:58

public _model_status(id) modele[id] != modele[id];


  • +
  • -
  • 0

#4 mordoryjacz

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:171
Offline

Napisano 27.05.2022 09:00

https://amxx.pl/topic/20034-natywy/

https://amxx.pl/topic/28693-forwardy/

Do menu najprościej dodać wywołanie say /modele

Ale nie działa to na nonsteam, ale forwardem już da rade

Wiem ze moge zrobic to zeby wywolywalo komende ale chce zrobic w menu cos takiego 

 

formatex(text, 511, "\wModele: %s", modele[id] ? "Wlaczone" : "Wylaczone");


  • +
  • -
  • 0

#5 mordoryjacz

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:171
Offline

Napisano 27.05.2022 09:02

public _model_status(id) modele[id] != modele[id];

Dodaje to do tego pluginu z modelami i robie natyw do tego publica i bedzie dzialac?


  • +
  • -
  • 0

#6 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 27.05.2022 09:04

 

public _model_status(id) modele[id] != modele[id];

Dodaje to do tego pluginu z modelami i robie natyw do tego publica i bedzie dzialac?

 

Dokladnie tak


  • +
  • -
  • 1

#7 PANDA_2zl

    Guru

  • Power User

Reputacja: 177
Profesjonalista

  • Postów:722
  • Imię:Michał
  • Lokalizacja:Kraków
Offline

Napisano 27.05.2022 10:12

Tu masz tylko natyw sprawdzający czy włączone czy nie, żeby wyłączać musisz zrobić forward do public m

A no i masz błąd, mówisz że skiny dla vipa, przy wyłączaniu sprawdza flagę ale przy autoryzacji nie więc każdy ma skiny

Użytkownik SezonowyGracz edytował ten post 27.05.2022 10:18

  • +
  • -
  • 0

#8 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

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

Napisano 27.05.2022 16:04

Tu masz tylko natyw sprawdzający czy włączone czy nie, żeby wyłączać musisz zrobić forward do public m

A no i masz błąd, mówisz że skiny dla vipa, przy wyłączaniu sprawdza flagę ale przy autoryzacji nie więc każdy ma skiny

Jaki forward??

 

Zrób tak w silniku:

public plugin_natives()
{
	register_native("get_user_status_models", "_zwroc_status_modeli_gracza", 1);
	register_native("set_user_status_models", "_ustaw_status_modeli_gracza", 1);
}

public bool:_zwroc_status_modeli_gracza(index)
	return modele[index] ? true : false;

public _ustaw_status_modeli_gracza(index, bool:wartosc)
{
	modele[index]=wartosc;
	return 1;
} 

A tu przykładowy plugin pisany na szybko (i nie testowany) dla objaśnienia działania:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

native get_user_status_models(index);
native set_user_status_models(index, bool:wartosc);

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /menu", "MenuModeli");
}

public MenuModeli(id)
{
	new menu = menu_create("Menu Modeli", "_MenuModeli");
	
	new nazwa[64];
	formatex(nazwa, charsmax(nazwa), "Modele: %s", get_user_status_models(id) ? "\yWlaczone" : "\rWylaczone");
	
	menu_additem(menu, nazwa);
	
	menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
	menu_display(id, menu);
	
	return PLUGIN_CONTINUE;
} 

public _MenuModeli(id, menu ,item)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;
		
	if(item == MENU_EXIT)
	{		
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	if(get_user_status_models(id))
		set_user_status_models(id, false); // Mam włączone modele wiec je teraz wyłączam
	else
		set_user_status_models(id, true); // A teraz włączam

	client_print(id, print_chat, "Modele: %s", get_user_status_models(id) ? "Wlaczone" : "Wylaczone");
	menu_destroy(menu);
	return PLUGIN_CONTINUE;
}

  • +
  • -
  • 1

#9 PANDA_2zl

    Guru

  • Power User

Reputacja: 177
Profesjonalista

  • Postów:722
  • Imię:Michał
  • Lokalizacja:Kraków
Offline

Napisano 27.05.2022 16:28

Faktycznie pojęcia pomyliłem haha

ładniej byloby dac w CurWeapon na początku

if(!(get_user_flags(id) & FLAGA)){
	return 0
}

a wyrzucic z reszty warunków


  • +
  • -
  • 0

#10 mordoryjacz

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:171
Offline

Napisano 27.05.2022 20:12

 

Tu masz tylko natyw sprawdzający czy włączone czy nie, żeby wyłączać musisz zrobić forward do public m

A no i masz błąd, mówisz że skiny dla vipa, przy wyłączaniu sprawdza flagę ale przy autoryzacji nie więc każdy ma skiny

Jaki forward??

 

Zrób tak w silniku:

public plugin_natives()
{
	register_native("get_user_status_models", "_zwroc_status_modeli_gracza", 1);
	register_native("set_user_status_models", "_ustaw_status_modeli_gracza", 1);
}

public bool:_zwroc_status_modeli_gracza(index)
	return modele[index] ? true : false;

public _ustaw_status_modeli_gracza(index, bool:wartosc)
{
	modele[index]=wartosc;
	return 1;
} 

A tu przykładowy plugin pisany na szybko (i nie testowany) dla objaśnienia działania:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

native get_user_status_models(index);
native set_user_status_models(index, bool:wartosc);

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /menu", "MenuModeli");
}

public MenuModeli(id)
{
	new menu = menu_create("Menu Modeli", "_MenuModeli");
	
	new nazwa[64];
	formatex(nazwa, charsmax(nazwa), "Modele: %s", get_user_status_models(id) ? "\yWlaczone" : "\rWylaczone");
	
	menu_additem(menu, nazwa);
	
	menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
	menu_display(id, menu);
	
	return PLUGIN_CONTINUE;
} 

public _MenuModeli(id, menu ,item)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;
		
	if(item == MENU_EXIT)
	{		
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	if(get_user_status_models(id))
		set_user_status_models(id, false); // Mam włączone modele wiec je teraz wyłączam
	else
		set_user_status_models(id, true); // A teraz włączam

	client_print(id, print_chat, "Modele: %s", get_user_status_models(id) ? "Wlaczone" : "Wylaczone");
	menu_destroy(menu);
	return PLUGIN_CONTINUE;
}

oto mi wlasnie chodzilo dzięki


  • +
  • -
  • 0

#11 mordoryjacz

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:171
Offline

Napisano 27.05.2022 20:25

A jak zrobic teraz ze gdy trzymam np ak-47 w reku i wylacze modele to zeby od razu sie tez sie wylaczyl model broni a nie dopiero kiedy zmienie na inna bron i znowu dam na ak 47 


  • +
  • -
  • 0

#12 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 27.05.2022 20:44

do kodu, gdzie masz menu z modelamia dodaj gdzies na koncu to: 

stock cs_reset_user_weapon(iPlayer)
{
	#define XO_PLAYER  5
	#define m_pActiveItem    373
	new iWeapon = get_pdata_cbase(iPlayer, m_pActiveItem, XO_PLAYER);
	if(pev_valid(iWeapon))
		ExecuteHamB(Ham_Item_Deploy, iWeapon);
}

i potem zamien to:

public m(id){

	if(!(get_user_flags(id) & FLAGA)){
		ColorChat(id, GREEN, "[DD2]^x01 Nie posiadasz^x03 VIP'a")
		return;
	}
 
	ColorChat(id, GREEN, "^x04Modele:^x03 %s", modele[id] ? "wylaczone" : "wlaczone")
	modele[id] = !modele[id]
}

 na to:

public m(id){

	if(!(get_user_flags(id) & FLAGA)){
		ColorChat(id, GREEN, "[DD2]^x01 Nie posiadasz^x03 VIP'a")
		return;
	}
 
	ColorChat(id, GREEN, "^x04Modele:^x03 %s", modele[id] ? "wylaczone" : "wlaczone")
	modele[id] = !modele[id]
	cs_reset_user_weapon(id)
}

  • +
  • -
  • 1

#13 mordoryjacz

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:171
Offline

Napisano 27.05.2022 21:12

 

do kodu, gdzie masz menu z modelamia dodaj gdzies na koncu to: 

stock cs_reset_user_weapon(iPlayer)
{
	#define XO_PLAYER  5
	#define m_pActiveItem    373
	new iWeapon = get_pdata_cbase(iPlayer, m_pActiveItem, XO_PLAYER);
	if(pev_valid(iWeapon))
		ExecuteHamB(Ham_Item_Deploy, iWeapon);
}

i potem zamien to:

public m(id){

	if(!(get_user_flags(id) & FLAGA)){
		ColorChat(id, GREEN, "[DD2]^x01 Nie posiadasz^x03 VIP'a")
		return;
	}
 
	ColorChat(id, GREEN, "^x04Modele:^x03 %s", modele[id] ? "wylaczone" : "wlaczone")
	modele[id] = !modele[id]
}

 na to:

public m(id){

	if(!(get_user_flags(id) & FLAGA)){
		ColorChat(id, GREEN, "[DD2]^x01 Nie posiadasz^x03 VIP'a")
		return;
	}
 
	ColorChat(id, GREEN, "^x04Modele:^x03 %s", modele[id] ? "wylaczone" : "wlaczone")
	modele[id] = !modele[id]
	cs_reset_user_weapon(id)
}

No i gitara wszystko dziala jak powinno jeszcze raz dzięki :) 


  • +
  • -
  • 0

#14 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 28.05.2022 12:01

 

Tu masz tylko natyw sprawdzający czy włączone czy nie, żeby wyłączać musisz zrobić forward do public m

A no i masz błąd, mówisz że skiny dla vipa, przy wyłączaniu sprawdza flagę ale przy autoryzacji nie więc każdy ma skiny

Jaki forward??

 

Zrób tak w silniku:

public plugin_natives()
{
	register_native("get_user_status_models", "_zwroc_status_modeli_gracza", 1);
	register_native("set_user_status_models", "_ustaw_status_modeli_gracza", 1);
}

public bool:_zwroc_status_modeli_gracza(index)
	return modele[index] ? true : false;

public _ustaw_status_modeli_gracza(index, bool:wartosc)
{
	modele[index]=wartosc;
	return 1;
} 

A tu przykładowy plugin pisany na szybko (i nie testowany) dla objaśnienia działania:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

native get_user_status_models(index);
native set_user_status_models(index, bool:wartosc);

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /menu", "MenuModeli");
}

public MenuModeli(id)
{
	new menu = menu_create("Menu Modeli", "_MenuModeli");
	
	new nazwa[64];
	formatex(nazwa, charsmax(nazwa), "Modele: %s", get_user_status_models(id) ? "\yWlaczone" : "\rWylaczone");
	
	menu_additem(menu, nazwa);
	
	menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
	menu_display(id, menu);
	
	return PLUGIN_CONTINUE;
} 

public _MenuModeli(id, menu ,item)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;
		
	if(item == MENU_EXIT)
	{		
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	if(get_user_status_models(id))
		set_user_status_models(id, false); // Mam włączone modele wiec je teraz wyłączam
	else
		set_user_status_models(id, true); // A teraz włączam

	client_print(id, print_chat, "Modele: %s", get_user_status_models(id) ? "Wlaczone" : "Wylaczone");
	menu_destroy(menu);
	return PLUGIN_CONTINUE;
}

 

Po co se zycie utrudniasz  i przedluzasz id na index


  • +
  • -
  • 0

#15 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

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

Napisano 28.05.2022 16:22

 

 

Tu masz tylko natyw sprawdzający czy włączone czy nie, żeby wyłączać musisz zrobić forward do public m

A no i masz błąd, mówisz że skiny dla vipa, przy wyłączaniu sprawdza flagę ale przy autoryzacji nie więc każdy ma skiny

Jaki forward??

 

Zrób tak w silniku:

public plugin_natives()
{
	register_native("get_user_status_models", "_zwroc_status_modeli_gracza", 1);
	register_native("set_user_status_models", "_ustaw_status_modeli_gracza", 1);
}

public bool:_zwroc_status_modeli_gracza(index)
	return modele[index] ? true : false;

public _ustaw_status_modeli_gracza(index, bool:wartosc)
{
	modele[index]=wartosc;
	return 1;
} 

A tu przykładowy plugin pisany na szybko (i nie testowany) dla objaśnienia działania:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

native get_user_status_models(index);
native set_user_status_models(index, bool:wartosc);

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /menu", "MenuModeli");
}

public MenuModeli(id)
{
	new menu = menu_create("Menu Modeli", "_MenuModeli");
	
	new nazwa[64];
	formatex(nazwa, charsmax(nazwa), "Modele: %s", get_user_status_models(id) ? "\yWlaczone" : "\rWylaczone");
	
	menu_additem(menu, nazwa);
	
	menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
	menu_display(id, menu);
	
	return PLUGIN_CONTINUE;
} 

public _MenuModeli(id, menu ,item)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;
		
	if(item == MENU_EXIT)
	{		
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	if(get_user_status_models(id))
		set_user_status_models(id, false); // Mam włączone modele wiec je teraz wyłączam
	else
		set_user_status_models(id, true); // A teraz włączam

	client_print(id, print_chat, "Modele: %s", get_user_status_models(id) ? "Wlaczone" : "Wylaczone");
	menu_destroy(menu);
	return PLUGIN_CONTINUE;
}

 

Po co se zycie utrudniasz  i przedluzasz id na index

 

Miałem nie odpisywać bo nic ten post nie wniesie do tego tematu ale co tam lubię życie na krawędzi. Odpowiedź to: lubię mieć w życiu pod górkę.


  • +
  • -
  • 2




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

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