Защита от взлома акков, варианты |
Здравствуйте, гость ( Вход | Регистрация )
Защита от взлома акков, варианты |
Jun 12 2004, 10:25
Сообщение
#1
|
|
Level 9 Класс: Волшебник Характер: Chaotic Good Раса: Дракон NWN: Скриптинг [PW] |
Так уж сложилось, что лицензионных версий игры в России почти не водится. В связи с этим на всех русских шардах отключена проверка СД-КЕЯ средствами bioware. Но из-за этого любой игрок может пропустить проверку логин:пароль и зайти на шард под любым логином.
Способов борьбы с этим опять-же - полно. Кто-то требует ввода в поле Deity специального ключа, генерируемого по имени\логину, кто-то записывает СДКЕЙ в БД. Наверное есть еще варианты. Хотелось бы услышать - кто и как с этим борется. Добавлено в [mergetime]1087026014[/mergetime] Вот один из вариантов скрипта. Он привязывает СД-КЕЙ, с которым создали персонажа к логину\имени персонажа. Зайти в игру этим персонажем можно только с этим СД-КЕЙем. На случай смены СД-КЕЯ предусмотренна возможность временного отключения проверки из dm-console командой `dm_setmodulevarint SecurityDisable 1`. Включить защиту обратно: `dm_setmodulevarint SecurityDisable 0` Вызывается из события onClientEnter: ExecuteScript("_security",OBJECT_SELF); _security.nss Код void main() { object oPC = GetEnteringObject(); string sCDKEY = GetPCPublicCDKey(oPC); string sName = GetName(oPC); string sPCName = GetPCPlayerName(oPC); string sID = "(("+sPCName+"))"+sName; //ДМ-ы должны знать пароль и их обычно не проверяют if (GetIsDM(oPC)) return; // Читаем из БД строку по паре логин+имя персонажа string sReadID = GetCampaignString("Security",sID); //Дополнительная возможность банить игрока - положить ему в инвентарь итем с тегом "mg_bootstone" if (!GetLocalInt(GetModule(),"SecurityDisable") && GetIsObjectValid(GetItemPossessedBy(oPC,"mg_bootstone"))) { BootPC(oPC); return; } //Если игрок зашел впервые (только создали) или отключена защита - записываем новый СДКЕЙ if (sReadID =="" || GetLocalInt(GetModule(),"SecurityDisable")) { SetCampaignString("Security",sID,sCDKEY); return; } //Проверяем if (sReadID != sCDKEY && !GetLocalInt(GetModule(),"SecurityDisable") ) { BootPC(oPC); SendMessageToAllDMs("Security: Error! "+sName+" :["+sPCName+"]: with key ="+sCDKEY+ " != "+sReadID); WriteTimestampedLogEntry("Security: Error! "+sName+" :["+sPCName+"]: with key ="+sCDKEY+ " != "+sReadID); return; } } |
Jul 1 2005, 23:30
Сообщение
#2
|
|||
Level 6 Класс: Обыватель Характер: True Neutral Раса: Человек |
Не скажи, я вообще всегда пытаюсь играть под своим ником менять его меня заставляют обстоятельства :D Добавлено в 23:33 \\ Привет Ранма, давно тебя не видел :pilot: Сообщение отредактировал Balgarat - Jul 1 2005, 23:38 |
||
Текстовая версия | Сейчас: 25th April 2024 - 16:59 |