29.08.2016, 15:26
[Plugin] FCNPC - Fully Controllable NPC (Russian Thread)
29.08.2016, 21:50
30.08.2016, 14:49
Лучше б поинтереснее что-нибудь добавил, например, выставление ботов полукругом (координаты зависят от угла)...
02.09.2016, 06:35
18.01.2017, 13:05
Quote:
crashdetect ни когда не пользовался, дай ссылку, поставлю и проверю если там замарочек не много
|
19.01.2017, 12:14
(
Last edited by DANGER1979; 20/01/2017 at 09:01 AM.
)
1. locktimer работает после сообщения "Вы потеряли цель". Т.е. не все запущенные процессы убиваются, и где то ошибка при инициализации переменных.
2. В некоторых случаях[FCNPC] Error: name 'mission_0_0' is invalid. В итоге не запускается миссия
3.Боты в отличии от версии FCNPC-1.5.0-windows в скрипте миссий уже нормально убиваются.
4. в скрипте телохранителей не работает команда /bg shoot 1 0, где 0 - мой ид. Т.е. бот стоит и не хочет в меня стрелять. Это проблема появляется после манипуляций с ботами в данном скрипте.
5. в консоль сервера желательно чтобы выводилось при подключении бота так:
printf("NPC: Connection NPC %s[%d].", npcname, playerid);
т.е. обязательно надо видеть ID бота, а ip адрес бота вообще не нужная инфа.
6. если посадить бота за руль и ввести команду /bg follow 2 0, то бот едет за мной, но направление постоянно дергается, не очень красиво, и плюс по скорости он меня не догоняет. Не приятно также, что он едет через ограды и дома. Пробовал посадить бота за руль и использовать плагин autopilot, но почему то путь рассчитывается, но машина не едет. Но при этом автопилот прекрасно работает если сидишь на пассажирском и за рулём вообще ни кого нет.
Видимо проблема в том, что SetVehicleVelocity блокируется когда в машине за рулём сидит бот.надо это исправить в самом плагине если это возможно.
Т.е. мне надо, чтобы бот ехал от точки к точке (за ранее не известной) строго по дороге со скоростью, чтобы игроку было его трудно обогнать, но при этом не используя записанные треки. Чтобы можно было с ботами учавствовать в соревнованиях.
7. краши плагина
8. Почему не исользовать последнюю версию GPS.dat из плагина RouteConnectorPlugin вместо 64 nodes
9. команда /citizien постоянно выдаёт "Invalid citizien ID" и не перемещают к ИД бота.
2. В некоторых случаях[FCNPC] Error: name 'mission_0_0' is invalid. В итоге не запускается миссия
3.Боты в отличии от версии FCNPC-1.5.0-windows в скрипте миссий уже нормально убиваются.
4. в скрипте телохранителей не работает команда /bg shoot 1 0, где 0 - мой ид. Т.е. бот стоит и не хочет в меня стрелять. Это проблема появляется после манипуляций с ботами в данном скрипте.
5. в консоль сервера желательно чтобы выводилось при подключении бота так:
printf("NPC: Connection NPC %s[%d].", npcname, playerid);
т.е. обязательно надо видеть ID бота, а ip адрес бота вообще не нужная инфа.
6. если посадить бота за руль и ввести команду /bg follow 2 0, то бот едет за мной, но направление постоянно дергается, не очень красиво, и плюс по скорости он меня не догоняет. Не приятно также, что он едет через ограды и дома. Пробовал посадить бота за руль и использовать плагин autopilot, но почему то путь рассчитывается, но машина не едет. Но при этом автопилот прекрасно работает если сидишь на пассажирском и за рулём вообще ни кого нет.
Видимо проблема в том, что SetVehicleVelocity блокируется когда в машине за рулём сидит бот.надо это исправить в самом плагине если это возможно.
Т.е. мне надо, чтобы бот ехал от точки к точке (за ранее не известной) строго по дороге со скоростью, чтобы игроку было его трудно обогнать, но при этом не используя записанные треки. Чтобы можно было с ботами учавствовать в соревнованиях.
7. краши плагина
Code:
=========================== FCNPC Exception Handler ============================ Address: 0x0 Registers: EAX: 0x4 - EBX: 0x3600978 - ECX: 0x3619090 - EDX: 0x18f88c ESI: 0x360d874 - EDI: 0x23cfeb0 - EBP: 0x36046f0 - ESP: 0x18f868 Stack: 0x0: 0x402b63 - 0x4: 0x23cfeb0 - 0x8: 0x4 - 0xC: 0x18f88c - 0x10: 0x3619090 - 0x14: 0x0 0x18: 0x0 - 0x1C: 0x359a048 - 0x20: 0x18f928 Information: System: Windows SA-MP: 0.3.7 R2-1 FCNPC: 1.6.1 Functions: FUNC_CPlayerPool__DeletePlayer: 0x466570 FUNC_CPlayer__Kill: 0x484620 FUNC_CPlayer__EnterVehicle: 0x484c70 FUNC_CPlayer__ExitVehicle: 0x484f50 FUNC_CPlayer__SpawnForWorld: 0x486d30 FUNC_GetVehicleModelInfo: 0x488240 FUNC_CConsole__GetIntVariable: 0x48b5b0 FUNC_ClientJoin_RPC: 0x4918f0 Pointers: VAR_ServerAuthentication: 0x4f5fe8 VAR_NetVersion: 0xfd9 Offsets: OFFSET_RemoteSystemManager: 0x33c OFFSET_RemoteSystemSize: 0xcb8 OFFSET_RemoteSystem__ConnectMode: 0xcb0 OFFSET_RemoteSystem__Unknown: 0xcb5 =========================== FCNPC Exception Handler ============================
9. команда /citizien постоянно выдаёт "Invalid citizien ID" и не перемещают к ИД бота.
20.01.2017, 11:52
Так же не понятен принцип как просмотреть файл NODES0.DAT или как отредактировать его. Как создать новый?
Какой принцип движения бота когда он сидит в тачке? Как выбирается следующий узел к которому надо двигаться боту?
Лучше использовать последнюю версию GPS.dat из плагина RouteConnectorPlugin, т.к. там и координаты можно исправить или добавить, и принцип движения более понятен.
Какой принцип движения бота когда он сидит в тачке? Как выбирается следующий узел к которому надо двигаться боту?
Лучше использовать последнюю версию GPS.dat из плагина RouteConnectorPlugin, т.к. там и координаты можно исправить или добавить, и принцип движения более понятен.
22.01.2017, 09:34
Quote:
1. locktimer работает после сообщения "Вы потеряли цель". Т.е. не все запущенные процессы убиваются, и где то ошибка при инициализации переменных.
|
Quote:
2. В некоторых случаях[FCNPC] Error: name 'mission_0_0' is invalid. В итоге не запускается миссия
|
Quote:
5. в консоль сервера желательно чтобы выводилось при подключении бота так:
printf("NPC: Connection NPC %s[%d].", npcname, playerid); т.е. обязательно надо видеть ID бота, а ip адрес бота вообще не нужная инфа. |
Quote:
6. если посадить бота за руль и ввести команду /bg follow 2 0, то бот едет за мной, но направление постоянно дергается, не очень красиво, и плюс по скорости он меня не догоняет.
|
Quote:
Не приятно также, что он едет через ограды и дома. Пробовал посадить бота за руль и использовать плагин autopilot, но почему то путь рассчитывается, но машина не едет. Но при этом автопилот прекрасно работает если сидишь на пассажирском и за рулём вообще ни кого нет.
Видимо проблема в том, что SetVehicleVelocity блокируется когда в машине за рулём сидит бот.надо это исправить в самом плагине если это возможно. Т.е. мне надо, чтобы бот ехал от точки к точке (за ранее не известной) строго по дороге со скоростью, чтобы игроку было его трудно обогнать, но при этом не используя записанные треки. Чтобы можно было с ботами учавствовать в соревнованиях. |
Что за плагин autopilot?
Quote:
7. краши плагина
Code:
=========================== FCNPC Exception Handler ============================ Address: 0x0 Registers: EAX: 0x4 - EBX: 0x3600978 - ECX: 0x3619090 - EDX: 0x18f88c ESI: 0x360d874 - EDI: 0x23cfeb0 - EBP: 0x36046f0 - ESP: 0x18f868 Stack: 0x0: 0x402b63 - 0x4: 0x23cfeb0 - 0x8: 0x4 - 0xC: 0x18f88c - 0x10: 0x3619090 - 0x14: 0x0 0x18: 0x0 - 0x1C: 0x359a048 - 0x20: 0x18f928 Information: System: Windows SA-MP: 0.3.7 R2-1 FCNPC: 1.6.1 Functions: FUNC_CPlayerPool__DeletePlayer: 0x466570 FUNC_CPlayer__Kill: 0x484620 FUNC_CPlayer__EnterVehicle: 0x484c70 FUNC_CPlayer__ExitVehicle: 0x484f50 FUNC_CPlayer__SpawnForWorld: 0x486d30 FUNC_GetVehicleModelInfo: 0x488240 FUNC_CConsole__GetIntVariable: 0x48b5b0 FUNC_ClientJoin_RPC: 0x4918f0 Pointers: VAR_ServerAuthentication: 0x4f5fe8 VAR_NetVersion: 0xfd9 Offsets: OFFSET_RemoteSystemManager: 0x33c OFFSET_RemoteSystemSize: 0xcb8 OFFSET_RemoteSystem__ConnectMode: 0xcb0 OFFSET_RemoteSystem__Unknown: 0xcb5 =========================== FCNPC Exception Handler ============================ |
Quote:
8. Почему не исользовать последнюю версию GPS.dat из плагина RouteConnectorPlugin вместо 64 nodes
|
Quote:
9. команда /citizien постоянно выдаёт "Invalid citizien ID" и не перемещают к ИД бота.
|
Quote:
Так же не понятен принцип как просмотреть файл NODES0.DAT или как отредактировать его. Как создать новый?
|
Не понял вопроса, конкретнее.
Quote:
Как выбирается следующий узел к которому надо двигаться боту?
|
Quote:
Лучше использовать последнюю версию GPS.dat из плагина RouteConnectorPlugin, т.к. там и координаты можно исправить или добавить, и принцип движения более понятен.
|
PHP Code:
public GPS_WhenRouteIsCalculated(routeid,node_id_array[],amount_of_nodes,Float:distance,Float:Polygon[],Polygon_Size,Float:NodePosX[],Float:NodePosY[],Float:NodePosZ[])
{
if (amount_of_nodes != 0) {
new move_path = FCNPC_CreateMovePath();
for (new i; i < amount_of_nodes; i++) {
FCNPC_AddPointToPath(move_path, NodePosX[i], NodePosY[i], NodePosZ[i]);
}
FCNPC_GoByMovePath(NPC_TEST_BOT, move_path);
}
return 1;
}
26.03.2017, 14:51
Quote:
FCNPC_PlayNode(npcid, nodeid, .UseMapAndreas = true, .speed = 1.0 + frandom(1.0));
npcid будет двигаться к узлу nodeid используя Z координаты из UseMapAndreas со скоростью 1+frandom(1.0). это всё прекрасно. ТОлько не понятно какой из приложенных узлов где находится. Проще иметь собственный массив координат и заставлять ботов двигаться по ним. |
Quote:
как заставить чтобы бот четко ехал используя транспорт к координатам x,y,z?
|
Обновление положения. Так как физика ботов полностью контролируется сервером, то при установке ускорения позиция бота не обновляется, если этот параметр равен true, то позиция бота будет обновлена сервером.
27.03.2017, 07:40
Не работает ф-ия SetVehicleZAngle когда бот сидит за рулем.
Также не работает ф-ия SetVehicleAngularVelocity когда бот сидит за рулем.
Это можно исправить?
Или как довернуть тачку, когда бот сидит в ней за рулём?
Иначе при использовании ф-ии FCNPC_SetVelocity тачка постоянно едет боком под тем углом который был у неё до момента как бот начал движение.
Также не работает ф-ия SetVehicleAngularVelocity когда бот сидит за рулем.
Это можно исправить?
Или как довернуть тачку, когда бот сидит в ней за рулём?
Иначе при использовании ф-ии FCNPC_SetVelocity тачка постоянно едет боком под тем углом который был у неё до момента как бот начал движение.
02.04.2017, 11:31
Для изменения угла поворота используется FCNPC_SetAngle.
Возможно попробую добавить подобную функцию для ботов в будущем.
Так и должно быть. Для движения ботов вообще лучше использовать FCNPC_GoTo.
Quote:
Также не работает ф-ия SetVehicleAngularVelocity когда бот сидит за рулем.
|
Так и должно быть. Для движения ботов вообще лучше использовать FCNPC_GoTo.
02.04.2017, 11:41
FCNPC v1.7.0
О версии
- Отключен поиск Z координаты через MapAndreas для позиций ниже 0.0
- #36: Добавлена FCNPC_ToggleMapAndreasUsage и FCNPC_IsMapAndreasUsed
- #39: Добавлена функция FCNPC_GetDestinationPoint
- Добавлена функция FCNPC_AddPointsToPath2
- #35: Добавлен параметр Float:dist_offset в функции GoTo[Player]
- #56: Добавлена автовызываемая функция FCNPC_OnChangeHeightPos (отключена по умолчанию, для включения используйте FCNPC_SetMinHeightPosCall)
- samples/bg: NPC теперь имеют бесконечные патроны
Исправления
- Исправлены аргументы npcid и damagedid в автовызываемой функции FCNPC_OnGiveDamage
- #40: Исправлена оружие причины смерти при drive by
- Исправлена система сообщения об ошибках инициализации
- #45: Исправлены перехваченные функции stream
- Исправлена настройка типа движения
- #59: Установка угла после респавна
- #48: Исправлена конечная позиция после передвижения
- samples/missions: вызов FreeCamera после EndMission
- samples/bg: Исправлено кручение NPC при следовании
- samples/bg: Прекращение следования при посадке в транспорт
Новые и изменённые функции
Новые и изменённые автовызываемые функции
Скачать
- Скачать с GitHub: https://github.com/ziggi/FCNPC/releases
О версии
- Отключен поиск Z координаты через MapAndreas для позиций ниже 0.0
- #36: Добавлена FCNPC_ToggleMapAndreasUsage и FCNPC_IsMapAndreasUsed
- #39: Добавлена функция FCNPC_GetDestinationPoint
- Добавлена функция FCNPC_AddPointsToPath2
- #35: Добавлен параметр Float:dist_offset в функции GoTo[Player]
- #56: Добавлена автовызываемая функция FCNPC_OnChangeHeightPos (отключена по умолчанию, для включения используйте FCNPC_SetMinHeightPosCall)
- samples/bg: NPC теперь имеют бесконечные патроны
Исправления
- Исправлены аргументы npcid и damagedid в автовызываемой функции FCNPC_OnGiveDamage
- #40: Исправлена оружие причины смерти при drive by
- Исправлена система сообщения об ошибках инициализации
- #45: Исправлены перехваченные функции stream
- Исправлена настройка типа движения
- #59: Установка угла после респавна
- #48: Исправлена конечная позиция после передвижения
- samples/missions: вызов FreeCamera после EndMission
- samples/bg: Исправлено кручение NPC при следовании
- samples/bg: Прекращение следования при посадке в транспорт
Новые и изменённые функции
PHP Code:
native FCNPC_GoTo(npcid, Float:x, Float:y, Float:z, type = MOVE_TYPE_AUTO, Float:speed = MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true, Float:dist_offset = 0.0);
native FCNPC_GoToPlayer(npcid, playerid, type = MOVE_TYPE_AUTO, Float:speed = MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true, Float:dist_offset = 0.0, Float:dist_check = 1.5);
native FCNPC_GoByMovePath(npcid, pathid, type = MOVE_TYPE_AUTO, Float:speed = MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true, Float:dist_offset = 0.0);
native FCNPC_GetDestinationPoint(npcid, &Float:x, &Float:y, &Float:z);
native FCNPC_AddPointsToPath2(pathid, Float:points_x[], Float:points_y[], Float:points_z[], const size = sizeof(points_x));
native FCNPC_ToggleMapAndreasUsage(npcid, bool:enabled);
native FCNPC_IsMapAndreasUsed(npcid);
native FCNPC_SetMinHeightPosCall(npcid, Float:height);
native Float:FCNPC_GetMinHeightPosCall(npcid);
PHP Code:
forward FCNPC_OnGiveDamage(npcid, damagedid, weaponid, bodypart, Float:health_loss);
forward FCNPC_OnChangeHeightPos(npcid, Float:new_z, Float:old_z); // disabled by default, see FCNPC_SetMinHeightPosCall
- Скачать с GitHub: https://github.com/ziggi/FCNPC/releases
16.04.2017, 15:08
FCNPC v1.7.1
О версии
- Переименована функция GetWeaponClipSize в GetWeaponActualClipSize, добавлена функция GetWeaponClipSize
- Добавлены функции контроля патронов в обойме
- Добавлена функция FCNPC_GetWeaponActualReloadTime
Исправления
- Исправлены шотганы #65 (#66)
- Исправлены перехватываемые автовызываемые функции (#67, #68)
- Добавлена обойма для оружий (#65, #70, #71)
- Исправлены состояния оружия
- Исправлена перезарядка
- Исправлена перезарядка при бесконечных патронах
- Команда NPC по умолчанию теперь NO_TEAM (#69)
- Исправлено время перезарядки шотгана
- Исправлено время перезарядки для двоного WEAPON_SAWEDOFF
Новые и изменённые функции
Скачать
- Скачать с GitHub: https://github.com/ziggi/FCNPC/releases
О версии
- Переименована функция GetWeaponClipSize в GetWeaponActualClipSize, добавлена функция GetWeaponClipSize
- Добавлены функции контроля патронов в обойме
- Добавлена функция FCNPC_GetWeaponActualReloadTime
Исправления
- Исправлены шотганы #65 (#66)
- Исправлены перехватываемые автовызываемые функции (#67, #68)
- Добавлена обойма для оружий (#65, #70, #71)
- Исправлены состояния оружия
- Исправлена перезарядка
- Исправлена перезарядка при бесконечных патронах
- Команда NPC по умолчанию теперь NO_TEAM (#69)
- Исправлено время перезарядки шотгана
- Исправлено время перезарядки для двоного WEAPON_SAWEDOFF
Новые и изменённые функции
PHP Code:
native FCNPC_SetAmmoInClip(npcid, ammo);
native FCNPC_GiveAmmoInClip(npcid, ammo);
native FCNPC_GetAmmoInClip(npcid);
native FCNPC_GetWeaponActualReloadTime(npcid, weaponid);
native FCNPC_GetWeaponActualClipSize(npcid, weaponid);
- Скачать с GitHub: https://github.com/ziggi/FCNPC/releases
16.04.2017, 17:56
А что такое ClipSize? Количество ПТ в обойме?
16.04.2017, 18:21
01.05.2017, 06:23
FCNPC v1.7.2
Исправления
- Исправление SetWeaponClipSize
- Исправление SetWeaponInfo
- Исправление SetWeaponState
- Исправление SetWeaponSkill
- Обнуление патронов в обойме после SetWeapon
- Исправлен бесконечный цикл и мгновенное пополнение патронов при начале стрельбы (#75)
- Исправлен бесконечные патроны и бесконечный цикл
- Исправлена перезарядка для оружия с одним патроном (#77)
- Исправлено время перезарядки двойного оружия
- Исправлена StopAim при перезарядке
- Исправлена GetWeaponActualReloadTime для двойного оружия
- Исправлен массив информации оружия
Скачать
- Скачать с GitHub: https://github.com/ziggi/FCNPC/releases
Исправления
- Исправление SetWeaponClipSize
- Исправление SetWeaponInfo
- Исправление SetWeaponState
- Исправление SetWeaponSkill
- Обнуление патронов в обойме после SetWeapon
- Исправлен бесконечный цикл и мгновенное пополнение патронов при начале стрельбы (#75)
- Исправлен бесконечные патроны и бесконечный цикл
- Исправлена перезарядка для оружия с одним патроном (#77)
- Исправлено время перезарядки двойного оружия
- Исправлена StopAim при перезарядке
- Исправлена GetWeaponActualReloadTime для двойного оружия
- Исправлен массив информации оружия
Скачать
- Скачать с GitHub: https://github.com/ziggi/FCNPC/releases
14.06.2017, 14:06
FCNPC v1.7.3
О версии
- #73: В GoTo функции добавлен параметр stopdelay
Исправления
- #81: Исправлен крэш с нодами
- Исправлена кодировка и окончания строк в скиптах-примерах
- Исправлено подключение FCNPC в скиптах-примерах
- Отключено убийство мёртвых NPC
- GetNumberMovePoint возвращает 0 если путь не валидный
- Добавлен обработчик исключений в CreateMovePath, теперь эта функция возвращает INVALID_MOVEPATH_ID при ошибке
Изменённые функции
О версии
- #73: В GoTo функции добавлен параметр stopdelay
Исправления
- #81: Исправлен крэш с нодами
- Исправлена кодировка и окончания строк в скиптах-примерах
- Исправлено подключение FCNPC в скиптах-примерах
- Отключено убийство мёртвых NPC
- GetNumberMovePoint возвращает 0 если путь не валидный
- Добавлен обработчик исключений в CreateMovePath, теперь эта функция возвращает INVALID_MOVEPATH_ID при ошибке
Изменённые функции
PHP Code:
native FCNPC_GoTo(npcid, Float:x, Float:y, Float:z, type = MOVE_TYPE_AUTO, Float:speed = MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true, Float:dist_offset = 0.0, stopdelay = 250);
native FCNPC_GoToPlayer(npcid, playerid, type = MOVE_TYPE_AUTO, Float:speed = MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true, Float:dist_offset = 0.0, Float:dist_check = 1.5, stopdelay = 250);
25.10.2017, 10:15
Quote:
Не срабатывает функция MeleeAttack() :
PHP Code:
|
25.10.2017, 15:56
Quote:
Ну, естественно оно не срабатывает - ты сразу же, после прицеливания, останавливаешь атаку, анимация просто не успевает сработать. А замена анимации бега на анимацию атаки - это тоже нормально, потому что движком н игры не предусмотрен бег и атака с помощью боевого стиля.
|
PHP Code:
//далее функция рассчитана на плагин FCNPC
for(i = 0; i < MAX_PLAYERS; ++i)
{
//если это игрок - пропускаем
if(IsPlayerNPC(i) && FCNPC_IsSpawned(i) && !FCNPC_IsDead(i))
{
//ищем ближайшего игрока
for(j = 0; j < MAX_PLAYERS; ++j)
{
if(miss_player[j])
continue;
dx = floatsub(fPlayersCoords[i][f_X],fPlayersCoords[j][f_X]);
dy = floatsub(fPlayersCoords[i][f_Y],fPlayersCoords[j][f_Y]);
dz = floatsub(fPlayersCoords[i][f_Z],fPlayersCoords[j][f_Z]);
len = VectorSize(dx,dy,dz);
//если игрок в зоне досягаемости зомби - атака
if(len < 1.2)
{
//наводимся
FCNPC_AimAt(i, fPlayersCoords[j][f_X], fPlayersCoords[j][f_Y], fPlayersCoords[j][f_Z], false);
//атакуем
FCNPC_MeleeAttack(i, 100, true);
break;
}
//если игрок в поле зрения зомби - преследование
if(len < 99.0)
{
//если за игроком уже бегжит 5 или более зомби - ищем другого игрока поблизости
if(k >= MAX_ZOMBIES_ON_PLAYER)
continue;
//если зомби поворачивается в сторону игрока - отбой
if(FCNPC_IsAiming(i))
FCNPC_StopAim(i);
if(FCNPC_IsAttacking(i))
FCNPC_StopAttack(i);
//преследуем
FCNPC_GoTo(i, floatadd(fPlayersCoords[j][f_X],floatdiv(floatmul(0.5,dx),len)), floatadd(fPlayersCoords[j][f_Y],floatdiv(floatmul(0.5,dy),len)), fPlayersCoords[j][f_Z], MOVE_TYPE_RUN, 0.8, true);
break;
}
}
if(j == MAX_PLAYERS)
{
//если в поле зрения зомби никого нету - останавливаем его
if(FCNPC_IsAiming(i))
FCNPC_StopAim(i);
if(FCNPC_IsAttacking(i))
FCNPC_StopAttack(i);
}
}
}
19.11.2017, 19:08
Привет, почему перестал писать список изменений в этой теме?
« Next Oldest | Next Newest »
Users browsing this thread: 4 Guest(s)