Cshop Item: Zoom Weapons

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Cshop Item: Zoom Weapons

Мнение от Marinovv » 31 Авг 2018, 23:49

Хора, помощ, малко я оплесках... :coolface:

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cstrike>
#include <customshop>

#define PLUGIN_VERSION "1.0"

// Variable
new zoom_cost

new bool:g_bHasItem[33]

additem ITEM_ZOOM;

public plugin_init()
{
	// Register Plugin
	register_plugin("CSHOP: Zoom Weapons Plus", PLUGIN_VERSION, "OciXCrom");

	// Client Commands
	register_clcmd( "say /zoom", "set_zoom" )
	register_clcmd( "say_team /zoom", "set_zoom" )
	register_clcmd( "say /remove", "remove_zoom" )
	register_clcmd( "say_team /remove", "remove_zoom" )

	// CVAR
        zoom_cost = register_cvar( "amxx_zoom_cost", "500" )

	// Plugin Version
	register_cvar( "buy_zoom_version", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY )

	// Multilingual Dictionary
	register_dictionary( "buy_zoom.txt")

	// Bug Fix
	register_event( "DeathMsg", "user_dead", "a" )
}

public plugin_precache()
{
	ITEM_ZOOM = cshop_register_item("zoomweapons", "Zoom Weapons Plus", 1000);
	cshop_set_float(ITEM_ZOOM, "set_zoom"; тук не мисля, че изобщо трябва да го има?!?!

public client_putinserver(id)
	g_bHasItem[id] = false;
	
public cshop_item_selected(id, iItem)
{
	if(iItem == ITEM_ZOOM)
		g_bHasItem[id] = true;
}

public cshop_item_removed(id, iItem)
{
	if(iItem == ITEM_ZOOM)
		g_bHasItem[id] = false;
}

// Plugin Shows Help Message
public plugin_message( id )
{
        client_print( 0, print_chat, "%L", LANG_PLAYER, "HELPMSG" )
}

// Bug fix
public user_dead()
{
        new id = read_data( 2 )
        cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )

	return PLUGIN_HANDLED
}

// Remove Command
public remove_zoom( id )
{
        cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
        client_print( id, print_chat, "%L", id, "REMMSG" )

	return PLUGIN_HANDLED
}

// Buy Command
public set_zoom( id )
{
	new money_left_over = cs_get_user_money( id ) - get_pcvar_num( zoom_cost );
	if ( money_left_over < 0 ) 
	{
		client_print( id, print_chat, "%L", id, "DONTZOOM" )

		return PLUGIN_HANDLED
	}

	cs_set_user_money( id, money_left_over, 1 )
	cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
	client_print( id, print_chat, "%L", id, "ZOOMMSG" )

	return PLUGIN_HANDLED
}
Дотук смятам, че за този плъгин g_bHasItem[id] е нужен. Въпросът е дали трябва и как да го вкарам в public set_zoom( id )
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Cshop Item: Zoom Weapons

Мнение от OciXCrom » 01 Сеп 2018, 02:31

Не е нужен. Просто изпълни функцията cs_set_user_zoom когато играчът закупи предмета.

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Cshop Item: Zoom Weapons

Мнение от Marinovv » 01 Сеп 2018, 10:46

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cstrike>
#include <customshop>

#define PLUGIN_VERSION "1.0"

additem ITEM_ZOOM;

public plugin_init()
{
	// Register Plugin
	register_plugin("CSHOP: Zoom Weapons Plus", PLUGIN_VERSION, "OciXCrom");

	// Plugin Version
	register_cvar( "buy_zoom_version", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY )
}

public plugin_precache()
{
	ITEM_ZOOM = cshop_register_item("zoomweapons", "Zoom Weapons Plus", 1000);
	
public cshop_item_selected(id, iItem)
{
	if(iItem == ITEM_ZOOM)
		cs_set_user_zoom = true;
}

public cshop_item_removed(id, iItem)
{
	if(iItem == ITEM_ZOOM)
		cs_set_user_zoom = false;
}

// Buy Command
public set_zoom( id )
{
	new money_left_over = cs_get_user_money( id ) - cshop_get_item_data(ITEM_ZOOM, CSHOP_DATA_PRICE));
	if ( money_left_over < 0 ) 
	{
		client_print( id, print_chat, "%L", id, "DONTZOOM" )

		return PLUGIN_HANDLED
	}

	cs_set_user_money( id, money_left_over, 1 )
	cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
	client_print( id, print_chat, "%L", id, "ZOOMMSG" )

	return PLUGIN_HANDLED
}

За момента премахнах голяма част от редовете на кодът и оставих CSHOP да действа, като заместител да мисли дали си жив или мъртъв в игра. Обаче при компилация ми издава няколко грешки и се финишира с надпис Failed...
//// zoom.sma
// D:\Games\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\zoom.sma(41) : warning 217: loose indentation
// D:\Games\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\zoom.sma(41) : error 029: invalid expression, assumed zero
// D:\Games\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\zoom.sma(41) : error 004: function "cshop_item_selected" is not implemented
// D:\Games\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\zoom.sma(41) : error 017: undefined symbol "iItem"
// D:\Games\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\zoom.sma(41) : fatal error 107: too many error messages on one line
//
// Compilation aborted.
// 4 Errors.
// Could not locate output file D:\Games\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\compiled\zoom.amx (compile failed).
//
// Compilation Time: 0,16 sec
Този iItem защо го изкарва като грешка? Може би в случая е ненужен?? cshop_item_selected не го отчита. Някъде е грешно. Ще помоля да споделите.
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Cshop Item: Zoom Weapons

Мнение от OciXCrom » 01 Сеп 2018, 15:19

1. Не си затворил скобите в plugin_precache.
2. Няма такова нещо cs_set_user_zoom = true. Казах ти да използваш функцията cs_set_user_zoom, а ти си сложил несъществуваща променлива.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cstrike>
#include <customshop>

#define PLUGIN_VERSION "1.0"

additem ITEM_ZOOM;

public plugin_init()
{
	// Register Plugin
	register_plugin("CSHOP: Zoom Weapons Plus", PLUGIN_VERSION, "OciXCrom");

	// Plugin Version
	register_cvar( "buy_zoom_version", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY )
}

public plugin_precache()
{
	ITEM_ZOOM = cshop_register_item("zoomweapons", "Zoom Weapons Plus", 1000);
}
	
public cshop_item_selected(id, iItem)
{
	if(iItem == ITEM_ZOOM)
		cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
}

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Cshop Item: Zoom Weapons

Мнение от Marinovv » 01 Сеп 2018, 18:01

Благодаря работи. Много съм тъп ей. Този плъгин не е от онези които с копче зоомваш и отзуумваш. Може да локвате.
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Cshop Item: Zoom Weapons

Мнение от OciXCrom » 01 Сеп 2018, 20:16

Може да се направи да е с копче ако искаш.

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Cshop Item: Zoom Weapons

Мнение от Marinovv » 01 Сеп 2018, 21:05

Може ли как би могло?
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Cshop Item: Zoom Weapons

Мнение от OciXCrom » 01 Сеп 2018, 21:40

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cstrike>
#include <customshop>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN_VERSION "1.0"

const m_pPlayer = 41;
new const g_iNoZoom[] = { CSW_SCOUT, CSW_AUG, CSW_SG550, CSW_AWP, CSW_G3SG1, CSW_SG552 };

additem ITEM_ZOOM;
new bool:g_bHasItem[33];

public plugin_init()
{
	register_plugin("CSHOP: Zoom Weapons Plus", PLUGIN_VERSION, "OciXCrom");
	register_cvar("buy_zoom_version", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY);
	register_forward(FM_CmdStart, "OnCmdStart");
}

public plugin_precache()
	ITEM_ZOOM = cshop_register_item("zoomweapons", "Zoom Weapons Plus", 1000);
	
public cshop_item_selected(id, iItem)
{
	if(iItem == ITEM_ZOOM)
		g_bHasItem[id] = true;
}

public cshop_item_removed(id, iItem)
{
	if(iItem == ITEM_ZOOM)
	{
		g_bHasItem[id] = false;
		cs_set_user_zoom(id, CS_SET_NO_ZOOM, 1);
	}
}

public OnCmdStart(id, iHandle, iSeed)
{
	if(g_bHasItem[id])
	{
		if(get_uc(iHandle, UC_Buttons) & IN_ATTACK2 && !(pev(id, pev_oldbuttons) & IN_ATTACK2))
		{
			new iWeapon = get_user_weapon(id);

			for(new i; i < sizeof(g_iNoZoom); i++)
			{
				if(iWeapon == g_iNoZoom[i])
					return FMRES_IGNORED;
			}

			cs_set_user_zoom(id, cs_get_user_zoom(id) == CS_SET_NO_ZOOM ? CS_SET_AUGSG552_ZOOM : CS_SET_NO_ZOOM, 1);
			return FMRES_SUPERCEDE;
		}
	}

	return FMRES_IGNORED;
}

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Cshop Item: Zoom Weapons

Мнение от Marinovv » 04 Сеп 2018, 00:32

Работи. Сега вече е много добре. Благодаря ти Oci, че ми угоди и тоя път. Поздрави и заключвайте темата. :)
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Помощ в скриптирането”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 7 госта