Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

2 страниц V   1 2

Действия над тем у кого больше всего поинтов

, массивы ..
voed
сообщение 24.2.2015, 15:07
Сообщение #21
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

ssx, я думал ты догадаешься что надо сделать проверку is_user_connected:D
Код:
public Task_point()
{
static max, id, maxid
for(id=0; id < 33; id++)
{
if(!is_user_connected(id))
continue
if(point[id]>max)
{
max=point[id]
maxid=id
}
}

if (is_user_alive(maxid))
{
new name[32]
get_user_name(maxid,name,31)
give_item(maxid, "weapon_smokegrenade")
client_print(0,print_chat,"Игрок %s получил дымовую гранату",name)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igas
сообщение 24.2.2015, 15:24
Сообщение #22


Стаж: 13 лет

Сообщений: 107
Благодарностей: 52
Полезность: 361

voed, я знал что кто-то это напишет, но не всю же работу делать за ТС, я дал начальный скрипт, пусть дальше учится сам, за меня никто ничего не делал
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 24.2.2015, 15:39
Сообщение #23


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

не работает, при чеке пишет имя сервера постоянно
Код:
public Task_point()
{
static max, id, maxid
for(id=0; id < 33; id++)
{
if(!is_user_connected(id))
continue
if(point[id]>max)
{
max=point[id]
maxid=id
}
}

if (is_user_alive(maxid))
{
new name[32]
get_user_name(maxid,name,31)
give_item(maxid, "weapon_smokegrenade")
client_print(0,print_chat,"Игрок %s получил дымовую гранату",name)
}
}

public Point_check()
{
static max, id, maxid
for(id=0; id < 33; id++)
{
if(!is_user_connected(id))
continue
if(point[id]>max)
{
max=point[id]
maxid=id
}
}
new name[32]
get_user_name(maxid,name,31)
client_print(0,print_chat,"Игрок %s",name)
}


С ума сойду скоро, с 8 утра пытаюсь написать одну функцию .

Отредактировал: ssx, - 24.2.2015, 15:39


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 24.2.2015, 15:41
Сообщение #24


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

В Funny Points есть вывод лидера по количеству поинтов,каждый раунд =) (Или вы об этом плагине?

Отредактировал: ThePhoenix, - 24.2.2015, 15:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
voed
сообщение 24.2.2015, 15:42
Сообщение #25
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Дебаж информацию из цикла
Код:
if(point[id]>max)
{
max=point[id]
maxid=id
client_print(0, print_chat, "max points: %i, id %i", max, maxid)
}

ну или в лог, как тебе удобнее
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 24.2.2015, 15:49
Сообщение #26


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

нужный код из Funny Points 2.0
Код:
////////////////////////////////////
// Funny Points 2.0 //
// by Xhonor //
// Skype: xhonor_39 //
////////////////////////////////////

public Leader()
{
if(!(get_pcvar_num(funny_points_leader_msj)) || !(get_pcvar_num(funny_points_enable)))
return PLUGIN_HANDLED

new iPoints
new iLeader = GetLeader(iPoints)
new Players = UsersGetPlaying()
new iPlayers[32], iNum
new szName[32]
get_user_name(iLeader, szName, 31)
get_players(iPlayers, iNum, "ch")

for(new i = 0; i < iNum; i++)

if(Players == 0)
{
return PLUGIN_HANDLED
}
else
{
set_dhudmessage(0, 255, 20, 0.02, 0.32, 0, 10.0, 5.0)
show_dhudmessage(0, "%L", LANG_PLAYER, "LEADER", szName, iPoints)
}
return PLUGIN_HANDLED
}

GetLeader(&iPoints)
{
new iPlayers[32], iNum, id, i, iLeader, iFP
get_players(iPlayers, iNum, "ch")

for(i = 0; i < iNum; i++)
{
id = iPlayers[i]
iFP = gPoints[id]

if(iFP > iPoints )
{
iPoints = iFP
iLeader = id
}
}
return iLeader;
}

UsersGetPlaying()
{
static iPlaying, id
iPlaying = 0

for(id = 1; id <= MaxPlayers; id++)
{
if(is_user_connected(id))
{
if(get_user_team(id) == 1 || get_user_team(id) == 2)
iPlaying++
}
}
return iPlaying;
}


Сейчас буду подгонять и тестировать под свои нужды..


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igas
сообщение 24.2.2015, 16:27
Сообщение #27


Стаж: 13 лет

Сообщений: 107
Благодарностей: 52
Полезность: 361

ssx, я тебе уже выкладывал код, зачем изобретать велосипед?
Код:
public Point_check()
{
new iMax = 100500 /* Сюда вписывай макс. значение поинтов */
static iMaxPlayers, szName[32]

/* get_maxplayers() не будет вызываться каждый раз, данные уже присвоены статической перемеренной iMaxPlayers */
if(!iMaxPlayers)
iMaxPlayers = get_maxplayers()

/* цикл в случае get_maxplayers(), нужно начинать с 1 (new i = 1) */
for(new i = 1; i < iMaxPlayers; i++)
{
if(is_user_connected(i)){
/* Проверка, если поинты игрока больше или равны макс. значению поинтов, вывести сообщение */
if(point[i] >= iMax)
{
get_user_name(i, szName, charsmax(szName))
client_print(0, print_chat, "Игрок %s имеет больше всего поинтов", szName)
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 24.2.2015, 16:35
Сообщение #28
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

igas, ему нужно сначала сравнить поинты пользователей и найти, у кого максимальное значение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Stimul1
сообщение 24.2.2015, 17:00
Сообщение #29


Стаж: 13 лет

Сообщений: 227
Благодарностей: 262
Полезность: 977

Код:
public Task_point()
{
static szName[32];

new id;
static iMaxPlayers, iMaxResult;

if(!iMaxPlayers)
iMaxPlayers = get_maxplayers();

for(id = 1; id <= iMaxPlayers; id++)
{
if(is_user_connected(id))
{
if(point[id] > point[iMaxResult])
{
iMaxResult = id;

get_user_name(id, szName, charsmax(szName));

give_item(id, "weapon_smokegrenade");

client_print(0, print_chat, "Игрок %s получил дымовую гранату", szName);
}
}
}
}


Отредактировал: Stimul1, - 24.2.2015, 17:04
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igas
сообщение 24.2.2015, 17:05
Сообщение #30


Стаж: 13 лет

Сообщений: 107
Благодарностей: 52
Полезность: 361

Stimul1,


Отредактировал: igas, - 24.2.2015, 17:05
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: