Страница 1 от 1

Заявка за Auto Map Change...

Публикувано на: 12 Мар 2019, 11:00
от iv69
Здравейте,

Трябва ми колкото се може по-опростен плъгин(доколкото е възможно) , който през определен интервал(примерно 30сек) да проверява колко живи играча има в сървъра, и ако броят им спадне под 3 ( 2, 1 или 0 играча) - автоматично да сменя картата на друга определена ( най-популярна- в случая за мен е awp_india) !? Плъгина ми трябва за DeathMatch сървър с PODBot (ако е от значение) .
Благодаря предварително !

Заявка за Auto Map Change...

Публикувано на: 12 Мар 2019, 18:26
от <VeCo>

Код за потвърждение: Избери целия код

#include <amxmodx>

#define MIN_PLAYERS 3
#define CHANGE_TIME 30.0
new const preferred_map[] = "awp_india"

new real_players_num = 0

public plugin_init()
{
    register_plugin("Auto Map Change", "1.1","<VeCo>")
    
    new current_map[sizeof preferred_map]
    get_mapname(current_map, charsmax(current_map))
    if(equal(current_map, preferred_map)) pause("ad")
}

public client_connect(id)
{
    if(is_user_bot(id)) return
    
    if(++real_players_num >= MIN_PLAYERS) remove_task()
    else if(real_players_num < MIN_PLAYERS && !task_exists()) start_task()
}
public client_disconnect(id) if(!is_user_bot(id) && --real_players_num < MIN_PLAYERS && !task_exists()) start_task()

public start_task() set_task(CHANGE_TIME, "change_map")
public change_map() server_cmd("amx_map ^"%s^"", preferred_map)
Ако ползваш АМХХ 1.8.3, замени client_disconnect с client_disconnected.

Заявка за Auto Map Change...

Публикувано на: 12 Мар 2019, 20:03
от iv69
<VeCo> написа: 12 Мар 2019, 18:26

Код за потвърждение: Избери целия код

#include <amxmodx>

#define MIN_PLAYERS 3
#define CHANGE_TIME 30.0
new const preferred_map[] = "awp_india"

new real_players_num = 0

public plugin_init()
{
    register_plugin("Auto Map Change", "1.1","<VeCo>")
    
    new current_map[sizeof preferred_map]
    get_mapname(current_map, charsmax(current_map))
    if(equal(current_map, preferred_map)) pause("ad")
}

public client_connect(id)
{
    if(is_user_bot(id)) return
    
    if(++real_players_num >= MIN_PLAYERS) remove_task()
    else if(real_players_num < MIN_PLAYERS && !task_exists()) start_task()
}
public client_disconnect(id) if(!is_user_bot(id) && --real_players_num < MIN_PLAYERS && !task_exists()) start_task()

public start_task() set_task(CHANGE_TIME, "change_map")
public change_map() server_cmd("amx_map ^"%s^"", preferred_map)
Ако ползваш АМХХ 1.8.3, замени client_disconnect с client_disconnected.
Ъхъ, Благодаря "VeCo". Ще направя това което ми обясни , но за момента няма как да го тествам, нека остане отворена темата за сега... За "жалост" имало и хора в сървъра :drunk: .

Добавено преди 8 минути 13 секунди:
iv69 написа: 12 Мар 2019, 19:55
<VeCo> написа: 12 Мар 2019, 18:26

Код за потвърждение: Избери целия код

#include <amxmodx>

#define MIN_PLAYERS 3
#define CHANGE_TIME 30.0
new const preferred_map[] = "awp_india"

new real_players_num = 0

public plugin_init()
{
    register_plugin("Auto Map Change", "1.1","<VeCo>")
    
    new current_map[sizeof preferred_map]
    get_mapname(current_map, charsmax(current_map))
    if(equal(current_map, preferred_map)) pause("ad")
}

public client_connect(id)
{
    if(is_user_bot(id)) return
    
    if(++real_players_num >= MIN_PLAYERS) remove_task()
    else if(real_players_num < MIN_PLAYERS && !task_exists()) start_task()
}
public client_disconnect(id) if(!is_user_bot(id) && --real_players_num < MIN_PLAYERS && !task_exists()) start_task()

public start_task() set_task(CHANGE_TIME, "change_map")
public change_map() server_cmd("amx_map ^"%s^"", preferred_map)
Ако ползваш АМХХ 1.8.3, замени client_disconnect с client_disconnected.
Ъхъ, Благодаря "VeCo". Ще направя това което ми обясни , но за момента няма как да го тествам, нека остане отворена темата за сега... За "жалост" имало и хора в сървъра :drunk: .
Но не ми "комилира" кода - ето грешките:

changemap.sma(1) : error 010: invalid function or declaration

1 Error.
Could not locate output file changemap.amx (compile failed).

Заявка за Auto Map Change...

Публикувано на: 12 Мар 2019, 20:06
от <VeCo>
Не си копирал кода правилно.

Заявка за Auto Map Change...

Публикувано на: 12 Мар 2019, 21:32
от iv69
<VeCo> написа: 12 Мар 2019, 20:06 Не си копирал кода правилно.
Да, моя е грешката, компилира се , копирало се е и : КОД: ИЗБЕРИ ВСИЧКИ... извинявам се, добре че вие скриптърите си разбирате :) !!!
А да попитам , видях , че освен client_disconnected има и надпис в кода client_connect - преправих го и него на client_connected - понеже съм със АМХХ 1.8.3 ...Нали не е грешка и далище работи или да остане само замяната която по-горе си посочил: client_disconnect с client_disconnected ???

Заявка за Auto Map Change...

Публикувано на: 12 Мар 2019, 22:03
от <VeCo>
iv69 написа: 12 Мар 2019, 21:32
<VeCo> написа: 12 Мар 2019, 20:06 Не си копирал кода правилно.
Да, моя е грешката, компилира се , копирало се е и : КОД: ИЗБЕРИ ВСИЧКИ... извинявам се, добре че вие скриптърите си разбирате :) !!!
А да попитам , видях , че освен client_disconnected има и надпис в кода client_connect - преправих го и него на client_connected - понеже съм със АМХХ 1.8.3 ...Нали не е грешка и далище работи или да остане само замяната която по-горе си посочил: client_disconnect с client_disconnected ???
client_connect не го пипай, той си е така

Стария disconnect не покриваше всички случаи, в АМХХ 1.8.3 го оправиха и добавиха още функционалност към него, но не знам защо са решили да направят нов вместо да променят стария...

Заявка за Auto Map Change...

Публикувано на: 12 Мар 2019, 22:22
от OciXCrom
client_connected не съществува. Има client_connectex, обаче не е нужно в този случай.
<VeCo> написа: 12 Мар 2019, 22:03но не знам защо са решили да направят нов вместо да променят стария...
Късно се сетиха, че може да направят това.

Заявка за Auto Map Change...

Публикувано на: 12 Мар 2019, 22:38
от <VeCo>
OciXCrom написа: 12 Мар 2019, 22:22 client_connected не съществува. Има client_connectex, обаче не е нужно в този случай.
<VeCo> написа: 12 Мар 2019, 22:03но не знам защо са решили да направят нов вместо да променят стария...
Късно се сетиха, че може да направят това.
Яко осрано тва API.
Викат "хаха dev версия сме нищо тука не е официално", да да добре, затова се правят на ощипани да си оправят тъпотиите да не вземат да развалят някой нов плъгин, който изпозва "нестабилна" версия на АМХХ... :headbang: :headbang:

Заявка за Auto Map Change...

Публикувано на: 13 Мар 2019, 08:26
от iv69
<VeCo> написа: 12 Мар 2019, 22:03
iv69 написа: 12 Мар 2019, 21:32
<VeCo> написа: 12 Мар 2019, 20:06 Не си копирал кода правилно.
Да, моя е грешката, компилира се , копирало се е и : КОД: ИЗБЕРИ ВСИЧКИ... извинявам се, добре че вие скриптърите си разбирате :) !!!
А да попитам , видях , че освен client_disconnected има и надпис в кода client_connect - преправих го и него на client_connected - понеже съм със АМХХ 1.8.3 ...Нали не е грешка и далище работи или да остане само замяната която по-горе си посочил: client_disconnect с client_disconnected ???
client_connect не го пипай, той си е така

Стария disconnect не покриваше всички случаи, в АМХХ 1.8.3 го оправиха и добавиха още функционалност към него, но не знам защо са решили да направят нов вместо да променят стария...
Благодаря ! Плъгина работи точно както исках ! Мога да го препоръчам и на останалите !!!
:lock: