←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Natywy.

Locked

Screeaam...'s Photo Screeaam... 27.05.2010

Witam, jeżeli chcę dodać do swojego przerobionego Diablo natywy to wystarczy zrobić tak:

public plugin_natives()
{
	register_native("db_get_user_level", "native_get_user_level")
}

I zmienić to:

public native_get_user_level(id)
{
	return player_lvl[id]
}

I w pliku diablomod.inc zmienić ?

Dałem przykład z 1 natywem.

Po co to wogóle? xD
Quote

  • +
  • -
R3X's Photo R3X 27.05.2010

jeśli chcesz tak
native_get_user_level(id)
to zarejestruj native z style = 1 (3 parametr)

Natywy służą do udostępniania funkcji do innych pluginów:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Native Test"
#define VERSION "1.0"
#define AUTHOR "R3X"

native db_get_user_level(id);

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /native", "cmdNativeTest");
}
public cmdNativeTest(id){
client_print(id, print_chat, "Twoj level to %d", db_get_user_level(id));
}
Quote

Screeaam...'s Photo Screeaam... 27.05.2010

Ale jeżeli bym chciał dodać te natywy do mojego Diablo, to wystarczy taki sposób jaki podałem?
Quote

  • +
  • -
R3X's Photo R3X 27.05.2010

Jeśli chcesz by funkcja obsługująca natywa (native_get_user_level) miała taki argument jak napisałeś to musisz użyć:
register_native("db_get_user_level", "native_get_user_level", 1)

Jeśli zostawisz puste to wywoływana będzie taka funkcja
public native_get_user_level(plugin, params)
Quote

Screeaam...'s Photo Screeaam... 27.05.2010

Okej dzięki, jeszcze jedno pytanie.

Mam takie coś:

new weapon1 = get_user_weapon(id)
	if (button2 & IN_ATTACK2 && player_class[id]==Hefasto && !(get_user_oldbutton(id) & IN_ATTACK2)){
		if(weapon1 !=CSW_KNIFE && weapon1!= CSW_AWP && weapon1!= CSW_SCOUT && weapon1!= CSW_AUG && weapon1!= CSW_G3SG1 && weapon1!= CSW_SG552){
			if (cs_get_user_zoom(id)==CS_SET_NO_ZOOM) cs_set_user_zoom ( id, CS_SET_AUGSG552_ZOOM, 1 ) 
			else cs_set_user_zoom(id,CS_SET_NO_ZOOM,1)
		}
	}

To przybliżenie z broni. Jak zrobić, że jeżeli ma się np. M4, wcisnę PPM to on pierw założy tłumik, potem znów wcisnę PPM i przybliży?
Edited by Screeaam..., 27.05.2010 23:45.
Quote

  • +
  • -
R3X's Photo R3X 27.05.2010

Kiepski pomysł :/ a jak zdejmiesz tłumik? albo przybliż bez tłumika?
Quote

Screeaam...'s Photo Screeaam... 28.05.2010

Chodzi mi o to.

Mam M4A1, wciskam PPM, on zakłada tłumik, wciskam znów PPM, przybliża, wciskam PPM, zdejmuje tłumik, wciskam PPM oddala. Chyba, że da się zrobić, aby tłumika nie zakładał, w co wątpie (Ma być na PPM)

Czyli dzięki natywom mogę robić osobne pluginy np. Że, jakaś klasa będzie miała jakąś moc?
Quote

  • +
  • -
R3X's Photo R3X 28.05.2010

Można zablokować zakładanie tłumika przy emce

RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_m4a1", "fwSecondaryAttack", 0);

public fwSecondaryAttack(ent){
    return HAM_SUPERCEDE;
}

i zamień warunek
weapon1 !=CSW_KNIFE && weapon1!= CSW_AWP && weapon1!= CSW_SCOUT && weapon1!= CSW_AUG && weapon1!= CSW_G3SG1 && weapon1!= CSW_SG552

na
weapon1 == CSW_M4A1

Z tą klasą to masz rację. Możesz przy używaniu jakiejś mocy z innegu pluginu sprawdzać czy gracz jest np. łowcą
Quote

Screeaam...'s Photo Screeaam... 30.05.2010

A jeżeli chce dać tą funkcję na większą ilość broni? I jak dać tą moc na daną klasę?
Edited by Screeaam..., 30.05.2010 16:03.
Quote
Locked