Załączone pliki
Użytkownik SliszV edytował ten post 06.10.2024 16:22
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.
|
Napisano 06.10.2024 16:21
Użytkownik SliszV edytował ten post 06.10.2024 16:22
Napisano 06.10.2024 17:30
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta_util>
#include <deathrun_stats>
#define PLUGIN "Kolejka do TT"
#define VERSION "1.0"
#define AUTHOR "DarkGL"
#define dmg(%1,%2) (ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == %2 && get_user_team(%1) == 1)
#define dmg2(%1,%2) (ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == %1 && get_user_team(%2) == 1)
new Array: arKolejka;
new kolor;
new hud;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
arKolejka = ArrayCreate(1,32);
kolor = register_cvar("kolejka_kolorek", "0 255 0");
register_clcmd("say /respawn", "spawn");
register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0");
RegisterHam(Ham_TakeDamage, "player", "HamTakeDamage");
RegisterHam(Ham_Spawn,"player","HamSpawned",1)
register_event("DeathMsg", "DeathMsg", "a", "1=0")
hud = CreateHudSyncObj();
set_task(1.0, "wyswietl",.flags = "b");
}
public DeathMsg(){
new victim = read_data(2)
new iRet = iFind(victim);
if(iRet != -1){
ArrayDeleteItem(arKolejka,iRet);
if(iRet == 0 && ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == victim){
ArrayDeleteItem(arKolejka,0);
if(ArraySize(arKolejka) > 0) fm_set_user_rendering(ArrayGetCell(arKolejka,0), kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 40);
}
}
return PLUGIN_HANDLED;
}
public spawn(id) {
if(iFind(id) != -1) {
client_print(id, print_chat, "[DR] Gdy jesteś w kolejce, nie możesz się respawnować!");
return PLUGIN_HANDLED
}
}
public HamSpawned(id){
if(!is_user_alive(id)) return ;
fm_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 40);
}
public event_RoundStart() {
ArrayClear(arKolejka);
}
public HamTakeDamage(victim, inflictor, attacker)
return (dmg(victim, attacker) || dmg2(victim, attacker) || !is_user_connected(attacker)) ? HAM_IGNORED : HAM_SUPERCEDE;
public fwPlayerFinished(id) {
if( is_user_alive( id ) && cs_get_user_team( id ) == CS_TEAM_CT ){
new iRet = iFind(id);
if(iRet == -1) ArrayPushCell(arKolejka,id);
if(is_user_alive(ArrayGetCell(arKolejka,0))) fm_set_user_rendering(ArrayGetCell(arKolejka,0), kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 40);
else ArrayDeleteItem( arKolejka , 0 );
}
}
public wyswietl() {
new msg[512];
new bool: bNone = true;
new szName[64]
for(new i = 0;i<ArraySize(arKolejka);i++){
if(!is_user_alive(ArrayGetCell(arKolejka,i))){
ArrayDeleteItem(arKolejka,i)
continue;
}
get_user_name(ArrayGetCell(arKolejka,i), szName,charsmax(szName));
formatex(msg, 511, "%s%d. %s^n", msg, i+1, szName);
bNone = false;
}
if(bNone) formatex(msg, 511, "Lista jest pusta");
new color[15], rgb[3][4]; get_pcvar_string(kolor, color, 14);
parse(color, rgb[0], 3, rgb[1], 3, rgb[2], 3);
set_dhudmessage(0, 69, 255, 0.85, 0.2, 2, 0.02, 1.0, 0.01);
show_dhudmessage(0, "** Kolejka **^n%s^n^n", msg);
}
public client_disconnect(id) arClear(id);
public client_connect(id) arClear(id);
arClear(id){
new iRet = iFind(id);
if(iRet == -1) return ;
ArrayDeleteItem(arKolejka,iRet)
}
iFind(id){
for(new i = 0;i<ArraySize(arKolejka);i++){
if(ArrayGetCell(arKolejka,i) == id) return i;
}
return -1;
}
stock __dhud_color;
stock __dhud_x;
stock __dhud_y;
stock __dhud_effect;
stock __dhud_fxtime;
stock __dhud_holdtime;
stock __dhud_fadeintime;
stock __dhud_fadeouttime;
stock __dhud_reliable;
stock set_dhudmessage( red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = false )
{
#define clamp_byte(%1) ( clamp( %1, 0, 255 ) )
#define pack_color(%1,%2,%3) ( %3 + ( %2 << 8 ) + ( %1 << 16 ) )
__dhud_color = pack_color( clamp_byte( red ), clamp_byte( green ), clamp_byte( blue ) );
__dhud_x = _:x;
__dhud_y = _:y;
__dhud_effect = effects;
__dhud_fxtime = _:fxtime;
__dhud_holdtime = _:holdtime;
__dhud_fadeintime = _:fadeintime;
__dhud_fadeouttime = _:fadeouttime;
__dhud_reliable = _:reliable;
return 1;
}
stock show_dhudmessage( index, const message[], any:... )
{
new buffer[ 128 ];
new numArguments = numargs();
if( numArguments == 2 )
{
send_dhudMessage( index, message );
}
else if( index || numArguments == 3 )
{
vformat( buffer, charsmax( buffer ), message, 3 );
send_dhudMessage( index, buffer );
}
else
{
new playersList[ 32 ], numPlayers;
get_players( playersList, numPlayers, "ch" );
if( !numPlayers )
{
return 0;
}
new Array:handleArrayML = ArrayCreate();
for( new i = 2, j; i < numArguments; i++ )
{
if( getarg( i ) == LANG_PLAYER )
{
while( ( buffer[ j ] = getarg( i + 1, j++ ) ) ) {}
j = 0;
if( GetLangTransKey( buffer ) != TransKey_Bad )
{
ArrayPushCell( handleArrayML, i++ );
}
}
}
new size = ArraySize( handleArrayML );
if( !size )
{
vformat( buffer, charsmax( buffer ), message, 3 );
send_dhudMessage( index, buffer );
}
else
{
for( new i = 0, j; i < numPlayers; i++ )
{
index = playersList[ i ];
for( j = 0; j < size; j++ )
{
setarg( ArrayGetCell( handleArrayML, j ), 0, index );
}
vformat( buffer, charsmax( buffer ), message, 3 );
send_dhudMessage( index, buffer );
}
}
ArrayDestroy( handleArrayML );
}
return 1;
}
stock send_dhudMessage( const index, const message[] )
{
message_begin( __dhud_reliable ? ( index ? MSG_ONE : MSG_ALL ) : ( index ? MSG_ONE_UNRELIABLE : MSG_BROADCAST ), SVC_DIRECTOR, _, index );
{
write_byte( strlen( message ) + 31 );
write_byte( DRC_CMD_MESSAGE );
write_byte( __dhud_effect );
write_long( __dhud_color );
write_long( __dhud_x );
write_long( __dhud_y );
write_long( __dhud_fadeintime );
write_long( __dhud_fadeouttime );
write_long( __dhud_holdtime );
write_long( __dhud_fxtime );
write_string( message );
}
message_end();
}
nie wiem czy bedzie dzialac sprawdz i czy oto chodzilo
Napisano 06.10.2024 17:45
#include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <cstrike> #include <fakemeta_util> #include <deathrun_stats> #define PLUGIN "Kolejka do TT" #define VERSION "1.0" #define AUTHOR "DarkGL" #define dmg(%1,%2) (ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == %2 && get_user_team(%1) == 1) #define dmg2(%1,%2) (ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == %1 && get_user_team(%2) == 1) new Array: arKolejka; new kolor; new hud; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) arKolejka = ArrayCreate(1,32); kolor = register_cvar("kolejka_kolorek", "0 255 0"); register_clcmd("say /respawn", "spawn"); register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0"); RegisterHam(Ham_TakeDamage, "player", "HamTakeDamage"); RegisterHam(Ham_Spawn,"player","HamSpawned",1) register_event("DeathMsg", "DeathMsg", "a", "1=0") hud = CreateHudSyncObj(); set_task(1.0, "wyswietl",.flags = "b"); } public DeathMsg(){ new victim = read_data(2) new iRet = iFind(victim); if(iRet != -1){ ArrayDeleteItem(arKolejka,iRet); if(iRet == 0 && ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == victim){ ArrayDeleteItem(arKolejka,0); if(ArraySize(arKolejka) > 0) fm_set_user_rendering(ArrayGetCell(arKolejka,0), kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 40); } } return PLUGIN_HANDLED; } public spawn(id) { if(iFind(id) != -1) { client_print(id, print_chat, "[DR] Gdy jesteś w kolejce, nie możesz się respawnować!"); return PLUGIN_HANDLED } } public HamSpawned(id){ if(!is_user_alive(id)) return ; fm_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 40); } public event_RoundStart() { ArrayClear(arKolejka); } public HamTakeDamage(victim, inflictor, attacker) return (dmg(victim, attacker) || dmg2(victim, attacker) || !is_user_connected(attacker)) ? HAM_IGNORED : HAM_SUPERCEDE; public fwPlayerFinished(id) { if( is_user_alive( id ) && cs_get_user_team( id ) == CS_TEAM_CT ){ new iRet = iFind(id); if(iRet == -1) ArrayPushCell(arKolejka,id); if(is_user_alive(ArrayGetCell(arKolejka,0))) fm_set_user_rendering(ArrayGetCell(arKolejka,0), kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 40); else ArrayDeleteItem( arKolejka , 0 ); } } public wyswietl() { new msg[512]; new bool: bNone = true; new szName[64] for(new i = 0;i<ArraySize(arKolejka);i++){ if(!is_user_alive(ArrayGetCell(arKolejka,i))){ ArrayDeleteItem(arKolejka,i) continue; } get_user_name(ArrayGetCell(arKolejka,i), szName,charsmax(szName)); formatex(msg, 511, "%s%d. %s^n", msg, i+1, szName); bNone = false; } if(bNone) formatex(msg, 511, "Lista jest pusta"); new color[15], rgb[3][4]; get_pcvar_string(kolor, color, 14); parse(color, rgb[0], 3, rgb[1], 3, rgb[2], 3); set_dhudmessage(0, 69, 255, 0.85, 0.2, 2, 0.02, 1.0, 0.01); show_dhudmessage(0, "** Kolejka **^n%s^n^n", msg); } public client_disconnect(id) arClear(id); public client_connect(id) arClear(id); arClear(id){ new iRet = iFind(id); if(iRet == -1) return ; ArrayDeleteItem(arKolejka,iRet) } iFind(id){ for(new i = 0;i<ArraySize(arKolejka);i++){ if(ArrayGetCell(arKolejka,i) == id) return i; } return -1; } stock __dhud_color; stock __dhud_x; stock __dhud_y; stock __dhud_effect; stock __dhud_fxtime; stock __dhud_holdtime; stock __dhud_fadeintime; stock __dhud_fadeouttime; stock __dhud_reliable; stock set_dhudmessage( red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = false ) { #define clamp_byte(%1) ( clamp( %1, 0, 255 ) ) #define pack_color(%1,%2,%3) ( %3 + ( %2 << 8 ) + ( %1 << 16 ) ) __dhud_color = pack_color( clamp_byte( red ), clamp_byte( green ), clamp_byte( blue ) ); __dhud_x = _:x; __dhud_y = _:y; __dhud_effect = effects; __dhud_fxtime = _:fxtime; __dhud_holdtime = _:holdtime; __dhud_fadeintime = _:fadeintime; __dhud_fadeouttime = _:fadeouttime; __dhud_reliable = _:reliable; return 1; } stock show_dhudmessage( index, const message[], any:... ) { new buffer[ 128 ]; new numArguments = numargs(); if( numArguments == 2 ) { send_dhudMessage( index, message ); } else if( index || numArguments == 3 ) { vformat( buffer, charsmax( buffer ), message, 3 ); send_dhudMessage( index, buffer ); } else { new playersList[ 32 ], numPlayers; get_players( playersList, numPlayers, "ch" ); if( !numPlayers ) { return 0; } new Array:handleArrayML = ArrayCreate(); for( new i = 2, j; i < numArguments; i++ ) { if( getarg( i ) == LANG_PLAYER ) { while( ( buffer[ j ] = getarg( i + 1, j++ ) ) ) {} j = 0; if( GetLangTransKey( buffer ) != TransKey_Bad ) { ArrayPushCell( handleArrayML, i++ ); } } } new size = ArraySize( handleArrayML ); if( !size ) { vformat( buffer, charsmax( buffer ), message, 3 ); send_dhudMessage( index, buffer ); } else { for( new i = 0, j; i < numPlayers; i++ ) { index = playersList[ i ]; for( j = 0; j < size; j++ ) { setarg( ArrayGetCell( handleArrayML, j ), 0, index ); } vformat( buffer, charsmax( buffer ), message, 3 ); send_dhudMessage( index, buffer ); } } ArrayDestroy( handleArrayML ); } return 1; } stock send_dhudMessage( const index, const message[] ) { message_begin( __dhud_reliable ? ( index ? MSG_ONE : MSG_ALL ) : ( index ? MSG_ONE_UNRELIABLE : MSG_BROADCAST ), SVC_DIRECTOR, _, index ); { write_byte( strlen( message ) + 31 ); write_byte( DRC_CMD_MESSAGE ); write_byte( __dhud_effect ); write_long( __dhud_color ); write_long( __dhud_x ); write_long( __dhud_y ); write_long( __dhud_fadeintime ); write_long( __dhud_fadeouttime ); write_long( __dhud_holdtime ); write_long( __dhud_fxtime ); write_string( message ); } message_end(); }nie wiem czy bedzie dzialac sprawdz i czy oto chodzilo
sprawdziłem ,i w ogóle nic sie nie zmienilo niz wczesniej ,poprostu chcę zeby jak ktos bedzie w kolejce ,nie może wtedy wpisac komendy /respawn ,i pisze mu na sayu [DR] Gdy jestes w kolejce nie mozesz sie respawnowac!
Napisano 06.10.2024 18:16
to musisz w pluginie ktory ma ta komende /respawn zrobic blokade
Napisano 06.10.2024 19:12
to musisz w pluginie ktory ma ta komende /respawn zrobic blokade
moglbys to zrobic ,bylbym wdzieczny ![]()
Napisano 07.10.2024 12:39
to musisz w pluginie ktory ma ta komende /respawn zrobic blokade
dobra jednak działa ,usunałem tylko say ,zeby zostało samo /respawn.
Dziekuje +rep
Napisano 08.10.2024 09:02
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz,
raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
0 użytkowników, 0 gości, 0 anonimowych