vote maps

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
User avatar
ShoX
Gana aktyvus vartotojas
Posts: 217
Joined: 2010 Nov 15 19:45
Location: Lithuania

vote maps

Post by ShoX »

Sweiki,gal kas galetu sita plugina pataisyti ,
yra nustatyta kai lieka 8zmones keiciasi zemelapis is 7 mapus uzsidedi atsitiktinis.
bet reikia kad butu tik 5 mepai o ne 7 :)
2.man reikia ji padaryti kad kai lieka 8 zmones mestu vope is tu zemelapiu.
pvz
Privertinis Balsavimas

1.fy_pool_day
2.de_dust2x2
3.xx
4.xxx
5.xxxx

Kai ismeta ta vote chete raso pvz
[Vote]priverstinis balsavimas issirinkit zemelapi .

Kas pades +karma ir didelis aciu :happy2:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Map Change"
#define VERSION "1.0"
#define AUTHOR ""


new const g_maps[][] =
{
"fy_snow", \\\ MAPU PAVADINIMAI, PASIKEISKIT I SAVO NORIMUS
"fy_pool_day",
"xxxx",
"xxxxxx",
"xx",
"xx",
"xxxx"
}

new pplayers;



public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_event("HLTV", "event_new_round", "a", "1=0", "2=0");

pplayers = register_cvar("imc_maxplayers","8"); \\\\\\ KIEK TURI BUT MIN ŽAIDEJU, KAD PASIKESITU MAP
}


public event_new_round()
{
new players = get_playersnum(1);
new tleft = get_timeleft();

if(tleft <= 40 && players <= get_pcvar_num(pplayers) )
{
new mapname[32], str[32];
get_mapname(mapname,31);

formatex(str,31,"%s",g_maps[random(sizeof g_maps)]);

if(!is_map_valid(str) )
return PLUGIN_CONTINUE;


if(strcmp(mapname,str) )
return PLUGIN_CONTINUE;

samurai_map("%s",str);
}

return PLUGIN_CONTINUE;
}


/* samurai_map
ex: samurai_map("de_dust") */
stock samurai_map(const mapname[], {Float,Sql,Result,_}:...)
{
if(strlen(mapname) != 0) {
server_cmd("changelevel %s",mapname);
}

}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0\\ deflang1033{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/
nzn ar cia yra klaidu ar ner bet jeigu nesunku pataisykit

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

Re: vote maps

Post by newb »

Atrodo taip veikia :D

Code: Select all

#include <amxmodx>#include <amxmisc> new const g_maps[][] = { // Mapai    "fy_snow",     "de_dust2",    "cs_assault",    "de_dust",    "surf_ski_2"} new map_votes[sizeof(g_maps)]new pplayers, votes, players, votetime, finished public plugin_init() {      register_event("HLTV", "event_new_round", "a", "1=0", "2=0");        pplayers = register_cvar("imc_maxplayers","8")    votetime = register_cvar("imc_votetime", "15")} public event_new_round() {    players = get_playersnum()     if(players <= get_pcvar_num(pplayers)) {                votes = 0        finished = false        arrayset(map_votes, 0, charsmax(map_votes))                set_task(get_pcvar_float(votetime), "VoteEnd", 123)                client_print(0, print_chat, "[Vote] Prasidejo privestrinis balsavimas")                for(new i = 1; i <= players; i++) Create_Menu(i)            }} Create_Menu(id) {    new Menu = menu_create("\rMapai:", "MainMenu_Handler")    new Items[32], Position[3]        for (new i; i < sizeof(g_maps); i++) {        formatex(Items, charsmax(Items), "%s", g_maps[i])        num_to_str(i, Position, charsmax(Position))                menu_additem(Menu, Items, Position)    }    menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)    menu_display(id, Menu, 0)       }  public MainMenu_Handler(id, Menu, item) {    if (item == MENU_EXIT)         menu_destroy(Menu)        new Data[6], Access, Callback, Name[30]    menu_item_getinfo(Menu, item, Access, Data, 5, Name, 63, Callback)        Count(str_to_num(Data))        menu_destroy(Menu)    return PLUGIN_CONTINUE} Count(key) {    map_votes[key]++    votes++        if(votes == players) finish(map_votes)} finish(votecount[]) {    if(finished) return PLUGIN_CONTINUE    new map        for(new i; i <= charsmax(g_maps); i++) if(votecount[i] > map) map = i        remove_task(123)        client_print(0, print_chat, "[Vote] Kitas mapas bus %s", g_maps[map])        if(is_map_valid(g_maps[map])) {         finished = true        set_task(3.0, "change", map)    }    else client_print(0, print_chat, "[Vote] Blogas mapo pavadinimas")        return PLUGIN_CONTINUE} public VoteEnd()    finish(map_votes)    public change(map)    server_cmd("changelevel %s", g_maps[map])
Levai parasytas, bet gal arnas truputi patobulins :D
P.S. Mapu gali pridet nauju arba istrint situos (nebutinai turi buti 5 mapai), nieko daugiau nekeisdamas, turetu veikti.

User avatar
ShoX
Gana aktyvus vartotojas
Posts: 217
Joined: 2010 Nov 15 19:45
Location: Lithuania

Re: vote maps

Post by ShoX »

o cia kai ismes balsavima visi subalsuos ir keisis iskart?
jei iskart,tai dar gal galetum padaryti kad keistusi tada kada baigtusi tas round ?
butu labai saunu
nu sita nebutinai bet jei moki butu is vis saunu
kai zmones subalsuoja uz zemelapi ir kai ismeta rezultata sakyks vox/accepted pasibaigus round zemelapis keisis.
vo ko reikia iki tobulo plugino ;P

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

Re: vote maps

Post by aurimasko »

Kažkaip durnai gaunasi, nes jeigu mažiau negu 8 žaidėjai tada kiekvieną raundą meta tuos žemėlapius ir net tada kai pakeiti žemėlpaį

User avatar
ShoX
Gana aktyvus vartotojas
Posts: 217
Joined: 2010 Nov 15 19:45
Location: Lithuania

Re: vote maps

Post by ShoX »

aurimasko wrote:Kažkaip durnai gaunasi, nes jeigu mažiau negu 8 žaidėjai tada kiekvieną raundą meta tuos žemėlapius ir net tada kai pakeiti žemėlpaį
jo meginau pats... nesamone kazkokia :/

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

Re: vote maps

Post by newb »

Gal veiks kaip reikia :D

Code: Select all

#include <amxmodx> new const g_maps[][] = {    "fy_snow",     "de_dust2",    "cs_assault",    "de_dust",    "surf_ski_2"} new map_votes[sizeof(g_maps)], votes, pplayers, players, votetime, nochangetime, finished = -1 public plugin_init() {      register_event("HLTV", "event_new_round", "a", "1=0", "2=0");        pplayers = register_cvar("vtcng_maxplayers","8")    votetime = register_cvar("vtcng_votetime", "20") // Kiek laiko viks balsavimas, jei bus afk kurie nebalsos (sec)    nochangetime = register_cvar("vtcng_nocngtime", "20") // Kiek laiko nekeis mapo po restarto (min)} public event_new_round() {    players = get_playersnum()    static Float:gt; gt = get_gametime()        if(finished > -1) server_cmd("changelevel %s", g_maps[finished])    else if(players <= get_pcvar_num(pplayers) && gt > get_pcvar_num(nochangetime) * 60) {                  set_task(get_pcvar_float(votetime), "finish", 123)            client_print(0, print_chat, "[Vote] Prasidejo privestrinis balsavimas")                for(new i = 1; i <= players; i++) Create_Menu(i)            }}  Create_Menu(id) {    new Menu = menu_create("\rMapai:", "MainMenu_Handler")    new Items[32], Position[3]        for (new i; i < sizeof(g_maps); i++) {        formatex(Items, charsmax(Items), "%s", g_maps[i])        num_to_str(i, Position, charsmax(Position))                menu_additem(Menu, Items, Position)    }    menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER)    menu_display(id, Menu, 0)       }  public MainMenu_Handler(id, Menu, item) {    if (item == MENU_EXIT)         menu_destroy(Menu)        new Data[6], Access, Callback, Name[30]    menu_item_getinfo(Menu, item, Access, Data, 5, Name, 63, Callback)        new Key = str_to_num(Data)        map_votes[Key]++    votes++    if(votes == players) finish()        menu_destroy(Menu)}  public finish() {    if(finished != -1) return PLUGIN_CONTINUE        for(new i; i <= charsmax(g_maps); i++) if(map_votes[i] > finished) finished = i        if(task_exists(123)) remove_task(123)        client_print(0, print_chat, "[Vote] Kitas mapas bus %s", g_maps[finished])        if(!is_map_valid(g_maps[finished])) {        client_print(0, print_chat, "[Vote] Blogas mapo pavadinimas")        finished = -1; votes = 0; arrayset(map_votes, 0, sizeof(map_votes))    }    return PLUGIN_CONTINUE}
Dar isemiau exit is meniu, manau jis nereikalingas. Jei bus bugu rasykit ^^
Last edited by newb on 2010 Nov 23 22:44, edited 2 times in total.

Post Reply

Who is online

Users browsing this forum: No registered users and 12 guests