Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

Профиль
Фотография
Рейтинг
 
Опции
Опции
Персональное Соглашение
baskan не имеет договора в данный момент.
Персональная информация
baskan
Level 7
Возраст неизвестен
Пол не выбран
Проживание неизвестно
День рождения неизвестен
Интересы
PHP
Fantasy book's
History
Sport
Power/Heavy Metal
Другая информация
Класс: Бард
Характер: Lawful Good
Раса: Фея
Мастер: Нет данных
Мастер: Нет данных
Мастер: Нет данных
Проект N1: Нет данных
Проект N2: Нет данных
Статистика
Присоединился: 24.09.2004
Просмотры профиля: 6,689*
Последний раз замечен: 3rd December 2010 - 19:15
Местное время: Mar 29 2024, 02:54
212 сообщения (0.03 сообщений в день)
Контактная информация
AIM Нет данных
Yahoo Нет данных
ICQ 262262563
MSN Нет данных
* Просмотры профиля обновляются каждый час

baskan

Members

**


Темы
Сообщения
Файлы
Комментарии
Друзья
Содержание
11 Dec 2005
Требуется сделать проверку в OnClientEnter на существование аккаунта в БД.

Скрипт :

Neverwinter Script Source
#include "nw_o0_itemmaker"
#include "hss_giv_it_class"
#include "gsc_include"
#include "aps_include"
#include "_cb_core"

void main()
{
object oPC = GetEnteringObject();
object oStore = GetModule();
string sStoreName = GetName(oPC)+GetPCPlayerName(oPC); // =[PC name] + [login name]
SetLocalString(oPC,"HP_MyIdString",sStoreName);

//Remove Polymorph and Spell_Failure
effect eNeg = GetFirstEffect(oPC);
while(GetIsEffectValid(eNeg))
{
if (GetEffectType(eNeg)==EFFECT_TYPE_POLYMORPH) RemoveEffect(oPC, eNeg);
if (GetEffectType(eNeg)==EFFECT_TYPE_SPELL_FAILURE) RemoveEffect(oPC, eNeg);
eNeg = GetNextEffect(oPC);
}


int iSavedHP = GetLocalInt(oStore,sStoreName);
if (iSavedHP != 0)
{
effect efDamage = EffectDamage(GetMaxHitPoints(oPC)-iSavedHP,DAMAGE_TYPE_MAGICAL,DAMAGE_POWER_ENERGY);
ApplyEffectToObject(DURATION_TYPE_INSTANT,efDamage,oPC);
}

int k,j,nSpells;
for (k=1; k < 805; k++)
{
nSpells = GetLocalArrayInt(oStore,sStoreName+"_spells",k);
if (nSpells)
for (j=0; j <= GetHasSpell(k,oPC)-nSpells; j++)
DecrementRemainingSpellUses(oPC, k);
}

if (!GetIsDM(oPC))
{
if(GetItemPossessedBy(oPC, "dmfi_pc_emote") == OBJECT_INVALID)
CreateItemOnObject("dmfi_pc_emote", oPC);
if (!GetXP(oPC))
{
ClearInventory(oPC);
GiveClassItems(oPC);
GiveGoldToCreature(oPC, 900);
CreateItemOnObject("bedroll", oPC);
CreateItemOnObject("food", oPC);
GiveXPToCreature(oPC,1);
}
if ((GetCampaignInt("INVA_MISK", "EXISTS", oPC)==TRUE)&&(!GetLocalInt(GetModule(),"SecurityDisable")))
{
BootPC(oPC);
}
    if(GetLocalInt(oPC, "Subrace_Done") != 1)
    {
        core(oPC);
        SetLocalInt(oPC, "Subrace_Done", 1);
    }
// ____________________________CHECKING_ACCOUNT____________________________


object oPC=GetEnteringObject();
string sAccount=SQLEncodeSpecialChars(GetPCPlayerName(oPC));
string sKey=GetPCPublicCDKey(oPC);

string sCheck = "SELECT * FROM `IPB` WHERE nwn_acc='"+sAccount+"' AND nwn_access='accessed'";
string sCheckKey = "SELECT nwn_key FROM `ipb` WHERE nwn_acc='"+sAccount+"' AND nwn_access='accessed'";
string sPutDownKey = "UPDATE `IPB` SET nwn_key='"+GetPCPublicCDKey(oPC)+"' WHERE nwn_acc='"+sAccount+"' AND nwn_access='accessed'";


SQLExecDirect(sCheck);
if (SQLFirstRow() == SQL_SUCCESS)
{
SQLExecDirect(sCheckKey);
string sFinalKey;
while (SQLFetch() == SQL_SUCCESS)
{
sFinalKey = SQLGetData(1);
}
if(sFinalKey == "")
{
SQLExecDirect(sPutDownKey);
}
else if((sFinalKey != "") && (sFinalKey != GetPCPublicCDKey(oPC)))
{
BootPC(oPC);
}
else if(sFinalKey == GetPCPublicCDKey(oPC))
{
SendMessageToPC(oPC,"checking success...");
}
}
else
{
BootPC(oPC);
}
//ExecuteScript("_security",OBJECT_SELF);
// _____________________END_OF_CHECKING_ACCOUNT____________________________
ExecuteScript("hit_autodis",oPC);
ExecuteScript("hit_chkname",oPC);
}
SendMessageToPC(oPC, "The Chronicles of Nightfall 0.9b");
SendMessageToAllDMs("Account: " + GetPCPlayerName(oPC)+ ", Character: "+ GetName(oPC)+ ", IP: "+ GetPCIPAddress(oPC));
WriteTimestampedLogEntry("Account: " + GetPCPlayerName(oPC)+ ", Character: "+ GetName(oPC)+ ", IP: "+ GetPCIPAddress(oPC));
GSC_OnClientEnter(oPC);
}

Нас интересует промежуток от CHECKING_ACCOUNT до END_OF_CHECKING_ACCOUNT. "ipb" имя БД. Ошибка кроеться в этом промежутке. Ибо когда я его закоментил скрипт нормально работал, а так при старте выдает ошибку о "Слишком много инструкций" и не показывает на какой строке :vava: . логи nwnx2 ничего не показывают, помогите.:swoon:
22 Oct 2005
Кто знает, как сделать его бесплатным, и как называются скрипты отвечающие за него?
15 Sep 2005
Посоветуйте крафт для шарда. Чтобы поменьше лагов :yes: .
25 Aug 2005
Ни для кого не секрет, что существует программа, с помощью которой можно зайти на любой шард DM'ом не зная пароля. Значит нужна дополнительная защита от censored. Есть у кого нибудь предложения как защитить свой сервер, например можно ли сделать дм вход по айпи адрессу, заносиш в бд айпишники, с которых возможен вход, а если его нет то выкидывает изверга.

Баскан, маты - на Кормире оставляй.
Последние посетители


9 Oct 2016 - 23:38


6 Jan 2011 - 20:53


20 Jan 2009 - 8:45

Комментарии
Вам не оставили ни одного комментария baskan.

Друзья
Нет друзей для показа.
Текстовая версия Сейчас: 29th March 2024 - 02:54