Става на въпрос за този плъгин - https://forums.alliedmods.net/showthread.php?t=81132
Ако е възможно самата функция на плъгина да работи само за Терористите, тоест ако терорист умре само живите терористи да могат да взимат кръвта, ct-тата не. CT-тата да не могат да виждат health-кита или да го виждат но като пробват да го вземат да пише "This item is only for Terrorists!. И най-важното ако може да се направи да не можеш да се качваш върху него, в момента е като блок и можеш да се качваш и да стоиш вурху него.
Промяна на плъгин Health Kit On Body
-
atmax
Извън линия - Потребител
- Мнения: 492
- Регистриран на: 22 Мар 2018, 15:06
- Се отблагодари: 37 пъти
- Получена благодарност: 43 пъти
Промяна на плъгин Health Kit On Body
Код за потвърждение: Избери целия код
/* Copyright © 2009, tuty
Healthkit On Dead Body is free software;
you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Teleport Destination Angles Editor; if not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include < amxmodx >
#include < fakemeta >
#include < fakemeta_util >
#include <cstrike>
#define PLUGIN_VERSION "3.3"
#define FFADE_IN 0x0000
enum _: iCoords
{
x = 0,
y,
z
};
new const szModelKit[ ] = "models/w_medkit.mdl";
new const szPickupSound[ ] = "items/smallmedkit1.wav";
new gToggleKitEnable;
new gToggleGlowShow;
new gGMsgFade;
new gToggleFadeEnable;
new gToggleRemoveAtRstart;
new gKitHealthCvar;
new gLimitHealthCvar;
new gGMsgItemPickup;
new const gMedKitClassname[ ] = "medkit_entity";
public plugin_init( )
{
register_plugin( "Healthkit on dead body", PLUGIN_VERSION, "tuty" );
register_event( "DeathMsg","Event_DeathMsg","a" );
register_logevent( "LOGEvent_Round_Start", 2, "1=Round_Start" );
register_forward( FM_Touch, "forward_FM_Touch" );
gToggleKitEnable = register_cvar( "kit_enable", "1" );
gToggleGlowShow = register_cvar( "kit_glow", "1" );
gToggleFadeEnable = register_cvar( "kit_fade", "1" );
gToggleRemoveAtRstart = register_cvar( "kit_remove", "0" );
gKitHealthCvar = register_cvar( "kit_health", "20" );
gLimitHealthCvar = register_cvar( "kit_limit_health", "100" );
gGMsgFade = get_user_msgid( "ScreenFade" );
gGMsgItemPickup = get_user_msgid( "ItemPickup" );
}
public plugin_precache( )
{
precache_model( szModelKit );
precache_sound( szPickupSound );
}
public Event_DeathMsg( )
{
if( get_pcvar_num( gToggleKitEnable ) == 0 )
{
return PLUGIN_HANDLED;
}
new iVictim = read_data( 2 );
if(cs_get_user_team(iVictim) == CS_TEAM_CT)
{
return PLUGIN_HANDLED;
}
static Float:flOrigin[ iCoords ];
pev( iVictim, pev_origin, flOrigin );
new iEnt = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
/* --| Modify the origin a little bit. This is calculated to be set on floor */
flOrigin[ z ] -= 36;
engfunc( EngFunc_SetOrigin, iEnt, flOrigin );
if( !pev_valid( iEnt ) )
{
return PLUGIN_HANDLED;
}
set_pev( iEnt, pev_classname, gMedKitClassname );
engfunc( EngFunc_SetModel, iEnt, szModelKit );
dllfunc( DLLFunc_Spawn, iEnt );
set_pev( iEnt, pev_solid, SOLID_NOT );
set_pev( iEnt, pev_movetype, MOVETYPE_NONE );
engfunc( EngFunc_SetSize, iEnt, Float:{ -23.160000, -13.660000, -0.050000 }, Float:{ 11.470000, 12.780000, 6.720000 } );
engfunc( EngFunc_DropToFloor, iEnt );
if( get_pcvar_num( gToggleGlowShow ) == 1 )
{
fm_set_rendering( iEnt, kRenderFxGlowShell, 255, 255, 255, kRenderFxNone, 27 );
}
return PLUGIN_HANDLED;
}
public forward_FM_Touch( iEnt, id )
{
if( !pev_valid( iEnt )
|| get_pcvar_num( gToggleKitEnable ) == 0 )
{
return FMRES_IGNORED;
}
if(cs_get_user_team(id) != CS_TEAM_T)
{
client_print(id, print_chat, "This item is availible only for Terrorist Team!")
return FMRES_IGNORED;
}
new szClassname[ 32 ];
pev( iEnt, pev_classname, szClassname, charsmax( szClassname ) );
if( !equal( szClassname, gMedKitClassname ) )
{
return FMRES_IGNORED;
}
new iUserHealth = get_user_health( id );
new iCvarHealth = get_pcvar_num( gKitHealthCvar );
new iMaxHealth = get_pcvar_num( gLimitHealthCvar );
if( iUserHealth >= iMaxHealth )
{
return FMRES_IGNORED;
}
set_hudmessage( 255, 0, 0, -1.0, 0.83, 2, 6.0, 3.0 );
show_hudmessage( id, "You received %d HP", iCvarHealth );
fm_set_user_health( id, iUserHealth + iCvarHealth );
emit_sound( id, CHAN_ITEM, szPickupSound, VOL_NORM, ATTN_NORM, 0 , PITCH_NORM );
UTIL_Send_PickupMessage( id, "item_healthkit" );
if( get_pcvar_num( gToggleFadeEnable ) == 1 )
{
message_begin( MSG_ONE_UNRELIABLE, gGMsgFade , _, id );
write_short( 1<<10 );
write_short( 1<<10 );
write_short( FFADE_IN );
write_byte( 255 );
write_byte( 0 );
write_byte( 0 );
write_byte( 75 );
message_end( );
}
engfunc( EngFunc_RemoveEntity, iEnt );
return FMRES_IGNORED;
}
public LOGEvent_Round_Start( )
{
if( get_pcvar_num( gToggleRemoveAtRstart ) == 1 )
{
new iEntity = FM_NULLENT;
while( ( iEntity = fm_find_ent_by_class( iEntity, gMedKitClassname ) ) )
{
engfunc( EngFunc_RemoveEntity, iEntity );
}
}
}
stock UTIL_Send_PickupMessage( const id, const szItemName[ ] )
{
message_begin( MSG_ONE_UNRELIABLE, gGMsgItemPickup, _, id );
write_string( szItemName );
message_end( );
}
П.С. Ще ти трябва и cstrike библиотеката! Ппц си я имаш, но аз да спомена.
Rest in peace my friend I always will remember you!
-
tom1k
Извън линия - Потребител
- Мнения: 202
- Регистриран на: 29 Сеп 2020, 23:50
- Местоположение: Добрич
- Се отблагодари: 16 пъти
- Получена благодарност: 8 пъти
Промяна на плъгин Health Kit On Body
Благодаря! Пробвах го но, сега след като терорист умре и се опитам да го взема не става и под не става имам предвид че не дава HP, а като си СТ и отидеш в него спами в целия чат че това е само за Терористи. Ако може така да го направиш, направо да бъде невидимо за CT отбора, само за Т да си работи! Също така да е само за един рунд, понеже сега остават дори и след края на рунда. Благодаря.atmax написа: ↑02 Дек 2020, 06:55От телефона го направих набързо, така че може някъде да съм пропуснал/объркал нещо, особено с моя авто коректор.. Пробвай го, ако съм объркал нещо пиши, като се върна от работа ще го погледна. До тогава някой друг може да го види и поправи също.Код за потвърждение: Избери целия код
/* Copyright © 2009, tuty Healthkit On Dead Body is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Teleport Destination Angles Editor; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include < amxmodx > #include < fakemeta > #include < fakemeta_util > #include <cstrike> #define PLUGIN_VERSION "3.3" #define FFADE_IN 0x0000 enum _: iCoords { x = 0, y, z }; new const szModelKit[ ] = "models/w_medkit.mdl"; new const szPickupSound[ ] = "items/smallmedkit1.wav"; new gToggleKitEnable; new gToggleGlowShow; new gGMsgFade; new gToggleFadeEnable; new gToggleRemoveAtRstart; new gKitHealthCvar; new gLimitHealthCvar; new gGMsgItemPickup; new const gMedKitClassname[ ] = "medkit_entity"; public plugin_init( ) { register_plugin( "Healthkit on dead body", PLUGIN_VERSION, "tuty" ); register_event( "DeathMsg","Event_DeathMsg","a" ); register_logevent( "LOGEvent_Round_Start", 2, "1=Round_Start" ); register_forward( FM_Touch, "forward_FM_Touch" ); gToggleKitEnable = register_cvar( "kit_enable", "1" ); gToggleGlowShow = register_cvar( "kit_glow", "1" ); gToggleFadeEnable = register_cvar( "kit_fade", "1" ); gToggleRemoveAtRstart = register_cvar( "kit_remove", "0" ); gKitHealthCvar = register_cvar( "kit_health", "20" ); gLimitHealthCvar = register_cvar( "kit_limit_health", "100" ); gGMsgFade = get_user_msgid( "ScreenFade" ); gGMsgItemPickup = get_user_msgid( "ItemPickup" ); } public plugin_precache( ) { precache_model( szModelKit ); precache_sound( szPickupSound ); } public Event_DeathMsg( ) { if( get_pcvar_num( gToggleKitEnable ) == 0 ) { return PLUGIN_HANDLED; } new iVictim = read_data( 2 ); if(cs_get_user_team(iVictim) == CS_TEAM_CT) { return PLUGIN_HANDLED; } static Float:flOrigin[ iCoords ]; pev( iVictim, pev_origin, flOrigin ); new iEnt = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) ); /* --| Modify the origin a little bit. This is calculated to be set on floor */ flOrigin[ z ] -= 36; engfunc( EngFunc_SetOrigin, iEnt, flOrigin ); if( !pev_valid( iEnt ) ) { return PLUGIN_HANDLED; } set_pev( iEnt, pev_classname, gMedKitClassname ); engfunc( EngFunc_SetModel, iEnt, szModelKit ); dllfunc( DLLFunc_Spawn, iEnt ); set_pev( iEnt, pev_solid, SOLID_NOT ); set_pev( iEnt, pev_movetype, MOVETYPE_NONE ); engfunc( EngFunc_SetSize, iEnt, Float:{ -23.160000, -13.660000, -0.050000 }, Float:{ 11.470000, 12.780000, 6.720000 } ); engfunc( EngFunc_DropToFloor, iEnt ); if( get_pcvar_num( gToggleGlowShow ) == 1 ) { fm_set_rendering( iEnt, kRenderFxGlowShell, 255, 255, 255, kRenderFxNone, 27 ); } return PLUGIN_HANDLED; } public forward_FM_Touch( iEnt, id ) { if( !pev_valid( iEnt ) || get_pcvar_num( gToggleKitEnable ) == 0 ) { return FMRES_IGNORED; } if(cs_get_user_team(id) != CS_TEAM_T) { client_print(id, print_chat, "This item is availible only for Terrorist Team!") return FMRES_IGNORED; } new szClassname[ 32 ]; pev( iEnt, pev_classname, szClassname, charsmax( szClassname ) ); if( !equal( szClassname, gMedKitClassname ) ) { return FMRES_IGNORED; } new iUserHealth = get_user_health( id ); new iCvarHealth = get_pcvar_num( gKitHealthCvar ); new iMaxHealth = get_pcvar_num( gLimitHealthCvar ); if( iUserHealth >= iMaxHealth ) { return FMRES_IGNORED; } set_hudmessage( 255, 0, 0, -1.0, 0.83, 2, 6.0, 3.0 ); show_hudmessage( id, "You received %d HP", iCvarHealth ); fm_set_user_health( id, iUserHealth + iCvarHealth ); emit_sound( id, CHAN_ITEM, szPickupSound, VOL_NORM, ATTN_NORM, 0 , PITCH_NORM ); UTIL_Send_PickupMessage( id, "item_healthkit" ); if( get_pcvar_num( gToggleFadeEnable ) == 1 ) { message_begin( MSG_ONE_UNRELIABLE, gGMsgFade , _, id ); write_short( 1<<10 ); write_short( 1<<10 ); write_short( FFADE_IN ); write_byte( 255 ); write_byte( 0 ); write_byte( 0 ); write_byte( 75 ); message_end( ); } engfunc( EngFunc_RemoveEntity, iEnt ); return FMRES_IGNORED; } public LOGEvent_Round_Start( ) { if( get_pcvar_num( gToggleRemoveAtRstart ) == 1 ) { new iEntity = FM_NULLENT; while( ( iEntity = fm_find_ent_by_class( iEntity, gMedKitClassname ) ) ) { engfunc( EngFunc_RemoveEntity, iEntity ); } } } stock UTIL_Send_PickupMessage( const id, const szItemName[ ] ) { message_begin( MSG_ONE_UNRELIABLE, gGMsgItemPickup, _, id ); write_string( szItemName ); message_end( ); }
П.С. Ще ти трябва и cstrike библиотеката! Ппц си я имаш, но аз да спомена.
iG-Blockmaker # HNS 100aa
45.144.155.175:27018
45.144.155.175:27018
-
atmax
Извън линия - Потребител
- Мнения: 492
- Регистриран на: 22 Мар 2018, 15:06
- Се отблагодари: 37 пъти
- Получена благодарност: 43 пъти
Промяна на плъгин Health Kit On Body
Ами относно съобщението, touch евента се извиква постоянно понеже го докосва не бях помислил за това.. Лесно може да се поправи с един bool, когато имам време пред компютъра ще го погледна, ако никой не ти е помогнал до тогава.. Но относно обекта, не съм много на "ти" с fakemeta, даже те първа го изучавам. Не знам как действа физиката в cs, дали ако обекта не е солиден ще може да се вземе въпросният обект.. Това може да каже само някой с повече знания относно fakemeta...
Rest in peace my friend I always will remember you!
-
tom1k
Извън линия - Потребител
- Мнения: 202
- Регистриран на: 29 Сеп 2020, 23:50
- Местоположение: Добрич
- Се отблагодари: 16 пъти
- Получена благодарност: 8 пъти
Промяна на плъгин Health Kit On Body
Ами надявам се някой да го направи, ще съм много благодарен!
iG-Blockmaker # HNS 100aa
45.144.155.175:27018
45.144.155.175:27018
-
tom1k
Извън линия - Потребител
- Мнения: 202
- Регистриран на: 29 Сеп 2020, 23:50
- Местоположение: Добрич
- Се отблагодари: 16 пъти
- Получена благодарност: 8 пъти
Промяна на плъгин Health Kit On Body
Едит: Може да ударите ключ, намерих по-добър от този.
iG-Blockmaker # HNS 100aa
45.144.155.175:27018
45.144.155.175:27018
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 6 Отговори
- 1997 Преглеждания
-
Последно мнение от impossible
-
- 5 Отговори
- 1328 Преглеждания
-
Последно мнение от YankoNL
-
- 0 Отговори
- 682 Преглеждания
-
Последно мнение от MaPaXyuA
-
- 4 Отговори
- 725 Преглеждания
-
Последно мнение от Siska
-
- 2 Отговори
- 1184 Преглеждания
-
Последно мнение от tom1k
-
- 0 Отговори
- 663 Преглеждания
-
Последно мнение от Siska
-
- 2 Отговори
- 842 Преглеждания
-
Последно мнение от The Pain
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 6 госта