Pageidavimas[Vip menu]
Forum rules
Šiame forume galite siūlyti idėjas ar prašyti jums reikalingų pluginų. Jei kas nors pradės jį kurti, tai pasirašys Jūsų sukurtoje temoje. Niekada nepykite, jei niekas neatsako į Jūsų prašymą. Gal tai tiesiog per sudėtinga, arba reikalauja per daug darbo.
Šiame forume galite siūlyti idėjas ar prašyti jums reikalingų pluginų. Jei kas nors pradės jį kurti, tai pasirašys Jūsų sukurtoje temoje. Niekada nepykite, jei niekas neatsako į Jūsų prašymą. Gal tai tiesiog per sudėtinga, arba reikalauja per daug darbo.
-
- Gana aktyvus vartotojas
- Posts: 421
- Joined: 2011 Aug 13 11:12
- Skype: pksoldierlt
- Location: ATOSTOGOSE
Pageidavimas[Vip menu]
Norėčiau panašaus plugino į šitą, bet šis pluginas visiškai nepasileidžia, nors ir kompiliuoja be errorų.. Na, gal čia mano klaida.
Ko tiksliai noriu?
Noriu tam tikro vipmenu(labiau .sma failo, nes pats noriu pažiūrėt kaip viskas daroma, kadangi mokinuos scriptint), kuris būtų prieinamas, žinoma, tik vip'ams su /vm komanda.
Atsidarius būtų panašus vaizdas:
V.I.P Menu
1. M4A1 [OFF]
2. Deagle [OFF]
3. Šarvai [OFF]
4. Granatos [OFF]
0. Išeiti
Paspaudus betkuriuos variantus(Meniu neišsijungia), įsijungtu kiekviena opcija.
Pvz:
V.I.P Menu
1. M4A1 [ON]
2. Deagle [ON]
3. Šarvai [OFF]
4. Granatos [OFF]
0. Išeiti.
Man esmė ne pats vip pluginas, o tiesiog kaip šitie [ON/OFF] padaromi. Jeigu nesunku, padarykit kas mažą pavyzdėlį, būsiu dėkingas.
Ko tiksliai noriu?
Noriu tam tikro vipmenu(labiau .sma failo, nes pats noriu pažiūrėt kaip viskas daroma, kadangi mokinuos scriptint), kuris būtų prieinamas, žinoma, tik vip'ams su /vm komanda.
Atsidarius būtų panašus vaizdas:
V.I.P Menu
1. M4A1 [OFF]
2. Deagle [OFF]
3. Šarvai [OFF]
4. Granatos [OFF]
0. Išeiti
Paspaudus betkuriuos variantus(Meniu neišsijungia), įsijungtu kiekviena opcija.
Pvz:
V.I.P Menu
1. M4A1 [ON]
2. Deagle [ON]
3. Šarvai [OFF]
4. Granatos [OFF]
0. Išeiti.
Man esmė ne pats vip pluginas, o tiesiog kaip šitie [ON/OFF] padaromi. Jeigu nesunku, padarykit kas mažą pavyzdėlį, būsiu dėkingas.
ISVYKES
- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: Pageidavimas[Vip menu]
Darai kintamuosius, pvz:
ir taip toliau.
Tada formatuodamas meniu, darai taip:
Čia jei kintamasis tiesa, tai atvaizduos ON, priešingai OFF. Gali dar pridėti spalvų su \r, \y, \d, \w.
Pvz: \r[\y%s\r] bus [ON]
Tada funkcijoje, kur paspaudus meniu item'ą, rašai taip:
Ir po switch įdėk meniu atidarimo funkciją, kad paspaudus punktą, meniu vėl pasirodytų, o jei item == MENU_EXIT, tai tada pavadinimo neiškvieti. (Dar galima switch sąlygoje pridėti punktą default apačioje. Tai jei item neatitiks nė vieno iš case (atvejų) tai meniu užsidarys.
Tik jei naudosi naują sistemą, nepamiršk menu_destroy(menu).
Tai va, taip ir padaroma. Jei nori, kad kiekvienam žmogui būtų atskirai tai kintamuosius kurk taip:
Code: Select all
new toggle_m4a1, toggle_deagle, toggle_armor
Tada formatuodamas meniu, darai taip:
Code: Select all
new holder[100]formatex(holder, charsmax(holder), "M4A1 [%s]", toggle_m4a1?"ON":"OFF")menu_additem(menu, holder)
Pvz: \r[\y%s\r] bus [ON]
Tada funkcijoje, kur paspaudus meniu item'ą, rašai taip:
Code: Select all
switch(item) {case 0: { if(toggle_m4a1) toggle_m4a1 = false else toggle_m4a1 = true}}
Tik jei naudosi naują sistemą, nepamiršk menu_destroy(menu).
Tai va, taip ir padaroma. Jei nori, kad kiekvienam žmogui būtų atskirai tai kintamuosius kurk taip:
Code: Select all
new toggle_m4a1[33]if(toggle_m4a1[id])...
Palikau CS pasaulį ;/ . Nebepasiekiamas.
-
- Gana aktyvus vartotojas
- Posts: 421
- Joined: 2011 Aug 13 11:12
- Skype: pksoldierlt
- Location: ATOSTOGOSE
Re: Pageidavimas[Vip menu]
MM, dėkui.
O kaip padaryti: tarkim M4A1 palieku [ON] Mirštu, bet kitą roundą Emkės neduoda. Kaip tai padaryti?
O kaip padaryti: tarkim M4A1 palieku [ON] Mirštu, bet kitą roundą Emkės neduoda. Kaip tai padaryti?
ISVYKES
- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: Pageidavimas[Vip menu]
Kad OFF būtų? Mirties forwarde nustatyk toggle_m4a1[victim] = false.
Palikau CS pasaulį ;/ . Nebepasiekiamas.
-
- Gana aktyvus vartotojas
- Posts: 421
- Joined: 2011 Aug 13 11:12
- Skype: pksoldierlt
- Location: ATOSTOGOSE
Re: Pageidavimas[Vip menu]
Ech, netaip paaiškinau. Na tarkim padarau emkę ON. Emkę išmetu, prasideda naujas round( arba mirštu, nesvarbu), bet nors ir rašo m4a1 ON, emkės naujame rounde neduoda. Reikia išjungti, įjungti, kad vėl duotų emkę. Kaip tai ištaisyti. Turbūt aiškiau.
ISVYKES
- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: Pageidavimas[Vip menu]
Ta prasme tau naujam raunde neduoda emkės, nors įjungta? Parodyk kodą.
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Re: Pageidavimas[Vip menu]
aarnai, norėčiau paklausti ar negalima būtų daryti kažko panašaus į šitai kai paspaudi mygtuką:
Code: Select all
case 1:{g_toggle_m4a1[id] ? g_toggle_m4a1[id] = false : g_toggle_m4a1[id] = true}
-
- Gana aktyvus vartotojas
- Posts: 421
- Joined: 2011 Aug 13 11:12
- Skype: pksoldierlt
- Location: ATOSTOGOSE
Re: Pageidavimas[Vip menu]
Štai kodas:
Atsiprašau, kad redaguoju kito žmogaus kodą, nežinau ar tai leistina, bet čia tik vardan mokymosi scriptint.
Na problema, kaip ir sakiau, jei mirštu, ar išmetu ginklus, ant naujo roundo neduoda, nors ir nustatyta [ON].
Taip pat, būtų neprošal sužinoti kur dėti strip_user_weapons, kad ant naujo round nebūtų susidvigubinę ginklai.
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_Damagenew bool: Multi_Jumpnew bool: Vampire new PlayerPos[MaxPlayers + 1] new JumpNUM[33] = 0 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", "10") register_cvar("cpsm_health_hs", "15") register_cvar("cpsm_maxjumps", "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") RegisterHam(Ham_Killed, "player", "Ham_KilledSpawn", 1) g_MaxPlayers = get_maxplayers()} public client_connect(id){ DoJump[id] = false JumpNUM[id] = 0} public Ev_DeathMsg(){ new attacker = read_data(1) new Health new HP_Add if (Vampire) { 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) { 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] \w3rd Person View. \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 set_view(id, CAMERA_NONE) } else { Status[id][0] = true set_view(id, CAMERA_3RDPERSON) } } if (item == 1) { if (Status[id][1]) { Status[id][1] = false Bullet_Damage = false } else { Status[id][1] = true Bullet_Damage = true } } if (item == 2) { if (Status[id][2]) { Status[id][2] = false Multi_Jump = false } else { Status[id][2] = true Multi_Jump = true } } if (item == 3) { if (Status[id][3]) { Status[id][3] = false } else if (Status[id][4] == true) { Status[id][3] = false } else { Status[id][3] = true 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 (item == 4) { if (Status[id][4]) { Status[id][4] = false } else if (Status[id][3] == true) { Status[id][4] = false } else { Status[id][4] = true 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 (item == 5) { if (Status[id][5]) { Status[id][5] = false Vampire = false } else { Status[id][5] = true Vampire = 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) { 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)) 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() }}
Atsiprašau, kad redaguoju kito žmogaus kodą, nežinau ar tai leistina, bet čia tik vardan mokymosi scriptint.
Na problema, kaip ir sakiau, jei mirštu, ar išmetu ginklus, ant naujo roundo neduoda, nors ir nustatyta [ON].
Taip pat, būtų neprošal sužinoti kur dėti strip_user_weapons, kad ant naujo round nebūtų susidvigubinę ginklai.
ISVYKES
Re: Pageidavimas[Vip menu]
prieš ginklų davimą reikia stripinti ginklus. Na pvz:
bet šiuo atveju atema viską ir knife, defuse, grenades.. tad jeigu tai bus vipmenu reikia dar pridėti, jog neatiminėtų c4 ir panašiai.
O neduoda ginklų todėl, kad nepadaryta jog duotų ar bent jau nematau.
reikia registruoti spawn forwardą:
šį reikia dėti į plugin_init().
tada kurti spawn funkciją:
tik duodamas ginklus nepamiršk patikrinti ar įjungtas tam tikras punktas.
taip pat reikia kad registruotas būtų include, tai yra #include <hamsandwich>
Code: Select all
strip_user_weapons(id)//Duoda ginklus
O neduoda ginklų todėl, kad nepadaryta jog duotų ar bent jau nematau.
reikia registruoti spawn forwardą:
Code: Select all
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
tada kurti spawn funkciją:
Code: Select all
public player_spawn(id){if(!is_user_alive(id)) //tam kad nemestų errorreturn HAM_IGNORED //Čia duodi ginklusreturn HAM_IGNORED}
taip pat reikia kad registruotas būtų include, tai yra #include <hamsandwich>
- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: Pageidavimas[Vip menu]
Pamėgink kompiliuot. Šiaip ne, neturėtų leisti, nes ? sąlyga tiesiog grąžina reikšmę. Galima daryti taip jei nori tokiu būdu:aurimasko wrote:aarnai, norėčiau paklausti ar negalima būtų daryti kažko panašaus į šitai kai paspaudi mygtuką:
Code: Select all
case 1:{g_toggle_m4a1[id] ? g_toggle_m4a1[id] = false : g_toggle_m4a1[id] = true}
Code: Select all
g_toggle_m4a1[id] = g_toggle_m4a1[id]?false:true
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Who is online
Users browsing this forum: No registered users and 3 guests