random ct

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
User avatar
aurimasko
Flooderis arba specialistas
Posts: 736
Joined: 2010 Sep 04 08:45

random ct

Post by aurimasko »

Kaip padaryti, kad iš esamų CT išrenka viena atsitiktine(random) tvarka ir parašo chate: Išrinktas xx CT


Dar norėčiau paklausti:

Code: Select all

  public setup_buttons(){    new ent[3]    new Float:origin[3]    new info[32]    new pos     while((pos <= sizeof(g_Buttons)) && (ent[0] = engfunc(EngFunc_FindEntityByString, ent[0], "classname", "info_player_deathmatch")))    {        pev(ent[0], pev_origin, origin)        while((ent[1] = engfunc(EngFunc_FindEntityInSphere, ent[1], origin, CELL_RADIUS)))        {            if(!is_valid_ent(ent[1]))                continue             entity_get_string(ent[1], EV_SZ_classname, info, charsmax(info))            if(!equal(info, "func_door"))                continue             entity_get_string(ent[1], EV_SZ_targetname, info, charsmax(info))            if(!info[0])                continue             if(TrieKeyExists(g_CellManagers, info))            {                TrieGetCell(g_CellManagers, info, ent[2])            }            else            {                ent[2] = engfunc(EngFunc_FindEntityByString, 0, "target", info)            }             if(is_valid_ent(ent[2]) && (in_array(ent[2], g_Buttons, sizeof(g_Buttons)) < 0))            {                g_Buttons[pos] = ent[2]                pos++                break            }        }    }    TrieDestroy(g_CellManagers)} public open(){static i    for(i = 0; i < sizeof(g_Buttons); i++)    {        if(g_Buttons[i])        {            ExecuteHamB(Ham_Use, g_Buttons[i], 0, 0, 1, 1.0)            entity_set_float(g_Buttons[i], EV_FL_frame, 0.0)        }    }} 
Kaip padaryti, kad duris neatsidarytų, bet užsidarytų?

User avatar
beast
AMX Mod X ekspertai
Posts: 509
Joined: 2011 Jan 08 18:44
Skype: thefurious4
Contact:

Re: random ct

Post by beast »

Code: Select all

new g_maxplayers public plugin_init(){    g_maxplayers = get_maxplayers()} random_ct(){     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)]      // id atsitiktinis ct...} 
O dėl antro tavo klausimo, tai manau, kad tas kodas tik "nuspaudžia" mygtukus, kurie atidaro duris.

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: random ct

Post by newb »

Jeigu tas CT turi buti gyvas, geriau taip

Code: Select all

new players[32], num, id    get_players(players, num, "ae", "CT")    if(num) id = players[random(num)]

User avatar
aurimasko
Flooderis arba specialistas
Posts: 736
Joined: 2010 Sep 04 08:45

Re: random ct

Post by aurimasko »

na taip paspaudžia mygtuką kuris atidaro duris. O neįmanoma būtų padaryti, kad tas mygtukas uždarytų duris jeigu jos atidarytos?

-- 2011 Vas 20 21:49 --

Code: Select all

  public touch(toucher, touched){    if(is_user_alive(toucher) && killas[toucher])    {        static team_touched, team_toucher        team_touched = get_user_team(touched)        team_toucher = get_user_team(toucher)                if(team_touched == 1 && team_toucher == 2)        {            cs_set_weapon_ammo(give_item(toucher, "weapon_m4a1"), 30)            set_user_health(toucher, 100)             ima[toucher] = true        }    }}  public player_attack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits){    if(killas[victim] && killas[attacker])    {        static CsTeams:vteam, CsTeams:ateam        if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)            return HAM_IGNORED                vteam = cs_get_user_team(victim)        ateam = cs_get_user_team(attacker)                    if(ateam == CS_TEAM_CT && vteam == CS_TEAM_T)            return HAM_SUPERCEDE                         }    return HAM_IGNORED}  public player_killed(victim, attacker, shouldgib){    if(killas[attacker] && killas[victim])    {        static CsTeams:vteam, CsTeams:kteam        kteam = cs_get_user_team(attacker)        vteam = cs_get_user_team(victim)                if(kteam == CS_TEAM_T && vteam == CS_TEAM_T)        {            strip_user_weapons(attacker)            ima[attacker] = false        }    }    return HAM_IGNORED}    

kaip padaryti, kad jeigu šaudai iš ginklo turėdamas ima[id] = false, o ne ima[id] = true, tai kai šaudai aukai nemažėtų HP?

User avatar
xFrostas
Flooderis arba specialistas
Posts: 660
Joined: 2010 Sep 02 15:47
Skype: frost.lt

Re: random ct

Post by xFrostas »

newb wrote:Jeigu tas CT turi buti gyvas, geriau taip

Code: Select all

new players[32], num, id    get_players(players, num, "ae", "CT")    if(num) id = players[random(num)]
O kaip tokiu būdu padaryti, kad rinktų iš ct ir iš t?

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: random ct

Post by newb »

Code: Select all

new players[32], num, id get_players(players, num, "ae", "CT")if(num) id = players[random(num)]  // CT ...... get_players(players, num, "ae", "TERRORIST")if(num) id = players[random(num)] // T 

User avatar
xFrostas
Flooderis arba specialistas
Posts: 660
Joined: 2010 Sep 02 15:47
Skype: frost.lt

Re: random ct

Post by xFrostas »

O nebus taip, kad ir iš t ir iš ct išrinks po vieną? nes man reikia bendrai iš abiejų team vieną

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: random ct

Post by aaarnas »

Nu tai tada:

Code: Select all

get_players(players, num, "ae", "TERRORIST")
-->>

Code: Select all

get_players(players, num, "a")
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests