←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Longjump ikona

Zablokowany

  • +
  • -
colt - zdjęcie colt 17.01.2009

Witam zrobiłem plugin który daje longjumpa na start i pojawia sie z lewej strony ikonka. Niestety nie mam pojęcia jak zrobić by przy śmierci (zabójstwie lub komendzie kill) ona znikała a przy spawnie znów sie pojawiała... jestem poczatkujący i nie mam zielonego pojecia o skryptingu. Załączam kod pluginu :

#include <amxmodx>
#include <fun>
#include <hamsandwich>


#define PLUGIN_NAME "Longjump"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "COLT" 

new longjump

public plugin_init() 
{
longjump = register_cvar("amx_longjump", "1")
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR) 
} 

public player_spawn(id)
{
if(get_pcvar_num(longjump) == 1)
{    
if(is_user_alive(id))
{
give_item(id, "item_longjump")
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id);
write_byte(1); // status (0=hide, 1=show, 2=flash)
write_string("item_longjump"); // icon
write_byte(0); // red
write_byte(210); // green
write_byte(0); // blue
message_end();
}
}
}

Proszę o pomoc... Dziękuję
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 17.01.2009

Uzywasz eventa od smierci (masz toturial z eventami), nastepnie na graczu ktory umiera uzywasz codu:
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id); 
write_byte(0); // status (0=hide, 1=show, 2=flash) 
write_string("item_longjump"); // icon 
write_byte(0); // red 
write_byte(210); // green 
write_byte(0); // blue 
message_end();

PS. nie mam czasu by wiecej pisac :X
Odpowiedz

  • +
  • -
colt - zdjęcie colt 17.01.2009

Ok znalazłem i zrobiłem dzięki Miczu + pomógł

EDIT

Teraz mam drugi problem:
Ikonka działa tak jak miała znika gdy zgine i pojawia gdy sie zrespie ale jest małe niedociagniecie gdy zplantuje bombe i wybuchnie to po respawnie ikonka znika ale longjumpa mam ??
SMA wyglada tak :

#include <amxmodx>
#include <amxmisc> 
#include <fun>
#include <hamsandwich>


#define PLUGIN_NAME "Longjump"
#define PLUGIN_VERSION "2.0"
#define PLUGIN_AUTHOR "COLT" 

new longjump

public plugin_init() 
{
longjump = register_cvar("amx_longjump", "1")
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
register_event("DeathMsg", "DeathMsg", "a")
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR) 
} 

public player_spawn(id)
{
if(get_pcvar_num(longjump) == 1)
{    
if(is_user_alive(id))
{
give_item(id, "item_longjump")
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id);
write_byte(1); // status (0=hide, 1=show, 2=flash)
write_string("item_longjump"); // icon
write_byte(0); // red
write_byte(210); // green
write_byte(0); // blue
message_end();
}
 }
  }

public DeathMsg()
{ 
new vid = read_data(2)    // ofiara

message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},vid);
write_byte(0); // status (0=hide, 1=show, 2=flash)
write_string("item_longjump"); // icon
write_byte(0); // red
write_byte(210); // green
write_byte(0); // blue
message_end();
}
Odpowiedz

  • +
  • -
Misiaczek ;c - zdjęcie Misiaczek ;c 17.01.2009

Zastostuj:
public bomb_defused()
{
Kod
}

oraz
public bomb_explode()
{
Kod
}
Odpowiedz

  • +
  • -
darkman - zdjęcie darkman 17.01.2009

Zastostuj:

public bomb_defused()
{
Kod
}

oraz
public bomb_explode()
{
Kod
}


i dyrektywa #include <csx>
Odpowiedz

  • +
  • -
colt - zdjęcie colt 17.01.2009

public bomb_defused()
{
new vid = read_data(2)    // ofiara

message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},vid);
write_byte(1); // status (0=hide, 1=show, 2=flash)
write_string("item_longjump"); // icon
write_byte(0); // red
write_byte(210); // green
write_byte(0); // blue
message_end();
}

public bomb_explode()
{
new vid = read_data(2)    // ofiara

message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},vid);
write_byte(1); // status (0=hide, 1=show, 2=flash)
write_string("item_longjump"); // icon
write_byte(0); // red
write_byte(210); // green
write_byte(0); // blue
message_end();
}

czy dobrze ??
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 17.01.2009

to po respawnie ikonka znika

Trzeba bylo tak od razu napisac.

Wystarczy dac to do eventa ResetHUD. Moze tylko z zablokowaniem opcji reseta przy smierci bodaj (czyt. zwykle is_user_alive) O:)

To powinno nawet spokojnie wyeleminowac hamsandwitcha ;-)
Odpowiedz

  • +
  • -
colt - zdjęcie colt 17.01.2009

@Miczu

public plugin_init()
{
longjump = register_cvar("amx_longjump", "1")
register_event("DeathMsg", "DeathMsg", "a")
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_event("ResetHUD","player_spawn","b")
}

public player_spawn(id)
{
if(get_pcvar_num(longjump) == 1)
{   
if(is_user_alive(id))
{
give_item(id, "item_longjump")
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id);
write_byte(1); // status (0=hide, 1=show, 2=flash)
write_string("item_longjump"); // icon
write_byte(0); // red
write_byte(210); // green
write_byte(0); // blue
message_end();
}
 }
  }

Chyba tak to powinno wygladać ??
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 17.01.2009

#include <amxmodx> 
#include <amxmisc> 
#include <fun> 

#define PLUGIN_NAME "Longjump" 
#define PLUGIN_VERSION "2.0" 
#define PLUGIN_AUTHOR "COLT" 

new longjump 

public plugin_init() 
{ 
longjump = register_cvar("amx_longjump", "1") 
register_event("ResetHUD","player_spawn","b")
register_event("DeathMsg", "DeathMsg", "a") 
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR) 
} 

public player_spawn(id) 
{ 
if(get_pcvar_num(longjump) == 1) 
{    
if(is_user_alive(id)) 
{ 
give_item(id, "item_longjump") 
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id); 
write_byte(1); // status (0=hide, 1=show, 2=flash) 
write_string("item_longjump"); // icon 
write_byte(0); // red 
write_byte(210); // green 
write_byte(0); // blue 
message_end(); 
} 
 } 
  } 

public DeathMsg() 
{ 
new vid = read_data(2)    // ofiara 

message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},vid); 
write_byte(0); // status (0=hide, 1=show, 2=flash) 
write_string("item_longjump"); // icon 
write_byte(0); // red 
write_byte(210); // green 
write_byte(0); // blue 
message_end(); 
}

Jak mam sprawdzac to podawaj kompletny kod ;-)
Odpowiedz

  • +
  • -
colt - zdjęcie colt 17.01.2009

Ok już prawie działa :)
Teraz tylko przetestowałem to po wybuchu bomby jak mnie zabije eksplozja to nie znika ikonka :P
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 17.01.2009

A masz DeathMsg()?
Odpowiedz

  • +
  • -
colt - zdjęcie colt 17.01.2009

No mam :

#include <amxmodx>
#include <amxmisc>
#include <fun>

#define PLUGIN_NAME "Longjump"
#define PLUGIN_VERSION "2.0"
#define PLUGIN_AUTHOR "COLT"

new longjump

public plugin_init()
{
longjump = register_cvar("amx_longjump", "1")
register_event("ResetHUD","player_spawn","b")
register_event("DeathMsg", "DeathMsg", "a")
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
}

public player_spawn(id)
{
if(get_pcvar_num(longjump) == 1)
{   
if(is_user_alive(id))
{
give_item(id, "item_longjump")
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id);
write_byte(1); // status (0=hide, 1=show, 2=flash)
write_string("item_longjump"); // icon
write_byte(0); // red
write_byte(210); // green
write_byte(0); // blue
message_end();
}
 }
  }
//////////////////////////////////////////////////////////////////
public DeathMsg()
{
new vid = read_data(2)    // ofiara

message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},vid);
write_byte(0); // status (0=hide, 1=show, 2=flash)
write_string("item_longjump"); // icon
write_byte(0); // red
write_byte(210); // green
write_byte(0); // blue
message_end();
}

Musi tu byc public bomb_explode ?? Ale chyba w niej nie moze byc id
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 17.01.2009

Chbya przy wybuchu paki nie pojawia sie deathmessage - taka ikonka w prawym rogu xD
Odpowiedz

  • +
  • -
colt - zdjęcie colt 17.01.2009

że co ?? :P
Wracajac do posta
to czy w tym kawałku nie powinno sie okreslic jaka bronia ??

public DeathMsg()
{
new vid = read_data(2)    // ofiara
new weapon[64]       
read_data(4,weapon,63)    


message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},vid);
write_byte(0); // status (0=hide, 1=show, 2=flash)
write_string("item_longjump"); // icon
write_byte(0); // red
write_byte(210); // green
write_byte(0); // blue
message_end();
}
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 18.01.2009

To moze zamiast deathmessage:
register_event("Damage", "Damage", "bd", "2>0")

potem tylko if( is_user_alive(id)) return a za tym cod od chowania ikony :)

Troche toporne, ale powinno lapac zabicia paczka ;-)
Odpowiedz
Zablokowany