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

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


Jurt
Отправлено: Sep 30 2005, 08:32


Level 1


Группа: Newbie
Сообщений: 3
Регистрация: 08.09.2005
Пользователь №: 1,504


Спасибо большое!
Про хитрые имена помню и знаю, то что есть это пока только для "внутреннего пользования", а вот с OBJECT_SELF прокололся :unsure:
  Форум: Шарды рунета · Просмотр сообщения: #52379 · Ответов: 4 · Просмотров: 18,029

Jurt
Отправлено: Sep 26 2005, 05:14


Level 1


Группа: Newbie
Сообщений: 3
Регистрация: 08.09.2005
Пользователь №: 1,504


на OnClientEnter модуля висит следующая скриптина:
Neverwinter Script Source
#include "aps_include"
void main()
{
  object oPC = GetEnteringObject();
  object oAUS;
  string sName = GetPCPlayerName(oPC);
  string sPCName;
  string PCTag;
  string PCid;
  int PCRespect;
  string sPClocal,t4,t5;
  if (GetIsPC(oPC))
  {
    SQLExecDirect("SELECT * FROM pl_data WHERE name='"+sName+"' AND pass= MD5('"+GetDeity(oPC)+"')");
    SendMessageToPC(oPC,"name:"+sName);
    if (SQLFetch()==1)
    {

        PCid=SQLGetData(1);
        sPCName=SQLGetData(2);
        PCTag=SQLGetData(3);

        SQLExecDirect("SELECT * FROM pl_stat WHERE id='"+PCid+"'");
        if(SQLFetch()==1)
        {
            //зашедший не новенький у него есть запись в таблице статов
            //пускай даже пустая
            PCRespect=StringToInt(SQLGetData(3));//респекты
            SetLocalString(OBJECT_SELF,"respect",IntToString(PCRespect));
            SQLExecDirect("SELECT * FROM pl_spec WHERE id='"+PCid+"'");
            while(SQLFetch()==1)
            {
                SetLocalString(OBJECT_SELF,SQLGetData(1),SQLGetData(2));
            }
            SetLocalString(OBJECT_SELF,"id",PCid);
            t4=GetPersistentString(oPC,"id","pl_spec");
            t5=GetPersistentString(oPC,"respect","pl_spec");
            SendMessageToPC(oPC,"Lid="+t4+", Lrespect="+t5);
            SendMessageToPC(oPC,"id="+PCid+", respect="+IntToString(PCRespect));
        }
        else
        {
            //зашедший новенький его надо экипировать и создать запись статов
            SQLExecDirect("INSERT INTO pl_stat VALUES('item',0,'',0,"+PCid+",'')");
            SQLExecDirect("INSERT INTO pl_spec VALUES("+PCid+",'','')");
            oAUS=CreateItemOnObject("ar_passport",oPC,1);
            SetLocalString(oAUS,"respect",IntToString(PCRespect));
        }
    }
    else BootPC(oPC);
  }
    t4=GetLocalString(oPC,"id");
    t5=GetLocalString(oPC,"respect");
    SendMessageToPC(oPC,"id="+t4+", respect="+t5);
}


тут много мусора для проверок...
  Форум: Шарды рунета · Просмотр сообщения: #51851 · Ответов: 4 · Просмотров: 18,029

Jurt
Отправлено: Sep 23 2005, 05:47


Level 1


Группа: Newbie
Сообщений: 3
Регистрация: 08.09.2005
Пользователь №: 1,504


Помогите кто сталкивался с подобным:

На onClientEnter вешаю скрипт перетряхивающий базу и либо пропускающий плеера либо нет, если игрок проходит в игру ему восстанавливаем некоторые переменные.

А теперь вопрос:
Пишу SetLocalInt(oPC,"bla",1), а локальная переменная не плеере не устанавливается :unsure: как это побороть? Сделал пока через базу, но мне жалко игроков которым придется жить с лагами от постоянного обращения к базе.
  Форум: Шарды рунета · Просмотр сообщения: #51525 · Ответов: 4 · Просмотров: 18,029


Есть новые сообщения  Открытая тема (есть новые ответы)
Нет новых сообщений  Открытая тема (нет новых ответов)
Горячая тема (есть новые сообщения)  Горячая тема (есть новые ответы)
Горячая тема (нет новых сообщений)  Горячая тема (нет новых ответов)
Опрос (есть новые голоса)  Опрос (есть новые голоса)
Опрос (нет новых голосов)  Опрос (нет новых голосов)
Тема закрыта  Закрытая тема
Тема перемещена  Тема перемещена
 

Текстовая версия Сейчас: 31st July 2025 - 06:54