17:02
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
AFK сис-ма
Ghost-XДата: Вторник, 24.03.2009, 14:08 | Сообщение # 1
Мастер джэдай
Группа: Продвинутые
Сообщений: 3548
Награды: 36
Город: Наб. Челны
Репутация: 856
Замечания: 40%
Статус:
Ищу кик за афк 10 минут. Т.е. Idle kicker как в Катрине


Спор на форуме, все равно что олимпиада среди умственно отсталых: даже если ты победил, ты все равно гермофродит.
Хочешь остаться при своем мнении - держи его при себе.
Ghost-XДата: Вторник, 24.03.2009, 21:34 | Сообщение # 2
Мастер джэдай
Группа: Продвинутые
Сообщений: 3548
Награды: 36
Город: Наб. Челны
Репутация: 856
Замечания: 40%
Статус:
Все нашел. Кому надо:

Code
#define MAX_IDLE_TIME 7
enum pPos
{
Float:LastX,
Float:LastY,
Float:LastZ,
}

new
      PlayerLastPos[MAX_PLAYERS][pPos],
      PlayerAfkTicks[MAX_PLAYERS],
      Float:PlayerCurrentPos[3];

public OnGameModeInit()
{
SetTimer("IdleKicker",1000,1);
}

forward IdleKicker();
public IdleKicker()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
GetPlayerPos(i, PlayerCurrentPos[0], PlayerCurrentPos[1], PlayerCurrentPos[2]);
if(!floatcmp(PlayerCurrentPos[0], PlayerLastPos[i][LastX]) && !floatcmp(PlayerCurrentPos[1], PlayerLastPos[i][LastY]))
{
PlayerAfkTicks[i] ++;
}
else
{
PlayerAfkTicks[i] = 0;
}
PlayerLastPos[i][LastX] = PlayerCurrentPos[0];
PlayerLastPos[i][LastY] = PlayerCurrentPos[1];
PlayerLastPos[i][LastZ] = PlayerCurrentPos[2];
if(PlayerAfkTicks[i] == MAX_IDLE_TIME*50)
{
SendClientMessage(i, COLOUR_WHITE, "Вы простояли 7 минут на месте, вас скоро кикнут!!!");
return 1;
}
if(PlayerAfkTicks[i] == MAX_IDLE_TIME*60)
{
new name[MAX_PLAYER_NAME];
new string[64];
GetPlayerName(i, name, sizeof(name));
SendClientMessage(i, COLOUR_LIGHTRED, "Вы были кикнуты за простой 7 минут на месте");
format(string, sizeof(string), "%s был кикнут за простой на месте 7 минут!",name);
SendClientMessageToAll(COLOUR_LIGHTRED, string);
Kick(i);
return 1;
}
}
return 1;
}



Спор на форуме, все равно что олимпиада среди умственно отсталых: даже если ты победил, ты все равно гермофродит.
Хочешь остаться при своем мнении - держи его при себе.
stepmexДата: Вторник, 24.03.2009, 22:01 | Сообщение # 3
Мастер джэдай
Группа: Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус:
В воде остаться и не будет работать этот код lol


И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
[TDM]KosmosДата: Среда, 25.03.2009, 14:46 | Сообщение # 4
Мастер джэдай
Группа: Продвинутые
Сообщений: 2046
Награды: 8
Город: Йошкар-Ола
Репутация: 126
Замечания: 40%
Статус:
stepmex, то есть? оО


Я вернулся =)
stepmexДата: Среда, 25.03.2009, 15:50 | Сообщение # 5
Мастер джэдай
Группа: Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус:
[TDM]Kosmos, когда ты в воде за счет её движения твои координаты всегда меняются, также если сесть к кому-нибудь в машину или встать на неё.


И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
33pavlik33Дата: Четверг, 16.04.2009, 15:31 | Сообщение # 6
Уверенный в себе
Группа: Продвинутые
Сообщений: 194
Награды: 1
Город: Ковров
Репутация: 9
Замечания: 0%
Статус:
Quote
.pwn(987) : error 021: symbol already defined: "OnGameModeInit"
.pwn(989) : warning 209: function "OnGameModeInit" should return a value

Это если просто в конец кода мода вставить.
Если же вставляю в паблик public OnGameModeInit()
Quote
{
SetTimer("IdleKicker",1000,1);
}

forward IdleKicker();


А остальное в конец мода, то вообще кучища ошибок появляется wall

[RD]ChezДата: Четверг, 16.04.2009, 15:57 | Сообщение # 7
Мастер джэдай
Группа: Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус:
stepmex, слух а как насчет движение + keystate? чот я тут подумал и решил что выгодней
OnPlayerText+OnPlayerCommandText+OnPlayerStateChange+OnPlayerKeyStateChange+OnPlayerUpdate+ сравнение координат.
ты пробовал писатть кикер с изменением нажатий клавиш? я к тому, что стоит изобретать велосипед, если он уже создан7 =)



1 час моей работы стоит минимум 800 рублей для срочных работ.
Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS.
Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы.
Немного ассемблер.
Ох**тельный верстальщик какб.

Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^

chezrd@gmail.com
lance@chez-lab.ru
33pavlik33Дата: Четверг, 16.04.2009, 17:38 | Сообщение # 8
Уверенный в себе
Группа: Продвинутые
Сообщений: 194
Награды: 1
Город: Ковров
Репутация: 9
Замечания: 0%
Статус:
Помогите хотя бы тогда скрипт из этого сделать sorry
stepmexДата: Четверг, 16.04.2009, 18:48 | Сообщение # 9
Мастер джэдай
Группа: Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус:
[RD]Chez, я уже давно написал АФК с применением 1 таймера и OnPlayerUpdate(playerid), чтобы изменить сие чуда на кикер нужно добавить 3-5 строчек.
И кстати я сам лично это уже сделал у себя на сервере, но там кикает через 2 часа.

Добавлено (16.04.2009, 18:46)
---------------------------------------------
Вот тема: http://www.samp-rus.com/forum/15-8705-1

Код:
[pwn]

Code
#include <a_samp>

#define TIME_IO_KICK 10 //в секундах

forward System();
new AFKPlayer[MAX_PLAYERS],timer,PlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];

public OnFilterScriptInit()
{
  print("\n--------------------------------------");
  print("        AFK system by $tepashka");
  print("--------------------------------------\n");
  timer = SetTimer("System",1000,1);
  for(new playerid;playerid < MAX_PLAYERS;playerid++)
  {
      if(IsPlayerConnected(playerid)){AFKPlayer[playerid] = 0;}
  }
  return 1;
}

public OnFilterScriptExit()
{
  KillTimer(timer);
     for(new playerid;playerid < MAX_PLAYERS;playerid++)
  {
      if(IsPlayerConnected(playerid) && AFKPlayer[playerid] > 0)
   {
       SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(playerid)-1);
    SetPlayerName(playerid,PlayerName[playerid]);
   }
  }
  return 1;
}

public OnPlayerConnect(playerid)
{
     AFKPlayer[playerid] = -5;
  return 1;
}

public OnPlayerSpawn(playerid)
{
     AFKPlayer[playerid] = 0;
  return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
     AFKPlayer[playerid] = -5;
  return 1;
}

public OnPlayerUpdate(playerid)
{
  if(AFKPlayer[playerid] > -5)
  {
   if(AFKPlayer[playerid] > 0)
   {
       new string[128];
       format(string,sizeof(string),"SERVER: игрок %s вернулся из AFK продолжительностью %s",PlayerName[playerid],ConvertSeconds(AFKPlayer[playerid]));
    SendClientMessageToAll(0xFFA500AA,string);
    SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(playerid)-1);
    SetPlayerName(playerid,PlayerName[playerid]);
   }
   AFKPlayer[playerid] = 0;
  }
  return 1;
}

public System()
{
  for(new playerid;playerid < MAX_PLAYERS;playerid++)
  {
   if(IsPlayerConnected(playerid))
   {
       new string[128];
    if(-5 < AFKPlayer[playerid] <= 0)
    {
        AFKPlayer[playerid] -= 1;
    }
    else if(AFKPlayer[playerid] == -3)
    {
        AFKPlayer[playerid] = 1;
        GetPlayerName(playerid, PlayerName[playerid], MAX_PLAYER_NAME);
        format(string,sizeof(string),"SERVER: игрок %s ушел в AFK",PlayerName[playerid]);
     SendClientMessageToAll(0xFFA500AA,string);
     SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(playerid)+1);
     format(string,MAX_PLAYER_NAME,"%s[AFK]",PlayerName[playerid]);
        SetPlayerName(playerid,string);
    }
    else if(0 < AFKPlayer[playerid] < 7200)
    {
        AFKPlayer[playerid] += 1;
    }
    else if(AFKPlayer[playerid] >= TIME_IO_KICK)
    {
      SendClientMessage(playerid,0xFFA500AA,"Вы были кикнуты за 10 секундное отсутствие.");
      SetPlayerName(playerid,PlayerName[playerid]);
      Kick(playerid);
    }
   }
  }
}

ConvertSeconds(time)
{
  new string[128];
  if(time < 60)
  {
   format(string, sizeof(string), "%d секунд", time);
  }
  else if(time == 60)
  {
   string = "1 минуту";
  }
  else if(time > 60 && time < 3600)
  {
   new Float: minutes;
   new seconds;
   minutes = time / 60;
   seconds = time % 60;
   format(string, sizeof(string), "%.0f минут и %d секунд", minutes, seconds);
  }
  else if(time == 3600)
  {
   string = "1 час";
  }
  else if(time > 3600)
  {
   new Float: hours;
   new minutes_int;
   new Float: minutes;
   new seconds;
   hours = time / 3600;
   minutes_int = time % 3600;
   minutes = minutes_int / 60;
   seconds = minutes_int % 60;
   format(string, sizeof(string), "%.0f:%.0f:%d", hours, minutes, seconds);
  }
  return string;
}
[/pwn]

Добавлено (16.04.2009, 18:48)
---------------------------------------------
Учтена даже возможность краткосрочной потери пакетов от клиента.


И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
PhenomДата: Пятница, 17.04.2009, 18:35 | Сообщение # 10
Постоялец
Группа: Пользователи
Сообщений: 496
Награды: 16
Город: Киров
Репутация: 78
Замечания: 100%
Статус:
stepmex, kiss , то что надо. crazy
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua