SA-MP Forums Archive
Скриптинг курилка - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Скриптинг курилка (/showthread.php?tid=111279)



Re: Скриптинг курилка - proSeryoga - 12.02.2013

Народ поглядите код пожалуйста
http://pastebin.com/QTUVsZ6m

Почему команды не пашут ?
пишу /ban 1 10 тест
а мне выдаёт в чат
/ban [ID игрока] [количество деней] [причина]


Re: Скриптинг курилка - eakwarp - 12.02.2013

Quote:
Originally Posted by proSeryoga
Посмотреть сообщение
Народ поглядите код пожалуйста
http://pastebin.com/QTUVsZ6m

Почему команды не пашут ?
пишу /ban 1 10 тест
а мне выдаёт в чат
/ban [ID игрока] [количество деней] [причина]
new giveplayerid, days, text[255], ip[32], date[32], unbandate;
if(sscanf(params, "uds[255]", giveplayerid, days, text))


Re: Скриптинг курилка - proSeryoga - 12.02.2013

Всё равно пишет /ban [ID игрока] [количество деней] [причина]


Re: Скриптинг курилка - eakwarp - 12.02.2013

Quote:
Originally Posted by proSeryoga
Посмотреть сообщение
Всё равно пишет /ban [ID игрока] [количество деней] [причина]
Значит следует уменьшить размер массива text.


Re: Скриптинг курилка - Dreik - 12.02.2013

Quote:
Originally Posted by Nikid
Посмотреть сообщение
В коде
Это понятно. Хе-хе.

Вроде ничего особенного нет. Выхожу из режима спектатора, как написал выше, при нажатии на текстдрав созданный для игрока:

Код HTML:
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
	if(playertextid == Launcher[playerid][Login])
	{
	    CancelSelectTextDraw(playerid);
	    TogglePlayerSpectating(playerid,0);
	}
	return 1;
}
И далее меня кикает с сервера. Ранее на 0.3e версии такого не было, когда реализовывал подобную систему, но с глобальными текстдравами. А тут начал писать на 0.3x и такая вот досада.


Re: Скриптинг курилка - Stepashka - 12.02.2013

Quote:
Originally Posted by Dreik
Посмотреть сообщение
Это понятно. Хе-хе.

Вроде ничего особенного нет. Выхожу из режима спектатора, как написал выше, при нажатии на текстдрав созданный для игрока:

Код HTML:
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
	if(playertextid == Launcher[playerid][Login])
	{
	    CancelSelectTextDraw(playerid);
	    TogglePlayerSpectating(playerid,0);
	}
	return 1;
}
И далее меня кикает с сервера. Ранее на 0.3e версии такого не было, когда реализовывал подобную систему, но с глобальными текстдравами. А тут начал писать на 0.3x и такая вот досада.
Может причина вообще не тут, когда вы выходите из спектра срабатывает как минимум 3 события?!


Re: Скриптинг курилка - Nikid - 13.02.2013

У меня в моде при использовании CancelSelectTextDraw(playerid); Вылазит весь текстдрав созданный через: TextDrawCreate. Я добавлял TextDrawHideForPlayer, TextDrawHideForAll все равно появляются, добавлял до и после CancelSelectTextDraw(playerid); толку 0. Если убрать CancelSelectTextDraw(playerid); работает все отлично. Это баг данной функции или что?


Re: Скриптинг курилка - kamilot73 - 13.02.2013

Ребят, в каких случаях может не срабатывать OnPlayerKeyStateChange ( в авто )? Категорически не хочет брать Клавиши - KEY_WALK и KEY_SPRINT
Код:
if(newkeys & KEY_WALK)
  {
  if(GetPlayerState(playerid) == PlAYER_STATE_DRIVER)
  {
  new en,li,al,doors,bon,boot,ob;
  new  veh = GetPlayerVehicleID(playerid);
  GetVehicleParamsEx(veh,en,li,al,doors,bon,boot,ob);
  if(Cardvig[veh][1] == 0) {SetVehicleParamsEx(veh,en,1,al,doors,bon,boot,ob);Cardvig[veh][1] = 1;}
  else if(Cardvig[veh][1] == 1) {SetVehicleParamsEx(veh,en,0,al,doors,bon,boot,ob);Cardvig[veh][1] = 0;}
  }
Может где рука скривила?
P.S. Делал подобное шаманство:
Код:
if(newkeys & KEY_WALK)
  {
   printf("Test 1!");
  if(IsPlayerInAnyVehicle(playerid))
  {
  printf("Test 2!");
  new en,li,al,doors,bon,boot,ob;
  new  veh = GetPlayerVehicleID(playerid);
  GetVehicleParamsEx(veh,en,li,al,doors,bon,boot,ob);
  if(Cardvig[veh][1] == 0) {SetVehicleParamsEx(veh,en,1,al,doors,bon,boot,ob);Cardvig[veh][1] = 1;}
  else if(Cardvig[veh][1] == 1) {SetVehicleParamsEx(veh,en,0,al,doors,bon,boot,ob);Cardvig[veh][1] = 0;}
  return 1;
  }
итог: ON_FOOT => Тест 1 замечательно проходит , 2ой и не должен. А вот с Водилой траблы. Даже 1ая проверка не проходит.


Re: Скриптинг курилка - Stepashka - 13.02.2013

Quote:
Originally Posted by kamilot73
Посмотреть сообщение
Ребят, в каких случаях может не срабатывать OnPlayerKeyStateChange ( в авто )? Категорически не хочет брать Клавиши - KEY_WALK и KEY_SPRINT
Код:
if(newkeys & KEY_WALK)
  {
  if(GetPlayerState(playerid) == PlAYER_STATE_DRIVER)
  {
  new en,li,al,doors,bon,boot,ob;
  new  veh = GetPlayerVehicleID(playerid);
  GetVehicleParamsEx(veh,en,li,al,doors,bon,boot,ob);
  if(Cardvig[veh][1] == 0) {SetVehicleParamsEx(veh,en,1,al,doors,bon,boot,ob);Cardvig[veh][1] = 1;}
  else if(Cardvig[veh][1] == 1) {SetVehicleParamsEx(veh,en,0,al,doors,bon,boot,ob);Cardvig[veh][1] = 0;}
  }
Может где рука скривила?
Документация для кого?
Key_List
Если вы не заметили, но напротив KEY_WALK в столбике Key invehicle стоит прочерк, что говорит нам - данное событие в машине не вызывается!
Напротив KEY_SPRINT стоит VEHICLE_ACCELERATE и клавиша по умолчанию W.

Начните уже внимательно изучать документацию!


Re: Скриптинг курилка - kamilot73 - 13.02.2013

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Документация для кого?
Key_List
Если вы не заметили, но напротив KEY_WALK в столбике Key invehicle стоит прочерк, что говорит нам - данное событие в машине не вызывается!
Напротив KEY_SPRINT стоит VEHICLE_ACCELERATE и клавиша по умолчанию W.

Начните уже внимательно изучать документацию!
Благодарю.)


Re: Скриптинг курилка - GameMan - 13.02.2013

По совету на данном форуме я установил инклуд mxDate и вроде бы как должен был решить свою проблему. Но не тут то было.
После проверки функции date:
Код:
print(date("%dd/%mm/%yyyy %hh:%ii:%ss", gettime()));
Мне показало не 12/02/2013 22:06:27, а аж 13/02/2013 11:06:27
В чем может быть проблема?
http://pastebin.com/Q2G8H0Nf


Re: Скриптинг курилка - Stepashka - 13.02.2013

Quote:
Originally Posted by GameMan
Посмотреть сообщение
По совету на данном форуме я установил инклуд mxDate и вроде бы как должен был решить свою проблему. Но не тут то было.
После проверки функции date:
Код:
print(date("%dd/%mm/%yyyy %hh:%ii:%ss", gettime()));
Мне показало не 12/02/2013 22:06:27, а аж 13/02/2013 11:06:27
В чем может быть проблема?
http://pastebin.com/Q2G8H0Nf
не надо дублировать свои сообщения!
И вам уже ответили: http://forum.sa-mp.com/showpost.php?...1&postcount=88


Re: Скриптинг курилка - GameMan - 13.02.2013

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
не надо дублировать свои сообщения!
И вам уже ответили: http://forum.sa-mp.com/showpost.php?...1&postcount=88
Простите, что повторился... Просто там я ошибся темой.
Как я понял, проблема в том инклуде в смещении времени каждый год... Придется каждый год править смещение

pawn Код:
stock timestamp_to_date
(
    unix_timestamp = 0,

    & year = 1970,        & month = 1,        & day  = 1,
    & hour =  0,        & minute = 0,        & second = 0
)
{
    year = unix_timestamp / 31557600;
    unix_timestamp -= year * 31557600;
    year += 1970;

    if ( year % 4 == 0 ) unix_timestamp -= 21600;

    day = unix_timestamp / 86400;

    switch ( day )
    {
        // в second будет временно хранится число месяца
        case  0..30 : { second = day;    month = 1; }
        case  31..58 : { second = day - 31; month = 2; }
        case  59..89 : { second = day - 59; month = 3; }
        case 90..119 : { second = day - 90; month = 4; }
        case 120..150 : { second = day - 120; month = 5; }
        case 151..180 : { second = day - 151; month = 6; }
        case 181..211 : { second = day - 181; month = 7; }
        case 212..242 : { second = day - 212; month = 8; }
        case 243..272 : { second = day - 243; month = 9; }
        case 273..303 : { second = day - 273; month = 10; }
        case 304..333 : { second = day - 304; month = 11; }
        case 334..366 : { second = day - 334; month = 12; }
    }
    unix_timestamp -= day * 86400;
    hour = unix_timestamp / 3600;
   
    unix_timestamp -= hour * 3600;
    minute = unix_timestamp / 60;
   
    unix_timestamp -= minute * 60;
   
    day = second + 1;
    second = unix_timestamp;
}
Есть еще идея рассчитывать циклом, но это займет слишком много времени.
У кого какие идеи?


Re: Скриптинг курилка - Dreik - 13.02.2013

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Может причина вообще не тут, когда вы выходите из спектра срабатывает как минимум 3 события?!
Степаша, можете пожалуйста поподробнее, немного не понял суть. Благодарю.


Re: Скриптинг курилка - Alexander_Petrov - 13.02.2013

Quote:
Originally Posted by Dreik
Посмотреть сообщение
Степаша, можете пожалуйста поподробнее, немного не понял суть. Благодарю.
OnPlayerStateChange, OnPlayerSpawn...


Re: Скриптинг курилка - kamilot73 - 13.02.2013

Вот такой вопрос: SQLite или Mysql ? Что лучше приживается? и что посоветуете Вы.Спасибо.


Re: Скриптинг курилка - AirKite - 13.02.2013

SQlite это файловая система. Почти тот же MySQL но не требующий отдельного сервера и подключений (работает ЗНАЧИТЕЛЬНО медленнее).

Если стоит выбор между SQlite и MySQL но вы не знаете что выбрать. Выбор очевиден. MySQL!!!


Re: Скриптинг курилка - hub4 - 13.02.2013

интервал между срабатываниями 1000ms таймера в 1200 тиков - эт как понимать?
вообще это расхождение от чего то зависит?


Re: Скриптинг курилка - Dreik - 14.02.2013

Quote:
Originally Posted by Alexander_Petrov
Посмотреть сообщение
OnPlayerStateChange, OnPlayerSpawn...
Я пишу игровой режим с нуля и эти колбеки на данный момент абсолютно пусты.


Re: Скриптинг курилка - eakwarp - 14.02.2013

Quote:
Originally Posted by kamilot73
Посмотреть сообщение
Вот такой вопрос: SQLite или Mysql ? Что лучше приживается? и что посоветуете Вы.Спасибо.
MsSQL.