[Plugin] Min Players Map Changer

Forum rules
ImageImage


  • Pentru a posta un plugin trebuie sa respecti urmatorul model:

Code: Select all

Descriere: 
Descărcare: 
Nume plugin: 
Versiune: 
Cvar-uri (daca necesita):
Comenzi (daca necesita):
Module necesare (pentru rularea si activarea pluginului corect):
Instalare:
1. Fișierul nume_plugin.sma îl puneți in addons/amxmodx/scripting
2. Fișierul nume_plugin.amxx îl puneți in addons/amxmodx/plugins
3. Intrați în fișierul addons/amxmodx/configs/plugins.ini si adaugati la urma: nume_plugin.amxx
Aveti grija cand creati un topic puneti la titlu [Plugin] Numele plugin-ului.
Topicurile mai vechi de 15 zile se vor inchide fara post reply.
Nu posta plugin-uri care au mai fost postate, vei primi avertisment.
Nu da reply cu : gg , bv etc., vei primi avertisment.
Locked
User avatar
Whispers
Membru
Membru
Posts: 316
Joined: 6 years ago
Has thanked: 0
Been thanked: 0
Zodiac:
Age: 26
Status: Offline

6 years ago

Descriere: Majoritatea Administratorilor (serverelor CS) se intalneau cu probleme hartilor si jucatorilor , de exemplu cand pe server e harta noua (posibil este prea mare), dar nu o joaca nimeni sau e noaptea si sunt putini jucatori. Acest plugin va ajuta cu aceasta problema

Functie de jucatorii de pe server, pluginul schimba singur harta.
Daca sunt mai putini de 10 jucatori pe server, se incepe o votarea pentru a schimba harta.
Numarul minim de jucatori il setati in CVAR (Default: 10 jucatori)
Harta pentru vot o setati in CVAR (Default: de_dust2_2x2)
Daca majoriteatea jucatilor au votat "Pentru" , harta se schimba , daca nu sunt destui voturi , mapa va fi extinsa.

Descărcare: Sursa (.sma):
#include <amxmodx>
#include <amxmisc>
#include <colorchat>

#define PLUGIN "MinPlayersMapChanger"
#define VERSION "1.0"
#define AUTHOR "ExoTiQ"

new mpm_map, mpm_players
new vote_yes, vote_no
new mmp_on = 1
new menu

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
mpm_map = register_cvar("amx_mpm_map", "de_dust2_2x2")
mpm_players = register_cvar("amx_mpm_players", "10")
}

public mpm(id) {
if(get_playersnum() <= get_pcvar_num(mpm_players)) {
new mpm_map_str[32], nameMap[128]
get_pcvar_string(mpm_map, mpm_map_str, charsmax(mpm_map_str))
format(nameMap, 127, "\ySchimbam Harta pe %s?", mpm_map_str)
menu=menu_create(nameMap,"mpm_menu")
menu_additem(menu,"\wDa","1")
menu_additem(menu,"\wNu","2")
menu_setprop(menu,MPROP_EXIT,MEXIT_NEVER)

menu_display(id,menu,0)


set_task(get_cvar_float("amx_vote_time"), "mpm_result")
}
}

public mpm_menu(id,menu,item) {
new data[6],iName[64],access, callback, Name[32]
get_user_name(id, Name, charsmax(Name))
menu_item_getinfo(menu,item,access,data,5,iName,63,callback)
new key = str_to_num(data)

switch(key) {
case 1:{
vote_yes = vote_yes + 1
ColorChat(0, BLUE, "^01[^04Map Changer Information^01] Jucatorul ^03%s ^01a votat ^04[Pentru].", Name)
}
case 2:{
vote_no = vote_no + 1
ColorChat(0, RED, "^01[^04Map Changer Information^01] Jucatorul ^03%s ^01a votat ^04[Contra].", Name)
}
}
return PLUGIN_HANDLED
}

public mpm_result() {
new Map[32], mpm_map_str[32]
menu_destroy(menu)
get_mapname(Map, charsmax(Map))
get_pcvar_string(mpm_map, mpm_map_str, charsmax(mpm_map_str))
if(vote_yes >= vote_no) {
ColorChat(0, RED, "^01[^04Map Changer Information^01] Votarea s-a incheiat, urmatoarea harta va fi ^03%s^01.", mpm_map_str)
set_task(4.0, "mpm_changelevel")
}
else {
ColorChat(0, RED, "^01[^04Map Changer Information^01] Datorita votarii, harta curenta va fi extinsa pentru ^03%d^01 minute.", get_cvar_num("amx_extendmap_step"))
vote_yes = 0
vote_no = 0
set_task((get_cvar_float("amx_extendmap_step")*30), "mpm_extend")
}
}

public mpm_changelevel() {
new mpm_map_str[32]
get_pcvar_string(mpm_map, mpm_map_str, charsmax(mpm_map_str))
server_cmd("changelevel %s", mpm_map_str)
}

public mpm_extend() {
mmp_on = 1
}

public client_putinserver(id) {
if(mmp_on != 1)
return PLUGIN_HANDLED

new Players[32], Map[32], mpm_map_str[32]
get_mapname(Map, charsmax(Map))
get_pcvar_string(mpm_map, mpm_map_str, charsmax(mpm_map_str))
if(equali(Map, mpm_map_str))
return PLUGIN_HANDLED

new playerCount, i, player
get_players(Players, playerCount, "ch")
mmp_on = 0
for (i=0; i<playerCount; i++) {
player = Players

set_task(20.0, "mpm", player)
}
return PLUGIN_CONTINUE
}

public client_disconnect(id) {
if(mmp_on != 1)
return PLUGIN_HANDLED

new Players[32], Map[32], mpm_map_str[32]
get_mapname(Map, charsmax(Map))
get_pcvar_string(mpm_map, mpm_map_str, charsmax(mpm_map_str))
if(equali(Map, mpm_map_str))
return PLUGIN_HANDLED

new playerCount, i, player
get_players(Players, playerCount, "ch")
for (i=0; i<playerCount; i++) {
player = Players

set_task(20.0, "mpm", player)
}
return PLUGIN_CONTINUE
}


Nume plugin: Min Players Map Changer
Versiune: 1.0
Instalare:
1. Compilam pluginul (copiati tot .sma-ul de mai sus) [Please login or register to view this link]
2. Fisierul MinPlayersMapChanger.amxx il puneti in addons/amxmodx/plugins
3. Fisierul MinPlayersMapChanger.sma il puneti in addons/amxmodx/scripting
4. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la sfarsitul fisierului:

Code: Select all

MinPlayersMapChanger.amxx
Cvar-uri (daca necesita):

Code: Select all

amx_mpm_map - (default: de_dust2_2x2) Aici setati harta pentru vot.
amx_mpm_players - (default: 10) - Aici setati numarul minim de jucatori.
Comenzi (daca necesita):
Module necesare (pentru rularea si activarea pluginului corect):
Locked

Return to “Plugin-uri”