Перейти к содержанию

Магия (вопрос) Акк и чары


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

Странным образом случилось такое: После смены ника у игрока пропали с акка 6 чаров. ЧТо это может быть?

А на сайте в личном кабинете все ники чаров есть. В логах удаления персонажей так же нету.

prontera,148,204,6	script	Джесика	859,{

mes "[Смена пола/Ника]";
mes "Привет, это сервис смены вашего ника и пола.";
mes "Смена ника стоит ^0065DF500.000.000 зени^000000";
mes " ";
mes "Смена пола стоит ^0065DF1.000.000 зени^000000";
next;
mes "[Смена пола/Ника]";
mes "что вы хотели?";
next;
switch(select("Сменить Ник","Сменить пол","Отмена")){
case 1:
mes "[Смена пола/Ника]";
mes "Вы выбрали смену ника.";
mes "Введите ник который вы желаете.";
set $oldname$,strcharinfo(0);
input $newnick$;
next;
mes "[Смена пола/Ника]";
mes "Меняем ник ^0000fF"+$oldname$+"^000000 на ^0065DF"+$newnick$+"^000000?";
mes "Подтверждаете?";
switch(select("Да, сменить ник","Нет, я передумал")){
case 1:
set @charid,getcharid(0);
if (Zeny > 499999999) {
set zeny,zeny-500000000;
query_sql("update `char` set `name`='"+$newnick$+"' where `char_id`='"+@charid+"'");
mes "[Смена пола/Ника]";
mes "Ваш ник изменён на ^0065DF"+$newnick$+"^000000. ^ff0000Перезайдите.^000000";
close; }
else {
mes "[Смена пола/Ника]";
mes "У вас недостаточно денег.";
close; }

case 2:
close; }
case 2:
mes "[Смена пола/Ника]";
mes "Вы выбрали смену пола.";
mes "Вы хотите сменить пол на противоположный?.";
switch(select("Да, сменить пол","Нет, я передумал")){
case 1:
if (Zeny > 999999) {
set zeny,zeny-1000000;
changesex;
mes "Готово.";
close;}
else {
mes "[Смена пола/Ника]";
mes "У вас недостаточно денег.";}
close;
case 2:
break;
}





case 3:
close;}

OnInit:

end;
}

Изменено пользователем Іван Смеречак
Ссылка на комментарий
Поделиться на другие сайты

вместо

query_sql("update `char` set `name`='"+$newnick$+"' where `char_id`='"+@charid+"'");

лучше так


query_sql("update `char` set `name`='"+escape_sql($newnick$)+"' where `char_id`='"+@charid+"'");

и желательно еще кикать после этого


sleep2 1000;
atcommand "@kick "+strcharinfo(0);
end;

Изменено пользователем mrboob
Ссылка на комментарий
Поделиться на другие сайты

вместо

query_sql("update `char` set `name`='"+$newnick$+"' where `char_id`='"+@charid+"'");

лучше так


query_sql("update `char` set `name`='"+escape_sql($newnick$)+"' where `char_id`='"+@charid+"'");

и желательно еще кикать после этого
sleep2 1000;
atcommand "@kick "+strcharinfo(0);
end;

Спасибо, а как же быть с чарами? Может посоветуете что-то?

Просто я проверял на себе, менял ники и ничего необычного. Думал может из-за русского ника.. Но нет. Дело не в нем.

Изменено пользователем Іван Смеречак
Ссылка на комментарий
Поделиться на другие сайты

Персонажей как вернуть я точно не знаю, но скрипт надо исправлять, хотя бы сделать проверку на использование нового ника, а то будет овер9000 персонажей с одинаковым именем.

И еще сделать переменные не глобальные, а лучше временные чаровские.

Кстати отсюда, вопрос: не использовал ли он какие-нибудь "левые" символы, когда писал новой ник?

Ссылка на комментарий
Поделиться на другие сайты

Вот вроде рабочий, кто писал не помню, вместо тцг сам зени вставишь ;)

prontera,180,100,1	script	Смена ника	700,{
set @value,10;
set @getitem,7227;
mes "Ты хочешь сменить свой ник?";
mes "Это будет стоить "+@value+" TCG Card.";
if(select("Да:Нет")==2){
close;
}
if(countitem(@getitem)<@value){
mes "У вас не хватает TCG Card.";
close;
}
new_name:
mes "Введите новый ник";
input @name$;
query_sql "SELECT `account_id` FROM `char` WHERE `name` = '"+escape_sql(@name$)+"'",.@a;
if(.@a)
{
mes "Ник не доступен";
next;
goto new_name;
}
else
{
mes "Ник доступен";
delitem @getitem,@value;
query_sql "UPDATE `char` SET `name` = '"+escape_sql(@name$)+"' WHERE `char_id` = "+getcharid(0)+";";
mes "Вы будете кикнуты через секунду.";
sleep2 1000;
atcommand "@kick "+strcharinfo(0);
end;
}
}

  • Upvote 3
Ссылка на комментарий
Поделиться на другие сайты

Персонажей как вернуть я точно не знаю, но скрипт надо исправлять, хотя бы сделать проверку на использование нового ника, а то будет овер9000 персонажей с одинаковым именем.

И еще сделать переменные не глобальные, а лучше временные чаровские.

Кстати отсюда, вопрос: не использовал ли он какие-нибудь "левые" символы, когда писал новой ник?

Жаль. Да, он использовал левые символы. Но я решил проверить такой же ник на тестовом сервере вписал ничего не произошло.

Ссылка на комментарий
Поделиться на другие сайты

Проблему решил.

В поиск вбил ид акка, переименовал чара на другой ник и все стало на свои места.

Спасибо всем кто откликнулся.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика