Код RemovePlayerInfo покажи и все места, где используешь её
Код RemovePlayerInfo покажи и все места, где используешь её
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
PHP код:
stock RemovePlayerInfo(playerid)
{
s_player[playerid][pID] = 0;
s_player[playerid][pName][0] = EOS;
s_player[playerid][pPassword][0] = EOS;
s_player[playerid][pKills][0] = 0;
s_player[playerid][pDollar][0] = 0;
s_player[playerid][pDead][0] = 0;
return 1;
}
PHP код:
enum e_PLAYER_INFO
{
pID,
pName[MAX_PLAYER_NAME],
pPassword[31],
pKiller,
pDollar,
pDead
};
PHP код:
public UploadPlayerAccount(playerid)
{
s_player[playerid][pID] = cache_get_field_content_int(0, "id", mysql_connect_ID);
s_player[playerid][pKiller] = cache_get_field_content_int(0, "kills", mysql_connect_ID);
s_player[playerid][pDollar] = cache_get_field_content_int(0, "dollar", mysql_connect_ID);
s_player[playerid][pDead] = cache_get_field_content_int(0, "dead", mysql_connect_ID); //если что убирать надо
GameTextForPlayer(playerid,"~g~GO ~y~SPAWN", 5000, 5);
scm(playerid,-1,"Ваш аккаунт загружен");
scm(playerid,-1,"Ручное сохранение аккаунта - {FF6200}/saveacc");
player_no_connect{playerid} = 1;
TogglePlayerSpectating(playerid, false);
SpawnPlayer(playerid);
return 1;
}
PHP код:
stock CreateNewAccount(playerid, password[])
{
new query_string[66+MAX_PLAYER_NAME-4+30+(30+11)+(48+11)];
format(query_string, sizeof(query_string), "INSERT INTO `accounts` (`player_name`, `password`, `kills`, `dollar`, `dead`) VALUES ('%s', '%s', '%d', '%d', '%d')",
s_player[playerid][pName], password, s_player[pKiller], s_player[pDollar], s_player[playerid][pDead]);
mysql_function_query(mysql_connect_ID, query_string, true, "UploadPlayerAccountNumber", "i", playerid);
format(query_string, sizeof(query_string), "Вы зарегистрировали аккаунт.", s_player[playerid][pName]);
scm(playerid,-1,query_string);
player_no_connect{playerid} = 0;
format(query_string, sizeof(query_string),"\t{8D8D8D}Аккаунт успешно занесен в базу данных \n\n\t{FFFFFF}Имя аккаунта: {8CEB59}%s \n\t{FFFFFF}Пароль доступа: {8CEB59}%s\n\t{FFFFFF}Сделайте screenshot - {0EE68C}[F8] \n\n\t{8D8D8D}Просьба перезайти на сервер (в целях безопасности)", s_player[playerid][pName], s_player[playerid][pPassword]);
spd(playerid, dGuard,dsm,"{00FF0D}Guard HG", query_string,"Перезайти","");
TogglePlayerSpectating(playerid, false);
SpawnPlayer(playerid);
return 1;
}
PHP код:
stock SaveAccount(playerid)
{
new query_string[(21)+(16+11)+(20+MAX_PLAYER_NAME)+(16+30)+(13+11)+(15+10)] = "UPDATE `accounts` SET";
format(query_string, sizeof(query_string), "%s `player_name` = '%s',", query_string, s_player[playerid][pName]);
format(query_string, sizeof(query_string), "%s `password` = '%s',", query_string, s_player[playerid][pPassword]);
format(query_string, sizeof(query_string), "%s `kills` = '%d',", query_string, s_player[playerid][pKiller]);
format(query_string, sizeof(query_string), "%s `dollar` = '%d',", query_string, s_player[playerid][pDollar]);
format(query_string, sizeof(query_string), "%s `dead` = '%d'", query_string, s_player[playerid][pDead]);
format(query_string, sizeof(query_string), "%s WHERE `id` = '%d'", query_string, s_player[playerid][pID]);
mysql_function_query(mysql_connect_ID, query_string, false, "", "");
return 1;
}
Так а где ты RemovePlayerInfo вызываешь?
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
phpadmin (26.05.2017)
В смысле, я нигде её при дисконекте ни в гамемоде эксит не прописал, а где вобще надо
- - - Добавлено - - -
PHP код:
public OnGameModeExit()
{
mysql_close(mysql_connect_ID);
return 1;
}
- - - Добавлено - - -PHP код:
public OnPlayerDisconnect(playerid, reason)
{
player_no_connect{playerid} = 0;
SaveAccount(playerid);
return 1;
}
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
phpadmin (26.05.2017)
Я дебил, я незнаю как я мог такие важные дела пропустить. я Исправил да 0 при регистрации. Но мне так и не стало понятно кое что.
Почему когда этого стока я не прописывал в дисконекте, тогда работало на деньгах и киллах тоже там при регистрации после занятия слота прежнего игрока, 0 было, лишь в dead копировалось.
И это не всё я настолько криворукий что я ошибку в removeplayerinfo допустил, я к переменным добавил [0] = 0; крч.. мало ли что ещё появится. А так пока что спасибо всё заебок)
И да я хотел спросить, можно ли там где new query где прописаны по типа 21+(MAX_PLAYERS)+(21+231)+(232) и т.д (это пример)
Укоротить к примеру написав лишь new query[256] ну что бы не сложить всё это в длинную строчку
PHP код:
stock SaveAccount(playerid)
{
new query_string[[COLOR="#FF0000"](21)+(16+11)+(20+MAX_PLAYER_NAME)+(16+30)+(13+11)+(15+10)[/COLOR]] = "UPDATE `accounts` SET"; (укоротить по типу [256])
format(query_string, sizeof(query_string), "%s `player_name` = '%s',", query_string, s_player[playerid][pName]);
format(query_string, sizeof(query_string), "%s `password` = '%s',", query_string, s_player[playerid][pPassword]);
format(query_string, sizeof(query_string), "%s `kills` = '%d',", query_string, s_player[playerid][pKiller]);
format(query_string, sizeof(query_string), "%s `dollar` = '%d',", query_string, s_player[playerid][pDollar]);
format(query_string, sizeof(query_string), "%s `dead` = '%d'", query_string, s_player[playerid][pDead]);
format(query_string, sizeof(query_string), "%s WHERE `id` = '%d'", query_string, s_player[playerid][pID]);
mysql_function_query(mysql_connect_ID, query_string, false, "", "");
return 1;
}
Последний раз редактировалось phpadmin; 26.05.2017 в 18:59.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
А в указанных строках, памяти хватает? или я не правильно расчитал? сверху
- - - Добавлено - - -
тут надо выделять память? если надо, то как расчитать здесьPHP код:
stock CreateNewAccount(playerid, password[])
{
new query_string[66+MAX_PLAYER_NAME-4+30+(30+11)+(48+11)];
format(query_string, sizeof(query_string), "INSERT INTO `accounts` (`player_name`,`password`,`kills`,`dollar`,`dead`) VALUES ('%s','%s','%d','%d','%d')",
s_player[playerid][pName], password, s_player[pKiller], s_player[pDollar], s_player[playerid][pDead]);
mysql_function_query(mysql_connect_ID, query_string, true, "UploadPlayerAccountNumber", "i", playerid);
format(query_string, sizeof(query_string), "Вы зарегистрировали аккаунт.", s_player[playerid][pName]);
scm(playerid,-1,query_string);
player_no_connect{playerid} = 0;
format(query_string, sizeof(query_string),"\t{8D8D8D}Аккаунт успешно занесен в базу данных \n\n\t{FFFFFF}Имя аккаунта: {8CEB59}%s \n\t{FFFFFF}Пароль доступа: {8CEB59}%s\n\t{FFFFFF}Сделайте screenshot - {0EE68C}[F8] \n\n\t{8D8D8D}Просьба перезайти на сервер (в целях безопасности)", s_player[playerid][pName], s_player[playerid][pPassword]);
spd(playerid, dGuard,dsm,"{00FF0D}Guard HG", query_string,"Перезайти","");
TogglePlayerSpectating(playerid, false);
SpawnPlayer(playerid);
return 1;
}
Я в статье объяснял как нужно рассчитывать и составлять формулу.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Здравствуйте, у меня есть несколько вопросов, как я уже сказал, вашей системе регистрации. Сразу предупреждаю, что я новичок в pawn и вообще программировании. Вообщем, я так и не понял почему не стоит делать сохранение имени и пароля при дисконнекте игрока. Потом, я хотел добавить свой массив в enum pInfo, в который будет содержать либо "да" либо "нет"(1/0 соответственно), выделил для него размер один символ и в итоге выдает ошибку(warning 215: expression has no effect), в коде, мне кажется, все в порядке, хотя может быть вот эти фунции pInfo[playerid][pNation][0] = EOS и strins(pInfo[playerid][pNation][0], "1", 0) виноваты. Я так и не понял, что означает [0] после [pNation], может быть проблема в нем? Когда выделяю побольше размер массивуработает все без проблем, но это же вроде как не правильно. И последний вопрос, я понапихал кучу массивов с данными в pIfnfo, стоит ли так делать? Может стоит как то оптимизировать все это?
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)