DoubleJump CustomShop

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

DoubleJump CustomShop

Мнение от Marinovv » 25 Май 2021, 09:10

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

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <customshop>

#define ADMINACCESS ADMIN_CHAT

new jumpnum[33] = 0
new bool:dojump[33] = false

additem ITEM_DOUBLEJUMP

public plugin_init()
{
	register_plugin("MultiJump","1.1","twistedeuphoria")
	register_cvar("amx_maxjumps","1")
	register_cvar("amx_mjadminonly","0")
}

public plugin_precache()
    ITEM_DOUBLEJUMP = cshop_register_item("doublejump", "Double Jump", 300, 1)
    
public cshopItemBought(id, iItem)
{
    if(iItem == ITEM_DOUBLEJUMP)
        dojump[id] = true
}
    
public cshopItemRemoved(id, iItem)
{
    if(iItem == ITEM_DOUBLEJUMP)
        dojump[id] = false
}

public client_PreThink(id)
{
	if(!is_user_alive(id)) return PLUGIN_CONTINUE
	if(get_cvar_num("amx_mjadminonly") && (!access(id,ADMINACCESS))) return PLUGIN_CONTINUE
	new nbut = get_user_button(id)
	new obut = get_user_oldbutton(id)
	if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
	{
		if(jumpnum[id] < get_cvar_num("amx_maxjumps"))
		{
			dojump[id] = true
			jumpnum[id]++
			return PLUGIN_CONTINUE
		}
	}
	if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		jumpnum[id] = 0
		return PLUGIN_CONTINUE
	}
	return PLUGIN_CONTINUE
}

public client_PostThink(id)
{
	if(!is_user_alive(id)) return PLUGIN_CONTINUE
	if(get_cvar_num("amx_mjadminonly") && (!access(id,ADMINACCESS))) return PLUGIN_CONTINUE
	if(dojump[id] == true)
	{
		new Float:velocity[3]	
		entity_get_vector(id,EV_VEC_velocity,velocity)
		velocity[2] = random_float(265.0,285.0)
		entity_set_vector(id,EV_VEC_velocity,velocity)
		dojump[id] = false
		return PLUGIN_CONTINUE
	}
	return PLUGIN_CONTINUE
}	
Плъгина работи още преди да го закупя? Може ли да споделите къде съм сбъркал?
Иван Маринов,

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

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

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

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

DoubleJump CustomShop

Мнение от mi0 » 26 Май 2021, 06:04

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

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <customshop>

#define ADMINACCESS ADMIN_CHAT

new jumpnum[33] = 0
new bool:dojump[33] = false

additem ITEM_DOUBLEJUMP 	// otne mi 10 minuti da iznamerq kakvo oznachava additem 
				// zashto ne polzva prosto "new" kato horata(govorq na OciXCrom) samo zatrudnqvash cqlata procedura izlishno

public plugin_init()
{
	register_plugin("MultiJump","1.1","twistedeuphoria")
	register_cvar("amx_maxjumps","1")
	register_cvar("amx_mjadminonly","0")
}

/* ITEM CONFIG */
public plugin_precache()
    ITEM_DOUBLEJUMP = cshop_register_item("doublejump", "Double Jump", 300, 1)

public cshopItemBought(id, iItem)
{
    if(iItem == ITEM_DOUBLEJUMP)
        dojump[id] = true
}
    
public cshopItemRemoved(id, iItem)
{
    if(iItem == ITEM_DOUBLEJUMP)
        dojump[id] = false
}
/* END OF ITEM CONFIG */

bool:hasAccess(id) {
	// dali ima dostyp do multi jump
	return is_user_alive(id) // igracha trqbva da e jiv
		&& ((!get_cvar_num("amx-mjadminonly") // syshto trqbva opciqta ili da ne e samo za admini
			|| access(id, ADMINACCESS))) // ili ako e samo za admini trqbva igracha da e admin
		&& doJump[id] // i trqbva da ima item-a zakupen
}

public client_PreThink(id)
{
	if (!hasAccess(id)) {
		return // nqma smisyl da se zanimavame ako nqma dostyp do multi jump
	}

	new nbut = get_user_button(id) // butonite natisnati segashniq frame
	new obut = get_user_oldbutton(id) // butonite natisnati minaliq frame
	if (nbut & IN_JUMP && ~obut & IN_JUMP) { // ako predishniq frame ne e skachal i segashniq skacha (za da ne se povtarq postoqnno ako e zadyrjal space)
		if (get_entity_flags(id) & FL_ONGROUND) { // ako e na zemqta(tepyrva skacha) mu zadavame jumpnum na 0
			jumpnum[id] = 0
		}
		else if (get_cvar_num("amx_maxjumps") > jumpnum[id]) { // ako ne e na zemqta i ima jump-ove
			new Float:velocity[3] // promenliva v koqto shte zapazim skorosta
			entity_get_vector(id,EV_VEC_velocity,velocity) // vzimame skorosta
			velocity[2] = random_float(265.0,285.0) // promenqme samo tretoto izmerenie(koeto sochi nagore) sys skorost mejdu 265.0 - 285.0 
			entity_set_vector(id,EV_VEC_velocity,velocity) // zapazvame skorosta
			jumpnum[id]++ // veche igracha e izpolzval edin ot skokovete za tova uvelichavame jumpnum
		}
	}
}
Не съм го тествал.
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

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

DoubleJump CustomShop

Мнение от Marinovv » 26 Май 2021, 12:49

mi0 написа: 26 Май 2021, 06:04

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

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <customshop>

#define ADMINACCESS ADMIN_CHAT

new jumpnum[33] = 0
new bool:dojump[33] = false

additem ITEM_DOUBLEJUMP 	// otne mi 10 minuti da iznamerq kakvo oznachava additem 
				// zashto ne polzva prosto "new" kato horata(govorq na OciXCrom) samo zatrudnqvash cqlata procedura izlishno

public plugin_init()
{
	register_plugin("MultiJump","1.1","twistedeuphoria")
	register_cvar("amx_maxjumps","1")
	register_cvar("amx_mjadminonly","0")
}

/* ITEM CONFIG */
public plugin_precache()
    ITEM_DOUBLEJUMP = cshop_register_item("doublejump", "Double Jump", 300, 1)

public cshopItemBought(id, iItem)
{
    if(iItem == ITEM_DOUBLEJUMP)
        dojump[id] = true
}
    
public cshopItemRemoved(id, iItem)
{
    if(iItem == ITEM_DOUBLEJUMP)
        dojump[id] = false
}
/* END OF ITEM CONFIG */

bool:hasAccess(id) {
	// dali ima dostyp do multi jump
	return is_user_alive(id) // igracha trqbva da e jiv
		&& ((!get_cvar_num("amx-mjadminonly") // syshto trqbva opciqta ili da ne e samo za admini
			|| access(id, ADMINACCESS))) // ili ako e samo za admini trqbva igracha da e admin
		&& doJump[id] // i trqbva da ima item-a zakupen
}

public client_PreThink(id)
{
	if (!hasAccess(id)) {
		return // nqma smisyl da se zanimavame ako nqma dostyp do multi jump
	}

	new nbut = get_user_button(id) // butonite natisnati segashniq frame
	new obut = get_user_oldbutton(id) // butonite natisnati minaliq frame
	if (nbut & IN_JUMP && ~obut & IN_JUMP) { // ako predishniq frame ne e skachal i segashniq skacha (za da ne se povtarq postoqnno ako e zadyrjal space)
		if (get_entity_flags(id) & FL_ONGROUND) { // ako e na zemqta(tepyrva skacha) mu zadavame jumpnum na 0
			jumpnum[id] = 0
		}
		else if (get_cvar_num("amx_maxjumps") > jumpnum[id]) { // ako ne e na zemqta i ima jump-ove
			new Float:velocity[3] // promenliva v koqto shte zapazim skorosta
			entity_get_vector(id,EV_VEC_velocity,velocity) // vzimame skorosta
			velocity[2] = random_float(265.0,285.0) // promenqme samo tretoto izmerenie(koeto sochi nagore) sys skorost mejdu 265.0 - 285.0 
			entity_set_vector(id,EV_VEC_velocity,velocity) // zapazvame skorosta
			jumpnum[id]++ // veche igracha e izpolzval edin ot skokovete za tova uvelichavame jumpnum
		}
	}
}
Не съм го тествал.
-->

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

//
// C:\Users\Marinovv\Desktop\scripting\cshop_doublejumping.sma(40 -- 43) : error 017: undefined symbol "doJump"
// C:\Users\Marinovv\Desktop\scripting\cshop_doublejumping.sma(43) : warning 217: loose indentation
// C:\Users\Marinovv\Desktop\scripting\cshop_doublejumping.sma(43) : warning 215: expression has no effect
// C:\Users\Marinovv\Desktop\scripting\cshop_doublejumping.sma(43) : error 001: expected token: ";", but found "]"
// C:\Users\Marinovv\Desktop\scripting\cshop_doublejumping.sma(43) : error 029: invalid expression, assumed zero
// C:\Users\Marinovv\Desktop\scripting\cshop_doublejumping.sma(43) : fatal error 107: too many error messages on one lin
EDIT: всичко е коригирано! Благодаря!
Иван Маринов,

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

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

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

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

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

Кой е на линия

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