Вопросы

Освоившийся

Не сильно шарю в этом деле, перепробовал все мануалы и готовые решения, ниичего не работает, нужно сделать так чтобы команды которые использует админ на игроках (кик, бан, деморган), записывались куда угодно, помогите пожалуйста

Поделиться сообщением


Ссылка на сообщение

35 ответов на этот вопрос

  • 0
Великий Гуру
//имхо, этот метод балдёжный, написан 20.08.2020 в 2:00
/*
	этот сток можно модифицировать, добавив туда дату и ... миллионы других действий.
	юзать вроде просто, возможно муторно, но:
	SaveAdminLogs(p_info[playerid][pName],"использовал /givegun");
*/
stock SaveAdminLogs(nickname, adminlog[512])
{
	new query_string[512];
	format(query_string,sizeof(query_string),"INSERT INTO `logs` (`name`,`log`) VALUES ('%s', '%s')", nickname, adminlog);
	mysql_query(SQL_VARIABLE,query_string);
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Освоившийся

Все это же сохраняется в бд? если так, то какую таблицу создать чтобы это работало, и если можешь объясни пожалуйста, как сделать тоже самое с баном и киком

Поделиться сообщением


Ссылка на сообщение
  • 0
Великий Гуру
4 часа назад, lehayoung сказал:

Все это же сохраняется в бд? если так, то какую таблицу создать чтобы это работало, и если можешь объясни пожалуйста, как сделать тоже самое с баном и киком

Просто при использовании бана, вызываешь этот сток.
например, команда /ban

cmd:ban(playerid,params[])
{
//.......код твоего бана и в конце просто добавляешь название стока и действие, т.е.
  
  SaveAdminLogs(p_info[playerid][pName],"использовал команду ban");
  return 0;
}

Создаёшь таблицу с названием logs

в ней int - id (AI галочку ставишь)

name- varchar 32(или 24, не помню какая длина ника максимальна)

log - varchar 512

Поделиться сообщением


Ссылка на сообщение
  • 0
Освоившийся
C:\Users\User\Desktop\Èãðû\ArenaDeatMatch\gamemodes\fade.pwn(9927) : error 017: undefined symbol "p_info"
C:\Users\User\Desktop\Èãðû\ArenaDeatMatch\gamemodes\fade.pwn(9927) : warning 215: expression has no effect
C:\Users\User\Desktop\Èãðû\ArenaDeatMatch\gamemodes\fade.pwn(9927) : error 001: expected token: ";", but found "]"
C:\Users\User\Desktop\Èãðû\ArenaDeatMatch\gamemodes\fade.pwn(9927) : error 029: invalid expression, assumed zero
C:\Users\User\Desktop\Èãðû\ArenaDeatMatch\gamemodes\fade.pwn(9927) : fatal error 107: too many error messages on one line

 

Такие ошибочки выдает 

9927:

    SaveAdminLogs(p_info[playerid][pName],"использовал команду ban");

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@lehayoung вы зря надеетесь, что код можно просто скопировать и он сам собой заработает :D

p_info[playerid][pName] нужно заменить на свою переменную массива, которая хранит информацию о имени игрока

Поделиться сообщением


Ссылка на сообщение
  • 0
Освоившийся

@DEST Не совсем понимаю, в основном просто мод на мануалах пишу, не подскажите как это?

Поделиться сообщением


Ссылка на сообщение
  • 0
Великий Гуру
10 часов назад, lehayoung сказал:

@DEST Не совсем понимаю, в основном просто мод на мануалах пишу, не подскажите как это?

Вы создали enum pInfo (?) playerInfo (?) PI(?) - какой-то из этих трёх (самое распространённое).

в нём у вас есть, например, такое:

enum pInfo
{
	pID,
  	pName[MAX_PLAYER_NAME],
  	pPassword
      ...etc
  
  
  
  
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Освоившийся
2 часа назад, keyl1337 сказал:

Вы создали enum pInfo (?) playerInfo (?) PI(?) - какой-то из этих трёх (самое распространённое).

в нём у вас есть, например, такое:


enum pInfo
{
	pID,
  	pName[MAX_PLAYER_NAME],
  	pPassword
      ...etc
  
  
  
  
}

 

SaveAdminLogs(PlayerInfo[playerid][pName],"èñïîëüçîâàë êîìàíäó ban");

В данной строчке p_info я заменил на PlayerInfo, 2 ошибки пропали, остались ещё 2, я понимаю что нужно создать новый enum связанный с этим, но как именно и что туда добавлять :S

 

C:\Users\User\Desktop\Игры\ArenaDeatMatch\gamemodes\fade.pwn(9927) : error 017: undefined symbol "pName"
C:\Users\User\Desktop\Игры\ArenaDeatMatch\gamemodes\fade.pwn(11601) : error 017: undefined symbol "SQL_VARIABLE"

Вот такие ошибочки

 

9927: 

SaveAdminLogs(PlayerInfo[playerid][pName],"использовал команду ban");

 

 

11601: 

	mysql_query(SQL_VARIABLE,query_string);
}

 

 

enum PlayerInfo не имеется, есть только pInfo, в начале мода

 

Ошибки не пропадают если в коде заменить на pInfo

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Освоившийся

Даже знаете, я сделал кое что, ошибка пропала, осталась только

C:\Users\User\Desktop\Игры\ArenaDeatMatch\gamemodes\fade.pwn(469) : error 017: undefined symbol "SQL_VARIABLE"

 

@keyl1337 как пофиксить эту ошибку?

Поделиться сообщением


Ссылка на сообщение
  • 0
Создатель WayDev
3 минуты назад, lehayoung сказал:

SQL_VARIABLE


Вместо этого, своё подключение вставь.

Поделиться сообщением


Ссылка на сообщение
  • 0
Великий Гуру
Только что, lehayoung сказал:

@keyl1337 https://yapx.ru/u/IqwgT что тут ещё добавить или изменить? 

тип varchar длина 24

тип varchar длина 512

ещё поле id добавь, тип int, длина 7

 

SQL_VARIABLE - это переменная подключения к mysql, выглядит как-то так:

new dbHandle = mysql_connect();

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Освоившийся
1 минуту назад, keyl1337 сказал:

тип varchar длина 24

тип varchar длина 512

ещё поле id добавь, тип int, длина 7

 

SQL_VARIABLE - это переменная подключения к mysql, выглядит как-то так:


new dbHandle = mysql_connect();

 

https://yapx.ru/u/Iqw1v 

Поделиться сообщением


Ссылка на сообщение
  • 0
Великий Гуру

@lehayoung AI оставь только у ID, у остальных убери

Отредактировано пользователем keyl1337

Поделиться сообщением


Ссылка на сообщение
  • 0
Освоившийся
stock ConnectMySQL()
{
	mysql_connect(mysql_host, mysql_user, mysql_database, mysql_password);
	mysql_query("set character_set_client='cp1251'");
	mysql_query("set character_set_results='cp1251'");
	mysql_query("set collation_connection='cp1251_general_ci'");
	switch(mysql_ping())
	{
	case 1: print(" MySQL Success connection!");
	case -1: print(" <Warning> MySQL Failed connection.");
	}
	return true;
}

stock DisconnectMySQL()
{
	mysql_close();
	print(" MySQL connection closed.");
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Великий Гуру

@lehayoung 

//над стоком 
new dbHandle;

//в стоке(stock ConnectMySQL())
//замените это mysql_connect(mysql_host, mysql_user, mysql_database, mysql_password);
// на это dbHandle = mysql_connect(mysql_host, mysql_user, mysql_database, mysql_password);

 

UPD:::::::::!!!!!!!!!!!!
и SQL_VARIABLE на dbHandle замените

Отредактировано пользователем keyl1337

Поделиться сообщением


Ссылка на сообщение
  • 0
Освоившийся
C:\Users\User\Desktop\Игры\ArenaDeatMatch\gamemodes\fade.pwn(470) : error 017: undefined symbol "SQL_VARIABLE"
C:\Users\User\Desktop\Игры\ArenaDeatMatch\gamemodes\fade.pwn(448) : warning 204: symbol is assigned a value that is never used: "dbHandle"

Такие ошибки, но это

new dbHandle = mysql_connect();

я не добавил, потому-что не знаю куда o.O

Поделиться сообщением


Ссылка на сообщение
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • От DonK/Key
      Всем привет, помогите кто разбирается, так как я можно сказать начинающий сделать свой КРМП, буду благодарен. Напишите либо тут либо @evreI_sigma (Мой Telegram)