 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Система доната (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%
Статус: 
| Спасибо
|
| |
|
|
| 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 у тебя осталась база данных доната?
|
| |
|
|
|
 |
|
 | |
| |
|