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

 



 
        
[SA-MP] Hosted Tab (172)
DieSeL 23.02.2020 14:24
[Хостинг] React Labs (4)
DieSeL 31.12.2019 14:23
 





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





Последние Файлы 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 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: 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
Гуру
Группа: Продвинутые
Сообщений: 1096
Награды: 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
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 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
Группа: Администратор
Сообщений: 8295
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
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
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 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
Группа: Администратор
Сообщений: 8295
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
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
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 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
Группа: Администратор
Сообщений: 8295
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
ZiGGi, а ну да точняк, я ошибся)


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


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





 


 


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