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

 



 
        
Будущее SA:MP (12)
Awewistweinc 26.03.2017 04:43
 





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

Спасибо :)



ZiGGiДата: Среда, 20.06.2012, 15:39 | Сообщение # 9
Мастер джэдай
Группа: Продвинутые
Сообщений: 2650
Награды: 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
Группа: Ангел Хранитель
Сообщений: 895
Награды: 20
Репутация: 856
Замечания: 0%
Статус:
ZiGGi, спасибо, буду знать.


ZiGGiДата: Среда, 20.06.2012, 15:46 | Сообщение # 11
Мастер джэдай
Группа: Продвинутые
Сообщений: 2650
Награды: 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
Группа: Ангел Хранитель
Сообщений: 895
Награды: 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 из 11
Поиск:





 


 


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