Page 2 of 2

Re: Pageidavimas[Vip menu]

Posted: 2011 Aug 14 22:01
by InvIs
Aurimasko variantą ryt pabandysiu.
Dabar dar vienas klausimas:
Kaip padaryti(apsaugant nuo buginimo), kai tarkim emke padarau [ON] tai kai padarau [OFF], vel ijungti eitu tik kita rounda? Nes taip galima betkiek gun pasiimt.

-- 2011 Rgp 15 19:39 --

Taip viskas veikia, beliko problema su pastoviu ON/OFF junginejimu. Kaip rasyti, kad jei <kazkas> tai laukti naujo round?

Re: Pageidavimas[Vip menu]

Posted: 2011 Aug 15 19:23
by Aurimas
Susikurk kintamajį ir kai paspaudžia ON/OFF kintamojo reikšmė 0, naujam rounde kintamojo reikšmę pakeičia į 1. Jei kintamasis 0, tai neleisk atidaryti to meniu.

Re: Pageidavimas[Vip menu]

Posted: 2011 Aug 16 12:57
by InvIs
Gerai, šitas pavyko. Dabar dar pora klausimų:

Reikia, kad per pirmą roundą neitų pasiimti ginklų. Bandžiau su event_newround, na, bet nepavyko. Yra pasiūlymų, patarimų?
Taip pat, kaip uždrausti tam tikras funkcijas, jei map'as yra toks ir toks, pvz: 35hp_ ka_ fy_ ir pnš.?

Re: Pageidavimas[Vip menu]

Posted: 2011 Aug 16 13:14
by aurimasko
dėl map tai plugin_init kur nors apačioje įrašai:

Code: Select all

 new mapname[32]get_mapname(mapname, 31) if(equali(mapname, "de_", 3)){vipmenu = false // de_ mapuose neveiks vipmenu} 
rodos taip.

ir kai tuos menu punktus darai tikrinti ar vipmenu įjungtas ar ne . taip gali su dauguma ginklų padaryti.
ir tik pradžioje plugino sukurti kintamuosius new vipmenu ir panašiai.


dėl raundų, tai darai kintamajį tarkim rounds. ir kiekvieną raundo pradžia (na su roundstart eventu) pridedi vieną raundą rounds++, o vipmenu kode tikrinti ar raundų mažiau negu reikia ar daugiau. jeigu mažiau tada neleidi, jeigu daugiau leidi. bet reikia dar restart evente padaryti, kad nuo nulio vėl skaičiuotų.

Re: Pageidavimas[Vip menu]

Posted: 2011 Aug 16 13:20
by InvIs
Taip suprantu, bet pas mane kode jau yra hamspawn forwardas. O jis buvo reikalingas, nuo ON/OFF buginimo. Ir nessvarbu kiek roundų, kai žmogus prisikelia, ginklų ėmimą padaro = 1.

Re: Pageidavimas[Vip menu]

Posted: 2011 Aug 16 14:24
by aurimasko
nes hamspawn iškviečiamas žaidėjui atsirespawninus. riekia tikrinti ar roundų ne per mažai/

Re: Pageidavimas[Vip menu]

Posted: 2011 Aug 16 16:56
by InvIs

Code: Select all

#include <amxmodx>#include <amxmisc>#include <engine>#include <hamsandwich>#include <fun>#include <cstrike> #define MaxPlayers 32 new const Float: g_flCoords[][] = {    {0.50, 0.40},    {0.56, 0.44},    {0.60, 0.50},    {0.56, 0.56},    {0.50, 0.60},    {0.44, 0.56},    {0.40, 0.50},    {0.44, 0.44}} new bool: DoJump[33] = false new bool: Status[33][6] new bool: Bullet_Damage[33]new bool: Multi_Jump[33]new bool: Vampire[33] new bool:HasC4[33] new PlayerPos[MaxPlayers + 1] new JumpNUM[33] = 0 new bool: toggle_m4a1[33]new bool: toggle_ak47[33]new ginklai[33]new granatos[33] new g_MaxPlayers public plugin_init(){    register_plugin("[CP] Server Menu", "1.0", "xS The Moon")     register_cvar("cpsm_advert", "1")    register_cvar("cpsm_advert_time", "20.0")     register_cvar("cpsm_health_kill", "5")    register_cvar("cpsm_health_hs", "10")    register_cvar("cpsm_maxjumps", "1")     RegisterHam(Ham_Spawn, "player", "player_spawn", 1)     register_clcmd("say /cp", "Main_Server_Menu")     if (get_cvar_num("cpsm_advert"))    {        set_task(get_cvar_float("cpsm_advert_time"), "CPSM_Adv_Message", 0, _, _, "b")    }     register_event("DeathMsg", "Ev_DeathMsg", "a")    register_event("Damage", "Ev_Damage", "b", "2>0", "3=0")     g_MaxPlayers = get_maxplayers()} public client_connect(id){    DoJump[id] = false    JumpNUM[id] = 0} public player_spawn(id){if(!is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_H)return HAM_IGNOREDginklai[id] = 1granatos[id] = 1if(toggle_m4a1[id] == true && cs_get_user_hasprim(id)){    cs_set_user_bpammo(id, CSW_DEAGLE, 200)    cs_set_user_bpammo(id, CSW_USP, 200)    cs_set_user_bpammo(id, CSW_GLOCK18, 200)    cs_set_user_bpammo(id, CSW_P228, 200)    cs_set_user_bpammo(id, CSW_ELITE, 200)    cs_set_user_bpammo(id, CSW_FIVESEVEN, 200)    cs_set_user_bpammo(id, CSW_FAMAS, 200)    cs_set_user_bpammo(id, CSW_SG552, 200)    cs_set_user_bpammo(id, CSW_AK47, 200)    cs_set_user_bpammo(id, CSW_M4A1, 200)    cs_set_user_bpammo(id, CSW_AUG, 200)    cs_set_user_bpammo(id, CSW_SCOUT, 200)    cs_set_user_bpammo(id, CSW_AWP, 200)    cs_set_user_bpammo(id, CSW_G3SG1, 200)    cs_set_user_bpammo(id, CSW_SG550, 200)    cs_set_user_bpammo(id, CSW_XM1014, 200)    cs_set_user_bpammo(id, CSW_M3, 200)    cs_set_user_bpammo(id, CSW_GALIL, 200)    cs_set_user_bpammo(id, CSW_TMP, 200)    cs_set_user_bpammo(id, CSW_P90, 200)    cs_set_user_bpammo(id, CSW_MP5NAVY, 200)    cs_set_user_bpammo(id, CSW_MAC10, 200)    cs_set_user_bpammo(id, CSW_UMP45, 200)    cs_set_user_bpammo(id, CSW_M249, 200)}else if(toggle_m4a1[id] == true){    if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)        HasC4[id] = true;    else        HasC4[id] = false;    strip_user_weapons(id)    give_item(id, "weapon_knife")    give_item(id, "weapon_m4a1")    cs_set_user_bpammo(id, CSW_M4A1, 200)    give_item(id, "weapon_deagle")    cs_set_user_bpammo(id, CSW_DEAGLE, 200)    if (HasC4[id])    {        give_item(id, "weapon_c4");        cs_set_user_plant( id );    }}else if(toggle_ak47[id] == true && cs_get_user_hasprim(id)){    cs_set_user_bpammo(id, CSW_DEAGLE, 200)    cs_set_user_bpammo(id, CSW_USP, 200)    cs_set_user_bpammo(id, CSW_GLOCK18, 200)    cs_set_user_bpammo(id, CSW_P228, 200)    cs_set_user_bpammo(id, CSW_ELITE, 200)    cs_set_user_bpammo(id, CSW_FIVESEVEN, 200)    cs_set_user_bpammo(id, CSW_FAMAS, 200)    cs_set_user_bpammo(id, CSW_SG552, 200)    cs_set_user_bpammo(id, CSW_AK47, 200)    cs_set_user_bpammo(id, CSW_M4A1, 200)    cs_set_user_bpammo(id, CSW_AUG, 200)    cs_set_user_bpammo(id, CSW_SCOUT, 200)    cs_set_user_bpammo(id, CSW_AWP, 200)    cs_set_user_bpammo(id, CSW_G3SG1, 200)    cs_set_user_bpammo(id, CSW_SG550, 200)    cs_set_user_bpammo(id, CSW_XM1014, 200)    cs_set_user_bpammo(id, CSW_M3, 200)    cs_set_user_bpammo(id, CSW_GALIL, 200)    cs_set_user_bpammo(id, CSW_TMP, 200)    cs_set_user_bpammo(id, CSW_P90, 200)    cs_set_user_bpammo(id, CSW_MP5NAVY, 200)    cs_set_user_bpammo(id, CSW_MAC10, 200)    cs_set_user_bpammo(id, CSW_UMP45, 200)    cs_set_user_bpammo(id, CSW_M249, 200)}else if(toggle_ak47[id] == true){    if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)        HasC4[id] = true;    else        HasC4[id] = false;    strip_user_weapons(id)    give_item(id, "weapon_knife")    give_item(id, "weapon_ak47")    cs_set_user_bpammo(id, CSW_AK47, 200)    give_item(id, "weapon_deagle")    cs_set_user_bpammo(id, CSW_DEAGLE, 200)    if (HasC4[id])    {        give_item(id, "weapon_c4");        cs_set_user_plant( id );    }}if(Status[id][0] == true){    give_item(id, "weapon_flashbang")    give_item(id, "weapon_flashbang")    give_item(id, "weapon_smokegrenade")    give_item(id, "weapon_hegrenade")    give_item(id, "item_assaultsuit")    give_item(id, "item_thighpack")}return HAM_IGNORED} public Ev_DeathMsg(){    new attacker = read_data(1)     new Health    new HP_Add     if (Vampire[attacker] == true)    {        if ((read_data(3) == 1) && (read_data(5) == 0))        {            HP_Add = get_cvar_num("cpsm_health_hs")        }        else        {            HP_Add = get_cvar_num("cpsm_health_kill")        }         Health = get_user_health(attacker)        Health += HP_Add         set_user_health(attacker, Health)            set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)        show_hudmessage(attacker, "Healed +%d HP", HP_Add)         message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker)        write_short(1<<10)        write_short(1<<10)        write_short(0x0000)        write_byte(0)        write_byte(0)        write_byte(200)        write_byte(75)        message_end()    }} public Ev_Damage(victim){    if (read_data(4) || read_data(5) || read_data(6))    {        new id = get_user_attacker(victim)        if ((1 <= id <= g_MaxPlayers) && is_user_connected(id))        {            if (Bullet_Damage[id] == true)            {                new iPos = ++PlayerPos[id]                if (iPos == sizeof(g_flCoords))                {                    iPos = PlayerPos[id] = 0                }                set_hudmessage(0, 100, 200, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1)                show_hudmessage(id, "%d", read_data(2))            }        }    }} public CPSM_Adv_Message(id){           print_color(id, "/y[/gCP/y] /ctrServerio Meniu/y: /gNoredamas atidaryti rasyk /y//ctrcp")} public Main_Server_Menu(id){    if (get_user_flags(id) & ADMIN_LEVEL_H)    {            new menu = menu_create("\d[\rCP\d] \yServerio Meniu\d:", "Server_Menu")         new szMsg1[60]        new szMsg2[60]        new szMsg3[60]        new szMsg4[60]        new szMsg5[60]        new szMsg6[60]         format(szMsg1, 59, "\d[\rCP\d] \wGranatos/Sarvai. \yStatusas\d: \r%s.", Status[id][0] ? "\w[\yON\w]" : "\w[\rOFF\w]")        format(szMsg2, 59, "\d[\rCP\d] \wBullet Damage. \yStatusas\d: \r%s.", Status[id][1] ? "\w[\yON\w]" : "\w[\rOFF\w]")        format(szMsg3, 59, "\d[\rCP\d] \wMulti Jump. \yStatusas\d: \r%s.", Status[id][2] ? "\w[\yON\w]" : "\w[\rOFF\w]")        format(szMsg4, 59, "\d[\rCP\d] \wM4A1 + Deagle. \yStatusas\d: \r%s.", Status[id][3] ? "\w[\yON\w]" : "\w[\rOFF\w]")        format(szMsg5, 59, "\d[\rCP\d] \wAk47 + Deagle. \yStatusas\d: \r%s.", Status[id][4] ? "\w[\yON\w]" : "\w[\rOFF\w]")        format(szMsg6, 59, "\d[\rCP\d] \wHP Uz Kill. \yStatusas\d: \r%s.", Status[id][5] ? "\w[\yON\w]" : "\w[\rOFF\w]")         menu_additem(menu, szMsg1, "1", 0)        menu_additem(menu, szMsg2, "2", 0)        menu_additem(menu, szMsg3, "3", 0)        menu_additem(menu, szMsg4, "4", 0)        menu_additem(menu, szMsg5, "5", 0)        menu_additem(menu, szMsg6, "6", 0)             menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)        menu_display(id, menu, 0)    }    else    {        print_color(id, "/y[/gCP/y] /ctrControl Panel /gtik V.I.P'ams ir ADMIN'ams.")        return    }}public Server_Menu(id, menu, item){    if (item == MENU_EXIT)        {        menu_destroy(menu)        return PLUGIN_HANDLED        }         if (item == 0)    {        if (Status[id][0])        {            Status[id][0] = false            granatos[id] = 0        }        else if(granatos[id] == 0)        {            Status[id][0] = false            print_color(id, "/y[/gCP/y] Palauk kito round.")        }        else        {            Status[id][0] = true            give_item(id, "weapon_flashbang")            give_item(id, "weapon_flashbang")            give_item(id, "weapon_smokegrenade")            give_item(id, "weapon_hegrenade")            give_item(id, "item_assaultsuit")            give_item(id, "item_thighpack")        }    }        if (item == 1)    {        if (Status[id][1])        {            Status[id][1] = false            Bullet_Damage[id] = false        }        else        {            Status[id][1] = true            Bullet_Damage[id] = true            }    }        if (item == 2)    {        if (Status[id][2])        {            Status[id][2] = false            Multi_Jump[id] = false        }        else        {            Status[id][2] = true            Multi_Jump[id] = true        }    }        if (item == 3)    {        if (Status[id][3])        {            Status[id][3] = false            toggle_m4a1[id] = false            ginklai[id] = 0        }        else if(ginklai[id] == 0)        {            Status[id][3] = false            print_color(id, "/y[/gCP/y] Palauk kito round.")        }        else if (Status[id][4] == true)        {            Status[id][3] = false            toggle_m4a1[id] = false            print_color(id, "/y[/gCP/y] AK47 jau ijungta.")        }        else        {            Status[id][3] = true            toggle_m4a1[id] = true            if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                HasC4[id] = true;            else                HasC4[id] = false;            strip_user_weapons(id)            give_item(id, "weapon_knife")            give_item(id, "weapon_m4a1")            cs_set_user_bpammo(id, CSW_M4A1, 200)            give_item(id, "weapon_deagle")            cs_set_user_bpammo(id, CSW_DEAGLE, 200)            if (HasC4[id])            {                give_item(id, "weapon_c4");                cs_set_user_plant( id );            }        }    }        if (item == 4)    {        if (Status[id][4])        {            Status[id][4] = false            toggle_ak47[id] = false            ginklai[id] = 0        }        else if(ginklai[id] == 0)        {            Status[id][4] = false            print_color(id, "/y[/gCP/y] Palauk kito round.")        }        else if (Status[id][3] == true)        {            Status[id][4] = false            toggle_ak47[id] = false            print_color(id, "/y[/gCP/y] M4A1 jau ijungta.")        }        else        {            Status[id][4] = true            toggle_ak47[id] = true            if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                HasC4[id] = true;            else                HasC4[id] = false;            strip_user_weapons(id)            give_item(id, "weapon_knife")            give_item(id, "weapon_ak47")            cs_set_user_bpammo(id, CSW_AK47, 200)            give_item(id, "weapon_deagle")            cs_set_user_bpammo(id, CSW_DEAGLE, 200)            if (HasC4[id])            {                give_item(id, "weapon_c4");                cs_set_user_plant( id );            }        }    }        if (item == 5)    {        if (Status[id][5])        {            Status[id][5] = false            Vampire[id] = false        }        else        {            Status[id][5] = true            Vampire[id] = true        }    }        Main_Server_Menu(id)        return PLUGIN_HANDLED} public client_PreThink(id){    if (!is_user_alive(id))         return PLUGIN_CONTINUE     new nbut = get_user_button(id)    new obut = get_user_oldbutton(id)     if (Multi_Jump[id] == true)    {        if ((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))        {            if (JumpNUM[id] < get_cvar_num("cpsm_maxjumps"))            {                DoJump[id] = true                JumpNUM[id]++                return PLUGIN_CONTINUE            }        }            if ((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))        {            JumpNUM[id] = 0            return PLUGIN_CONTINUE        }    }    return PLUGIN_CONTINUE} public client_PostThink(id){    if (!is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_H)         return PLUGIN_CONTINUE     if (DoJump[id] == true)    {        new Float: velocity[3]          entity_get_vector(id, EV_VEC_velocity, velocity)        velocity[2] = random_float(265.0, 285.0)        entity_set_vector(id, EV_VEC_velocity, velocity)        DoJump[id] = false         return PLUGIN_CONTINUE    }    return PLUGIN_CONTINUE} stock print_color(const id, const input[], any:...){    new count = 1, players[32]    static msg[191]    vformat(msg,190,input,3)    replace_all(msg,190,"/g","^4");// green txt    replace_all(msg,190,"/y","^1");// orange txt    replace_all(msg,190,"/ctr","^3");// team txt    replace_all(msg,190,"/w","^2");// team txt    if (id) players[0] = id; else get_players(players,count,"ch")    for (new i=0;i<count;i++)        if (is_user_connected(players[i]))        {            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])            write_byte(players[i])            write_string(msg)            message_end()        }}
Na, ką ankščiau padarydavau su paaiškinimu, dabar nebeišeina.
Galit padaryti, kad pluginas neveiktų 35hp_ ka_ awp_ mapuose?
Taip pat noriu, kad pirmame rounde neveiktų AK47 ir M4A1 funkcijos.

Re: Pageidavimas[Vip menu]

Posted: 2011 Aug 18 16:48
by aaarnas
Raundus reikia skaičiuoti su HLTV eventu.

Re: Pageidavimas[Vip menu]

Posted: 2011 Aug 18 18:22
by InvIs
Jau daugmaz viska pasidariau, dekui. Forumas tikrai daug ko pamoko.