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

 



 
          





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





Последние Файлы 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
Модератор форума: Dima-kun  
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » Система доната (MySQL)
Система доната (MySQL)
zEscДата: Воскресенье, 17.06.2012, 23:18 | Сообщение # 1
Global Elite
Группа: Ангел Хранитель
Сообщений: 896
Награды: 20
Репутация: 856
Замечания: 0%
Статус:
Написал простенький скриптик доната на мускуле, за кривой код сильно не бейте.
Скрипт рассчитан для тех у кого в моде уже есть мускул.
Инструкция в конце.


Ко всем командам:
Code
if(strcmp("/donate", cmdtext, true, 10) == 0)
{
  ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Донат система","Введите код","Oк","Отмена");
  return 1;
}

В public OnDialogResponse
Code
    if(dialogid == 1)
      {
       new donate,query[128];
         format(query, sizeof(query), "SELECT * FROM donate WHERE code = '%s'", inputtext);
   mysql_query(query);
    mysql_store_result();
      if(mysql_fetch_row(query) == 1)
      {
       BaseGetInt("work",donate);
             if(donate == 1)
             {
              SendClientMessage(playerid,-1,"VIP аккаунт активирован");
              format(query, sizeof(query), "DELETE FROM donate WHERE code = '%s'", inputtext,donate);
     mysql_query(query);
                 PlayerInfo[playerid][pVIP] = 1;
        return 1;
             }
             else if(donate == 2)
             {
                   SendClientMessage(playerid,-1,"Ваш уровень поднят на 1 единицу");
                format(query, sizeof(query), "DELETE FROM donate WHERE code = '%s'", inputtext,donate);
       mysql_query(query);
           PlayerInfo[playerid][pLevel] += 1;
                   return 1;
             }
             else if(donate == 3)
             {
                   SendClientMessage(playerid,-1,"Теперь ваш телефонный номер четырёхзначный");
                format(query, sizeof(query), "DELETE FROM donate WHERE code = '%s'", inputtext,donate);
       mysql_query(query);
       new randphone = 1000 + random(9999);
                   PlayerInfo[playerid][pPnumber] = randphone;
                   return 1;
             }
             else if(donate == 4)
             {
                   SendClientMessage(playerid,-1,"Вы получили 100.000!");
                format(query, sizeof(query), "DELETE FROM donate WHERE code = '%s'", inputtext,donate);
       mysql_query(query);
                   GivePlayerMoney(playerid, 100000);
                   return 1;
             }
             else if(donate == 5)
             {
                   SendClientMessage(playerid,-1,"Вы получили 500.000!");
                format(query, sizeof(query), "DELETE FROM donate WHERE code = '%s'", inputtext,donate);
       mysql_query(query);
                   GivePlayerMoney(playerid, 500000);
                   return 1;
             }
             else if(donate == 6)
             {
                   SendClientMessage(playerid,-1,"Вы получили 1.000.000!");
                format(query, sizeof(query), "DELETE FROM donate WHERE code = '%s'", inputtext,donate);
       mysql_query(query);
                   GivePlayerMoney(playerid, 1000000);
                   return 1;
             }
             else if(donate == 7)
             {
                   SendClientMessage(playerid,-1,"Вы получили 3.000.000!");
                format(query, sizeof(query), "DELETE FROM donate WHERE code = '%s'", inputtext,donate);
       mysql_query(query);
                   GivePlayerMoney(playerid, 3000000);
                   return 1;
             }
             format(query, sizeof(query), "DELETE FROM donate WHERE code = '%s'", inputtext,donate);
      mysql_query(query);
             SendClientMessage(playerid,-1,"Спасибо за пожертвование");
         }
         else
         {
             SendClientMessage(playerid,-1,"Неверный код");
         }
      }

В конец мода:
Code
BaseGetInt(fieldi[],&permi)
{
         new fetch[256];
         mysql_fetch_field_row(fetch,fieldi);
         permi = strval(fetch);
}



Итак, код добавляется через PhpMyAdmin.
Как добавлять?
В строку "code" записываем сам код.
В строку "work" записываем тип кода.
Типы кодов:
1 - Выдача V.I.P.
2 - +1 уровень.
3 - 4-ёх значный номер телефона
4 - +100.000 долларов.
5 - +500.000 долларов.
6 - +1.000.000 долларов.
7 - +3.000.000 долларов.
Размещение на других ресурсах без указания автора, и обратной ссылки СТРОГО ЗАПРЕЩЕНО!

Добавлено (17.06.2012, 22:56)
---------------------------------------------
Сильно не кусайтесь, пожалуйста.

Добавлено (17.06.2012, 23:18)
---------------------------------------------
Самое главное забыл, таблицы: http://rghost.ru/38723465


pesnike1Дата: Среда, 20.06.2012, 10:16 | Сообщение # 2
Новенький
Группа: Пользователи
Сообщений: 27
Награды: 0
Город: Ростов-На-Дону
Репутация: 5
Замечания: 20%
Статус:
Я может чего не понял. Но откуда в базе данных сами коды появляться будут? Допиши уж тогда урок для какой-нибудь системы оплаты a1pay например. Я б сделал, но у меня прав недостаточно.
zEscДата: Среда, 20.06.2012, 11:19 | Сообщение # 3
Global Elite
Группа: Ангел Хранитель
Сообщений: 896
Награды: 20
Репутация: 856
Замечания: 0%
Статус:
коды добавляет администратор через PhpMyAdmin. Могу сделать командой.


DesertДата: Среда, 20.06.2012, 12:32 | Сообщение # 4
Местный
Группа: I'm V.I.P.
Сообщений: 669
Награды: 57
Город: Москва
Репутация: 1082
Замечания: 0%
Статус:
DjCubex,
Сделай

pesnike1Дата: Среда, 20.06.2012, 12:56 | Сообщение # 5
Новенький
Группа: Пользователи
Сообщений: 27
Награды: 0
Город: Ростов-На-Дону
Репутация: 5
Замечания: 20%
Статус:
Ясно, я думал ты авто донат по принципу SAMP-RP имеешь в виду.
zEscДата: Среда, 20.06.2012, 13:24 | Сообщение # 6
Global Elite
Группа: Ангел Хранитель
Сообщений: 896
Награды: 20
Репутация: 856
Замечания: 0%
Статус:
Итак команда для добавления кода:
Ко всем командам:
Code
    if (strcmp("/addcode", cmdtext, true, 10) == 0)
      {
          if(IsPlayerAdmin(playerid))
        ShowPlayerDialog(playerid,237,DIALOG_STYLE_LIST,"Донат система","Код: Выдать V.I.P\nКод: Добавить 1 уровень\nКод: 4-ёх значный номер телефона\nКод: +100.000$\nКод: +500.000$\nКод: +1.000.000$\nКод: +3.000.000$","Oк","Отмена");
          return 1;
      }

В OnDialogResponse:
Code
    if(dialogid == 237)
       {
        new code[16],query[256];
        format(code,sizeof(code),"%s%d%s%d%s%d%s%d%s%d%s%d%s%d",RandBukva(),random(9),RandBukva(),random(9),RandBukva(),random(9),RandBukva() ,random (9),RandBukva(),random(9),RandBukva(),random(9),RandBukva(),random(9));
              if(listitem == 0)
              {
               SendClientMessage(playerid,-1,"Код V.I.P. аккаунта добавлен. Код:");
               SendClientMessage(playerid,-1,code);
               format(query, sizeof(query), "INSERT INTO ваша таблица (code,work) VALUES ('%s','1')", code);
      mysql_query(query);
                  return 1;
              }
              else if(listitem == 1)
              {
                 SendClientMessage(playerid,-1,"Код для поднятия уровня добавлен. Код:");
                 SendClientMessage(playerid,-1,code);
                 format(query, sizeof(query), "INSERT INTO ваша таблица (code,work) VALUES ('%s','2')", code);
        mysql_query(query);
                    return 1;
              }
              else if(listitem == 2)
              {
                 SendClientMessage(playerid,-1,"Код для смены номера телефона добавлен. Код:");
                 SendClientMessage(playerid,-1,code);
                 format(query, sizeof(query), "INSERT INTO ваша таблица (code,work) VALUES ('%s','3')", code);
        mysql_query(query);
                    return 1;
              }
              else if(listitem == 3)
              {
                 SendClientMessage(playerid,-1,"Код для выдачи 100.000 добавлен. Код:");
                 SendClientMessage(playerid,-1,code);
                 format(query, sizeof(query), "INSERT INTO ваша таблица (code,work) VALUES ('%s','4')", code);
        mysql_query(query);
                    return 1;
              }
              else if(listitem == 4)
              {
                    SendClientMessage(playerid,-1,"Код для выдачи 500.000 добавлен. Код:");
                 SendClientMessage(playerid,-1,code);
                 format(query, sizeof(query), "INSERT INTO ваша таблица (code,work) VALUES ('%s','5')", code);
        mysql_query(query);
                    return 1;
              }
              else if(listitem == 5)
              {
                    SendClientMessage(playerid,-1,"Код для выдачи 1.000.000 добавлен. Код:");
                 SendClientMessage(playerid,-1,code);
                 format(query, sizeof(query), "INSERT INTO ваша таблица (code,work) VALUES ('%s','6')", code);
        mysql_query(query);
                    return 1;
              }
              else if(listitem == 6)
              {
                    SendClientMessage(playerid,-1,"Код для выдачи 3.000.000 добавлен. Код:");
                 SendClientMessage(playerid,-1,code);
                 format(query, sizeof(query), "INSERT INTO ваша таблица (code,work) VALUES ('%s','7')", code);
        mysql_query(query);
                    return 1;
              }
       }

В конец мода:
Code
RandBukva()
{
   new rand = random(53);
   new bukva[2];
   switch(rand)
   {
       case 0: bukva = "A";
       case 1: bukva = "a";
       case 2: bukva = "B";
       case 3: bukva = "b";
       case 4: bukva = "C";
       case 5: bukva = "c";
       case 6: bukva = "D";
       case 7: bukva = "d";
       case 8: bukva = "E";
       case 9: bukva = "e";
       case 10: bukva = "F";
       case 11: bukva = "f";
       case 12: bukva = "G";
       case 13: bukva = "g";
       case 14: bukva = "H";
       case 15: bukva = "h";
       case 16: bukva = "I";
       case 17: bukva = "i";
       case 18: bukva = "J";
       case 19: bukva = "j";
       case 20: bukva = "K";
       case 21: bukva = "k";
       case 22: bukva = "L";
       case 23: bukva = "l";
       case 24: bukva = "M";
       case 25: bukva = "m";
       case 26: bukva = "N";
       case 27: bukva = "n";
       case 28: bukva = "O";
       case 29: bukva = "o";
       case 30: bukva = "P";
       case 31: bukva = "p";
       case 32: bukva = "Q";
       case 33: bukva = "q";
       case 34: bukva = "R";
       case 35: bukva = "r";
       case 36: bukva = "S";
       case 37: bukva = "s";
       case 38: bukva = "T";
       case 39: bukva = "t";
       case 40: bukva = "U";
       case 41: bukva = "u";
       case 42: bukva = "V";
       case 43: bukva = "v";
       case 44: bukva = "W";
       case 45: bukva = "w";
       case 46: bukva = "X";
       case 47: bukva = "x";
       case 48: bukva = "Y";
       case 49: bukva = "y";
       case 50: bukva = "Z";
       case 51: bukva = "z";
   }
   return bukva;
}





Сообщение отредактировал DjCubex - Среда, 20.06.2012, 13:26
DesertДата: Среда, 20.06.2012, 13:30 | Сообщение # 7
Местный
Группа: I'm V.I.P.
Сообщений: 669
Награды: 57
Город: Москва
Репутация: 1082
Замечания: 0%
Статус:
DjCubex,
Красавец :)

zEscДата: Среда, 20.06.2012, 13:31 | Сообщение # 8
Global Elite
Группа: Ангел Хранитель
Сообщений: 896
Награды: 20
Репутация: 856
Замечания: 0%
Статус:
Quote
Красавец

Спасибо :)



ZiGGiДата: Среда, 20.06.2012, 15:39 | Сообщение # 9
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Quote (DjCubex)
RandBukva()

абсолютно бессмысленная функция.

Добавлено (20.06.2012, 15:39)
---------------------------------------------
Ты хочешь вернуть букву, но возвращаешь строку, зачем?

Куда правильнее будет так:

Code
#define mathrandom(%0,%1) (random(%1 - %0 + 1) + %0)

stock random_letter()
{
         if (random(2) == 0) {
                 return mathrandom(65, 90);
         }
         else {
                 return mathrandom(97, 122);
         }
}


Использовать:
Code

format(code, sizeof(code), "%с%с%с", random_letter(), random_letter(), random_letter());  



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

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
zEscДата: Среда, 20.06.2012, 15:43 | Сообщение # 10
Global Elite
Группа: Ангел Хранитель
Сообщений: 896
Награды: 20
Репутация: 856
Замечания: 0%
Статус:
ZiGGi, спасибо, буду знать.


ZiGGiДата: Среда, 20.06.2012, 15:46 | Сообщение # 11
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Хотя функцию можно немного упростить для понимания:
Code

#define mathrandom(%0,%1) (random(%1 - %0 + 1) + %0)  

stock random_letter()  
{  
          if (random(2) == 0) {  
                  return mathrandom('A', 'Z');  
          }  
          else {  
                  return mathrandom('a', 'z');  
          }  
}



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

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
IInkvizitorДата: Суббота, 23.06.2012, 16:08 | Сообщение # 12
Советчик
Группа: I'm V.I.P.
Сообщений: 1177
Награды: 7
Город: Санкт-Петербург
Репутация: 493
Замечания: 0%
Статус:
Сделать в укп генератор с экспортом на plati.ru лол
ExzisДата: Воскресенье, 15.07.2012, 16:22 | Сообщение # 13
Новенький
Группа: Пользователи
Сообщений: 9
Награды: 0
Город: Климово
Репутация: 35
Замечания: 0%
Статус:
Сделай еще чтобы можно было этот код только 1 раз использовать :)
После портового ввода писало что код уже использован

zEscДата: Воскресенье, 15.07.2012, 19:23 | Сообщение # 14
Global Elite
Группа: Ангел Хранитель
Сообщений: 896
Награды: 20
Репутация: 856
Замечания: 0%
Статус:
Exzis, его итак можно 1 раз использовать


kineie25Дата: Вторник, 25.03.2014, 00:56 | Сообщение # 15
Новенький
Группа: Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Цитата zEsc ()
Самое главное забыл, таблицы: http://rghost.ru/38723465
у тебя осталась база данных доната?

Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » Система доната (MySQL)
  • Страница 1 из 1
  • 1
Поиск:





 


 


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