Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Ograniczenie w wyborze map do votowania


  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 mitol007

    Pomocny

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:64
Offline

Napisano 08.08.2009 17:34

To znowu ja, nie złośćcie się :)

Otóż, bo mam na serwie plugin do votowania i nominowania map (mapchooser4: http://amxx.pl/viewtopic.php?t=108 )
Na serwie gra 18/18 osób, a gracze w votowaniu wybierają mapę aim_. Czy jest jakiś plugin, który pozwala nominowanie małych map, od określonej liczby graczy, albo coś w tym stylu ? Albo który umożliwi mi wprowadzenie takowych ograniczeń ?
Widziałem raz na jakimś serwerze, że jeśli określona liczba graczy wpisze w /say - /mala mapa, to uruchomi sie vote gdzie jest kilka mapek aim_ do wyboru - posiadacie taki plugin :D?
  • +
  • -
  • 0

#2 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 08.08.2009 19:42

http://amxx.pl/topic...apa-vt14368.htm
  • +
  • -
  • 0

serwer-1.png
IP: ts3.cserwerek.pl


#3 mitol007

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:64
Offline

Napisano 10.08.2009 17:34

Portek, dzięki :) To co chciałem i działa.
Ale mam jeszcze jedno pytanko. Bo obecnie plugin się uruchamia, gdy na serwie jest <=6 osób. A ja chce żeby było od <=8.
Czy wtedy .sma ma wyglądać tak ? (podmieniłem tylko 6 na 8, zaznaczone na czerwono)

// ==========
// Kobra
// www.ledsplej.net
// Use it but give me credits!
// ==========

#include <amxmodx>
#include <amxmisc>

new mc_malamapa // Menu
new mcbc_malamapa // Menu Callback

new gWpisal[32]
new gCount=0
new gMaps[300][32]
new gMapsCount=0
new gVoteRunning=0
new gVotes[5]
new gMapsInVote[5]
new gGranaMalaMapa

public plugin_init() {
register_plugin("Mala Mapa", "1.1", "Kobra")
register_clcmd ( "say", "sprawdz" )
register_clcmd ( "say_team", "sprawdz" )
set_task(100.0,"reklama",0,"",0,"b")
wczytaj_mapy()
}

public wczytaj_mapy()
{
new rsFile[128],s[128],i
new current_map[19]
get_mapname(current_map, 20)
get_configsdir(rsFile, 128)
format(rsFile, 128 ,"%s/mapcycle_male.txt", rsFile) // should be something like addons/amxmodx/configs/
i=fopen(rsFile,"rt")
gMapsCount=0
if(i==0){
log_amx("Error loading config file! [%s]", rsFile)
} else {
log_amx("Reading config file [%s]", rsFile)
while (!feof(i)) // Czytamy mapki
{
fgets(i,s,30)
trim(s)
if(s[0]!=0) {
if(equal(current_map, s)) {
gGranaMalaMapa=1
}
log_amx("Loaded [%s]", s);
copy(gMaps[gMapsCount], 30, s)
gMapsCount++
}
}
fclose(i)
}
log_amx("Loaded maps: %d", gMapsCount)
return PLUGIN_CONTINUE
}

public client_connect(id) {
if(gGranaMalaMapa)
return PLUGIN_CONTINUE
if(player_count()<=8) {
client_print(0,print_chat, "Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
}
return PLUGIN_CONTINUE
}

public client_disconnect(id) {
if(gGranaMalaMapa)
return PLUGIN_CONTINUE
if(gWpisal[id]==1) {
gCount--
gWpisal[id]=0
}
if(player_count()<=8) {
client_print(0,print_chat, "Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
}
return PLUGIN_CONTINUE
}

public sprawdz(id) {
new txt[90], username[32]
get_user_name(id, username, 32)
read_args ( txt, 90 )
if(equali(txt, "^"mala mapa^""))
{
if(gGranaMalaMapa) {
client_print(0, print_chat, "Mala mapa jest obecnie grana!")
return PLUGIN_CONTINUE
}

if(gVoteRunning)
return PLUGIN_CONTINUE
if(player_count()<=8)
{
if(gWpisal[id]==0) {
gCount++
gWpisal[id]=1
client_print(0,print_chat, "[%s] zaglosowal na zmiane na mala mape", username)
client_print(0,print_chat, "Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
log_amx("[%s] zaglosowal na zmiane na mala mape", username)
log_amx("Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
} else
{
gCount--
gWpisal[id]=0
client_print(0,print_chat, "[%s] wypisal sie z glosowania na zmiane na mala mape", username)
client_print(0,print_chat, "Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
log_amx("[%s] wypisal sie z glosowania na zmiane na mala mape", username)
log_amx("Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount);
}

if((player_count()/2)+1-gCount<=0) // odpalamy vote
{
run_vote()
}
}
}
return PLUGIN_CONTINUE
}

public run_vote() { // przygotowujemy vote na nextmap
gVoteRunning=1
new a, toLog[128]
new iterateVotes
new rand = random_num(0, gMapsCount-1) // pierwsza mapa losowa

for(iterateVotes=0; iterateVotes<3; iterateVotes++) { // 3x szukamy nastepnych losowych map (ma byc 3)
rand=-1
while(rand == -1) {
rand = random_num(0, gMapsCount-1)
for(a = 0; a {
if(rand == gMapsInVote[a]) {
rand = -1
}
}
}
gMapsInVote[iterateVotes] = rand
format(toLog, 200, "%s %s", toLog, gMaps[rand]) // debugger
}

mc_malamapa = menu_create("Wybierz mala mape", "mh_c_malamapa") // przygotowujemy menu
mcbc_malamapa = menu_makecallback("mcb_c_malamapa")
menu_additem(mc_malamapa, gMaps[gMapsInVote[0]], "ma_c_malamapa", ADMIN_ALL, mcbc_malamapa)
menu_additem(mc_malamapa, gMaps[gMapsInVote[1]], "ma_c_malamapa", ADMIN_ALL, mcbc_malamapa)
menu_additem(mc_malamapa, gMaps[gMapsInVote[2]], "ma_c_malamapa", ADMIN_ALL, mcbc_malamapa)
/* Menu End */

new iPlayers[32],iNum
get_players(iPlayers, iNum)
for(new i=0;i {
if(is_user_connected(iPlayers[i]))
{
menu_display(iPlayers[i], mc_malamapa, 0)
}
}

log_amx("%s",toLog) // debugger
set_task(10.0, "change_map", 888) // za 10 sekund konczymy vote
}

public change_map() {
new winner=0
for(new i=1; i<3; i++) { // wyszukujemy mape z najwyzsza iloscia glosow
if(gVotes[i]>gVotes[winner]) {
winner = i
}
}
menu_destroy(mc_malamapa) // usuwamy menu - koniec glosowania!

client_print(0, print_chat,"****************")
client_print(0, print_chat,"*** KONIEC GLOSOWANIA! Zmieniam na mala mape: %s (glosow: %i)", gMaps[gMapsInVote[winner]], gVotes[winner]) // wyswietlamy info o malej mapie
client_print(0, print_chat,"****************")
log_amx("Mala mapa: %s (glosow: %i)", gMaps[gMapsInVote[winner]], gVotes[winner])
server_cmd("changelevel %s", gMaps[gMapsInVote[winner]])
}


public reklama() {
if(gGranaMalaMapa)
return PLUGIN_CONTINUE
client_print(0,print_chat,"Jesli na serwerze jest malo graczy (<=8), mozna zmienic mape na mniejsza wpisujac ^"mala mapa^" - musi to zrobic wiekszosc graczy!")
return PLUGIN_CONTINUE
}

public player_count() {
new iPlayers[32], iNum, count
get_players(iPlayers, iNum)
for(new i=0;i {
if(is_user_connected(iPlayers[i]) && !is_user_bot(iPlayers[i]) && !is_user_hltv(iPlayers[i]))
{
count++
}
}
return count
}

public mh_c_malamapa(id, menu, item) {
if(item>-1 && item<3) { // 3 map, nie obchodza nas inne wybory
new name[31]
get_user_name (id, name, 32)
gVotes[item]++
client_print(0,print_chat,"%s wybral %s (glosow: %i)", name, gMaps[gMapsInVote[item]], gVotes[item]) // wypisujemy jaka mape wybral gracz i ile ma glosow
log_amx("%s wybral %s (glosow: %i)", name, gMaps[gMapsInVote[item]], gVotes[item])
}
}

public ma_c_malamapa(id) {
}

public mcb_c_malamapa(id, menu, item) {
}


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych