Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Losowanie gracza - jak zrobić?


  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 V3ko

    Guru

  • Power User

Reputacja: 83
Zaawansowany

  • Postów:746
  • Lokalizacja:Stopnica
Offline

Napisano 24.07.2011 10:43

Witam, mam pytanie dziś jak zrobić losowanie gracza raz na mapę, albo gdy upłynie 15 minut mapy. Potrzebne mi to do boss eventu. Kod niżej.

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

new player, bossPower
new old_mp_autoteambalance, Float:old_mp_roundtime, Float:old_mp_buytime, old_mp_freezetime, old_mp_startmoney

public plugin_init(){
register_plugin("boss","1.17","bes island")
register_clcmd("amx_boss","cmdMakeBoss",ADMIN_SLAY,"<name or #userid> <power> - make player a boss. Power must be 201 to 999")
register_clcmd("amx_unboss","cmdUnmakeBoss",ADMIN_SLAY,"- end the boss event")
register_event("TeamScore","hook_teamscore","a")
register_menucmd(register_menuid("Team_Select"),(1<<0)|(1<<1)|(1<<4)|(1<<5),"hook_team_select")
register_menucmd(-2,(1<<0)|(1<<1)|(1<<4)|(1<<5),"hook_team_select")
player=0
}

public hook_team_select(id,key){
if((key==0)&&(player!=0)){
engclient_cmd(id,"chooseteam")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

public cmdUnmakeBoss(id,level,cid){
if(cmd_access(id,level,cid,1))set_task(5.0,"UnmakeBoss")
return PLUGIN_HANDLED
}

public hook_teamscore(){
new score=read_data(2)
if((score>0)&&(player!=0))UnmakeBoss()
return PLUGIN_CONTINUE
}

public UnmakeBoss(){
if(player==0)return
if(is_user_connected(player))
set_user_rendering(player,kRenderFxGlowShell,0,0,0,kRenderNormal,99)
player=0
set_cvar_num("mp_autoteambalance",old_mp_autoteambalance)
set_cvar_float("mp_roundtime",old_mp_roundtime)
set_cvar_num("sv_restart",1)
}

public cmdMakeBoss(id,level,cid){
if(!cmd_access(id,level,cid,3))return PLUGIN_HANDLED
if(player!=0){
client_print(id,print_console,"Boss juz jest!")
return PLUGIN_HANDLED
}
new arg[32]
read_argv(1,arg,31)
player=cmd_target(id,arg,6)
if(!player)return PLUGIN_HANDLED
read_argv(2,arg,31)
bossPower=max(201,min(999,str_to_num(arg)))
new players[32], num, i
get_players(players,num)
for(i=0;i<num;i++)
if(players[i]!=player){
get_user_team(players[i],arg,31)
if(arg[0]!='S')cs_set_user_team(players[i],CS_TEAM_CT)
}else
cs_set_user_team(player,CS_TEAM_T,CS_T_GUERILLA);
old_mp_autoteambalance=get_cvar_num("mp_autoteambalance")
old_mp_roundtime=get_cvar_float("mp_roundtime")
set_cvar_num("mp_roundtime",4)
set_cvar_num("sv_restart",1)
set_task(13.0,"MakeBoss2")
return PLUGIN_HANDLED
}

public MakeBoss2(){
if(is_user_connected(player)){
set_user_health(player,bossPower)
set_user_armor(player,100)
set_user_rendering(player,kRenderFxGlowShell,255,0,0,kRenderNormal,99)
strip_user_weapons(player)
give_item(player,"weapon_knife")
give_item(player,"weapon_m249")
new i
for(i=0;i<7;i++)give_item(player,"ammo_556natobox")
}else
UnmakeBoss()
set_hudmessage(255,0,0)
show_hudmessage(0,"Boss jest silny!")
}

  • +
  • -
  • 0

#2 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 24.07.2011 14:23

Mozę tak? Raz na mapę do zmiennej losowy_gracz zapisze ci sie id losowego gracza.


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

new player, bossPower, losowy_gracz
new old_mp_autoteambalance, Float:old_mp_roundtime, Float:old_mp_buytime, old_mp_freezetime, old_mp_startmoney

public plugin_init(){
register_plugin("boss","1.17","bes island")
register_clcmd("amx_boss","cmdMakeBoss",ADMIN_SLAY,"<name or #userid> <power> - make player a boss. Power must be 201 to 999")
register_clcmd("amx_unboss","cmdUnmakeBoss",ADMIN_SLAY,"- end the boss event")
register_event("TeamScore","hook_teamscore","a")
register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0")
register_menucmd(register_menuid("Team_Select"),(1<<0)|(1<<1)|(1<<4)|(1<<5),"hook_team_select")
register_menucmd(-2,(1<<0)|(1<<1)|(1<<4)|(1<<5),"hook_team_select")
player=0
}

public Nowa_Runda()
{
new bool:player_valid = false
while(player_valid == false){
new players_num, Players[32]
get_players(Players, players_num, "h")
losowy_gracz = random_num(0, players_num)
if(!is_user_connected(losowy_gracz)){
player_valid = false
} else {
break
}
}
}

public hook_team_select(id,key){
if((key==0)&&(player!=0)){
engclient_cmd(id,"chooseteam")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

public cmdUnmakeBoss(id,level,cid){
if(cmd_access(id,level,cid,1))set_task(5.0,"UnmakeBoss")
return PLUGIN_HANDLED
}

public hook_teamscore(){
new score=read_data(2)
if((score>0)&&(player!=0))UnmakeBoss()
return PLUGIN_CONTINUE
}

public UnmakeBoss(){
if(player==0)return
if(is_user_connected(player))
set_user_rendering(player,kRenderFxGlowShell,0,0,0,kRenderNormal,99)
player=0
set_cvar_num("mp_autoteambalance",old_mp_autoteambalance)
set_cvar_float("mp_roundtime",old_mp_roundtime)
set_cvar_num("sv_restart",1)
}

public cmdMakeBoss(id,level,cid){
if(!cmd_access(id,level,cid,3))return PLUGIN_HANDLED
if(player!=0){
client_print(id,print_console,"Boss juz jest!")
return PLUGIN_HANDLED
}
new arg[32]
read_argv(1,arg,31)
player=cmd_target(id,arg,6)
if(!player)return PLUGIN_HANDLED
read_argv(2,arg,31)
bossPower=max(201,min(999,str_to_num(arg)))
new players[32], num, i
get_players(players,num)
for(i=0;i<num;i++)
if(players[i]!=player){
get_user_team(players[i],arg,31)
if(arg[0]!='S')cs_set_user_team(players[i],CS_TEAM_CT)
}else
cs_set_user_team(player,CS_TEAM_T,CS_T_GUERILLA);
old_mp_autoteambalance=get_cvar_num("mp_autoteambalance")
old_mp_roundtime=get_cvar_float("mp_roundtime")
set_cvar_num("mp_roundtime",4)
set_cvar_num("sv_restart",1)
set_task(13.0,"MakeBoss2")
return PLUGIN_HANDLED
}

public MakeBoss2(){
if(is_user_connected(player)){
set_user_health(player,bossPower)
set_user_armor(player,100)
set_user_rendering(player,kRenderFxGlowShell,255,0,0,kRenderNormal,99)
strip_user_weapons(player)
give_item(player,"weapon_knife")
give_item(player,"weapon_m249")
new i
for(i=0;i<7;i++)give_item(player,"ammo_556natobox")
}else
UnmakeBoss()
set_hudmessage(255,0,0)
show_hudmessage(0,"Boss jest silny!")
}

  • +
  • -
  • 0

marwit-0.png


#3 V3ko

    Guru

  • Autor tematu
  • Power User

Reputacja: 83
Zaawansowany

  • Postów:746
  • Lokalizacja:Stopnica
Offline

Napisano 24.07.2011 17:18

^up sprawdzę, aczkolwiek tak już chyba miałem i nie działało :D
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych