Naujas round ir t.t.
Posted: 2011 Jan 19 17:11
Taigi noreciau pklausti kaip padaryti, kad kai prasideda round'as po 10 sec viena zaideja permestu i T?
Code: Select all
#include <amxmodx>#include <cstrike> #define TASKID 98413 new g_maxplayers public plugin_init(){ register_event("HLTV", "Event_StartRound", "a", "1=0", "2=0") register_logevent("logevent_round_end", 2, "1=Round_End") register_message(get_user_msgid("TextMsg"), "message_TextMsg") g_maxplayers = get_maxplayers()} public Event_StartRound(){ if(!task_exists(TASKID)) set_task(10.0, "task", TASKID) } public logevent_round_end() remove_task(TASKID) public message_TextMsg(msg_id, msg_dest, id){ new buffer[32] get_msg_arg_string(2, buffer, 31) if(equal(buffer, "#Game_Commencing") || equal(buffer, "#Round_Draw") || containi(buffer, "#Game_will_restart") != -1) remove_task(TASKID)} public task(){ new Players[32], x, id for(id = 1; id <= g_maxplayers; id++) { if(!is_user_connected(id)) continue if(cs_get_user_team(id) == CS_TEAM_CT) Players[x++] = id } id = Players[random_num(0, x - 1)] if(is_user_connected(id)) cs_set_user_team(id, CS_TEAM_T)}
Code: Select all
# public message_TextMsg(msg_id, msg_dest, id)# {# new buffer[32]# # get_msg_arg_string(2, buffer, 31)# # if(equal(buffer, "#Game_Commencing")# || equal(buffer, "#Round_Draw")# || containi(buffer, "#Game_will_restart") != -1)# {# if(task_exists(TASKID))# remove_task(TASKID)# }# }
Code: Select all
public Event_StartRound(){ if(!task_exists(TASKID)) set_task(10.0, "task", TASKID) } public logevent_round_end(){ if(task_exists(TASKID)) remove_task(TASKID)}
Code: Select all
public message_TextMsg(msg_id, msg_dest, id){ new buffer[32] get_msg_arg_string(2, buffer, 31) if(equal(buffer, "#Game_Commencing") || equal(buffer, "#Round_Draw") || containi(buffer, "#Game_will_restart") != -1) { if(task_exists(TASKID)) remove_task(TASKID) }}
Code: Select all
public task(){ new Players[32], x, id for(id = 1; id <= g_maxplayers; id++) { if(!is_user_connected(id)) continue if(cs_get_user_team(id) == CS_TEAM_CT) Players[x++] = id } id = Players[random_num(0, x - 1)] if(is_user_connected(id)) cs_set_user_team(id, CS_TEAM_T)}
Code: Select all
public task(){ new Players[32], x, x2[33], c, id for(id = 1; id <= g_maxplayers; id++) { if(!is_user_connected(id)) continue if(cs_get_user_team(id) == CS_TEAM_CT) Players[x++] = id } while(c < 4) { id = Players[random_num(0, x - 1)] if(!x2[id]) { cs_set_user_team(id, CS_TEAM_T) x2[id] = true c++ } }}
Šito nežinojau.aaarnas wrote:Be to, prieš remove_task nebūtina tikrinti ar task egzistuoja. Jei task nėra, tai remove_task paprasčiausiai gražins 0. Klaidos dėl to neįvyks.
Code: Select all
#define TASKID 98413 new g_maxplayers public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR) register_event("HLTV", "Event_StartRound", "a", "1=0", "2=0") register_logevent("logevent_round_end", 2, "1=Round_End") register_message(get_user_msgid("TextMsg"), "message_TextMsg") g_maxplayers = get_maxplayers()} public Event_StartRound(id){ if(!task_exists(TASKID)) client_print(id, print_chat, "BandauuuUuuuuuu!") set_task(10.0, "Choosing", TASKID) if(cs_get_user_team(id) == CS_TEAM_T) { cs_set_user_team(id, CS_TEAM_CT) }} public logevent_round_end(id) remove_task(TASKID) public message_TextMsg(msg_id, msg_dest, id){ new buffer[32] get_msg_arg_string(2, buffer, 31) if(equal(buffer, "#Game_Commencing") || equal(buffer, "#Round_Draw") || containi(buffer, "#Game_will_restart") != -1) remove_task(TASKID)} public Choosing(id){ new Players[32], x, x2[33], c, id client_print(id, print_chat, "BandauuuUuuuuuu!") for(id = 1; id <= g_maxplayers; id++) { if(!is_user_connected(id)) continue if(cs_get_user_team(id) == CS_TEAM_CT) Players[x++] = id } while(c < 4) { id = Players[random_num(0, x - 1)] if(!x2[id]) { cs_set_user_team(id, CS_TEAM_T) x2[id] = true c++ } }}