Парашут плъгин
Парашут плъгин
Здравейте,
1.Има ли някой работещ плъгин за парашут,но парашута да бъде само за админи и випове и да е безплатен ? Теглил съм от цс хлапе инфо,но не ми работят
2. Може ли да се добави такъв скин на парашут https://gamebanana.com/skins/151896 и ако да по какъв начин ?
1.Има ли някой работещ плъгин за парашут,но парашута да бъде само за админи и випове и да е безплатен ? Теглил съм от цс хлапе инфо,но не ми работят
2. Може ли да се добави такъв скин на парашут https://gamebanana.com/skins/151896 и ако да по какъв начин ?
-
Bartian
Извън линия - Потребител
- Мнения: 280
- Регистриран на: 01 Сеп 2018, 14:43
- Се отблагодари: 65 пъти
- Получена благодарност: 78 пъти
Парашут плъгин
1.https://forums.alliedmods.net/showthread.php?t=11514
2. Влизаш в сма файла и сменяш името на модела с този който искаш не е нито трудно , нито невъзможно!
3.За да може само админ да има парашут има квар , настрой го и си готов!
2. Влизаш в сма файла и сменяш името на модела с този който искаш не е нито трудно , нито невъзможно!
3.За да може само админ да има парашут има квар , настрой го и си готов!
Думата "хакер" е неправилно използвана в смисъл на "компютърен хакер" от някои журналисти. Ние, хакерите, отказваме да приемем това тълкуване и продължаваме да означаваме с него смисъла на "някой, който обича да го програмира и да го ползва".
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Парашут плъгин
@Bartian - поне дай най-новата му версия - https://forums.alliedmods.net/showthread.php?t=49694
https://forums.alliedmods.net/showthread.php?t=175775
=>
https://forums.alliedmods.net/showthread.php?t=175775
=>
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#define _PLUGIN "[ZP] Parachute"
#define _VERSION "1.0"
#define _AUTHOR "H.RED.ZONE"
#define ADMIN_FLAG ADMIN_RESERVATION
#define PARACHUTE_MODEL "models/parachute.mdl"
#define MAX_PLAYERS 32
#define MarkUserHasParachute(%0) g_bitHasParachute |= (1<<(%0&31))
#define ClearUserHasParachute(%0) g_bitHasParachute &= ~(1<<(%0&31))
#define HasUserParachute(%0) g_bitHasParachute & (1<<(%0&31))
new g_bitHasParachute
new g_iUserParachute[MAX_PLAYERS+1]
new Float:g_flEntityFrame[MAX_PLAYERS+1]
new g_iModelIndex
new g_pCvarFallSpeed
new const PARACHUTE_CLASS[] = "parachute"
enum {
deploy,
idle,
detach
}
public plugin_init() {
register_plugin(_PLUGIN, _VERSION, _AUTHOR)
g_pCvarFallSpeed = register_cvar("parachute_fallspeed", "30")
register_forward( FM_CmdStart, "fw_Start" )
RegisterHam(Ham_Spawn, "player", "Ham_CBasePlayer_Spawn_Post", 1)
RegisterHam(Ham_Killed, "player", "Ham_CBasePlayer_Killed_Post", 1)
}
public plugin_precache() {
g_iModelIndex = precache_model(PARACHUTE_MODEL)
}
public client_putinserver(id) {
if( HasUserParachute(id) ) {
new iEnt = g_iUserParachute[id]
if( iEnt ) {
RemoveUserParachute(id, iEnt)
}
ClearUserHasParachute(id)
}
}
public client_disconnect(id) {
if( HasUserParachute(id) ) {
new iEnt = g_iUserParachute[id]
if( iEnt ) {
RemoveUserParachute(id, iEnt)
}
ClearUserHasParachute(id)
}
}
public Ham_CBasePlayer_Killed_Post( id ) {
if( HasUserParachute(id) ) {
new iEnt = g_iUserParachute[id]
if( iEnt ) {
RemoveUserParachute(id, iEnt)
}
ClearUserHasParachute(id)
}
}
public Ham_CBasePlayer_Spawn_Post(id) {
if( is_user_alive(id) ) {
if( HasUserParachute(id) ) {
new iEnt = g_iUserParachute[id]
if( iEnt ) {
RemoveUserParachute(id, iEnt)
}
}
MarkUserHasParachute(id)
}
}
RemoveUserParachute(id, iEnt) {
engfunc(EngFunc_RemoveEntity, iEnt)
g_iUserParachute[id] = 0
}
CreateParachute(id) {
static iszInfoTarget
if( !iszInfoTarget ) {
iszInfoTarget = engfunc(EngFunc_AllocString, "info_target")
}
new iEnt = engfunc(EngFunc_CreateNamedEntity, iszInfoTarget)
if( iEnt > 0) {
static iszClass = 0
if( !iszClass ) {
iszClass = engfunc(EngFunc_AllocString, PARACHUTE_CLASS)
}
set_pev_string(iEnt, pev_classname, iszClass)
set_pev(iEnt, pev_aiment, id)
set_pev(iEnt, pev_owner, id)
set_pev(iEnt, pev_movetype, MOVETYPE_FOLLOW)
static iszModel = 0
if( !iszModel ) {
iszModel = engfunc(EngFunc_AllocString, PARACHUTE_MODEL)
}
set_pev_string(iEnt, pev_model, iszModel)
set_pev(iEnt, pev_modelindex, g_iModelIndex)
set_pev(iEnt, pev_sequence, deploy)
set_pev(iEnt, pev_gaitsequence, 1)
set_pev(iEnt, pev_frame, 0.0)
g_flEntityFrame[id] = 0.0
g_iUserParachute[id] = iEnt
MarkUserHasParachute(id)
new Float:fVecOrigin[3]
pev(id, pev_origin, fVecOrigin)
return iEnt
}
return 0
}
public fw_Start(id) {
if( ~HasUserParachute(id) || !is_user_alive(id) || !(get_user_flags(id) & ADMIN_FLAG) ) {
return
}
new Float:flFrame
new iEnt = g_iUserParachute[id]
if(iEnt > 0 && pev(id, pev_flags) & FL_ONGROUND) {
if( pev(iEnt, pev_sequence) != detach ) {
set_pev(iEnt, pev_sequence, detach)
set_pev(iEnt, pev_gaitsequence, 1)
set_pev(iEnt, pev_frame, 0.0)
g_flEntityFrame[id] = 0.0
set_pev(iEnt, pev_animtime, 0.0)
set_pev(iEnt, pev_framerate, 0.0)
return
}
pev(iEnt, pev_frame, flFrame)
if( flFrame > 252.0 ) {
RemoveUserParachute(id, iEnt)
return
}
flFrame += 2.0
g_flEntityFrame[id] = flFrame
set_pev(iEnt, pev_frame, flFrame)
return
}
if( pev(id, pev_button) & IN_USE ) {
new Float:fVecVelocity[3], Float:fVelocity_z
pev(id, pev_velocity, fVecVelocity)
fVelocity_z = fVecVelocity[2]
if( fVelocity_z < 0.0 ) {
if(iEnt <= 0) {
iEnt = CreateParachute(id)
}
fVelocity_z = floatmin(fVelocity_z + 15.0, -get_pcvar_float(g_pCvarFallSpeed))
fVecVelocity[2] = fVelocity_z
set_pev(id, pev_velocity, fVecVelocity)
if( pev(iEnt, pev_sequence) == deploy ) {
flFrame = g_flEntityFrame[id]++
if( flFrame > 100.0 ) {
set_pev(iEnt, pev_animtime, 0.0)
set_pev(iEnt, pev_framerate, 0.4)
set_pev(iEnt, pev_sequence, idle)
set_pev(iEnt, pev_gaitsequence, 1)
set_pev(iEnt, pev_frame, 0.0)
g_flEntityFrame[id] = 0.0
}
else {
set_pev(iEnt, pev_frame, flFrame)
}
}
}
else if(iEnt > 0) {
RemoveUserParachute(id, iEnt)
}
}
else if( iEnt > 0 && pev(id, pev_oldbuttons) & IN_USE ) {
RemoveUserParachute(id, iEnt)
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang10266\\ f0\\ fs16 \n\\ par }
*/
Много ясно. Колко пъти да ви се каже да не теглите от там?Теглил съм от цс хлапе инфо,но не ми работят
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Парашут плъгин
Няма причина да не работи. За всякакъв мод е. Нищо, че е пуснато в Zombie Plague раздела.
Парашут плъгин
Като го изтегля си работи без проблеми,но не знам как да сменя да работи с флаг И за чат.Както и като добавя този модел който съм дал ми дава грешка и сървъра спира.Bartian написа: ↑13 Сеп 2019, 23:30 1.https://forums.alliedmods.net/showthread.php?t=11514
2. Влизаш в сма файла и сменяш името на модела с този който искаш не е нито трудно , нито невъзможно!
3.За да може само админ да има парашут има квар , настрой го и си готов!
-
Bartian
Извън линия - Потребител
- Мнения: 280
- Регистриран на: 01 Сеп 2018, 14:43
- Се отблагодари: 65 пъти
- Получена благодарност: 78 пъти
Парашут плъгин
@OciXCrom Момчето ясно е посочил , че е искал парашута да е за админи и випове а този който ти си дал няма тази функция + не виждам какво лошо има старата версия след като работи без проблем.
@1n1 Качи ли модела в sv_downloadurl + промени ли името на модела в сма файла ? Ако не можеш кажи с какво име е модела и аз ако нещо ще редактирам мнението си в този пост.
Относно флага на чата пробвай така.
@1n1 Качи ли модела в sv_downloadurl + промени ли името на модела в сма файла ? Ако не можеш кажи с какво име е модела и аз ако нещо ще редактирам мнението си в този пост.
Относно флага на чата пробвай така.
Код за потвърждение: Избери целия код
/***************************************************************************************************
AMX Parachute
Version: 0.2.2
Author: KRoTaL
0.1 Release
0.1.1 Players can't buy a parachute if they already own one
0.1.2 Release for AMX MOD X
0.1.3 Minor changes
0.1.4 Players lose their parachute if they die
0.1.5 Added amx_parachute cvar
0.1.6 Changed set_origin to movetype_follow (you won't see your own parachute)
0.1.7 Added amx_parachute <name> | admins with admin level a get a free parachute
0.1.8 Fixed the give parachute command
added a admin_parachute cvar to give admins with level A a free parachute
0.1.9 Added a sell command & added a cvar to get money back
0.2.0 Added para_free cvar to give everyone a free parachute
0.2.1 Fixed some minor bugs
0.2.2 Fixed the parachute remove bug
0.2.3 Fixed the alive bug
Commands:
say buy_parachute - buys a parachute
amx_parachute <name>|@all - gives a player a free parachute
Press +use to slow down your fall.
Cvars:
sv_parachute "1" - 0: disables the plugin
1: enables the plugin
parachute_cost "1000" - cost of the parachute
admin_parachute "0" - 0: admins with level A won't get a free parachute
1: admins with level A get a free parachute
parachute_payback "75" - the amount you get back of the parachute in %(75/100*1000) = 750
para_free "0" - 0: no free parachute
1: free parachute for everyone
Setup (AMXX 1.71):
Install the amxx file.
Enable engine and cstrike(amxx's modules.ini)
Put the parachute.mdl file in the cstrike/models folder
***************************************************************************************************/
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#define PLUGINNAME "AMXX Parachute"
#define VERSION "0.2.3"
#define AUTHOR "KRoT@L"
new bool:has_parachute[33];
new para_ent[33];
new bool:had_parachute[33];
new bool:player_died[33];
public plugin_init()
{
register_plugin( PLUGINNAME, VERSION, AUTHOR )
register_dictionary( "parachute.txt" )
register_concmd( "say buy_parachute", "buy_parachute" )
register_concmd( "say sell_parachute", "sell_parachute" )
register_concmd( "amx_parachute", "give_parachute", ADMIN_LEVEL_A, "amx_parachute <name, @all>" )
register_cvar( "sv_parachute", "1" )
register_cvar( "parachute_cost", "1000" )
register_cvar( "parachute_payback", "75" )
register_cvar( "admin_parachute", "0" )
register_cvar( "para_free", "0" )
register_logevent( "event_roundstart", 2, "0=World triggered", "1=Round_Start" )
register_logevent( "event_roundend", 2, "0=World triggered", "1=Round_End" )
register_event( "ResetHUD", "event_resethud", "be" )
register_event( "DeathMsg", "death_event", "a" )
}
public plugin_modules() {
require_module( "engine" )
require_module( "cstrike" )
}
public plugin_precache()
{
precache_model("models/parachute.mdl")
}
public client_connect(id)
{
if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
}
has_parachute[id] = false
para_ent[id] = 0
}
public event_roundstart() {
new MaxPlayers = get_maxplayers();
for( new id; id < MaxPlayers; id++ ) {
if( had_parachute[id] == true && player_died[id] == false ) {
has_parachute[id] = true
}
}
set_task( 3.0, "free_parachute" );
}
public event_roundend() {
new MaxPlayers = get_maxplayers();
for( new id; id < MaxPlayers; id++ ) {
if( is_user_alive( id ) ) {
if( has_parachute[id] == true ) {
had_parachute[id] = true;
}else{
had_parachute[id] = false;
}
player_died[id] = false;
}else {
if(para_ent[id] > 0) {
remove_entity(para_ent[id])
}
has_parachute[id] = false
para_ent[id] = 0
player_died[id] = true;
}
}
}
public event_resethud( id ) {
if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
}
has_parachute[id] = false
para_ent[id] = 0
}
public death_event()
{
new id = read_data(2)
if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
}
has_parachute[id] = false
para_ent[id] = 0
player_died[id] = true
}
public buy_parachute(id) {
if(get_cvar_num( "sv_parachute" ) == 0)
{
client_print(id, print_chat, "%L", id, "para_disabled")
return PLUGIN_HANDLED
}
if(has_parachute[id])
{
client_print(id, print_chat, "%L", id, "para_has" )
return PLUGIN_HANDLED
}
new money = cs_get_user_money(id)
new cost = get_cvar_num( "parachute_cost" )
if(money < cost)
{
client_print(id, print_chat, "%L", id, "para_money", cost)
return PLUGIN_CONTINUE
}
cs_set_user_money(id, money - cost)
client_print(id, print_chat, "%L", id, "para_buy" )
has_parachute[id] = true
return PLUGIN_CONTINUE
}
public sell_parachute(id) {
if (get_cvar_num("sv_parachute") == 0) {
client_print(id, print_chat, "%L", id, "para_disabled")
return PLUGIN_CONTINUE
}
if (has_parachute[id]) {
if(para_ent[id] > 0)
{
if(is_valid_ent(para_ent[id])) {
remove_entity(para_ent[id])
}
}
has_parachute[id] = false
para_ent[id] = 0
new money = cs_get_user_money(id)
new cost = get_cvar_num("parachute_cost")
new payback = floatround(float(cost) * (get_cvar_float("parachute_payback") / 100))
cs_set_user_money(id, money + payback)
client_print(id, print_chat, "%L", id, "para_sell", payback)
}
return PLUGIN_CONTINUE
}
public free_parachute() {
new maxPlayers = get_maxplayers();
if(get_cvar_num( "sv_parachute" ) == 0) return PLUGIN_CONTINUE
for( new i = 1; i <= maxPlayers; i++ )
{
if( !is_user_connected( i ) ) return PLUGIN_CONTINUE
if ( get_cvar_num( "para_free") == 1 ) {
client_print( i, print_chat, "%L", LANG_PLAYER, "para_admin_free" )
has_parachute[i] = true
return PLUGIN_CONTINUE
}
if ( get_cvar_num("admin_parachute") == 1 && get_user_flags( i ) && ADMIN_CHAT ) {
client_print( i, print_chat, "%L", LANG_PLAYER, "para_admin_free" )
has_parachute[i] = true
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}
public give_parachute(id, level, cid) {
if (!cmd_access(id, level, cid, 2 ) ) {
return PLUGIN_CONTINUE
}
if (get_cvar_num("sv_parachute") == 0 ) {
client_print(id, print_chat, "%L", id, "para_disabled")
return PLUGIN_CONTINUE
}else{
new arg[32]
read_argv( 1, arg, 31 )
if (arg[0] == '@' && arg[1] == 'a') {
new maxPlayers = get_maxplayers();
for( new i = 1; i <= maxPlayers; i++ )
{
client_print( i, print_chat, "%L", LANG_PLAYER, "para_free_all" )
has_parachute[i] = true
}
return PLUGIN_CONTINUE
}
new player = cmd_target( id, arg, 4 )
if (has_parachute[id]) {
client_print(id, print_chat, "%L", id, "para_has" )
return PLUGIN_CONTINUE
}
if( !player ) {
client_print( id, print_chat, "%L", id, "para_no_player" )
return PLUGIN_CONTINUE
}else{
client_print(player, print_chat, "%L", player, "para_give" )
has_parachute[player] = true
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}
public client_PreThink(id)
{
if( get_cvar_num( "sv_parachute" ) == 0 )
{
return PLUGIN_CONTINUE
}
if( !is_user_alive(id) )
{
return PLUGIN_CONTINUE
}
if( has_parachute[id] )
{
if (get_user_button(id) & IN_USE )
{
if ( !( get_entity_flags(id) & FL_ONGROUND ) )
{
new Float:velocity[3]
entity_get_vector(id, EV_VEC_velocity, velocity)
if(velocity[2] < 0)
{
if (para_ent[id] == 0)
{
para_ent[id] = create_entity("info_target")
if (para_ent[id] > 0)
{
entity_set_model(para_ent[id], "models/parachute.mdl")
entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_edict(para_ent[id], EV_ENT_aiment, id)
}
}
if (para_ent[id] > 0)
{
velocity[2] = (velocity[2] + 40.0 < -100) ? velocity[2] + 40.0 : -100.0
entity_set_vector(id, EV_VEC_velocity, velocity)
if (entity_get_float(para_ent[id], EV_FL_frame) < 0.0 || entity_get_float(para_ent[id], EV_FL_frame) > 254.0)
{
if (entity_get_int(para_ent[id], EV_INT_sequence) != 1)
{
entity_set_int(para_ent[id], EV_INT_sequence, 1)
}
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
}
else
{
entity_set_float(para_ent[id], EV_FL_frame, entity_get_float(para_ent[id], EV_FL_frame) + 1.0)
}
}
}
else
{
if (para_ent[id] > 0)
{
remove_entity(para_ent[id])
para_ent[id] = 0
}
}
}
else
{
if (para_ent[id] > 0)
{
remove_entity(para_ent[id])
para_ent[id] = 0
}
}
}
else if (get_user_oldbutton(id) & IN_USE)
{
if (para_ent[id] > 0)
{
remove_entity(para_ent[id])
para_ent[id] = 0
}
}
}
return PLUGIN_CONTINUE
}
Думата "хакер" е неправилно използвана в смисъл на "компютърен хакер" от някои журналисти. Ние, хакерите, отказваме да приемем това тълкуване и продължаваме да означаваме с него смисъла на "някой, който обича да го програмира и да го ползва".
-
mi0
Извън линия - AMXX Скриптър
- Мнения: 534
- Регистриран на: 09 Дек 2016, 22:02
- Се отблагодари: 97 пъти
- Получена благодарност: 120 пъти
- Обратна връзка:
Парашут плъгин
Проблема е, че плъгина е невероятно зле написан и като пратят 4-5 човека такъв плъгин и фпс-а от 1000 става на 600.Bartian написа: ↑14 Сеп 2019, 01:43 @OciXCrom Момчето ясно е посочил , че е искал парашута да е за админи и випове а този който ти си дал няма тази функция + не виждам какво лошо има старата версия след като работи без проблем.
@1n1 Качи ли модела в sv_downloadurl + промени ли името на модела в сма файла ? Ако не можеш кажи с какво име е модела и аз ако нещо ще редактирам мнението си в този пост.
Относно флага на чата пробвай така.Код за потвърждение: Избери целия код
/*************************************************************************************************** AMX Parachute Version: 0.2.2 Author: KRoTaL 0.1 Release 0.1.1 Players can't buy a parachute if they already own one 0.1.2 Release for AMX MOD X 0.1.3 Minor changes 0.1.4 Players lose their parachute if they die 0.1.5 Added amx_parachute cvar 0.1.6 Changed set_origin to movetype_follow (you won't see your own parachute) 0.1.7 Added amx_parachute <name> | admins with admin level a get a free parachute 0.1.8 Fixed the give parachute command added a admin_parachute cvar to give admins with level A a free parachute 0.1.9 Added a sell command & added a cvar to get money back 0.2.0 Added para_free cvar to give everyone a free parachute 0.2.1 Fixed some minor bugs 0.2.2 Fixed the parachute remove bug 0.2.3 Fixed the alive bug Commands: say buy_parachute - buys a parachute amx_parachute <name>|@all - gives a player a free parachute Press +use to slow down your fall. Cvars: sv_parachute "1" - 0: disables the plugin 1: enables the plugin parachute_cost "1000" - cost of the parachute admin_parachute "0" - 0: admins with level A won't get a free parachute 1: admins with level A get a free parachute parachute_payback "75" - the amount you get back of the parachute in %(75/100*1000) = 750 para_free "0" - 0: no free parachute 1: free parachute for everyone Setup (AMXX 1.71): Install the amxx file. Enable engine and cstrike(amxx's modules.ini) Put the parachute.mdl file in the cstrike/models folder ***************************************************************************************************/ #include <amxmodx> #include <amxmisc> #include <engine> #include <cstrike> #define PLUGINNAME "AMXX Parachute" #define VERSION "0.2.3" #define AUTHOR "KRoT@L" new bool:has_parachute[33]; new para_ent[33]; new bool:had_parachute[33]; new bool:player_died[33]; public plugin_init() { register_plugin( PLUGINNAME, VERSION, AUTHOR ) register_dictionary( "parachute.txt" ) register_concmd( "say buy_parachute", "buy_parachute" ) register_concmd( "say sell_parachute", "sell_parachute" ) register_concmd( "amx_parachute", "give_parachute", ADMIN_LEVEL_A, "amx_parachute <name, @all>" ) register_cvar( "sv_parachute", "1" ) register_cvar( "parachute_cost", "1000" ) register_cvar( "parachute_payback", "75" ) register_cvar( "admin_parachute", "0" ) register_cvar( "para_free", "0" ) register_logevent( "event_roundstart", 2, "0=World triggered", "1=Round_Start" ) register_logevent( "event_roundend", 2, "0=World triggered", "1=Round_End" ) register_event( "ResetHUD", "event_resethud", "be" ) register_event( "DeathMsg", "death_event", "a" ) } public plugin_modules() { require_module( "engine" ) require_module( "cstrike" ) } public plugin_precache() { precache_model("models/parachute.mdl") } public client_connect(id) { if(para_ent[id] > 0) { remove_entity(para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 } public event_roundstart() { new MaxPlayers = get_maxplayers(); for( new id; id < MaxPlayers; id++ ) { if( had_parachute[id] == true && player_died[id] == false ) { has_parachute[id] = true } } set_task( 3.0, "free_parachute" ); } public event_roundend() { new MaxPlayers = get_maxplayers(); for( new id; id < MaxPlayers; id++ ) { if( is_user_alive( id ) ) { if( has_parachute[id] == true ) { had_parachute[id] = true; }else{ had_parachute[id] = false; } player_died[id] = false; }else { if(para_ent[id] > 0) { remove_entity(para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 player_died[id] = true; } } } public event_resethud( id ) { if(para_ent[id] > 0) { remove_entity(para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 } public death_event() { new id = read_data(2) if(para_ent[id] > 0) { remove_entity(para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 player_died[id] = true } public buy_parachute(id) { if(get_cvar_num( "sv_parachute" ) == 0) { client_print(id, print_chat, "%L", id, "para_disabled") return PLUGIN_HANDLED } if(has_parachute[id]) { client_print(id, print_chat, "%L", id, "para_has" ) return PLUGIN_HANDLED } new money = cs_get_user_money(id) new cost = get_cvar_num( "parachute_cost" ) if(money < cost) { client_print(id, print_chat, "%L", id, "para_money", cost) return PLUGIN_CONTINUE } cs_set_user_money(id, money - cost) client_print(id, print_chat, "%L", id, "para_buy" ) has_parachute[id] = true return PLUGIN_CONTINUE } public sell_parachute(id) { if (get_cvar_num("sv_parachute") == 0) { client_print(id, print_chat, "%L", id, "para_disabled") return PLUGIN_CONTINUE } if (has_parachute[id]) { if(para_ent[id] > 0) { if(is_valid_ent(para_ent[id])) { remove_entity(para_ent[id]) } } has_parachute[id] = false para_ent[id] = 0 new money = cs_get_user_money(id) new cost = get_cvar_num("parachute_cost") new payback = floatround(float(cost) * (get_cvar_float("parachute_payback") / 100)) cs_set_user_money(id, money + payback) client_print(id, print_chat, "%L", id, "para_sell", payback) } return PLUGIN_CONTINUE } public free_parachute() { new maxPlayers = get_maxplayers(); if(get_cvar_num( "sv_parachute" ) == 0) return PLUGIN_CONTINUE for( new i = 1; i <= maxPlayers; i++ ) { if( !is_user_connected( i ) ) return PLUGIN_CONTINUE if ( get_cvar_num( "para_free") == 1 ) { client_print( i, print_chat, "%L", LANG_PLAYER, "para_admin_free" ) has_parachute[i] = true return PLUGIN_CONTINUE } if ( get_cvar_num("admin_parachute") == 1 && get_user_flags( i ) && ADMIN_CHAT ) { client_print( i, print_chat, "%L", LANG_PLAYER, "para_admin_free" ) has_parachute[i] = true return PLUGIN_CONTINUE } } return PLUGIN_CONTINUE } public give_parachute(id, level, cid) { if (!cmd_access(id, level, cid, 2 ) ) { return PLUGIN_CONTINUE } if (get_cvar_num("sv_parachute") == 0 ) { client_print(id, print_chat, "%L", id, "para_disabled") return PLUGIN_CONTINUE }else{ new arg[32] read_argv( 1, arg, 31 ) if (arg[0] == '@' && arg[1] == 'a') { new maxPlayers = get_maxplayers(); for( new i = 1; i <= maxPlayers; i++ ) { client_print( i, print_chat, "%L", LANG_PLAYER, "para_free_all" ) has_parachute[i] = true } return PLUGIN_CONTINUE } new player = cmd_target( id, arg, 4 ) if (has_parachute[id]) { client_print(id, print_chat, "%L", id, "para_has" ) return PLUGIN_CONTINUE } if( !player ) { client_print( id, print_chat, "%L", id, "para_no_player" ) return PLUGIN_CONTINUE }else{ client_print(player, print_chat, "%L", player, "para_give" ) has_parachute[player] = true return PLUGIN_CONTINUE } } return PLUGIN_CONTINUE } public client_PreThink(id) { if( get_cvar_num( "sv_parachute" ) == 0 ) { return PLUGIN_CONTINUE } if( !is_user_alive(id) ) { return PLUGIN_CONTINUE } if( has_parachute[id] ) { if (get_user_button(id) & IN_USE ) { if ( !( get_entity_flags(id) & FL_ONGROUND ) ) { new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) if(velocity[2] < 0) { if (para_ent[id] == 0) { para_ent[id] = create_entity("info_target") if (para_ent[id] > 0) { entity_set_model(para_ent[id], "models/parachute.mdl") entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW) entity_set_edict(para_ent[id], EV_ENT_aiment, id) } } if (para_ent[id] > 0) { velocity[2] = (velocity[2] + 40.0 < -100) ? velocity[2] + 40.0 : -100.0 entity_set_vector(id, EV_VEC_velocity, velocity) if (entity_get_float(para_ent[id], EV_FL_frame) < 0.0 || entity_get_float(para_ent[id], EV_FL_frame) > 254.0) { if (entity_get_int(para_ent[id], EV_INT_sequence) != 1) { entity_set_int(para_ent[id], EV_INT_sequence, 1) } entity_set_float(para_ent[id], EV_FL_frame, 0.0) } else { entity_set_float(para_ent[id], EV_FL_frame, entity_get_float(para_ent[id], EV_FL_frame) + 1.0) } } } else { if (para_ent[id] > 0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } } else { if (para_ent[id] > 0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } } else if (get_user_oldbutton(id) & IN_USE) { if (para_ent[id] > 0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } } return PLUGIN_CONTINUE }
aka kurdokoleno
Catch Mod - 87.121.112.232:27021
Catch Mod - 87.121.112.232:27021
Парашут плъгин
като напиша командата buy_parachute ми дава парашут и като не съм админ.Както и да е и така да остане е ок,но като пробвам да сложа скина за парашут пак ми изписва грешка.Парашута го тегля от тук и го слагам в папката на моделите.Може би аз не го правя както трябва тъй като има две опции и аз вземам само от папката Server Side и ги разархивирам в страйк папката.Рескам сървъра,но като го ресна дава грешка Load model not found и сървъра се рестартира.Bartian написа: ↑14 Сеп 2019, 01:43 @OciXCrom Момчето ясно е посочил , че е искал парашута да е за админи и випове а този който ти си дал няма тази функция + не виждам какво лошо има старата версия след като работи без проблем.
@1n1 Качи ли модела в sv_downloadurl + промени ли името на модела в сма файла ? Ако не можеш кажи с какво име е модела и аз ако нещо ще редактирам мнението си в този пост.
Относно флага на чата пробвай така.Код за потвърждение: Избери целия код
/*************************************************************************************************** AMX Parachute Version: 0.2.2 Author: KRoTaL 0.1 Release 0.1.1 Players can't buy a parachute if they already own one 0.1.2 Release for AMX MOD X 0.1.3 Minor changes 0.1.4 Players lose their parachute if they die 0.1.5 Added amx_parachute cvar 0.1.6 Changed set_origin to movetype_follow (you won't see your own parachute) 0.1.7 Added amx_parachute <name> | admins with admin level a get a free parachute 0.1.8 Fixed the give parachute command added a admin_parachute cvar to give admins with level A a free parachute 0.1.9 Added a sell command & added a cvar to get money back 0.2.0 Added para_free cvar to give everyone a free parachute 0.2.1 Fixed some minor bugs 0.2.2 Fixed the parachute remove bug 0.2.3 Fixed the alive bug Commands: say buy_parachute - buys a parachute amx_parachute <name>|@all - gives a player a free parachute Press +use to slow down your fall. Cvars: sv_parachute "1" - 0: disables the plugin 1: enables the plugin parachute_cost "1000" - cost of the parachute admin_parachute "0" - 0: admins with level A won't get a free parachute 1: admins with level A get a free parachute parachute_payback "75" - the amount you get back of the parachute in %(75/100*1000) = 750 para_free "0" - 0: no free parachute 1: free parachute for everyone Setup (AMXX 1.71): Install the amxx file. Enable engine and cstrike(amxx's modules.ini) Put the parachute.mdl file in the cstrike/models folder ***************************************************************************************************/ #include <amxmodx> #include <amxmisc> #include <engine> #include <cstrike> #define PLUGINNAME "AMXX Parachute" #define VERSION "0.2.3" #define AUTHOR "KRoT@L" new bool:has_parachute[33]; new para_ent[33]; new bool:had_parachute[33]; new bool:player_died[33]; public plugin_init() { register_plugin( PLUGINNAME, VERSION, AUTHOR ) register_dictionary( "parachute.txt" ) register_concmd( "say buy_parachute", "buy_parachute" ) register_concmd( "say sell_parachute", "sell_parachute" ) register_concmd( "amx_parachute", "give_parachute", ADMIN_LEVEL_A, "amx_parachute <name, @all>" ) register_cvar( "sv_parachute", "1" ) register_cvar( "parachute_cost", "1000" ) register_cvar( "parachute_payback", "75" ) register_cvar( "admin_parachute", "0" ) register_cvar( "para_free", "0" ) register_logevent( "event_roundstart", 2, "0=World triggered", "1=Round_Start" ) register_logevent( "event_roundend", 2, "0=World triggered", "1=Round_End" ) register_event( "ResetHUD", "event_resethud", "be" ) register_event( "DeathMsg", "death_event", "a" ) } public plugin_modules() { require_module( "engine" ) require_module( "cstrike" ) } public plugin_precache() { precache_model("models/parachute.mdl") } public client_connect(id) { if(para_ent[id] > 0) { remove_entity(para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 } public event_roundstart() { new MaxPlayers = get_maxplayers(); for( new id; id < MaxPlayers; id++ ) { if( had_parachute[id] == true && player_died[id] == false ) { has_parachute[id] = true } } set_task( 3.0, "free_parachute" ); } public event_roundend() { new MaxPlayers = get_maxplayers(); for( new id; id < MaxPlayers; id++ ) { if( is_user_alive( id ) ) { if( has_parachute[id] == true ) { had_parachute[id] = true; }else{ had_parachute[id] = false; } player_died[id] = false; }else { if(para_ent[id] > 0) { remove_entity(para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 player_died[id] = true; } } } public event_resethud( id ) { if(para_ent[id] > 0) { remove_entity(para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 } public death_event() { new id = read_data(2) if(para_ent[id] > 0) { remove_entity(para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 player_died[id] = true } public buy_parachute(id) { if(get_cvar_num( "sv_parachute" ) == 0) { client_print(id, print_chat, "%L", id, "para_disabled") return PLUGIN_HANDLED } if(has_parachute[id]) { client_print(id, print_chat, "%L", id, "para_has" ) return PLUGIN_HANDLED } new money = cs_get_user_money(id) new cost = get_cvar_num( "parachute_cost" ) if(money < cost) { client_print(id, print_chat, "%L", id, "para_money", cost) return PLUGIN_CONTINUE } cs_set_user_money(id, money - cost) client_print(id, print_chat, "%L", id, "para_buy" ) has_parachute[id] = true return PLUGIN_CONTINUE } public sell_parachute(id) { if (get_cvar_num("sv_parachute") == 0) { client_print(id, print_chat, "%L", id, "para_disabled") return PLUGIN_CONTINUE } if (has_parachute[id]) { if(para_ent[id] > 0) { if(is_valid_ent(para_ent[id])) { remove_entity(para_ent[id]) } } has_parachute[id] = false para_ent[id] = 0 new money = cs_get_user_money(id) new cost = get_cvar_num("parachute_cost") new payback = floatround(float(cost) * (get_cvar_float("parachute_payback") / 100)) cs_set_user_money(id, money + payback) client_print(id, print_chat, "%L", id, "para_sell", payback) } return PLUGIN_CONTINUE } public free_parachute() { new maxPlayers = get_maxplayers(); if(get_cvar_num( "sv_parachute" ) == 0) return PLUGIN_CONTINUE for( new i = 1; i <= maxPlayers; i++ ) { if( !is_user_connected( i ) ) return PLUGIN_CONTINUE if ( get_cvar_num( "para_free") == 1 ) { client_print( i, print_chat, "%L", LANG_PLAYER, "para_admin_free" ) has_parachute[i] = true return PLUGIN_CONTINUE } if ( get_cvar_num("admin_parachute") == 1 && get_user_flags( i ) && ADMIN_CHAT ) { client_print( i, print_chat, "%L", LANG_PLAYER, "para_admin_free" ) has_parachute[i] = true return PLUGIN_CONTINUE } } return PLUGIN_CONTINUE } public give_parachute(id, level, cid) { if (!cmd_access(id, level, cid, 2 ) ) { return PLUGIN_CONTINUE } if (get_cvar_num("sv_parachute") == 0 ) { client_print(id, print_chat, "%L", id, "para_disabled") return PLUGIN_CONTINUE }else{ new arg[32] read_argv( 1, arg, 31 ) if (arg[0] == '@' && arg[1] == 'a') { new maxPlayers = get_maxplayers(); for( new i = 1; i <= maxPlayers; i++ ) { client_print( i, print_chat, "%L", LANG_PLAYER, "para_free_all" ) has_parachute[i] = true } return PLUGIN_CONTINUE } new player = cmd_target( id, arg, 4 ) if (has_parachute[id]) { client_print(id, print_chat, "%L", id, "para_has" ) return PLUGIN_CONTINUE } if( !player ) { client_print( id, print_chat, "%L", id, "para_no_player" ) return PLUGIN_CONTINUE }else{ client_print(player, print_chat, "%L", player, "para_give" ) has_parachute[player] = true return PLUGIN_CONTINUE } } return PLUGIN_CONTINUE } public client_PreThink(id) { if( get_cvar_num( "sv_parachute" ) == 0 ) { return PLUGIN_CONTINUE } if( !is_user_alive(id) ) { return PLUGIN_CONTINUE } if( has_parachute[id] ) { if (get_user_button(id) & IN_USE ) { if ( !( get_entity_flags(id) & FL_ONGROUND ) ) { new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) if(velocity[2] < 0) { if (para_ent[id] == 0) { para_ent[id] = create_entity("info_target") if (para_ent[id] > 0) { entity_set_model(para_ent[id], "models/parachute.mdl") entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW) entity_set_edict(para_ent[id], EV_ENT_aiment, id) } } if (para_ent[id] > 0) { velocity[2] = (velocity[2] + 40.0 < -100) ? velocity[2] + 40.0 : -100.0 entity_set_vector(id, EV_VEC_velocity, velocity) if (entity_get_float(para_ent[id], EV_FL_frame) < 0.0 || entity_get_float(para_ent[id], EV_FL_frame) > 254.0) { if (entity_get_int(para_ent[id], EV_INT_sequence) != 1) { entity_set_int(para_ent[id], EV_INT_sequence, 1) } entity_set_float(para_ent[id], EV_FL_frame, 0.0) } else { entity_set_float(para_ent[id], EV_FL_frame, entity_get_float(para_ent[id], EV_FL_frame) + 1.0) } } } else { if (para_ent[id] > 0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } } else { if (para_ent[id] > 0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } } else if (get_user_oldbutton(id) & IN_USE) { if (para_ent[id] > 0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } } return PLUGIN_CONTINUE }
Добавено преди 4 минути 1 секунда:
1n1 написа: ↑14 Сеп 2019, 13:54като напиша командата buy_parachute ми дава парашут и като не съм админ.Както и да е и така да остане е ок,но като пробвам да сложа скина за парашут пак ми изписва грешка.Парашута го тегля от тук https://gamebanana.com/skins/download/151896 и го слагам в папката на моделите.Може би аз не го правя както трябва тъй като има две опции и аз вземам само от папката Server Side и ги разархивирам в страйк папката.Рескам сървъра,но като го ресна дава грешка Load model not found и сървъра се рестартира.Bartian написа: ↑14 Сеп 2019, 01:43 @OciXCrom Момчето ясно е посочил , че е искал парашута да е за админи и випове а този който ти си дал няма тази функция + не виждам какво лошо има старата версия след като работи без проблем.
@1n1 Качи ли модела в sv_downloadurl + промени ли името на модела в сма файла ? Ако не можеш кажи с какво име е модела и аз ако нещо ще редактирам мнението си в този пост.
Относно флага на чата пробвай така.Код за потвърждение: Избери целия код
/*************************************************************************************************** AMX Parachute Version: 0.2.2 Author: KRoTaL 0.1 Release 0.1.1 Players can't buy a parachute if they already own one 0.1.2 Release for AMX MOD X 0.1.3 Minor changes 0.1.4 Players lose their parachute if they die 0.1.5 Added amx_parachute cvar 0.1.6 Changed set_origin to movetype_follow (you won't see your own parachute) 0.1.7 Added amx_parachute <name> | admins with admin level a get a free parachute 0.1.8 Fixed the give parachute command added a admin_parachute cvar to give admins with level A a free parachute 0.1.9 Added a sell command & added a cvar to get money back 0.2.0 Added para_free cvar to give everyone a free parachute 0.2.1 Fixed some minor bugs 0.2.2 Fixed the parachute remove bug 0.2.3 Fixed the alive bug Commands: say buy_parachute - buys a parachute amx_parachute <name>|@all - gives a player a free parachute Press +use to slow down your fall. Cvars: sv_parachute "1" - 0: disables the plugin 1: enables the plugin parachute_cost "1000" - cost of the parachute admin_parachute "0" - 0: admins with level A won't get a free parachute 1: admins with level A get a free parachute parachute_payback "75" - the amount you get back of the parachute in %(75/100*1000) = 750 para_free "0" - 0: no free parachute 1: free parachute for everyone Setup (AMXX 1.71): Install the amxx file. Enable engine and cstrike(amxx's modules.ini) Put the parachute.mdl file in the cstrike/models folder ***************************************************************************************************/ #include <amxmodx> #include <amxmisc> #include <engine> #include <cstrike> #define PLUGINNAME "AMXX Parachute" #define VERSION "0.2.3" #define AUTHOR "KRoT@L" new bool:has_parachute[33]; new para_ent[33]; new bool:had_parachute[33]; new bool:player_died[33]; public plugin_init() { register_plugin( PLUGINNAME, VERSION, AUTHOR ) register_dictionary( "parachute.txt" ) register_concmd( "say buy_parachute", "buy_parachute" ) register_concmd( "say sell_parachute", "sell_parachute" ) register_concmd( "amx_parachute", "give_parachute", ADMIN_LEVEL_A, "amx_parachute <name, @all>" ) register_cvar( "sv_parachute", "1" ) register_cvar( "parachute_cost", "1000" ) register_cvar( "parachute_payback", "75" ) register_cvar( "admin_parachute", "0" ) register_cvar( "para_free", "0" ) register_logevent( "event_roundstart", 2, "0=World triggered", "1=Round_Start" ) register_logevent( "event_roundend", 2, "0=World triggered", "1=Round_End" ) register_event( "ResetHUD", "event_resethud", "be" ) register_event( "DeathMsg", "death_event", "a" ) } public plugin_modules() { require_module( "engine" ) require_module( "cstrike" ) } public plugin_precache() { precache_model("models/parachute.mdl") } public client_connect(id) { if(para_ent[id] > 0) { remove_entity(para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 } public event_roundstart() { new MaxPlayers = get_maxplayers(); for( new id; id < MaxPlayers; id++ ) { if( had_parachute[id] == true && player_died[id] == false ) { has_parachute[id] = true } } set_task( 3.0, "free_parachute" ); } public event_roundend() { new MaxPlayers = get_maxplayers(); for( new id; id < MaxPlayers; id++ ) { if( is_user_alive( id ) ) { if( has_parachute[id] == true ) { had_parachute[id] = true; }else{ had_parachute[id] = false; } player_died[id] = false; }else { if(para_ent[id] > 0) { remove_entity(para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 player_died[id] = true; } } } public event_resethud( id ) { if(para_ent[id] > 0) { remove_entity(para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 } public death_event() { new id = read_data(2) if(para_ent[id] > 0) { remove_entity(para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 player_died[id] = true } public buy_parachute(id) { if(get_cvar_num( "sv_parachute" ) == 0) { client_print(id, print_chat, "%L", id, "para_disabled") return PLUGIN_HANDLED } if(has_parachute[id]) { client_print(id, print_chat, "%L", id, "para_has" ) return PLUGIN_HANDLED } new money = cs_get_user_money(id) new cost = get_cvar_num( "parachute_cost" ) if(money < cost) { client_print(id, print_chat, "%L", id, "para_money", cost) return PLUGIN_CONTINUE } cs_set_user_money(id, money - cost) client_print(id, print_chat, "%L", id, "para_buy" ) has_parachute[id] = true return PLUGIN_CONTINUE } public sell_parachute(id) { if (get_cvar_num("sv_parachute") == 0) { client_print(id, print_chat, "%L", id, "para_disabled") return PLUGIN_CONTINUE } if (has_parachute[id]) { if(para_ent[id] > 0) { if(is_valid_ent(para_ent[id])) { remove_entity(para_ent[id]) } } has_parachute[id] = false para_ent[id] = 0 new money = cs_get_user_money(id) new cost = get_cvar_num("parachute_cost") new payback = floatround(float(cost) * (get_cvar_float("parachute_payback") / 100)) cs_set_user_money(id, money + payback) client_print(id, print_chat, "%L", id, "para_sell", payback) } return PLUGIN_CONTINUE } public free_parachute() { new maxPlayers = get_maxplayers(); if(get_cvar_num( "sv_parachute" ) == 0) return PLUGIN_CONTINUE for( new i = 1; i <= maxPlayers; i++ ) { if( !is_user_connected( i ) ) return PLUGIN_CONTINUE if ( get_cvar_num( "para_free") == 1 ) { client_print( i, print_chat, "%L", LANG_PLAYER, "para_admin_free" ) has_parachute[i] = true return PLUGIN_CONTINUE } if ( get_cvar_num("admin_parachute") == 1 && get_user_flags( i ) && ADMIN_CHAT ) { client_print( i, print_chat, "%L", LANG_PLAYER, "para_admin_free" ) has_parachute[i] = true return PLUGIN_CONTINUE } } return PLUGIN_CONTINUE } public give_parachute(id, level, cid) { if (!cmd_access(id, level, cid, 2 ) ) { return PLUGIN_CONTINUE } if (get_cvar_num("sv_parachute") == 0 ) { client_print(id, print_chat, "%L", id, "para_disabled") return PLUGIN_CONTINUE }else{ new arg[32] read_argv( 1, arg, 31 ) if (arg[0] == '@' && arg[1] == 'a') { new maxPlayers = get_maxplayers(); for( new i = 1; i <= maxPlayers; i++ ) { client_print( i, print_chat, "%L", LANG_PLAYER, "para_free_all" ) has_parachute[i] = true } return PLUGIN_CONTINUE } new player = cmd_target( id, arg, 4 ) if (has_parachute[id]) { client_print(id, print_chat, "%L", id, "para_has" ) return PLUGIN_CONTINUE } if( !player ) { client_print( id, print_chat, "%L", id, "para_no_player" ) return PLUGIN_CONTINUE }else{ client_print(player, print_chat, "%L", player, "para_give" ) has_parachute[player] = true return PLUGIN_CONTINUE } } return PLUGIN_CONTINUE } public client_PreThink(id) { if( get_cvar_num( "sv_parachute" ) == 0 ) { return PLUGIN_CONTINUE } if( !is_user_alive(id) ) { return PLUGIN_CONTINUE } if( has_parachute[id] ) { if (get_user_button(id) & IN_USE ) { if ( !( get_entity_flags(id) & FL_ONGROUND ) ) { new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) if(velocity[2] < 0) { if (para_ent[id] == 0) { para_ent[id] = create_entity("info_target") if (para_ent[id] > 0) { entity_set_model(para_ent[id], "models/parachute.mdl") entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW) entity_set_edict(para_ent[id], EV_ENT_aiment, id) } } if (para_ent[id] > 0) { velocity[2] = (velocity[2] + 40.0 < -100) ? velocity[2] + 40.0 : -100.0 entity_set_vector(id, EV_VEC_velocity, velocity) if (entity_get_float(para_ent[id], EV_FL_frame) < 0.0 || entity_get_float(para_ent[id], EV_FL_frame) > 254.0) { if (entity_get_int(para_ent[id], EV_INT_sequence) != 1) { entity_set_int(para_ent[id], EV_INT_sequence, 1) } entity_set_float(para_ent[id], EV_FL_frame, 0.0) } else { entity_set_float(para_ent[id], EV_FL_frame, entity_get_float(para_ent[id], EV_FL_frame) + 1.0) } } } else { if (para_ent[id] > 0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } } else { if (para_ent[id] > 0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } } else if (get_user_oldbutton(id) & IN_USE) { if (para_ent[id] > 0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } } return PLUGIN_CONTINUE }
-
JackEyedJones
Извън линия - Потребител
- Мнения: 399
- Регистриран на: 10 Сеп 2018, 17:26
- Местоположение: Plovdiv, Bulgaria, Europe, Entire World
- Се отблагодари: 4 пъти
- Получена благодарност: 69 пъти
- Обратна връзка:
Парашут плъгин
В папка models направи папка parachute_plugin и постави в нея parachute.mdl
Коригирал съм кода на плъгина с правилния път до модела в precache.
Поставен е флаг за командата buy_parachute в чата.
Код за потвърждение: Избери целия код
/***************************************************************************************************
AMX Parachute
Version: 0.2.2
Author: KRoTaL
0.1 Release
0.1.1 Players can't buy a parachute if they already own one
0.1.2 Release for AMX MOD X
0.1.3 Minor changes
0.1.4 Players lose their parachute if they die
0.1.5 Added amx_parachute cvar
0.1.6 Changed set_origin to movetype_follow (you won't see your own parachute)
0.1.7 Added amx_parachute <name> | admins with admin level a get a free parachute
0.1.8 Fixed the give parachute command
added a admin_parachute cvar to give admins with level A a free parachute
0.1.9 Added a sell command & added a cvar to get money back
0.2.0 Added para_free cvar to give everyone a free parachute
0.2.1 Fixed some minor bugs
0.2.2 Fixed the parachute remove bug
0.2.3 Fixed the alive bug
Commands:
say buy_parachute - buys a parachute
amx_parachute <name>|@all - gives a player a free parachute
Press +use to slow down your fall.
Cvars:
sv_parachute "1" - 0: disables the plugin
1: enables the plugin
parachute_cost "1000" - cost of the parachute
admin_parachute "0" - 0: admins with level A won't get a free parachute
1: admins with level A get a free parachute
parachute_payback "75" - the amount you get back of the parachute in %(75/100*1000) = 750
para_free "0" - 0: no free parachute
1: free parachute for everyone
Setup (AMXX 1.71):
Install the amxx file.
Enable engine and cstrike(amxx's modules.ini)
Put the parachute.mdl file in the cstrike/models folder
***************************************************************************************************/
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#define PLUGINNAME "AMXX Parachute"
#define VERSION "0.2.3"
#define AUTHOR "KRoT@L"
new bool:has_parachute[33];
new para_ent[33];
new bool:had_parachute[33];
new bool:player_died[33];
#define PARACHUTE_BUY_FLAG ADMIN_LEVEL_A
public plugin_init()
{
register_plugin( PLUGINNAME, VERSION, AUTHOR )
register_dictionary( "parachute.txt" )
register_concmd( "say buy_parachute", "buy_parachute" )
register_concmd( "say sell_parachute", "sell_parachute" )
register_concmd( "amx_parachute", "give_parachute", ADMIN_LEVEL_A, "amx_parachute <name, @all>" )
register_cvar( "sv_parachute", "1" )
register_cvar( "parachute_cost", "1000" )
register_cvar( "parachute_payback", "75" )
register_cvar( "admin_parachute", "0" )
register_cvar( "para_free", "0" )
register_logevent( "event_roundstart", 2, "0=World triggered", "1=Round_Start" )
register_logevent( "event_roundend", 2, "0=World triggered", "1=Round_End" )
register_event( "ResetHUD", "event_resethud", "be" )
register_event( "DeathMsg", "death_event", "a" )
}
public plugin_modules() {
require_module( "engine" )
require_module( "cstrike" )
}
public plugin_precache()
{
precache_model("models/parachute_plugin/parachute.mdl")
}
public client_connect(id)
{
if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
}
has_parachute[id] = false
para_ent[id] = 0
}
public event_roundstart() {
new MaxPlayers = get_maxplayers();
for( new id; id < MaxPlayers; id++ ) {
if( had_parachute[id] == true && player_died[id] == false ) {
has_parachute[id] = true
}
}
set_task( 3.0, "free_parachute" );
}
public event_roundend() {
new MaxPlayers = get_maxplayers();
for( new id; id < MaxPlayers; id++ ) {
if( is_user_alive( id ) ) {
if( has_parachute[id] == true ) {
had_parachute[id] = true;
}else{
had_parachute[id] = false;
}
player_died[id] = false;
}else {
if(para_ent[id] > 0) {
remove_entity(para_ent[id])
}
has_parachute[id] = false
para_ent[id] = 0
player_died[id] = true;
}
}
}
public event_resethud( id ) {
if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
}
has_parachute[id] = false
para_ent[id] = 0
}
public death_event()
{
new id = read_data(2)
if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
}
has_parachute[id] = false
para_ent[id] = 0
player_died[id] = true
}
public buy_parachute(id) {
if(get_cvar_num( "sv_parachute" ) == 0)
{
client_print(id, print_chat, "%L", id, "para_disabled")
return PLUGIN_HANDLED
}
if(has_parachute[id])
{
client_print(id, print_chat, "%L", id, "para_has" )
return PLUGIN_HANDLED
}
if(!(get_user_flags(id) & PARACHUTE_BUY_FLAG))
{
client_print(id, print_chat, "Parachute is only for admins.")
return PLUGIN_HANDLED
}
new money = cs_get_user_money(id)
new cost = get_cvar_num( "parachute_cost" )
if(money < cost)
{
client_print(id, print_chat, "%L", id, "para_money", cost)
return PLUGIN_CONTINUE
}
cs_set_user_money(id, money - cost)
client_print(id, print_chat, "%L", id, "para_buy" )
has_parachute[id] = true
return PLUGIN_CONTINUE
}
public sell_parachute(id) {
if (get_cvar_num("sv_parachute") == 0) {
client_print(id, print_chat, "%L", id, "para_disabled")
return PLUGIN_CONTINUE
}
if (has_parachute[id]) {
if(para_ent[id] > 0)
{
if(is_valid_ent(para_ent[id])) {
remove_entity(para_ent[id])
}
}
has_parachute[id] = false
para_ent[id] = 0
new money = cs_get_user_money(id)
new cost = get_cvar_num("parachute_cost")
new payback = floatround(float(cost) * (get_cvar_float("parachute_payback") / 100))
cs_set_user_money(id, money + payback)
client_print(id, print_chat, "%L", id, "para_sell", payback)
}
return PLUGIN_CONTINUE
}
public free_parachute() {
new maxPlayers = get_maxplayers();
if(get_cvar_num( "sv_parachute" ) == 0) return PLUGIN_CONTINUE
for( new i = 1; i <= maxPlayers; i++ )
{
if( !is_user_connected( i ) ) return PLUGIN_CONTINUE
if ( get_cvar_num( "para_free") == 1 ) {
client_print( i, print_chat, "%L", LANG_PLAYER, "para_admin_free" )
has_parachute[i] = true
return PLUGIN_CONTINUE
}
if ( get_cvar_num("admin_parachute") == 1 && get_user_flags( i ) && ADMIN_CHAT ) {
client_print( i, print_chat, "%L", LANG_PLAYER, "para_admin_free" )
has_parachute[i] = true
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}
public give_parachute(id, level, cid) {
if (!cmd_access(id, level, cid, 2 ) ) {
return PLUGIN_CONTINUE
}
if (get_cvar_num("sv_parachute") == 0 ) {
client_print(id, print_chat, "%L", id, "para_disabled")
return PLUGIN_CONTINUE
}else{
new arg[32]
read_argv( 1, arg, 31 )
if (arg[0] == '@' && arg[1] == 'a') {
new maxPlayers = get_maxplayers();
for( new i = 1; i <= maxPlayers; i++ )
{
client_print( i, print_chat, "%L", LANG_PLAYER, "para_free_all" )
has_parachute[i] = true
}
return PLUGIN_CONTINUE
}
new player = cmd_target( id, arg, 4 )
if (has_parachute[id]) {
client_print(id, print_chat, "%L", id, "para_has" )
return PLUGIN_CONTINUE
}
if( !player ) {
client_print( id, print_chat, "%L", id, "para_no_player" )
return PLUGIN_CONTINUE
}else{
client_print(player, print_chat, "%L", player, "para_give" )
has_parachute[player] = true
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}
public client_PreThink(id)
{
if( get_cvar_num( "sv_parachute" ) == 0 )
{
return PLUGIN_CONTINUE
}
if( !is_user_alive(id) )
{
return PLUGIN_CONTINUE
}
if( has_parachute[id] )
{
if (get_user_button(id) & IN_USE )
{
if ( !( get_entity_flags(id) & FL_ONGROUND ) )
{
new Float:velocity[3]
entity_get_vector(id, EV_VEC_velocity, velocity)
if(velocity[2] < 0)
{
if (para_ent[id] == 0)
{
para_ent[id] = create_entity("info_target")
if (para_ent[id] > 0)
{
entity_set_model(para_ent[id], "models/parachute_plugin/parachute.mdl")
entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_edict(para_ent[id], EV_ENT_aiment, id)
}
}
if (para_ent[id] > 0)
{
velocity[2] = (velocity[2] + 40.0 < -100) ? velocity[2] + 40.0 : -100.0
entity_set_vector(id, EV_VEC_velocity, velocity)
if (entity_get_float(para_ent[id], EV_FL_frame) < 0.0 || entity_get_float(para_ent[id], EV_FL_frame) > 254.0)
{
if (entity_get_int(para_ent[id], EV_INT_sequence) != 1)
{
entity_set_int(para_ent[id], EV_INT_sequence, 1)
}
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
}
else
{
entity_set_float(para_ent[id], EV_FL_frame, entity_get_float(para_ent[id], EV_FL_frame) + 1.0)
}
}
}
else
{
if (para_ent[id] > 0)
{
remove_entity(para_ent[id])
para_ent[id] = 0
}
}
}
else
{
if (para_ent[id] > 0)
{
remove_entity(para_ent[id])
para_ent[id] = 0
}
}
}
else if (get_user_oldbutton(id) & IN_USE)
{
if (para_ent[id] > 0)
{
remove_entity(para_ent[id])
para_ent[id] = 0
}
}
}
return PLUGIN_CONTINUE
}
Поставен е флаг за командата buy_parachute в чата.
Код за потвърждение: Избери целия код
#define PARACHUTE_BUY_FLAG ADMIN_LEVEL_A
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 2 Отговори
- 1070 Преглеждания
-
Последно мнение от ChrisBenoit
-
- 1 Отговори
- 1371 Преглеждания
-
Последно мнение от tom1k
-
- 8 Отговори
- 3257 Преглеждания
-
Последно мнение от illusion
-
- 0 Отговори
- 1326 Преглеждания
-
Последно мнение от 4alm
-
- 4 Отговори
- 2520 Преглеждания
-
Последно мнение от someoneh
-
- 1 Отговори
- 1401 Преглеждания
-
Последно мнение от Siska
-
- 3 Отговори
- 911 Преглеждания
-
Последно мнение от bobywTf
Кой е на линия
Потребители разглеждащи този форум: Bing [Bot], Google [Bot] и 10 госта