Просмотр полной версии : [Вопрос] Вопрос по реализации
Добрый день
Задался таким вопросом
Есть строка
CreateDynamicObject(19464, 0.024787,-11.852722,0.000000, 0.0,0.0,0.0);
как можно её поделить на переменные?
к примеру:
new
model,
Float:X,
Float:Y,
Float:Z,
Float:RotX,
Float:RotY,
Float:RotZ;
CreateDynamicObject(model, X,Y,Z,RotX,RotY,RotZ);
а точнее как мне из строки узнать все пораметры и записать в переменные
Перехват функций, часть 1: основы (http://pro-pawn.ru/showthread.php?10447-%D0%9F%D0%B5%D1%80%D0%B5%D1%85%D0%B2%D0%B0%D1%82-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9-%D1%87%D0%B0%D1%81%D1%82%D1%8C-1-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D1%8B)
Перехват функций, часть 2: практика - пишем античит на HP (http://pro-pawn.ru/showthread.php?10611-%D0%9F%D0%B5%D1%80%D0%B5%D1%85%D0%B2%D0%B0%D1%82-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9-%D1%87%D0%B0%D1%81%D1%82%D1%8C-2-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0-%D0%BF%D0%B8%D1%88%D0%B5%D0%BC-%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B8%D1%82-%D0%BD%D0%B0-HP)
Seregamil
30.05.2017, 11:16
Добрый день
Задался таким вопросом
Есть строка
CreateDynamicObject(19464, 0.024787,-11.852722,0.000000, 0.0,0.0,0.0);
как можно её поделить на переменные?
к примеру:
new
model,
Float:X,
Float:Y,
Float:Z,
Float:RotX,
Float:RotY,
Float:RotZ;
CreateDynamicObject(model, X,Y,Z,RotX,RotY,RotZ);
а точнее как мне из строки узнать все пораметры и записать в переменные
GetDynamicObjectPos, GetDynamicObjectRot, GetDynamicObjectModel
Перехват функций, часть 1: основы (http://pro-pawn.ru/showthread.php?10447-%D0%9F%D0%B5%D1%80%D0%B5%D1%85%D0%B2%D0%B0%D1%82-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9-%D1%87%D0%B0%D1%81%D1%82%D1%8C-1-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D1%8B)
Перехват функций, часть 2: практика - пишем античит на HP (http://pro-pawn.ru/showthread.php?10611-%D0%9F%D0%B5%D1%80%D0%B5%D1%85%D0%B2%D0%B0%D1%82-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9-%D1%87%D0%B0%D1%81%D1%82%D1%8C-2-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0-%D0%BF%D0%B8%D1%88%D0%B5%D0%BC-%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B8%D1%82-%D0%BD%D0%B0-HP)
мне не перехват надо а к примеру как работает функция
format(str, sizeof str, "CreateDynamicObject(%d, %f,%f,%f,%f,%f,%f);", model, X,Y,Z,RotX,RotY,RotZ); а токо на оборот
- - - Добавлено - - -
GetDynamicObjectPos, GetDynamicObjectRot, GetDynamicObjectModel
а если к примеру я захочу поставить там за место CreateDynamicObject любую другую (не стандарт) функцию
P.S написал выше пример может кто поймёт
GetDynamicObjectPos, GetDynamicObjectRot, GetDynamicObjectModel
Или же просто сохранить ID объекта и потом доставать нужную информацию при помощи
native Streamer_GetFloatData(type, STREAMER_ALL_TAGS id, data, &Float:result);
native Streamer_SetFloatData(type, STREAMER_ALL_TAGS id, data, Float:value);
native Streamer_GetIntData(type, STREAMER_ALL_TAGS id, data);
native Streamer_SetIntData(type, STREAMER_ALL_TAGS id, data, value);
native Streamer_GetArrayData(type, STREAMER_ALL_TAGS id, data, dest[], maxdest = sizeof dest);
native Streamer_SetArrayData(type, STREAMER_ALL_TAGS id, data, const src[], maxsrc = sizeof src);
не создавая дополнительных глобальных массивов :wizard:
- - - Добавлено - - -
мне не перехват надо а к примеру как работает функция
format(str, sizeof str, "CreateDynamicObject(%d, %f,%f,%f,%f,%f,%f);", model, X,Y,Z,RotX,RotY,RotZ); а токо на оборот
Это в перехвате можно сделать. Ну или макрос:
#define CreateDynamicObject(%0,%1,%2,%3,%4,%5,%6) format(str, sizeof str, "CreateDynamicObject(%d, %f,%f,%f,%f,%f,%f);", %0,%1,%2,%3,%4,%5,%6)
Но тогда вообще все CreateDynamicObject после макроса станут format
Скажи конкретно что ты хочешь
Или же просто сохранить ID объекта и потом доставать нужную информацию при помощи
native Streamer_GetFloatData(type, STREAMER_ALL_TAGS id, data, &Float:result);
native Streamer_SetFloatData(type, STREAMER_ALL_TAGS id, data, Float:value);
native Streamer_GetIntData(type, STREAMER_ALL_TAGS id, data);
native Streamer_SetIntData(type, STREAMER_ALL_TAGS id, data, value);
native Streamer_GetArrayData(type, STREAMER_ALL_TAGS id, data, dest[], maxdest = sizeof dest);
native Streamer_SetArrayData(type, STREAMER_ALL_TAGS id, data, const src[], maxsrc = sizeof src);
не создавая дополнительных глобальных массивов :wizard:
- - - Добавлено - - -
Это в перехвате можно сделать. Ну или макрос:
#define CreateDynamicObject(%0,%1,%2,%3,%4,%5,%6) format(str, sizeof str, "CreateDynamicObject(%d, %f,%f,%f,%f,%f,%f);", %0,%1,%2,%3,%4,%5,%6)
Но тогда вообще все CreateDynamicObject после макроса станут format
Скажи конкретно что ты хочешь
ну я так вижу не кто и не понял что надо
вотк примеру есть масив str в нём будет строка записана "CreateDynamicObject(19464, 0.024787,-11.852722,0.000000, 0.0,0.0,0.0);" ну вот и её надо будет как-то поделить по переменным (тоесть что-бы каждый параметр был в переменной)
Fallen A.
30.05.2017, 11:32
ну я так вижу не кто и не понял что надо
вотк примеру есть масив str в нём будет строка записана "CreateDynamicObject(19464, 0.024787,-11.852722,0.000000, 0.0,0.0,0.0);" ну вот и её надо будет как-то поделить по переменным (тоесть что-бы каждый параметр был в переменной)
И зачем в массив записывать всю строку? Бред.
Для чего весь этот сыр бор и в каком месте необходимо применение?
И зачем в массив записывать всю строку? Бред.
Для чего весь этот сыр бор и в каком месте необходимо применение?
у меня есть функция она загружает объекты из файла в 1 строку (не токо объекты и много чего другова)
Ну вот мне надо как-то форматирнуть строку чтобы всё было в переменных ну а потом я уже создал сам объект ну или что-то другое
Ну так используй sscanf
я токо знаю что ссканф может расспоковать строки типо 23|23.02|test тоесть p<|>dfs[4]
а такие как я выше предоставил я не знаю как именно расспоковать
Nexius_Tailer
30.05.2017, 12:21
я токо знаю что ссканф может расспоковать строки типо 23|23.02|test тоесть p<|>dfs[4]
а такие как я выше предоставил я не знаю как именно расспоковать
Вот пример (https://github.com/fusez/Map-Editor/blob/master/mapedit/mparse/functions.pwn#L273) загрузки CreateObject из файла с помощью sscanf'а
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot