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



Не найдено.

27 posts in this topic

покупаю через донат все скилли, перехожу на сервер снова 0% вот код 
 

Спойлер

		case D_DONATE+4:
		{
			if(!response) return 1;
			switch(listitem)
			{
              	case 0:
			    {
			        if(PI[playerid][pCredits] < 400) return SendClientMessage(playerid, COLOR_GREY, "Недостаточно кредитов!");
			        PI[playerid][pCredits] -= 400;
					MysqlUpdatePlayerInt(playerid, "credits", PI[playerid][pCredits]);
			        for(new i; i < 8; i++) g_player_skills[playerid][S_GUN][i] = 100;
					SendClientMessage(playerid, COLOR_LIME, "Вы приобрели все навыки владения оружием!");
					SavePlayerSkills(playerid);

 

 

Share this post


Link to post
Share on other sites
SavePlayerSkills в студию

и mysql_log

Share this post


Link to post
Share on other sites
28 минут назад, SCRIPTMAN сказал:

SavePlayerSkills в студию

и mysql_log

Спойлер

stock SetPlayerSkills(playerid)
{
	SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, 		g_player_skills[playerid][S_GUN][0]*10);
	SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, 		g_player_skills[playerid][S_GUN][1]*10);
	SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN, 				g_player_skills[playerid][S_GUN][2]*10);
	SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, 					g_player_skills[playerid][S_GUN][3]*10);
	SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47, 				g_player_skills[playerid][S_GUN][4]*10);
	SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, 					g_player_skills[playerid][S_GUN][5]*10);
	SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 				g_player_skills[playerid][S_GUN][6]*10);
	SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 			g_player_skills[playerid][S_GUN][7]*10);
	SavePlayerSkills(playerid);
	return 1;
Спойлер


stock SavePlayerSkills(playerid)
{	
	STRING_GLOBAL[0] = EOS;
	
	format
	(
		STRING_GLOBAL, sizeof STRING_GLOBAL,
		"UPDATE accounts_skills SET drive='%d, %d, %d, %d', gun='%d, %d, %d, %d, %d, %d, %d, %d', t_flights=%d, t_count=%d, taxi_calls=%d, m_fix=%d, b_flights=%d WHERE owner=%d",
		g_player_skills[playerid][S_LICS][0],
		g_player_skills[playerid][S_LICS][1],
		g_player_skills[playerid][S_LICS][2],
		g_player_skills[playerid][S_LICS][3],
		g_player_skills[playerid][S_GUN][0], 
		g_player_skills[playerid][S_GUN][1], 
		g_player_skills[playerid][S_GUN][2], 
		g_player_skills[playerid][S_GUN][3], 
		g_player_skills[playerid][S_GUN][4], 
		g_player_skills[playerid][S_GUN][5], 
		g_player_skills[playerid][S_GUN][6], 
		g_player_skills[playerid][S_GUN][7],
		g_player_skills[playerid][S_T_FLIGHTS],
		g_player_skills[playerid][S_T_COUNT],
		g_player_skills[playerid][S_TAXI_CALLS],
		g_player_skills[playerid][S_M_FIX],
		g_player_skills[playerid][S_B_FLIGHTS],
		PI[playerid][pID]
	);
	mysql_tquery(dbHandle, STRING_GLOBAL);
Спойлер



[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'

 

 

 

 

Share this post


Link to post
Share on other sites

@Drummer1993 Логи mysql_log.txt  можно? 

Share this post


Link to post
Share on other sites
3 минуты назад, Nekit_Krut18 сказал:

@Drummer1993 Логи mysql_log.txt  можно? 

Спойлер

[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'
[17:57:45] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'mafia' in 'field list'

 

 

Share this post


Link to post
Share on other sites

SetPlayerSkillLevel давай

Share this post


Link to post
Share on other sites
4 минуты назад, SCRIPTMAN сказал:

SetPlayerSkillLevel давай

у меня в моде нет такого вообще SetPlayerSkillLevel , я скинул вам больше не чего нет

SetPlayerSkills,
SavePlayerSkills

Share this post


Link to post
Share on other sites

@SCRIPTMAN А не должен разве идти запрос в бд, что-бы их сохранить после покупки скиллов? Лично у меня после покупки идет запрос, хоть в покупке, или в ежедневнем бонусе.

 

Edited by Nekit_Krut18
Причина: Подправил.

Share this post


Link to post
Share on other sites

@Drummer1993 извиняюсь, это стандартная функция

Share this post


Link to post
Share on other sites

@Drummer1993 Будьте добры, скинуть callback загрузки аккаунта.

 

Share this post


Link to post
Share on other sites

А покажи-ка таблицу "accounts_skills", можно скрином, её структуру, или даже запись

Share this post


Link to post
Share on other sites
10 минут назад, Nekit_Krut18 сказал:

@SCRIPTMAN А не должен разве идти запрос в бд, что-бы их сохранить после покупки скиллов? Лично у меня после покупки идет запрос, хоть в покупке, или в ежедневнем бонусе.

 

Спойлер

--
-- Структура таблицы `accounts_skills`
--

CREATE TABLE IF NOT EXISTS `accounts_skills` (
  `owner` int(11) NOT NULL DEFAULT '-1',
  `drive` varchar(16) NOT NULL DEFAULT '0, 0, 0, 0',
  `gun` varchar(64) NOT NULL DEFAULT '0, 0, 0, 0, 0, 0, 0, 0',
  `t_flights` int(11) NOT NULL DEFAULT '0',
  `t_count` int(11) NOT NULL DEFAULT '0',
  `taxi_calls` int(11) NOT NULL DEFAULT '0',
  `m_fix` int(11) NOT NULL DEFAULT '0',
  `b_flights` int(11) NOT NULL DEFAULT '0',
  `pilot_lvl` int(11) NOT NULL DEFAULT '0',
  `pilot_race` int(11) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Дамп данных таблицы `accounts_skills`
--

INSERT INTO `accounts_skills` (`owner`, `drive`, `gun`, `t_flights`, `t_count`, `taxi_calls`, `m_fix`, `b_flights`, `pilot_lvl`, `pilot_race`) VALUES
(0, '1, 1, 1, 1', '0, 0, 0, 0, 0, 0, 0, 0', 0, 0, 0, 0, 0, 0, 0),

 

 

4 минуты назад, SCRIPTMAN сказал:

А покажи-ка таблицу "accounts_skills", можно скрином, её структуру, или даже запись

Спойлер

--
-- Структура таблицы `accounts_skills`
--

CREATE TABLE IF NOT EXISTS `accounts_skills` (
  `owner` int(11) NOT NULL DEFAULT '-1',
  `drive` varchar(16) NOT NULL DEFAULT '0, 0, 0, 0',
  `gun` varchar(64) NOT NULL DEFAULT '0, 0, 0, 0, 0, 0, 0, 0',
  `t_flights` int(11) NOT NULL DEFAULT '0',
  `t_count` int(11) NOT NULL DEFAULT '0',
  `taxi_calls` int(11) NOT NULL DEFAULT '0',
  `m_fix` int(11) NOT NULL DEFAULT '0',
  `b_flights` int(11) NOT NULL DEFAULT '0',
  `pilot_lvl` int(11) NOT NULL DEFAULT '0',
  `pilot_race` int(11) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Дамп данных таблицы `accounts_skills`
--

INSERT INTO `accounts_skills` (`owner`, `drive`, `gun`, `t_flights`, `t_count`, `taxi_calls`, `m_fix`, `b_flights`, `pilot_lvl`, `pilot_race`) VALUES
(0, '1, 1, 1, 1', '0, 0, 0, 0, 0, 0, 0, 0', 0, 0, 0, 0, 0, 0, 0),

 

 

Share this post


Link to post
Share on other sites

В базе не смотрел. сохраняется всё?

Share this post


Link to post
Share on other sites
3 минуты назад, SCRIPTMAN сказал:

В базе не смотрел. сохраняется всё?

по началу да .. как только снова захожу снова 0.0.0.0.0.

Share this post


Link to post
Share on other sites

@Drummer1993 Я думаю это нужно вставить, после покупки скиллов не? Ну под себя настройте.

Цитата

new query_string [ 148 ] ;
format ( query_string, sizeof ( query_string ),"UPDATE `accounts_skills` SET `gun`='100,100,100,100,100,100,100' WHERE `owner` = '%d' LIMIT 1",
GetPlayerName(playerid, PI[playerid] [name], MAX_PLAYER_NAME)) ;
mysql_query ( sql_connection, query_string ) 

 

 

Share this post


Link to post
Share on other sites
3 минуты назад, Nekit_Krut18 сказал:

@Drummer1993 Я думаю это нужно вставить, после покупки скиллов не? Ну под себя настройте.

 

Спойлер

case D_DONATE+4:
		{
			if(!response) return 1;
			switch(listitem)
			{
              	case 0:
			    {
			        if(PI[playerid][pCredits] < 400) return SendClientMessage(playerid, COLOR_GREY, "Недостаточно кредитов!");
			        PI[playerid][pCredits] -= 400;
					MysqlUpdatePlayerInt(playerid, "credits", PI[playerid][pCredits]);
			        for(new i; i < 8; i++) g_player_skills[playerid][S_GUN][i] = 100;
					SendClientMessage(playerid, COLOR_LIME, "Вы приобрели все навыки владения оружием!");
					SavePlayerSkills(playerid);

 

 

Share this post


Link to post
Share on other sites

@Drummer1993 Да, вот сюда. Только настройте под себя, подключение к бд.

Share this post


Link to post
Share on other sites

@Nekit_Krut18 вставлять ничего не нужно, у него для этого там прописан сток SavePlayerSkills,

Сделай вот что:

Включи логирование MySQL (В OnGameModeInit вставь после подключения бд mysql_log(ALL);)

Скомпилируй, потом удали mysql_log, запусти серв, зайди, выдай скиллы, потом выйди, снова зайди, потом скинь логи mysql

Share this post


Link to post
Share on other sites
4 минуты назад, SCRIPTMAN сказал:

@Nekit_Krut18 вставлять ничего не нужно, у него для этого там прописан сток SavePlayerSkills,

Сделай вот что:

Включи логирование MySQL (В OnGameModeInit вставь после подключения бд mysql_log(ALL);)

Скомпилируй, потом удали mysql_log, запусти серв, зайди, выдай скиллы, потом выйди, снова зайди, потом скинь логи mysql

хорошо 5 минут

Share this post


Link to post
Share on other sites
6 минут назад, SCRIPTMAN сказал:

@Nekit_Krut18 вставлять ничего не нужно, у него для этого там прописан сток SavePlayerSkills,

Сделай вот что:

Включи логирование MySQL (В OnGameModeInit вставь после подключения бд mysql_log(ALL);)

Скомпилируй, потом удали mysql_log, запусти серв, зайди, выдай скиллы, потом выйди, снова зайди, потом скинь логи mysql

 error 017: undefined symbol "ALL"

Share this post


Link to post
Share on other sites

@Drummer1993 mysql_log(LOG_ALL);

Share this post


Link to post
Share on other sites
13 минут назад, Nekit_Krut18 сказал:

@Drummer1993 mysql_log(LOG_ALL);

все сейчас зайду куплю скилл и выйду лог скину

16 минут назад, Nekit_Krut18 сказал:

@Drummer1993 mysql_log(LOG_ALL);

 

mysql_log.zip

32 минуты назад, SCRIPTMAN сказал:

@Nekit_Krut18 вставлять ничего не нужно, у него для этого там прописан сток SavePlayerSkills,

Сделай вот что:

Включи логирование MySQL (В OnGameModeInit вставь после подключения бд mysql_log(ALL);)

Скомпилируй, потом удали mysql_log, запусти серв, зайди, выдай скиллы, потом выйди, снова зайди, потом скинь логи mysql

 

mysql_log.zip

Share this post


Link to post
Share on other sites

@Drummer1993 Скинь загрузку аккаунта, callback должен быть.

Share this post


Link to post
Share on other sites
4 минуты назад, Nekit_Krut18 сказал:

@Drummer1993 Скинь загрузку аккаунта, callback должен быть.

Спойлер

}

public: callback_show_logs ( playerid )
{
	new rows, fields ;
	cache_get_data ( rows, fields ) ;
	if ( ! rows )
	{
		DeletePVar ( playerid, "ofm_list_page" ) ;
		SendClientMessage(playerid, -1, ""cER"Записей не обнаружено");
		return 1 ;
	}
	new rows_list = GetPVarInt ( playerid, "ofm_list_page" ) - 1 ;
	SetPVarInt ( playerid, "ofm_list_rows", rows ) ;
	new fmt_str [ 150 ],
	text [ 144 ],
	data [ 20 ];

	STRING_GLOBAL[0] = EOS;
	for ( new i = rows_list * 10 ; i <  rows_list * 10 + 10 ; i ++ )
	{
		if ( i >= rows ) break ;

		cache_get_field_content ( i, "text", text, dbHandle, 144 ) ;
		cache_get_field_content ( i, "date", data, dbHandle, 20 ) ;

		format ( fmt_str, sizeof ( fmt_str ), "{bff277}%s - {eaffcc}%s\n", data, text) ;
		strcat ( STRING_GLOBAL, fmt_str ) ;

	}

	ShowPlayerDialog ( playerid, DIALOG_ADMIN_LOGS + 1, DIALOG_STYLE_MSGBOX, "{b6db81}Просмотр логов", STRING_GLOBAL, "Назад", "Вперед" ) ;
	return 1 ;

 

 

Share this post


Link to post
Share on other sites

@Drummer1993 Вы не поняли, где происходит загрузка аккаунта, тобишь загружаются данные аккаунта. Какой у вас мод, Perfect? 

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

    • DRA GON
    • youngblaste
      By youngblaste
      Привет. Не нужно писать что команда заезженная - просто выйди с темы.
      И так, постараюсь объяснить как всё работает в этой команде
      Погнали, хлопци!:
      CMD:makeadmin(playerid, params[]){ /* Здесь начинается наша команда */ if(p_info[playerid][pAdmin] < 7) /* Идёт проверка на админку, если наш уровень администратора ниже 7 то ничего не произойдёт (можно сменить на свой уровень) */ return true; /* возвращаем 1 - или же не на ельфийском, то просто ничего не пройзойдёт и команда не продолжит работу */ new name[MAX_PLAYER_NAME], player[MAX_PLAYER_NAME], targetid, admlvl, string[250]; /* Создаем переменные для команды (targetid - кому выдавать будем админку, admlvl - это какой лвл админки будем выдавать), string - ну это стринг :D */ if(sscanf(params, "ud", targetid, admlvl)) /* Делаем проверку на правильное написание команды */ return SendClientMessage(playerid, -1, "{84cd5c}[Подсказка] {ffffff} Используйте команду: /makeadmin [id игрока] [lvl админ-прав]"); /* Если мы ввели не верно команду, то нам возвращает сообщение в чат с подсказкой как ввести команду */ GetPlayerName(playerid, name, MAX_PLAYER_NAME); /* Тут мы получаем наш ник */ GetPlayerName(targetid, player, MAX_PLAYER_NAME); /* А тут мы получаем ник игрока которому выдаем админку */ if(!IsPlayerConnected(targetid)) /* Делаем проверку на то находится ли игрок на сервере, вообще у меня в команде здесь есть проверка на Авторизован ли игрок и она вместе с проверкой на есть ли такой игрок на сервере, но увы, я убрал потому что скорее всего не у всех есть такая фича, это не очень важно но если ты хоть немного шаришь то и сам добавишь проверку */ return SendClientMessage(playerid, -1, "{c23838}[Ошибка] {ffffff} Игрок ещё не вступил в игру"); /* Возвращаем сообщение о том что игрок ещё не вступил в игру - ну вообще должно быть "Игрока с таким ID нету на сервере", но если ты решишь добавить проверку на авторизацию то это будет немного лучше */ if(admlvl < 0 || admlvl > 6) /* Делаем проверку на какой лвл мы хотим поставить игрока, то есть мы не можем выдать лвл адм ниже 0 или выше 6, меняйте на своё если так нужно))) */ return SendClientMessage(playerid, -1, "{c23838}[Ошибка] {ffffff} Увы, нельзя выдавать меньше 0 или выше 6 уровня администратора"); /* Возвращаем сообщение о том что мы не можем выдавать меньше 0 или выше 6 лвл адм */ p_info[targetid][pAdmin] = admlvl; /* И так... p_info у вас может быть разное: PlayerInfo, pInfo, PI, PlayerInformation, p_Info, P_I и т.п., pAdmin так же может быть другим, хотя обычно такое, например: Admin, PlayerAdmin, Player_Admin, Adminka и т.п. */ format(string, sizeof(string), "{b33d3d}{A} Администратор %s[%d] назначил администратором игрока %s[%d]", name, playerid, player, targetid); /* И так, тут мы форматируем string и после отпрам в админ чат))) */ AdmChat(-1, string); /* Ниже вы увидите сток с AdmChat, крч просто отправляем в адм чат */ format(string, sizeof(string), "{ffffff}Администратор %s[%d] назначил Вас администратором %d-го уровня.", name, playerid, admlvl); /* Форматируем опять стринг и потом игроку отправим */ SendClientMessage(targetid, -1, string); /* Устал описовать команду, ну да ладно... Теперь отправляем игроку string */ return true; /* Возвращаем 1, чтобы небыло еррора))) */ } /* Здесь заканчивается наша команда */ /* vk.com/youngblaste - люbлю сkpuптuнг */ А теперь сток AdmChat, добавьте возле своих стоков ну или под командой:
      stock AdmChat(color, const text[]) /* тут не буду много объяснять */ { foreach(new i: Player) if(p_info[i][pAdmin] > 0) SendClientMessage(i, color, text); /* Обычно используют для админ чата... Ну и как всегда... p_info у вас может быть разное: PlayerInfo, pInfo, PI, PlayerInformation, p_Info, P_I и т.п., pAdmin так же может быть другим, хотя обычно такое, например: Admin, PlayerAdmin, Player_Admin, Adminka и т.п. */ } Если Вы заметили какую-то ошибку, пожалуйста отпишите. Надеюсь Вам понравился этот мини-урок, ну а точнее команда /makeadmin.
      Удачи, юные скриптеры