Viktor2000

Промокоды

Рекомендованные сообщения



Не найдено.

2 posts in this topic

Здравствуйте, как сделать чтобы игрок мог активировать несколько промокодов, так - как сейчас он может только 1.

 

 

public CheckPromo(playerid)
{
    new rows,fields;
    cache_get_data(rows, fields);
	if(rows) return SendClientMessage(playerid,-1,"Вы уже активировали один из промокодов!");
    new qstring[128],code[16];
    GetPVarString(playerid,"CODE",code,sizeof(code));
	mysql_format(connects, qstring, sizeof(qstring), "SELECT * FROM `promo` WHERE `name`='%s'", code);
 	mysql_tquery(connects, qstring, "ActivatePromo", "is", playerid, code);
	return 1;
}

public ActivatePromo(playerid,code[])
{
    new rows,fields;
    cache_get_data(rows, fields);
    printf("Не существует 2");
    if(!rows) return SendClientMessage(playerid,-1,"Ошибка: {FFFFFF}промокода не существует.");
	new typepriz,amountpriz,nactivations,string[1024],activate,block,data[24],typetext[34],typetext1[24];
	new year,month,day;
	new current_date = getdate(year, month, day);
    for(new i; i < rows; i++)
    {
		typepriz = cache_get_row_int(i, 5, connects);
		amountpriz = cache_get_row_int(i, 6, connects);
		nactivations = cache_get_row_int(i, 3, connects);
		activate = cache_get_row_int(i, 1, connects);
		block = cache_get_row_int(i, 2, connects);
		cache_get_row(i, 4, data, connects, 24);
		switch(typepriz)
		{
		    case 1: typetext = "VIP аккаунт сроком на",typetext1 = " дней",Player[playerid][pVIP] = current_date + amountpriz;
	    	case 2: typetext = "Игровая валюта в количестве",typetext1 = " руб",Player[playerid][pMoney] += amountpriz;
	   	 	case 3: typetext = "Кредиты в количестве",typetext1 = " кр.",Player[playerid][pBonus] += amountpriz;
		}
	}
	if(block > 0) return SendClientMessage(playerid,-1,"Ошибка: {FFFFFF}промокод заблокирован.");
	if(activate != 0)
	{
	    format(string,sizeof(string),"{FFFFFF}Промокод '%s' {FFFFFF}уже активирован {65A0D0}%s\n{FFFFFF}К сожалению, Вы опоздали. Но ничего, получится в другой раз..",code,data);
		ShowPlayerDialog(playerid,9999,DIALOG_STYLE_MSGBOX,"{FE0000}Ошибка",string,"Закрыть","");
		return true;
	}
	format(string,sizeof(string),"INSERT INTO `promo_activations` (`account_id`,`name_promo`) VALUES ('%d','%s')",Player[playerid][ID],code);
   	mysql_function_query(connects, string, false, "", "");
	SendClientMessage(playerid,COLOR_ORANGE,"Поздравляем! Вы активировали промокод!");
	format(string,sizeof(string),"Промокод содержал: %s %d%s",typetext,amountpriz,typetext1),SendClientMessage(playerid,COLOR_BLUE,string);
	nactivations--;
	format(string, sizeof(string), "UPDATE promo SET `nactivations`='%d' WHERE name='%s'", nactivations, code);
	mysql_function_query(connects, string, false, "", "");
	if(nactivations == 0)
	{
	    new hourss,minn,secc;
		gettime(hourss,minn,secc);
		format(string,100,"%s / %02d:%02d:%02d",date("%dd.%mm.%yyyy",gettime()),hourss,minn,secc);
	    format(string, sizeof(string), "UPDATE promo SET `activate`='1',`date`='%s' WHERE name='%s'", string,code);
   		mysql_function_query(connects, string, false, "", "");
   		return true;
	}
	DeletePVar(playerid,"CODE");
    return 1;
}

 

Share this post


Link to post
Share on other sites

@Viktor2000 , Удали вот это.

Цитата


    new rows,fields;
    cache_get_data(rows, fields);
	if(rows) return SendClientMessage(playerid,-1,"Вы уже активировали один из промокодов!");

 

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • .037
      By .037
      в чём может быть проблема? Передаю строку через PR_String, и получаю с клиента бред
      CMD:TestData(playerid, params[]){ new msg[] = "Code_Test"; new BitStream:bs = BS_New(); BS_WriteInt8(bs,30); BS_WriteFloat(bs,0.9); BS_WriteFloat(bs,23.4); BS_WriteString(bs, msg, sizeof msg); PR_SendRPC(bs, playerid, 179); BS_Delete(bs); return 1; } [05:57:27] RPC - Длина  30 | 0.900000 | 23.400000 | I*(!@dp
      И всегда текст разный 

      Хотя принимаю всё нормально:

       
      bool CALLBACK Hok_RPC_BYTE(stRakNetHookParams *params) { if (params->packetId == 179) { SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Кастомный RPC работает!!!"); byte nameLen; float test; float test1; char szPlayerName[100]; params->bitStream->ResetReadPointer(); params->bitStream->Read(nameLen); params->bitStream->Read(test); params->bitStream->Read(test1); params->bitStream->Read(szPlayerName, 100); params->bitStream->ResetReadPointer(); SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "RPC - Длина %d | %f | %f | %s", nameLen, test , test1, szPlayerName); } return true; };  
    • Dzho_Handerson
      By Dzho_Handerson
       Виктор Васянкин, 17 лет.
      Должность: Pawn-Разработчик.

       О себе:
      Работаю с Pawn более 4 лет, помимо pawn изучаю такие языки программирования, как: node js, c++, html (css).

       Навыки:
      - Разработка игрового мода с 0.
      - Написание систем любой сложности.
      - Исправление багов.
      - Оптимизация игрового мода.
      - Работа с базами данных MySQL.

       Способы оплаты:
      Qiwi, VK Pay.

       Связь:
      Страница ВКонтакте: https://vk.com/gevattertod
      Профиль Telegram: @Dzho_Ray
      Электронная почта: dzho.handerson@gmail.com
    • Guest nezoxi2
      By Guest nezoxi2
      ОШИБКА:
       
      C:\Users\mmajk\Desktop\My Server SAMP\gamemodes\mysamp.pwn(301) : error 017: undefined symbol "ShowRegistration"
      C:\Users\mmajk\Desktop\My Server SAMP\gamemodes\mysamp.pwn(304) : error 029: invalid expression, assumed zero
      C:\Users\mmajk\Desktop\My Server SAMP\gamemodes\mysamp.pwn(304) : warning 215: expression has no effect
      C:\Users\mmajk\Desktop\My Server SAMP\gamemodes\mysamp.pwn(304) : error 001: expected token: ";", but found ")"
      C:\Users\mmajk\Desktop\My Server SAMP\gamemodes\mysamp.pwn(304) : error 029: invalid expression, assumed zero
      C:\Users\mmajk\Desktop\My Server SAMP\gamemodes\mysamp.pwn(304) : fatal error 107: too many error messages on one line
      Compilation aborted.Pawn compiler 3.2.3664              Copyright (c) 1997-2006, ITB CompuPhase

      5 Errors.
       
      Сами строчки с 300 по 305:
       
      300 { 301 ShowRegistration(playerid); 302 return SCM(playerid, COLOR_RED, "[Ошибка] {FFFFFF}Вы не ввели пароль."); 303 } 304 if(strlen(inputtext)) < 8 || strlen(inputtext) > 3); 305 { Помогите пожалуйста, только недавно начал заниматься своим сервером по сампу и вот не могу найти ошибку.