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

 



 
        
Подвиcание SA-MP (2)
Max 20.02.2017 21:57
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы 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
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
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 3123»
Модератор форума: Dima-kun, Alcoholik 
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Моды для SAMP » [GM] RegSys ( Latron )
[GM] RegSys ( Latron )
LatronДата: Вторник, 28.02.2012, 11:39 | Сообщение # 1
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:



Автор: Latron.
Скрипт сделан специально для сайта [b]SAMP-RUS.COM,публикация на других ресурсах без разрешения автора запрещена.[/b]

В скрипте используются:
#include < a_mysql.inc > ( creator BlueG )
#include < foreach.inc > (creator Y_Less )
#include < sscanf.inc > (creator Y_Less )
#include < zcmd.inc > ( creator Zeex )

Способ хранения данных: БД MySQL.

Особенности:

Вы можете легко менять настройки скрипта, такие как название мода,сервера,таблиц в БД и Т.Д.
Иды диалоговых окон хранятся в массиве.


В аккаунт записываются:
p_ID ( Уникальный SQL ид. )
p_Name ( Имя игрока. )
p_Pass ( Пароль игрока. )
p_Money ( Деньги. )
p_Admin ( Уровень администратора. )


Скрипт будет постоянно обновляться и дорабатываться, на данный момент там есть:

Команды:
/stats - статистика игрока.
/restart - перезагрузка мода.
/gotocord - перемещение по заданым координатам.
/veh - создание Т.С.
/givemoney - выдача денег.

Функции и тд:
Анти_баг С+.

IsABMX:
- функция проверяет транспортное средство на модель, соответствующую классу моделей велосипедов, и в случаи положительного сопоставления возвращает истину, иначе - ложь.
GetPlayerNameEx:
- Определение имени игрока.
MySQL_GetPlayerInfo:
- Получение информации об аккаунте.
MySQL_LoadAccount:
- Загрузка аккаунта.
MySQL_ConnectPlayer:
- Подключение игрока.
Base_Connect:
- Подключение мода к БД.
RestartServer:
- Перезагрузка мода.
SendAdminMessage:
- Отправляет сообщение администрации от первого уровня и выше.


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

Скачать скрипт...
( Состав архива: Стандартный 03d sa-mp сервер/New.pwn/mysql.dll|mysql.so/sscanf.dll|sscanf.so/streamer.dll|streamer.so/libmySQL.dll/PlayerTable.sql )
Посмотреть код...



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин

Сообщение отредактировал Latron - Понедельник, 12.03.2012, 13:42
ИвентДата: Вторник, 28.02.2012, 12:24 | Сообщение # 2
Местный
Группа: I'm V.I.P.
Сообщений: 610
Награды: 65
Город: ?
Замечания: 100%
Статус:
Latron, Немного смахивает на RegSys от ZiGGi. :)


Банец.
LatronДата: Вторник, 28.02.2012, 12:30 | Сообщение # 3
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Ивент, Вы бы сравнили прежде чем делать такие выводы...


Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин

Сообщение отредактировал Latron - Вторник, 28.02.2012, 12:33
ApecДата: Вторник, 28.02.2012, 16:32 | Сообщение # 4
Группа: Mappers
Сообщений: 1307
Награды: 29
Город: Минск
Репутация: 1922
Замечания: 0%
Статус:
Мне кажется что-то не то с командой gotocord так-как я ТП по не далёким координатам и меня кидается за пределы карты


DrevenДата: Вторник, 28.02.2012, 16:53 | Сообщение # 5
Гуру
Группа: Продвинутые
Сообщений: 1094
Награды: 205
Город: od.ua
Репутация: 1099
Замечания: 0%
Статус:
Quote (Latron)
stats - статистика игрока.

Quote (Latron)

p_ID ( Уникальный SQL ид. )
p_Name ( Имя игрока. )
p_Pass ( Пароль игрока. )
p_Money ( Деньги. )
p_Admin ( Уровень администратора. )

Судя по этому то в статах можно глянуть только имя и деньги??? Ну уровень админа там не нужен я думаю))))
Ну в принципе скрипт полезен, жаль только что никак не подружусь с мускулом, а он же такой модный в последнее время =(((



www.samp-rpg.com
ZiGGiДата: Вторник, 28.02.2012, 17:33 | Сообщение # 6
Мастер джэдай
Группа: Продвинутые
Сообщений: 2650
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Больше похоже на основу для модов :)

Code

stock MySQL_Player_Update( const playerid ) // Сохранение игрока.
{
  format( query, MAX_QUERY, "UPDATE `"#MySQL_Table_PLAYERS"` SET " );
  format( str, MAX_STRING, "p_Money=%d,", P_Info[ playerid ][ p_Money ] );  strcat( query, str, MAX_QUERY );
         format( str, MAX_STRING, "p_Admin=%d,", P_Info[ playerid ][ p_Admin ] );  strcat( query, str, MAX_QUERY );
  format( str, MAX_STRING, " WHERE P_ID='%d'", P_Info[ playerid ][ p_ID ] );  strcat( query, str, MAX_QUERY );
  mysql_query( query );
  return true;
}

Здесь можно спокойно избавиться от format или strcat, но лучше от format, ибо он медленный.

Code
"SET NAMES 'cp1251'"

cp1251 - зачем?!

Code
for ( new i, s = sizeof( Cweapon );i < s; i++ )

Так будет меньше на 1 переменную:
Code
for ( new i=0;i < sizeof( Cweapon ); i++ )


В переменных для хранения ника игрока используй MAX_PLAYER_NAME, а не 24(мало-ли увеличится когда-нибудь).

Code

static Count = 3;
...
if( !Count )

Странная проверка, раз задал счётчик, дак проверяй как счётчик if( Count == 0 )

Code

stock bool: IsABMX( const carid )
{
  new VehicleModel_BMX = GetVehicleModel( carid );
  if( VehicleModel_BMX == 510 || VehicleModel_BMX == 509 || VehicleModel_BMX == 481 ) return true;
  return false;
}

switch/case'ом будет быстрее.

Code

Мод подключен к базе дынных

Даёшь дынные базы!

ZCMD лучше использовать так: CMD:givemoney(playerid,params[])

Code

      case D_REG:
   {
          static
      pass[ 32 ];
          if( !response )
     return Kick( playerid );
          if( !strlen( inputtext ) )
        return ShowPlayerDialog( playerid, D_REG, DIALOG_STYLE_PASSWORD,
           ""#c_DeepPink"Регистрация",
           ""#c_White"Введите пароль для регистрации!",
           "Вход","Отмена" );
          if( strlen( inputtext ) < 6 || strlen( inputtext ) > 32 )
        return ShowPlayerDialog( playerid, D_REG, DIALOG_STYLE_PASSWORD,
           ""#c_DeepPink"Регистрация",
           ""#c_Red"Длина пароля должна быть от 6 до 32 символов!",
           "Вход","Отмена" );
       else
       {
           mysql_real_escape_string( inputtext,pass );
     format( query, MAX_QUERY,
                         "INSERT INTO `"#MySQL_Table_PLAYERS"` (P_Name,P_Pass) VALUES ('%s','%s')",
                         GetPlayerNameEx( playerid ),pass);
     mysql_query( query );
     return MySQL_LoadAccount( playerid );
    }
      }

Слишком рано объявлена pass[ 32 ].
Три проверки strlen( inputtext ), когда достаточно одной.
Смысл в if( !response ) return Kick( playerid ); когда можно просто показывать одну кнопку?

Code

  if( P_Info[ playerid ][ p_IsLogged ] != false )
   P_Info[ playerid ][ p_IsLogged ] = false;

Не вижу смысла в проверке, когда можно просто P_Info[ playerid ][ p_IsLogged ] = false;

Добавлено (28.02.2012, 17:14)
---------------------------------------------

Quote (Apec)
Мне кажется что-то не то с командой gotocord так-как я ТП по не далёким координатам и меня кидается за пределы карты

Это очевидный баг:
Code

  static
   gotocord[ 3 ];
  if( sscanf( params, "fff", gotocord[ 0 ], gotocord[ 1 ], gotocord[ 2 ] ) )

Массив gotocord[ 3 ] целого типа, а присваивают ему Float.

Добавлено (28.02.2012, 17:33)
---------------------------------------------

Code
stock MySQL_GetPlayerInfo( name[  ], func[  ] ) // Получение информации о игроке.
{
  format( query, MAX_QUERY,
   "SELECT `%s` FROM `"#MySQL_Table_PLAYERS"` WHERE `P_Name` = '%s' LIMIT 1;",
   func, name );
     mysql_query( query );
     mysql_store_result(  );
     if( mysql_fetch_row( query ) == 1 )
  {
      mysql_free_result(  );
      return query;
     }
     return query;
      
}

Почему бы не так:
Code

stock MySQL_GetPlayerInfo( name[  ], func[  ] ) // Получение информации о игроке.
{
  format( query, MAX_QUERY,
   "SELECT `%s` FROM `"#MySQL_Table_PLAYERS"` WHERE `P_Name` = '%s' LIMIT 1;",
   func, name );
     mysql_query( query );
     mysql_store_result();
     mysql_fetch_row( query );
     mysql_free_result();
     return query;
}


К тому же mysql_free_result() должен обязательно быть выполнен после mysql_store_result(). (в MySQL_LoadAccount это тоже присутствует)



Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
ApecДата: Вторник, 28.02.2012, 18:38 | Сообщение # 7
Группа: Mappers
Сообщений: 1307
Награды: 29
Город: Минск
Репутация: 1922
Замечания: 0%
Статус:
Quote (ZiGGi)
Массив gotocord[ 3 ] целого типа, а присваивают ему Float.

А исправить то как для непросвещённых напиши)



EmiGrantДата: Вторник, 28.02.2012, 18:45 | Сообщение # 8
Долгожитель
Группа: Продвинутые
Сообщений: 1362
Награды: 34
Город: Пятигорск
Репутация: 1653
Замечания: 40%
Статус:
Quote (Apec)
А исправить то как для непросвещённых напиши)

Вместо static gotocord[ 3 ]; ставь static Float:gotocord[ 3 ]; (Не проверял, но должно помочь)





Если человек несет бред, то здесь 2 варианта: либо он очень умный либо очень тупой © EmiGrant
LatronДата: Вторник, 28.02.2012, 19:40 | Сообщение # 9
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Apec, сейчас всё исправлю и выложу.
EmiGrant, я знаю ,это невнимательность только и всего ...

Добавлено (28.02.2012, 19:38)
---------------------------------------------

Quote (ZiGGi)
Больше похоже на основу для модов :)

Ну в общем то так и планировал...
Quote (ZiGGi)
Даёшь дынные базы!

Названия по моему достаточно ...
Quote (ZiGGi)

Массив gotocord[ 3 ] целого типа, а присваивают ему Float.

Оу,ошибочка вышла...
Quote (ZiGGi)
ZCMD лучше использовать так: CMD:givemoney(playerid,params[])

А разница ?
Quote (ZiGGi)
mysql_free_result() должен обязательно быть выполнен после mysql_store_result().

Так и есть...

Добавлено (28.02.2012, 19:38)
---------------------------------------------
ZiGGi, Спасибо больше всё что ты сказал учтено,сейчас выложу...

Добавлено (28.02.2012, 19:40)
---------------------------------------------



Обновление: Исправил и учел в скрипте всё что сказал ZiGGi .
Архив обновлен



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин
AlcoholikДата: Вторник, 28.02.2012, 20:13 | Сообщение # 10
Группа: Администратор
Сообщений: 8284
Награды: 111
Город: Санкт-Петербург
Репутация: 5935
Статус:
Code
format( query, MAX_QUERY, "UPDATE `"#MySQL_Table_PLAYERS"` SET " );
  format( str, MAX_STRING, "p_Money=%d,", P_Info[ playerid ][ p_Money ] );  strcat( query, str, MAX_QUERY );
     format( str, MAX_STRING, "p_Admin=%d,", P_Info[ playerid ][ p_Admin ] );  strcat( query, str, MAX_QUERY );
  format( str, MAX_STRING, " WHERE P_ID='%d'", P_Info[ playerid ][ p_ID ] );  strcat( query, str, MAX_QUERY );

Зачем? Не лучше ли в один format всё запихать?
Code
for ( new i = 0; i < sizeof( Cweapon ); i++ )

new s = sizeof( Cweapon )
for ( new i = 0; i < s; i++ )
Ну и ещё интересно, почему тэг [FS], а в архиве мод.



if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
ZiGGiДата: Вторник, 28.02.2012, 20:15 | Сообщение # 11
Мастер джэдай
Группа: Продвинутые
Сообщений: 2650
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Quote (RoACh)
new s = sizeof( Cweapon )
for ( new i = 0; i < s; i++ )

Зачем лишняя переменная?
Лучше варианта точно нету
Code
for ( new i = 0; i < sizeof( Cweapon ); i++ )



Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
AlcoholikДата: Вторник, 28.02.2012, 20:40 | Сообщение # 12
Группа: Администратор
Сообщений: 8284
Награды: 111
Город: Санкт-Петербург
Репутация: 5935
Статус:
Quote (ZiGGi)
Зачем лишняя переменная?

Лишняя переменная будет лучше, чем в цикле каждый раз вычислять размер Cweapon :) Спрашивал препода по программированию, написал ему похожий код, не успел вопрос задать, он мне сам исправил код, вопрос я так и не задал, но тему уяснил)



if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
ZiGGiДата: Вторник, 28.02.2012, 20:49 | Сообщение # 13
Мастер джэдай
Группа: Продвинутые
Сообщений: 2650
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Quote (RoACh)
Лишняя переменная будет лучше, чем в цикле каждый раз вычислять размер Cweapon

sizeof выполняется на уровне компиляции, на скорость работы он никак не влияет, поэтому его свободно можно держать в теле проверки цикла.

Quote (RoACh)
Спрашивал препода по программированию, написал ему похожий код, не успел вопрос задать, он мне сам исправил код, вопрос я так и не задал, но тему уяснил)

Именно про sizeof? Скорее всего он говорил про что-то вроде strlen'а это да, лучше вычислить один раз и присвоить значение переменной, ну или крутить цикл с конца.



Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
LatronДата: Вторник, 28.02.2012, 20:54 | Сообщение # 14
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Quote (RoACh)
Ну и ещё интересно, почему тэг [FS], а в архиве мод.

Сначала планировал просто регистрацию,но будет основа мода...Можешь перенести в моды...



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин
AlcoholikДата: Вторник, 28.02.2012, 21:34 | Сообщение # 15
Группа: Администратор
Сообщений: 8284
Награды: 111
Город: Санкт-Петербург
Репутация: 5935
Статус:
ZiGGi, а ну да точняк, я ошибся)


if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Моды для SAMP » [GM] RegSys ( Latron )
Страница 1 из 3123»
Поиск:





 

туры в Абхазию.

 


 
Хостинг от uCoz SAMP-RUS.COM