You are not logged in.
Try to play with compatibillity modes - set it to Win9x/Me or some other, try them all.
And what OS do you have?
Да не за что
Во первых ты чего скрипт декомпилируеш?
Нужно всё менять в исходнике - .txt и сохранять, а то так не читабельно совсем.
Вместо 05E2 попробуй использовать 01C9: actor $2324 kill_actor $2291
05E2 для ActionSequence'в - читай SBManual
И самое главное делай Actor.RemoveReferences .
Интересно, что-ли никто не знает в чём проблема?
Правка:
Проблема была в том что под имя mft выделялось 7 wchar_t вместо 8 Поэтому мы хотели удалить лишний байт из защищённой памяти.
П.С. Хотелось бы узнать - кто здесь имеет опыт в сфере электронной комерции или просто програмит на цпп:).
Всем здрасте!
Я вот тут дефрагментатор и оптимизатор размещения файлов пишу, львиная доля кода уже готова, но анализ диска(составление списка файлов) был реализован через - FindFirstFile, FindNextFile - как вы уже наверное догадались не очень быстрые:)
Так вот решил просканировать $MFT с использование NTFSlib чтобы не писать уйму уже готового кода:)
Так вот процедура вроде отрабатывает корректно, но через секунду после её завершения получаем смачный Debug Assertion Failed: HEAP CORRUPTION DETECTED . Понятно что так дело не пойдёт, но в чём же проблема?Названия многих типов на русском потому-что я не люблю слэнг, а не потому-что не умею програмировать:)
Код .NET /clr .
Код процедуры:
void analis_ntfs(Object^ drivee){ String^ drive =static_cast <String^> (drivee); file_info^ MFT = gcnew file_info; LPWSTR drive_t = (LPWSTR) Marshal::StringToHGlobalAuto(drive).ToPointer(); MFT->name = new wchar_t[7]; //c:\&mft + /0 wcscpy(MFT->name,drive_t); wcscat(MFT->name,L"$MFT"); MFT->type = tip_faila::MFT; if (!prpb(MFT)) return; LARGE_INTEGER dis; dis.QuadPart = 0; BYTE* buf = new BYTE[83886080]; //8mb ULONG64 atr = 8388608; //сколько считать ULONG64 dch = 0;//дополнительное чтение в следуйщем куске мфт, если тот фрагментирован BYTE* kdp;//куда дописывать инфу при дополнительном чтении BYTE* och = &buf[0]; DWORD n; Volume->GetClusterSize(); for (ULONG64 i = 0;i < MFT->file_frg->ExtentCount;i++) { dis.QuadPart = MFT->file_frg->Extents[i]->LCN*Volume->GetClusterSize();//позиция в байтах, а не кластерах if (!SetFilePointerEx(Volume->hVolume,dis,NULL,FILE_BEGIN))return; if (dch) { och = kdp; atr = dch; dch = 0; } ULONG64 el = MFT->file_frg->Extents[i]->Len*Volume->ClusterSize; for (ULONG64 j = 0;j < el;j += 8388608) //8 mb { if (el-j < 8388608) { atr = el - j; dch = 8388608 - el - j; //сколько осталось в следуйщем куске kdp = &buf[atr]; if (!SetFilePointerEx(Volume->hVolume,dis,NULL,FILE_BEGIN))return; if (!ReadFile(Volume->hVolume,och,atr,&n,NULL)) { MessageBox::Show("Ошибка чтения MFT"); return; } //no-parse } else { if (!SetFilePointerEx(Volume->hVolume,dis,NULL,FILE_BEGIN))return; if (!ReadFile(Volume->hVolume,och,atr,&n,NULL)) { MessageBox::Show("Ошибка чтения MFT"); return; } //parse parse_buffer(buf,8388608 / Volume->FileRecordSize); } atr = 8388608; dis.QuadPart += 8388608; och = &buf[0]; } } if (dch) { //parse 8388608 - dch bytes parse_buffer(buf,(8388608 - dch) / Volume->FileRecordSize); } delete [] buf; }
Определения типов:
public ref struct ExtentStruct{ ULONG64 VCN; ULONG64 LCN; ULONG64 Len; ULONG64 ILen; //длина с избытком получающаюся при уборке VF - лучше чем лишний кусок и лишние расчёты }; public ref struct file_fragments { DWORD ExtentCount; array<ExtentStruct^>^ Extents; }; enum tip_faila {file,dir,reparse_point,MFT,system}; enum phase {nichego = -1,operation_completed,sost_spis_failov,anal_rasp_failov,podgotovka,defragmenting}; public ref struct file_info { ~file_info(){ this->!file_info(); } !file_info(){ if (this->name != NULL) { delete [] this->name; //LongPointerToString , Long,PointedTCHARString = LPTSTR;LongPointerWideCharacterString = LPWSTR } } file_fragments^ file_frg; LPWSTR name; //bool error; //bool unmovable; всё равно нельзя раскрасить tip_faila type; };
Я это знаю^)
Но в игре не так(ну я движок не писал).
Да и реально если подействовать на тело силой невероятной величины, но только например 1*10^-10 с то он не особо то сдвинется(и не надо говорить что это не так(я не буду спорить на эту тему и что либо доказывать, но сила предаётся не мгновенно и время передачи зависит от поверхности соприкосновения(обратнопорпорциональная зависимость(Поверхность больше - время меньше))))
Просто этого не видно - это сделать практически невозможно.
-
Ну в принципе можно скриптом и не взрывать(он просто упадет и может не взорватся:(),а так выпрыгнул и ещё сзади взрывная волна.
Кстати насчёт выталкивания - очень хорошо было бы использовать 0209: 17@ = random_int_in_ranges 0 10
Так намного интереснее чем всегда одинаково вылетать.
Код:
10@+=200.0 for 30@ to 1000 0209: 30@ = random_int_in_ranges -20 20 0209: 29@ = random_int_in_ranges -50 50 0209: 28@ = random_int_in_ranges -20 20 8@+=28@ 9@+=30@ 10@+=29@ 083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 8@ 9@ 10@ wait 2 end
П.С. У него на 20000 поэтому и нужен цикл.
Это происходит потомучто если ударить по обьекту огромной силой и сразу прекратить воздействеи то он не успеет поглотить всю силу,в данном случае игра просто практически не учитывает опкод(потомучто 2000 0.5 с и ты уже в космосе).
Слабое выталкиванеи можно усилить так:
10@+=200.0 for 30@ to 1000 083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 8@ 9@ 10@ wait 2 end
Циклически устанавливаем силу:)
Прикольно:)
Особенно звуки:)
Блин как из скрипта запустить программу?
Чёто WinExec или CreateProcess из Kernel32 не хотят работать.
Код:
{$CLEO} 0000: :potok wait 10 if 00E1: player 0 pressed_key 19 jf @potok if 0AA2: 0@ = load_library "kernel32.dll" then if 0AA4: 1@ = get_proc_address "winexec" library 0@ then 0AA5: call 1@ num_params 2 pop 2 app "c:\windows\system32\cmd.exe" 0 //else //0AA4: 1@ = get_proc_address "CreateProcess" library 0@ else 00BA: show_text_styled GXT 'BEEFY' time 1000 style 3 // Beefy Baron end else 00BA: show_text_styled GXT 'BEEFY' time 1000 style 2 // Beefy Baron end 0AA3: free_library 0@ 0A93: end_custom_thread
Вот бери - сразу усё поймёшь(главы про полиморфизм и тп читать не менее 10 раз ы течении года - тогда будешь шпарить как сумашедший:))))
Сам с этого начинал.
ИМХО - справочник это справочник,по нему програмировать не научишся.
Не за что .
У меня тоже такое, даже систему переустанавлмвать не надо .
нет загрузки библиотеки через майн,это я и так знаю)
Знаю такой глюк - решается установкой совместимости с Win 98,не поможет поставь после этого 200(запусти),удали gta_sa.set в папке gta san andreas user files(в "мои документы").
Ну поэкспереминтируй с совместимостью.
Call scm func Дает возможность сделать gosub с возвращаемым значением - просто функция:)
Блин чё за тупы ошибки -Лает...
Юзай иду.
Ищи текст сообщения об отсутствии игры,смотри что там да как,найдеш проверку - бери адрес и правь в hex workshope.
Ничего сложного - на первый взгляд.
И проверь exe - может криптованый или пакованый,обычно пакую upx`om.
Всё проблема решена!
В имени файла или папки не должно быть _ !
И нщё я удалил из папки data test.col и testc.ide))
Экзешник уже поменял на 1.0 us.
Была 1 версия.
Я же знаю что во 2 защита от моддинга имг.
Успокоились!
??????????????????????????????????????????
Даже если НЕ прописывать в .ide - виснет!
??????????????????????????????????????????
Я тоже камавскими,только для разбивающихся обьектов нужны от дениски.
У меня тоже больше 5.
Даже если в ide не прописывать - вылетает.
Счас,эээ
#Item Definition File created by MapEditor objs 18631, truba, truba, 299, 0 end tobj end 2dfx end
#Item Placement File created by MEd inst 18631, truba, 0, 2075.2850963, -1715.23036521, 35.2734375, 0, 0, 0, 1, -1 end
Топик на мапсе.
Sa limit adjuster может помочь?
Надо с этим разобратЬся,а то как я сделаю мод?:rolleyes:
ПоЧеМу КоГдА я ДоБаВлЯю ОбЪеКтЫ в GtA3.ImG иЛи В сВоЙ аРхИв ИгРа ВиСнЕт?
Ну я не нуб про айд и гта дат знаю(вообще пользуюсь мед,глючный правда),вставлял в гта3.имг - висла игра(сначала нет,но если много вставить как будто читает не там где нужно,дпже если ребулдить,если удалить пару файлов то в ошибке будет 0x000030).
За ссылку спасибо.
Добавлено:
СУУПЕР ССЫлка!
Наконец то нашел как делать ломающиеся обьекты спасибо .
Ну и где скачать скрипты от дениски ?
Я просто в стандартный имг засунул пару обьектов и игра зависла.
Как добавлять имг?:crazy:
Скорее выделить память для неизвестных потоков.
Вероятно память для заголовеов и другой сис инфы о потоках.
Подскажите подалуйсто способ запуска клео через майн.
Понятно что он устарел,но может он стабильнее(?)(достали зависи при начале игры).
И при таком типе запуска нужно начинать новую игру?