Witamy w Nieoficjalnym polskim support'cie AMX Mod X
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.
|
Pokazywanie wroga na radarze
#1
Napisano 09.09.2010 18:25
Mam pytanko jak zrobić item. Dokładniej chodzi mi o to, aby miał on funkcję, że pokazuje na radarze zarówno ludzi z mojego teamu jak i przeciwników. Za all odpowiedzi bardzo dziękuję.
#2
Napisano 09.09.2010 18:42
sprawdź to
new laser[33]
plugint_init{
for (new i = 1; i<=g_maxplayers;i++) radar[i] = false;
set_task (2.0,"radar_scan",_,_,_,"b");
}
//Radar
public radar_scan()
{
new PlayerCoords[3];
new id;
new Players[32];
new i;
new playerCount = 0;
for (id=1; id<=g_maxplayers; id++)
{
if((!is_user_alive(id))||(!radar[id])) continue;
if(get_players(Players, playerCount, "a") &&is_user_alive(id))
{
playerCount++;
}
for (i=1;i<=playerCount;i++)
{
get_user_origin(i, PlayerCoords)
message_begin(MSG_ONE_UNRELIABLE, g_msgHostageAdd, {0,0,0}, id)
write_byte(id)
write_byte(i)
write_coord(PlayerCoords[0])
write_coord(PlayerCoords[1])
write_coord(PlayerCoords[2])
message_end()
message_begin(MSG_ONE_UNRELIABLE, g_msgHostageDel, {0,0,0}, id)
write_byte(i)
message_end()
}
emit_sound(id, CHAN_ITEM, sound_radar, 1.0, ATTN_NORM, 0, PITCH_NORM);
}
Użytkownik Frajer edytował ten post 09.09.2010 18:43
#3
Napisano 09.09.2010 18:49
PS. Napisales:
emit_sound(id, CHAN_ITEM, sound_radar, 1.0, ATTN_NORM, 0, PITCH_NORM);A gdzie jest zarejestrowana muzyka?
Użytkownik slowly edytował ten post 09.09.2010 18:54
#4
Napisano 09.09.2010 18:55
#5
Napisano 09.09.2010 18:57
Popratrz tylko wyraźniej na kod...
Zrobiłeś do tego kodu zmienną ?W kodzie jest:
new laser[33]Czyli jak widać zrobiłem...
Aaa... Ta moc nie miała być do klasy tylko do itemka... Ale zrobiłem to..
#6
Napisano 09.09.2010 19:05
zrób tak
new player_b_radar[33]
}
//tutaj dopisujesz
public reset_item_skills(id)
player_b_radar[id] = 0
}//na koncu oczywiscie
//potem w
public iteminfo(id){
if (player_b_radar[id] > 0)
{
num_to_str(player_b_radar[id],TempSkill,10)
add(itemEffect,199,"Pokazuje")
add(itemEffect,199,TempSkill)
add(itemEffect,199," TT i CT na radarze<br>")
}
////Set durability, make this item dependant?
// item_durability[id] = 250
// switch(rannum)
//potem szukasz tego wyzej i dodajesz case np.
case twoj_numerek:
{
player_item_name[id] = "Reaktor radarowy"
player_item_id[id] = rannum
player_b_radar[id] = random_num(100,100)
item_durability[id] = 250
show_hudmessage(id, "Znalazles przedmiot: %s :: pokazuje TT i CT na radarze",player_item_name[id])
}
// potem funckcja
public radar_scan(id){
if (player_b_radar[id] > 0)
{
new PlayerCoords[3];
new id;
new Players[32];
new i;
new playerCount = 0;
for (id=1; id<=g_maxplayers; id++)
{
if((!is_user_alive(id))||(!radar[id])) continue;
if(get_players(Players, playerCount, "a") &&is_user_alive(id))
{
playerCount++;
}
for (i=1;i<=playerCount;i++)
{
get_user_origin(i, PlayerCoords)
message_begin(MSG_ONE_UNRELIABLE, g_msgHostageAdd, {0,0,0}, id)
write_byte(id)
write_byte(i)
write_coord(PlayerCoords[0])
write_coord(PlayerCoords[1])
write_coord(PlayerCoords[2])
message_end()
message_begin(MSG_ONE_UNRELIABLE, g_msgHostageDel, {0,0,0}, id)
write_byte(i)
message_end()
}
}
P.S. nie wiem czy dobrze
Użytkownik Frajer edytował ten post 09.09.2010 19:07
#7
Napisano 09.09.2010 19:28
#8
Napisano 09.09.2010 19:29
jakiś błąd w kompilatorze czy co??
new player_b_radar[33] = 1;
#9
Napisano 09.09.2010 19:33
#10
Napisano 09.09.2010 19:47
new player_b_radar[33] = 1
set_task (2.0,"radar_scan",_,_,_,"b");
// to do plugin_init spróbj dać
//tutaj dopisujesz
public reset_item_skills(id)
player_b_radar[id] = 0
}//na koncu oczywiscie
//potem w
public iteminfo(id){
if (player_b_radar[id] > 0)
{
num_to_str(player_b_radar[id],TempSkill,10)
add(itemEffect,199,"Pokazuje")
add(itemEffect,199,TempSkill)
add(itemEffect,199," TT i CT na radarze<br>")
}
////Set durability, make this item dependant?
// item_durability[id] = 250
// switch(rannum)
//potem szukasz tego wyzej i dodajesz case np.
case twoj_numerek:
{
player_item_name[id] = "Reaktor radarowy"
player_item_id[id] = rannum
player_b_radar[id] = random_num(100,100)
item_durability[id] = 250
show_hudmessage(id, "Znalazles przedmiot: %s :: pokazuje TT i CT na radarze",player_item_name[id], player_b_radar[id])
}
// potem funckcja
public radar_scan(id){
if (player_b_radar[id] > 0)
{
new PlayerCoords[3];
new id;
new Players[32];
new i;
new playerCount = 0;
for (id=1; id<=g_maxplayers; id++)
{
if((!is_user_alive(id))||(!player_b_radar[id])) continue;
if(get_players(Players, playerCount, "a") &&is_user_alive(id))
{
playerCount++;
}
for (i=1;i<=playerCount;i++)
{
get_user_origin(i, PlayerCoords)
message_begin(MSG_ONE_UNRELIABLE, g_msgHostageAdd, {0,0,0}, id)
write_byte(id)
write_byte(i)
write_coord(PlayerCoords[0])
write_coord(PlayerCoords[1])
write_coord(PlayerCoords[2])
message_end()
message_begin(MSG_ONE_UNRELIABLE, g_msgHostageDel, {0,0,0}, id)
write_byte(i)
message_end()
}
}
spróbuj tak, nie wiem czy będzie działać
lub spróbuj dodać któryś z tych include
#include <hamsandwich>
#include <fakemeta>
Użytkownik Frajer edytował ten post 09.09.2010 19:47
#11
Napisano 09.09.2010 20:03
#12
Napisano 09.09.2010 20:11
new g_msgHostageAdd, g_msgHostageDel
no tak przeoczyłem to thx
i do plugin_init
g_msgHostageAdd = get_user_msgid("HostagePos");
g_msgHostageDel = get_user_msgid("HostageK");
Użytkownik Frajer edytował ten post 09.09.2010 20:12
#13
Napisano 10.09.2010 16:46
new const sound_radar[] = "radar.wav"; new g_msgHostageAdd, g_msgHostageDel, g_maxplayers; new radar[33]; public plugin_init() { g_msgHostageAdd = get_user_msgid("HostagePos"); g_msgHostageDel = get_user_msgid("HostageK"); g_maxplayers = get_maxplayers(); for (new i = 1; i<=g_maxplayers;i++) radar[i] = false; set_task (2.0,"radar_scan",_,_,_,"b"); } public plugin_precache() { precache_sound(sound_radar); } //Radar public radar_scan() { new PlayerCoords[3]; new id; new Players[32]; new i; new playerCount = 0; for (id=1; id<=g_maxplayers; id++) { if((!is_user_alive(id))||(!radar[id])) continue; if(get_players(Players, playerCount, "a") &&is_user_alive(id)) { playerCount++; } for (i=1;i<=playerCount;i++) { get_user_origin(i, PlayerCoords) message_begin(MSG_ONE_UNRELIABLE, g_msgHostageAdd, {0,0,0}, id) write_byte(id) write_byte(i) write_coord(PlayerCoords[0]) write_coord(PlayerCoords[1]) write_coord(PlayerCoords[2]) message_end() message_begin(MSG_ONE_UNRELIABLE, g_msgHostageDel, {0,0,0}, id) write_byte(i) message_end() } emit_sound(id, CHAN_ITEM, sound_radar, 1.0, ATTN_NORM, 0, PITCH_NORM); } }
wywolanie
radar[id] = true;
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych