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
 

Vanilla - zdjęcie

Vanilla

Rejestracja: 02.01.2021
Aktualnie: Nieaktywny
Poza forum Ostatnio: 29.03.2021 10:39
-----

Moje tematy

[ROZWIĄZANE] Problem z kompilacją pluginu na menu

16.03.2021 22:31

Witam, mam problem z  kompilacją pluginu na /menu. Moglby ktos pomoc rozwiazac te bledy? :)

Oto bledy pojawiajace sie w kompilatorze:

//// JailMenu_noFear.sma
// C:\Users\User\Desktop\compiler\JailMenu.sma(148) : warning 217: loose indentation
// C:\Users\User\Desktop\compiler\JailMenu.sma(198) : warning 209: function "Handel_Menu" should return a value
// C:\Users\User\Desktop\compiler\JailMenu.sma(212) : warning 209: function "Handel_Menu" should return a value
// C:\Users\User\Desktop\compiler\JailMenu.sma(220) : warning 209: function "Handel_Menu" should return a value
// C:\Users\User\Desktop\compiler\JailMenu.sma(223) : warning 209: function "Handel_Menu" should return a value
// C:\Users\User\Desktop\compiler\JailMenu.sma(229) : warning 209: function "Handel_Menu" should return a value
// C:\Users\User\Desktop\compiler\JailMenu.sma(277) : warning 217: loose indentation
// C:\Users\User\Desktop\compiler\JailMenu.sma(277) : error 078: function uses both "return" and "return <value>"
// C:\Users\User\Desktop\compiler\JailMenu.sma(281) : warning 209: function "Handel_Menu" should return a value

A oto sma:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#include <colorchat>
#include <jailbreak>
#include <engine> 

#define PLUGIN "Jail Menu"
#define VERSION "1"
#define AUTHOR "AUTHOR"
#define TAG "JailBreak"

new bool:menu_mikro, bool:menu_walka;
new w_trakcie[33];
new gracz_id[33],wybrany;
new autobh = 0;

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("Damage", "Damage", "b", "2!=0");
	register_event("ResetHUD", "SpawnPlayer", "be")
	
	register_clcmd("+revision", "wlacz_rewizje");
	register_clcmd("-revision", "wylacz_rewizje");
	register_clcmd("say /menu", "MenuGraczy");
	register_clcmd("jail_amenu", "MenuAdmina", ADMIN_BAN);
	register_clcmd("say /a", "MenuAdmina", ADMIN_BAN);
	register_clcmd("say /dajdeagla", "menu")
}

public plugin_precache()
{
	precache_sound("weapons/c4_disarm.wav");
	precache_sound("weapons/c4_disarmed.wav");
	precache_sound("JailBreak_noFear/dzwonek.wav");
}
public SpawnPlayer(id)
{
	w_trakcie[id] = 0;
	remove_task(5000+id);
}
public MenuGraczy(id)
{
	if(!is_user_alive(id))
	{
		MenuGraczaNieZywego(id);
		return PLUGIN_HANDLED;
	}
	
	switch(get_user_team(id))
	{
		case 1: MenuGraczaTT(id);
		case 2: MenuGraczaCT(id);
	}

	return PLUGIN_CONTINUE;
}

public MenuGraczaTT(id)
{
	new menu = menu_create("\w[\rJailbreak\w] Menu \rWieznia", "Handel_Menu");
	new cb = menu_makecallback("Menu_Callback");

	menu_additem(menu, "\w[\r~\w] Czapki \y- Wybierz czapke", 		"3");
	menu_additem(menu, "\w[\r~\w] Sklep \y- Sklep za szlugi", 		"19");
	menu_additem(menu, "\w[\r~\w] Ukradnij bron \y- Kradziez broni CT", 	"4");
	menu_additem(menu, "\w[\r~\w] Ruletka \y- Wylosuj bonus", 		"20");
	menu_additem(menu, "\w[\r~\w] \rZyczenie \y- Dla ostatniego wieznia", 	"18", 4, cb);
	menu_additem(menu, "\w[\r~\w] Info \rVIP", "0");
	menu_additem(menu, "\w[\r~\w] Info \rSUPER VIP", "1");
	menu_additem(menu, "\w[\r~\w] Serwerowy \rRegulamin", "2");
	
	
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu, MPROP_BACKNAME, "Poprzednia");
	menu_setprop(menu, MPROP_NEXTNAME, "Nastepna");
	menu_setprop(menu, MPROP_PERPAGE, 7);
	menu_display(id, menu);

	return PLUGIN_HANDLED;
}

public MenuAdmina(id)
{
	if(!(get_user_flags(id) & ADMIN_BAN))
	{
        client_print(id, print_center, "Menu jest tylko dla Admina!")

	return PLUGIN_HANDLED;
}

	new menu = menu_create("\w[\rJailbreak\w] Menu \rAdmina", "Handel_Menu");
	
	menu_additem(menu, "\w[\r~\w] Przenies \rGracza",       "13");
	menu_additem(menu, "\w[\r~\w] Ozyw \rGracza",      "15");
	menu_additem(menu, "\w[\r~\w] Mikro dla \rTT", 	   "9");
	menu_additem(menu, "\w[\r~\w] Otworz \rCele", 	  "7");
	menu_additem(menu, "\w[\r~\w] Tryb \rWalki", 	"8");
	menu_additem(menu, "\w[\r~\w] Ban na gre jako \rKlawisz",        "12");
	menu_additem(menu, "\w[\r~\w] Zmutuj /rGracza",        "321");
	
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu, MPROP_BACKNAME, "<<<");
	menu_setprop(menu, MPROP_NEXTNAME, ">>>");
	menu_display(id, menu);

	return PLUGIN_HANDLED;
}

public MenuGraczaCT(id)
{
	new menu = menu_create("\w[\rJailbreak\w] Menu \rStraznika:", "Handel_Menu");
	new cb = menu_makecallback("Menu_Callback");

	menu_additem(menu, "\w[\r~\w] Wez \rProwadzenie", 		"6", 1, cb);
	menu_additem(menu, "\w[\r~\w] Przeszukaj \rWieznia","5");
	menu_additem(menu, "\w[\r~\w] Otworz \rCele", 	"7");
	menu_additem(menu, "\w[\r~\w] Walka \rwiezniow\w: \rON/OFF", 	"8", 3, cb);
	menu_additem(menu, "\w[\r~\w] Mikrofon dla \rWiezniow\w: \rON/OFF", 	"9");
	menu_additem(menu, "\w[\r~\w] Wbierz \rZabawy \y- Wlacz zabawe", 		"10", 3, cb);
	menu_additem(menu, "\w[\r~\w] Wlacz \rGong \y- Sygnal gongu","17", 3, cb);
	menu_additem(menu, "\w[\r~\w] Oznacz wieznia \rkolorem",   "43");
	menu_additem(menu, "\w[\r~\w] Wylosuj \rWieznia",    "44");
	menu_additem(menu, "\w[\r~\w] Daj: \yFreeDay'a lub Duszka","11");
	menu_additem(menu, "\w[\r~\w] Daj \rDeagle'a\w Wiezniowi","21", 3, cb);
	menu_additem(menu, "\w[\r~\w] Podziel \rWiezniow","22", 3, cb);
	menu_additem(menu, "\w[\r~\w] Info \rVIP", "0");
	menu_additem(menu, "\w[\r~\w] Info \rSUPER VIP", "1");
	menu_additem(menu, "\w[\r~\w] Serwerowy \rRegulamin", "2");
	
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu, MPROP_BACKNAME, "Poprzednia");
	menu_setprop(menu, MPROP_NEXTNAME, "Nastepna");
	menu_display(id, menu);

	return PLUGIN_HANDLED;
}

public MenuGraczaNieZywego(id)
{
         new menu = menu_create("\w[\rJailbreak\w] Menu \rWidza", "Handel_Menu");
	
	menu_additem(menu, "\w[\r~\w] Info \rVIP", "0");
	menu_additem(menu, "\w[\r~\w] Info \rSUPER VIP", "1");

	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu, MPROP_BACKNAME, "Poprzednia");
	menu_setprop(menu, MPROP_NEXTNAME, "Nastepna");
	menu_display(id, menu);

	return PLUGIN_HANDLED;
}

public Menu_Callback(id, menu, item)
{
	static num[10], acces, callback;
	menu_item_getinfo(menu, item, acces, num, 9, _, _, callback);
 
	switch(acces)
	{
		case 1:{
			if(jail_get_prowadzacy() || !jail_get_days()) {
				return ITEM_DISABLED;
			}
		}
		case 2:{
			if(id != jail_get_prowadzacy() && jail_get_days()) {
				return ITEM_DISABLED;
			}
		}
		case 3:{
			if(id != jail_get_prowadzacy()) {
				return ITEM_DISABLED;
			}
		}
		case 4:{
			if(id != jail_get_prisoner_last()) {
				return ITEM_DISABLED;
			}
		}
		case 5:{
			if(!is_user_admin(id)) {
				return ITEM_DISABLED;
			}
		}
	}
	return ITEM_ENABLED;
}

public Handel_Menu(id, menu, item)
{
	if(item == MENU_EXIT)
		return;

	new num[10], acces, callback;
	menu_item_getinfo(menu, item, acces, num, 9, _, _, callback);
	switch(str_to_num(num))
	{
		case 0: client_cmd(id, "say /vip");
		case 1: client_cmd(id, "say /svip");
		case 2: client_cmd(id, "say /regulamin");
		
		case 3: client_cmd(id, "say /czapki");
		case 4:
		{
			if(jail_get_prisoner_free(id) || jail_get_user_block(id))
				return;
			
			new body, target;
			get_user_aiming(id, target, body, 50);
						
			if(target && get_user_team(target) == 1)
			{
				ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] Aby zabrac bron musisz byc blisko straznika!");
				return;
			}
			if(!is_user_alive(target))
				return;
						
			new weapons = Jaki_Pistolet(target);
			if(!weapons)
			{
				ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] Straznik nie ma pistoletu!");
				return;
			}
						
			new weaponname[24];
			get_weaponname(weapons, weaponname, 23);
							
			ham_strip_weapon(target, weapons, weaponname);
			give_item(id, weaponname);
					
			ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] Gratulacje - Ukradles pistolet");		
		}
		
		case 5: w_trakcie[id]? wylacz_rewizje(id): wlacz_rewizje(id);
		
		case 6:{
			if(!jail_get_prowadzacy())
				jail_set_prowadzacy(id);
		}

		case 7: jail_open_cele();
		case 8: jail_set_prisoners_fight((menu_walka = !menu_walka), !menu_walka);
		case 9: jail_set_prisoners_micro((menu_mikro = !menu_mikro));
		case 10: client_cmd(id, "say /zabawy");
		case 11: MenuFreeday(id);
		case 12: client_cmd(id, "jail_menuban", "Ban na CT"); 
		case 13: client_cmd(id, "amx_teammenu", "Przenies TT/CT/SPEC");
		case 14: client_cmd(id, "jail_amenu");
		case 15: client_cmd(id, "say /ozyw");
		case 16: client_cmd(id, "jail_mute");
		case 17: client_cmd(0, "spk sound/JailBreak[k]/dzwonek.wav");
		case 18: client_cmd(id, "say /lr");
		case 19: client_cmd(id, "say /sklep");
		case 20: client_cmd(id, "say /ruletka");
		case 21: client_cmd(id, "say /dajdeagla");
		case 22: client_cmd(id, "say /podziel");
                case 111: client_cmd(id, "say /top15"); 
                case 43: client_cmd(id, "say /oznacz"); 
                case 44: client_cmd(id, "say /losuj");
                case 112: client_cmd(id, "say /rankg");
                case 321: client_cmd(id, "amx_gagmenu");  
		case 23: 
			{
				ColorChat(id, TEAM_COLOR, "^x04[%s]^x03 AutoBH dla wiezniow - %s", autobh?"Wl":"Wyl");
				if(autobh == 0)
				autobh = 1;
				else 
				autobh = 0;

		return PLUGIN_HANDLE;
			}
		
	}
}

public MenuFreeday(id)
{
	new menu2 = menu_create("\w[\rJailbreak\w] Manager \rFD \wi \rDuszek", "Handel_ManagerFreeday");
	menu_additem(menu2, "\w[\r~\w] Daj \rFreeday");
	menu_additem(menu2, "\w[\r~\w] Daj \rDuszka^n");
	menu_additem(menu2, "\w[\r~\w] Zabierz \rFreeday");
	menu_additem(menu2, "\w[\r~\w] Zabierz \rDuszka");
			
	menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
	menu_display(id, menu2);
}

public Handel_ManagerFreeday(id, menu, item)
{
	if(item == MENU_EXIT)
		return;

	new acces, callback, data[3], iname[32];
	menu_item_getinfo(menu, item, acces, data, 2, iname, 31, callback);
	replace(iname, 31, "^n", "");

	new menu2 = menu_create(iname, (!item || item == 2)? "Handel_Menu_Freeday": "Handel_Menu_Duszek");
	for(new i=1; i<=32; i++)
	{
		if(!is_user_alive(i) || cs_get_user_team(i) != CS_TEAM_T)
			continue;

		switch(item)
		{
			case 0,1:{
				if(jail_get_prisoner_free(i) || jail_get_prisoner_ghost(i))
					continue;
			}
			case 2:{
				if(!jail_get_prisoner_free(i))
					continue;
			}
			case 3:{
				if(!jail_get_prisoner_ghost(i))
					continue;
			}
		}
		new name[32];
		get_user_name(i, name, 31);
		menu_additem(menu2, name, (!item || item == 1)? "1": "0");
	}
	menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
	menu_display(id, menu2);
}

public Handel_Menu_Freeday(id, menu, item)
{
	if(item == MENU_EXIT)
		return;

	new id2, callback, data[3], name[32];
	menu_item_getinfo(menu, item, id2, data, 2, name, 31, callback);
	callback = data[0]-'0';

	id2 = get_user_index(name);
	jail_set_prisoner_free(id2, bool:callback, false);
	
	new szName[2][32];
	get_user_name(id, szName[0], 31);
	get_user_name(id2, szName[1], 31);
	ColorChat(0, TEAM_COLOR,"^x04[%s] ^x03%s ^x01%s freedaya ^x03%s",TAG,szName[0], callback? "dal": "zabral",szName[1]);
}

public Handel_Menu_Duszek(id, menu, item)
{
	if(item == MENU_EXIT)
		return;
		
	new id2, callback, data[3], name[32];
	menu_item_getinfo(menu, item, id2, data, 2, name, 31, callback);
	callback = data[0]-'0';
	
	id2 = get_user_index(name);
	jail_set_prisoner_ghost(id2, bool:callback, false);
	
	new szName[2][32];
	get_user_name(id, szName[0], 31);
	get_user_name(id2, szName[1], 31);
	ColorChat(0, TEAM_COLOR,"^x04[%s] ^x03%s ^x01%s duszka ^x03%s",TAG,szName[0], callback? "dal": "zabral",szName[1]);
}

public OnRemoveData(day)
{
	menu_mikro = false;
	menu_walka = false;
	autobh = 0;
}

public Handel_Menu_Widza(id, menu, item)
{
	if(item == MENU_EXIT)
		return;

	switch(item)
	{
		case 0: show_motd(id, "faq.txt", "FAQ Serwera");
		case 1: client_cmd(id, "say /zasady");
		case 2: show_motd(id, "komendy.txt", "Komendy");
	}
}

public wlacz_rewizje(id)
{
	if(get_user_team(id) != 2 || !is_user_alive(id))
		return PLUGIN_HANDLED;
		
	new body, target;
	get_user_aiming(id, target, body, 50);
						
	if(target && get_user_team(target) == 2)
	{
		ColorChat(id, TEAM_COLOR, "^x04[%s]^x03 Nie nacelowales na wieznia", TAG);
		return PLUGIN_HANDLED;
	}
	if(!is_user_alive(target))
		return PLUGIN_HANDLED;
		
	if(jail_get_user_block(target))
		return PLUGIN_HANDLED;
	
	jail_set_user_speed(id, 0.1);
	set_bartime(id, 5);
	
	set_bartime(target, 5);
	jail_set_user_speed(target, 0.1);
	
	w_trakcie[id] = target;
	w_trakcie[target] = id;
	set_task(5.0, "wylacz_rewizje", 5000+id);
	emit_sound(id, CHAN_WEAPON, "weapons/c4_disarm.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
	return PLUGIN_HANDLED;
}

public wylacz_rewizje(taskid)
{
	new id = taskid;
	if(taskid > 32)
		id -= 5000;
		
	if(get_user_team(id) != 2 || !w_trakcie[id])
		return PLUGIN_HANDLED;
	
	remove_task(id+5000);
	jail_set_user_speed(id, 250.0);
	set_bartime(id, 0);
	
	if(is_user_alive(w_trakcie[id]))
	{
		jail_set_user_speed(w_trakcie[id], 250.0);
		set_bartime(w_trakcie[id], 0);
	}
	if(taskid > 32)
		Pokaz_bronie(id);
	
	w_trakcie[w_trakcie[id]] = 0;
	w_trakcie[id] = 0;
	return PLUGIN_HANDLED;
}

public Pokaz_bronie(id)
{
	if(!is_user_alive(id) || !is_user_alive(w_trakcie[id]))
		return;
	
	new weapons[32], numweapons, weaponname[32];
	get_user_weapons(w_trakcie[id], weapons, numweapons);
	ColorChat(id, GREEN, "Znalazles:");
	for(new i=0; i<numweapons; i++)
	{
		get_weaponname(weapons[i], weaponname, 31);
		replace(weaponname, 32, "weapon_", "");
		replace(weaponname, 32, "knife", "piesci");
		ColorChat(id, BLUE, weaponname);
	}
	emit_sound(id, CHAN_WEAPON, "weapons/c4_disarmed.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}

public Damage(id)
{
	if(is_user_alive(id) && w_trakcie[id])
	{
		wylacz_rewizje(id);
	}
}

stock Jaki_Pistolet(id)
{
	if(!is_user_connected(id))
		return 0;
	
	new weapons[32], numweapons;
	get_user_weapons(id, weapons, numweapons);
	
	for(new i=0; i<numweapons; i++)
		if((1<<weapons[i]) & 0x4030402)
			return weapons[i];

	return 0;
}

stock ham_strip_weapon(id, wid, szname[])
{
	if(!wid) 
		return 0;
	
	new ent;
	while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", szname)) && pev(ent, pev_owner) != id) {}
	if(!ent)
		return 0;
	
	if(get_user_weapon(id) == wid) 
		ExecuteHam(Ham_Weapon_RetireWeapon, ent);
	
	if(ExecuteHam(Ham_RemovePlayerItem, id, ent)) 
	{
		ExecuteHam(Ham_Item_Kill, ent);
		set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wid));
	}
	return 1;
}

stock set_bartime(id, czas)
{
	message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("BarTime"), _, id);
	write_short(czas);
	message_end();
}


public menu(id, level, cid) {
	
	new menu = menu_create("\w[\rJailbreak\w] Wybierz \rGracza","menu_broni");
	for(new i=0, n=0; i<=32; i++)
	{
		if(!is_user_connected(i) || !is_user_alive(i) || cs_get_user_team(i) != CS_TEAM_T)
			continue;
		gracz_id[n++] = i;
		new nazwa_gracza[64];
		get_user_name(i, nazwa_gracza, 63)
		menu_additem(menu, nazwa_gracza, "0", 0);
	}
	
	menu_setprop(menu, MPROP_BACKNAME, "Wroc");
	menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
	menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
	menu_display(id, menu);
	return PLUGIN_HANDLED;
}


public menu_broni(id, menu, item)
{
	if (get_user_team(id) == 2)
	{
		wybrany = gracz_id[item];
		new menu = menu_create("\w[\rJailbreak\w] Menu \rBroni", "wybieranie")
		
		menu_additem(menu, "\w[\r~\w] Deagle bez \rnaboi", "1", 0)
		menu_additem(menu, "\w[\r~\w] Deagle z \r1 nabojem", "2", 0)
		menu_additem(menu, "\w[\r~\w] Deagle z \r3 nabojami", "3", 0) 
		menu_additem(menu, "\w[\r~\w] Deagle z \rpelnym magazynkiem", "4", 0)     
		
		menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
		
		menu_display(id, menu, 0)
	}
	else 
	{
		client_print(id, print_chat, "Nie masz do tego dostepu Ziomus!")
		return PLUGIN_HANDLED
	}
	return PLUGIN_HANDLED;
}
public wybieranie(id, menu, item)
{
	if (item == MENU_EXIT)
	{
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	new data[6], iName[64]
	new acces, callback
	menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback)
	
	new key = str_to_num(data)
	
	switch(key)
	{
		case 1:{
			give_item(wybrany, "weapon_deagle");
			new dgl_id = find_ent_by_owner(-1, "weapon_deagle", wybrany)
			if(dgl_id){
				cs_set_weapon_ammo(dgl_id, 0);
			}
			client_print(id, print_chat, "%s dostal pustego deagla",wybrany)
			menu_destroy(menu)
			return PLUGIN_HANDLED
		}
		
		case 2:{
			give_item(wybrany, "weapon_deagle");
			new dgl_id = find_ent_by_owner(-1, "weapon_deagle", wybrany)
			if(dgl_id){
			cs_set_weapon_ammo(dgl_id, 1);
			}
			client_print(id, print_chat, "%s dostal deagla z 1 nabojem",wybrany)
			menu_destroy(menu)
			return PLUGIN_HANDLED
		}
		
		case 3:{
			give_item(wybrany, "weapon_deagle");
			new dgl_id = find_ent_by_owner(-1, "weapon_deagle", wybrany)
			if(dgl_id){
				cs_set_weapon_ammo(dgl_id, 3);
			}
			client_print(id, print_chat, "%s dostal deagla z 3 nabojami",wybrany)
			menu_destroy(menu)
			return PLUGIN_HANDLED
		}
		case 4:{
			give_item(wybrany, "weapon_deagle");
			new dgl_id = find_ent_by_owner(-1, "weapon_deagle", wybrany)
			if(dgl_id){
				cs_set_weapon_ammo(dgl_id, 35);
			}
			client_print(id, print_chat, "%s dostal deagla z pelnym magazynkiem",wybrany)
			menu_destroy(menu)
			return PLUGIN_HANDLED
		}
	}
	menu_destroy(menu)
	return PLUGIN_HANDLED
}
//////////////////////////////////////////AUTOBH//////////////////////////////////
public client_PreThink(id)
{
	entity_set_float(id, EV_FL_fuser2, 0.0)
	if(autobh == 0 || get_user_team(id) == 2)
		return PLUGIN_CONTINUE;

	if (entity_get_int(id, EV_INT_button) & 2)
	{
		new flags = entity_get_int(id, EV_INT_flags)

		if (flags & FL_WATERJUMP)
			return PLUGIN_CONTINUE
		if ( entity_get_int(id, EV_INT_waterlevel) >= 2 )
			return PLUGIN_CONTINUE
		if ( !(flags & FL_ONGROUND) )
			return PLUGIN_CONTINUE

		new Float:velocity[3]
		entity_get_vector(id, EV_VEC_velocity, velocity)
		velocity[2] += 250.0
		entity_set_vector(id, EV_VEC_velocity, velocity)

		entity_set_int(id, EV_INT_gaitsequence, 6)	// Play the Jump Animation
	}

	return PLUGIN_CONTINUE
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

 

Problem z kompilacją

15.03.2021 18:13

Witam, mam problem z przekompilowaniem  pluginu.

error 029: invalid expression, assumed zero

Oto linijka:

        if(get_user_flags(id) & ADMIN_RESERVATION && if(get_user_team(id) == 2){	

Za bardzo nie wiem w jaki sposób należy to ustawić, aby osoba z flagą ADMIN_RESERVATION, oraz tylko gdy są w CT mogą używać pluginu że tak to ujmę :P

 

Edit: Jeśli potrzeba to dam kawałek z .sma

    public fwItemDeploy(wpn){
     
     
     
        static id;
     
        id = pev(wpn, pev_owner);
     
        if(get_user_flags(id) & ADMIN_RESERVATION && if(get_user_team(id) == 2){	
     
        
     
            set_pev(id, pev_viewmodel2, "models/taser2021/v_taser.mdl")  
     
            set_pev(id, pev_weaponmodel2, "models/taser2021/p_taser.mdl")  
     
        
     
        }
     
        
     
    }

 

dproto - Steam nie slyszy nonsteam

10.03.2021 18:03

Witam, mam problem z dproto, a dokladniej dproto 0.9.391, gdyz na tej wersji nie wystepuje blad z fake client.

Oraz napotkal sie problem, gracze steam nie slyszą graczy nonsteam przez mikrofon, i na odwrot. Pojawia sie komunikat ze gracz mowi, ale nic nie slychac. Czy mozna to jakos naprawic? dodatkowo posiadam fix z fullupd patch.so i cef.so, wszystko oczywiscie wpisane w metamod w plugins.ini

config:

 

# ========================================================
#         DPROTO CONFIGURATION
# ========================================================

#
# General rule for modifying this file:
#    DONT CHANGE ANYTHING IF YOU DONT KNOW WHAT IT MEANS!
#


# ========================================================
#         AUTHID MANAGEMENT
# ========================================================

# ClientID types (for cid_* options)
#  1: Real (or generated by HW) steam (STEAM_xx:xx:xx)
#  2: Real (or generated by HW) valve (VALVE_xx:xx:xx)
#  3: STEAM_ by IP
#  4: VALVE_ by IP
#  5: Deprecated - client will be rejected
#  6: reserved for future use
#  7: HLTV
#  8: STEAM_ID_LAN
#  9: STEAM_ID_PENDING
#  10: VALVE_ID_LAN
#  11: VALVE_ID_PENDING
#  12: STEAM_666:88:666

# Use these options to set authid's for clients

# for HLTV (default is HLTV [7])
cid_HLTV = 7

# for p.47 clients that do not support unique id generation (default is STEAM_ID_LAN [8])
cid_NoSteam47 = 8

# for p.48 clients that do not support unique id generation (default is VALVE_ID_LAN [10])
cid_NoSteam48 = 8

# For Legit Steam clients (default is real STEAM_xx:xx:xx [1])
cid_Steam = 1

# Client recognized as pending when they sucessfully authorized, but did not get steam id
# REMARK: Actually, it got steamid, but it is useless (STEAM_0:0:0 for example)
# default is STEAM_ID_PENDING [9]
cid_SteamPending = 9

# For players having revEmu ( >= 9.74) on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_RevEmu = 1

# For players having RevEmu 2013 on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_RevEmu2013 = 1

# For players having SteamClient 2009 / revEmu > 9.82 on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_SC2009 = 1

# For players having old revEmu on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_OldRevEmu = 1

# For players having hCupa's SteamEmu on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_SteamEmu = 1

# For players having AVSMP (Cracked Steam) on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_AVSMP = 1

# For SETTI ServerScanner
# default is STEAM_xx:xx:xx generated by IP [3]
cid_Setti = 3

# For SXEI Clients
# default is real STEAM_xx:xx:xx [1]
cid_SXEI = 1

# EnableSXEIdGeneration (0 / 1)
# Turns on steamid generation based on info sent by sXeI client
# Enable this only if you have sXeI server installed!
EnableSXEIdGeneration = 0

# SC2009_RevCompatMode (0 / 1)
# Enable fix to make steamids generated for SC2009 compatible with revEmu
SC2009_RevCompatMode = 1

# SteamEmuCompatMode (0 / 1)
# An analog for eSTEAMATiON's EnforceSteamEmuCompatIDMode option.
# Affects only Old RevEmu and SteamEmu emulators.
SteamEmuCompatMode = 1

# OldEstCompatMode (0 / 1)
# Enables/Disables fix for steamids generated by eST in 0.3.1 version.
# Set this to 1 if you want to make steamids generated by eST as in < 0.3.0 versions.
OldEstCompatMode = 0

# SteamIdHashSalt (string)
# Salt string for SteamIDs hashing. Irreversibly changes SteamIDs. Applies only to SteamIDs generated by emulators.
# Should be more than 16 chars length. If string is empty, hashing is not applied.
SteamIdHashSalt =

# IPGen_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by IP
IPGen_Prefix1 = 0

# IPGen_Prefix2 (int)
# STEAM_a:b:c
# second prefix (B) for authids generated by IP
IPGen_Prefix2 = 4

# Native_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by native auth method (Steam)
Native_Prefix1 = 0;

# RevEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by Steamclient 2009
SC2009_Prefix1 = 0;

# RevEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by RevEmu
RevEmu_Prefix1 = 0;

# RevEmu2013_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by RevEmu2013
RevEmu2013_Prefix1 = 0;

# OldRevEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by old RevEmu
OldRevEmu_Prefix1 = 0;

# SteamEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by SteamEmu
SteamEmu_Prefix1 = 0;

# SteamEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids assigned for AVSMP Clients (Cracked steam)
AVSMP_Prefix1 = 0;

# Setti_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids assigned for Setti server scanner
Setti_Prefix1 = 0;

# SXEI_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids assigned for sXeI clients
SXEI_Prefix1 = 0;


# Note that banid will use steamid WITHOUT any prefixes!


# ========================================================
#         ATTACKS SUPRESSION
# ========================================================

# FakePlayers_ConnectInitiationCheck (seconds)
# Sets the time, in seconds, in which client should initiate
# game session (in other words, send the "new" command) after it has
# been connected. If client did not initiated game session, it will be marked as
# fake and kicked.
#   Default is 6 seconds.
#   Use 0 to disable this check.
FakePlayers_ConnectInitiationCheck = 6

# FakePlayers_ClientValidationCheck (seconds)
# Sets the time, in seconds, in which client should answer to random unique command
# sent by the server. If client did not answered for this command, it will be marked as
# fake and kicked.
#   Default is 8 seconds.
#   Use 0 to disable this check.
FakePlayers_ClientValidationCheck = 8

# FakePlayers_AntiReconnect (0/1)
# Enables detection of fakeplayers that reconnects quickly (every < 10 seconds)
# before fake players checks have completed.
# This check will work only if FakePlayers_ClientValidationCheck and
# FakePlayers_ConnectInitiationCheck are enabled.
#   Default is 1 (ON)
FakePlayers_AntiReconnect = 1

# FakePlayers_CommandsOrderCheck (0/1)
# Enable commands order checking on the start of initiated connection.
#   Default is 1 (ON).
FakePlayers_CommandsOrderCheck = 1

# FakePlayers_BanTime (minutes)
# Dproto will ban IP spamming fakeplayers for time (in minutes) specified in this variable
#   Default is 120 minutes.
#   Use 0 for permanent ban.
#   Use negative vaules to disable ban (fake players will only be kicked).
FakePlayers_BanTime = 120

# Exploits_CheckDownloads (0/1)
# Enable checking of requested download files against precached resources.
#   Default is 1 (ON).
Exploits_CheckDownloads = 1

# Exploits_DisableUploads (0/1)
# Disable file uploads (not customizations) to the server.
#   Default is 1 (ON).
Exploits_DisableUploads = 1


# ========================================================
#         OTHER STUFF
# ========================================================

# LoggingMode:
#   0 = None
#   1 = Console
#   2 = Log Files
#   3 = Both
LoggingMode = 2

# ThreatsLoggingMode
# Enable logging of threats details.
#   Default is 0 (OFF).
ThreatsLoggingMode = 0

# DisableNativeAuth (0/1)
# Disables valve/steam auth system.
#   For p.47 Based: Server will not connect to auth servers.
#   For All: Server will not call authorization functions.
# This is a fix for startup freeze for old (p.47) servers.
DisableNativeAuth = 0

# ServerInfoAnswerType (0/1/2)
# Sets server answer type for query requests
#   0 = New style (Source Engine)
#   1 = Old Style (Fix favorites list for p.47 clients)
#   2 = Hybrid mode - Server is visible anywhere, but there are 3 packets generated for every serverinfo request
ServerInfoAnswerType = 0

# Game_Name (string)
# Sets game name displayed for clients
# If Game_Name is empty, native game name will be used
Game_Name = ~[JAILBREAK]~

# Enables fix for proper player id displaying on HLStats server monitoring
# Enable this only if you have HLStats
HLStatsPlayerIdFix = 0

# ExportVersion (0 / 1)
# Enables/Disables exporting of dp_version cvar
#   1 = dp_version cvar will be exported to server rules. It will be visible in server monitoring tools (like HLSW)
#   0 = dp_version cvar will not be exported to server rules.
ExportVersion = 1

# HLTVExcept_IP (ip addr)
# HLTV from this IP will be able to join the server even if cid_HLTV is set to 5 (deprecated)
HLTVExcept_IP = 127.0.0.1

 

 


 

 

[ROZWIĄZANE] Prośba o przerobienie pluginu

09.03.2021 15:13

Witam, mam taką prośbe :)
Czy ktoś z tego pluginu, mógłby usunąć bany na CT? Żeby zostało wszystko inne, tylko usunąć bany na CT, probowalam to zrobić ale wyświetlały sie błędy :/, oraz czy po usunięciu wszystkie bany na CT zostaną usunięte, czy są zapisywane w jakiejs bazie danych? :P

 

Link do sma https://www31.zippys...4sj7K/file.html

 

Kod:

#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <cstrike>
#include <jailbreak>
#include <colorchat>

#define PLUGIN "JailCzasGry"
#define VERSION "1"
#define AUTHOR "Vanilla"

new vault;
new pCvarSteam, pCvarTiem, pCvarCtToTT;
new CzasGry[MAX+1];
new dane_gracza[MAX+1];
new nazwa_gracza[MAX+1][64];
new bool:wczytane[MAX+1];

new FlagiAdmina[] = "c"; /* Tutaj zmieniasz flagi z którymi admina nie obowiązuje ograniczenie X CT na Y TT */

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("jail_addct", "DodajGracza", ADMIN_BAN, "jail_addct <name | steamid>");
	register_clcmd("jail_delct", "UsunGracza", ADMIN_BAN, "jail_delct <name | steamid>");
	register_clcmd("jail_menuban", "MenuBan");
	register_clcmd("say /czasgry", "PokazCzasGry");
	
	pCvarTiem = register_cvar("jail_ct_time", "60");
	pCvarCtToTT = register_cvar("jail_tt_to_ct", "6");
	pCvarSteam = register_cvar("jail_ct_steam", "0");
	
	pCvarCtToTT = max(get_pcvar_num(pCvarCtToTT), 1);
	pCvarTiem = get_pcvar_num(pCvarTiem)*60;
	pCvarSteam = get_pcvar_num(pCvarSteam);
	
	valut = nvault_open("banct");
	set_task(1.0, "DodajAmxMod");
}

public DodajAmxMod()
{
	AddMenuItem("\w[\rCS-SZCZECIN.PL\w] Ban na gre jako \rKlawisz", "jail_menuban", ADMIN_BAN, PLUGIN);
}

public OnJoinTeam(id, team, tt, ct)
{
	if(team == 2)
	{
		if(!is_user_steam(id) && pCvarSteam)
		{
			ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] NonSteam nie moze grac w CT!");
			return JAIL_FORCE_TT;
		}
		
		if((ct && (ct*pCvarCtToTT >= tt)) && !(get_user_flags(id) & read_flags(FlagiAdmina)))
		{
			ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] Druzyna CT pelna! Dolaczyles do wiezniow!");
			return JAIL_FORCE_TT;
		}
		
		if(dane_gracza[id] == 2)
		{
			ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] Masz zakaz dolaczania do CT!");
			return JAIL_FORCE_TT;
		}
		
		if(!dane_gracza[id] && ((get_user_time(id,1)+CzasGry[id]) < pCvarTiem) && !(get_user_flags(id) & read_flags(FlagiAdmina)))
		{
			ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] Masz za malo czasu przegrane na serwerze by grac w CT! Potrzebujesz %d minut.", pCvarTiem/60);
			return JAIL_FORCE_TT;
		}
	}
	return JAIL_CONTINUE;
}

public DodajGracza(id)
{
	if(!(get_user_flags(id) & ADMIN_BAN))
	return PLUGIN_HANDLED;

	new name[64], vaultdata[256];
	read_argv(1, name, 63);	
	if(nvault_get(valut, name, vaultdata, 255))
	{
		if(vaultdata[0] == '2')
		{
			client_print(id, print_console, "[JailBreak] Juz jest zbanoway ten gracz (%s)", name);
			return PLUGIN_HANDLED;
		}
		log_amx("Admin <%s> zbanowal gracza <%s>", nazwa_gracza[id], name); 
		nvault_set(valut, name, "2");
		client_print(id, print_console, "[JailBreak] Zbanowales gracza %s", name);
	}
	else
	client_print(id, print_console, "[JailBreak] Taki gracz (%s) jeszcze nie gral na serwerze", name);
	
	return PLUGIN_HANDLED;
}

public UsunGracza(id)
{
	if(!(get_user_flags(id) & ADMIN_BAN))
	return PLUGIN_HANDLED;

	new name[64], vaultdata[256];
	read_argv(1, name, 63);
	if(nvault_get(valut, name, vaultdata, 255))
	{
		log_amx("Admin <%s> odbanowal gracza <%s>", nazwa_gracza[id], name); 
		nvault_set(valut, name, "1");
		client_print(id, print_console, "[JailBreak] Odbanowales gracza %s", name);
	}
	else
	client_print(id, print_console, "[JailBreak] Nie ma takiego gracza (%s)", name);
	
	return PLUGIN_HANDLED;
}

public MenuBan(id)
{
	if(!(get_user_flags(id) & ADMIN_BAN))
	return PLUGIN_HANDLED;
	
	new menu = menu_create("\w[\rCS-SZCZECIN.PL\w] Ban na gre jako \rKlawisz\w:", "Ban_Handled");
	for(new i=1; i<=32; i++)
	{
		if(!is_user_connected(i) || is_user_hltv(i) || i == id)
		continue;
		
		new name[64], num[3];
		get_user_name(i, name, 64);
		num_to_str(i, num, 2);

		add(name, 63, (get_user_team(i) == 1? " \r[TT]": (get_user_team(i) == 2? " \r[CT]": " \r[SPECT]")));
		menu_additem(menu, name, num);
	}
	menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_display(id, menu);
	return PLUGIN_HANDLED;
}

public Ban_Handled(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		return PLUGIN_CONTINUE;
	}
	new id2, callback, data[3];
	menu_item_getinfo(menu, item, id2, data, 2, _, _, callback);
	id2 = str_to_num(data);
	
	if(dane_gracza[id2] != 2)
	{
		CzasGry[id2] = 0;
		dane_gracza[id2] = 2;
		nvault_set(valut, nazwa_gracza[id2], "2");
		
		if(cs_get_user_team(id2) == CS_TEAM_CT)
		{
			if(is_user_alive(id2))
			user_kill(id2);
			cs_set_user_team(id2, CS_TEAM_T);
		}
		
		log_amx("Admin <%s> zbanowal gracza <%s>", nazwa_gracza[id], nazwa_gracza[id2]); 
		ColorChat(id, TEAM_COLOR, "^x04[JailBreak]^x01 Gracz ^x03%s^x01 zostal zbanowany na gre w CT", nazwa_gracza[id2]);
	}
	else
	ColorChat(id, TEAM_COLOR, "^x04[JailBreak]^x01 Gracz ^x03%s^x01 jest juz zbanowany na CT! ", nazwa_gracza[id2]);
	
	return PLUGIN_CONTINUE;
}

public client_putinserver(id)
{
	dane_gracza[id] = 0;
	CzasGry[id] = 0;
	wczytane[id] = false;
	if(pCvarSteam)
	{
		if(is_user_steam(id))
		{
			get_user_authid(id, nazwa_gracza[id], 63);
			CzasGry[id] = WczytajCzas(id);
		}
		return;
	}
	if(is_user_steam(id))
	get_user_authid(id, nazwa_gracza[id], 63);
	else
	get_user_name(id, nazwa_gracza[id], 63);
	
	CzasGry[id] = WczytajCzas(id);
}

public WczytajCzas(id)
{
	new vaultdata[256];
	wczytane[id] = true;
	
	if(nvault_get(valut, nazwa_gracza[id], vaultdata, 255))
	{
		if(vaultdata[1] == '#')
		{
			new left[10];
			strtok(vaultdata, left, 9, vaultdata, 255, '#', 1);
			return str_to_num(vaultdata);
		}
		else
		dane_gracza[id] = (vaultdata[0]-'0');
	}
	return 0;
}

public client_disconnect(id)
{
	if(pCvarSteam)
	{
		if(is_user_steam(id))
		{
			ZapiszCzas(id);
		}
		return;
	}
	ZapiszCzas(id);
}

public ZapiszCzas(id)
{
	if(!dane_gracza[id] && wczytane[id])
	{
		new czas = CzasGry[id]+get_user_time(id,1);
		if(czas <= pCvarTiem)
		{
			new vaultdata[256];
			formatex(vaultdata, 255, "0#%i", czas);
			nvault_set(valut, nazwa_gracza[id], vaultdata);
		}
		else
		nvault_set(valut, nazwa_gracza[id], "1");
	}
}

public PokazCzasGry(id)
{
	new times = get_user_time(id,1);
	if((times+CzasGry[id]) < pCvarTiem && !dane_gracza[id])
	ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] Spedziles na serwerze^x03 %d^x01 min.", (times+CzasGry[id])/60);
	else
	ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] Przegrales ponad %d minut na serwerze", pCvarTiem/60);
	return PLUGIN_HANDLED;
}    

stock is_user_steam( id ) {
        new g_Steam[ 32 ]
        get_user_authid( id, g_Steam, charsmax( g_Steam ) )
        return bool:( '0' <= g_Steam[ 8 ] <= '1' );
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

 

Co zrobić by wpisane komendy znikały?

03.03.2021 23:19

Witam, mam takie śmieszne a zapewne banalne pytanie, w jaki sposób można ustawić aby komenda, np. /menu, nie wyświetlała sie na czacie? Może to być plugin usuwający komendy z czatu, ale najlepiej jakby to był dopisek do pluginu :)