PDA

Просмотр полной версии : Kye & uNi: интервью в августе 2008. Часть 2. Grand Larceny.



TheMallard
23.03.2016, 11:05
оригинал: Август 2008, uNi
перевод: Март 2016, TheMallard

Первая часть - http://pro-pawn.ru/showthread.php?13679

uNi: SA-MP позволяет создавать собственные игровые режимы, многие из которых стали популярными за последнее время.
Они оправдали ваши ожидания или нет?

kye: Во время разработки SA-MP 0.1, TDM-режимы с разными целями, как Rivershell, были самыми популярными
и интересными. К сожалению, мы поняли, что очень трудно поддерживать игровой процесс. Многие люди не понимали
целей игрового режима и это привело к многочисленным нарушениям правил. Мы поняли, что большинству по душе freeroam.
Я немного играл на SFTDM и LVDM, которые были freeroam-deathmatch серверами. Не могу сказать что это было интересно.
Изначальная идея LVDM заключалась в том, чтобы найти самого богатого игрока и убить его, забрав деньги. Это быстро надоело всем.

Есть два сервера, которые мне очень нравятся: The Godfather и CrazyBob's CnR.

The Godfather был когда-то самым популярным серверов SA-MP. Постепенно, он отходил от концепции Roleplay и подходил к концепции RPG.
Множество истинных ролевиков не любили, когда сервер контролирует так много игровых элементов. Наверное это решение было не самым
лучшим для The Godfather, однако оно значительно продвинуло SA-MP. Такой сервер привлекал намного большую аудиторию. По моему мнению,
играть на RP/RPG серверах очень весело, так как тебе всегда есть чем заняться, если ты не хочешь общаться с игроками. Я играл
там несколько месяцев. Несколько усовершенствований, которые появились в 0.2.2, появились в результате игры на The Godfather.

uNi: Roleplay сервера стали очень популярными в последнее время. Хотите ли вы добавить что-нибудь нового? Например новый
функционал, который позволит реализовать что-нибудь, что было невозможно в прошлых версиях.

kye: Это как-раз таки то, что мы пытаемся сделать в 0.2.5. Мы хотим предоставить вам базовый
игровой режим (прим. - Grand Larceny) для RPG серверов, у которого есть динамическая система
имущества (прим. - gl_property), множество расставленных по всей карте транспортных средств
(прим. - LoadStaticVehiclesFromFile) и пример использования SQLite (прим. - так и не реализован).

uNi: Уже существует несколько игровых режимов, такие как Godfather, Moderntopia и т.д. с огромным
количеством систем, которые разработчики могут использовать на своих серверах. Что привлечет их к этому режиму?

kye: Мы активно общаемся с разработчиками серверов. Мы помогаем им своими знаниями о функциях SA-MP
и что происходит внутри, когда они используются. Динамическая система имущества, которая есть в нашем режиме,
одна из самых лучших, которую я когда-либо видел (прим. - во времена Godfather, дома добавлялись вручную).
Создать имущество очень легко, достаточно встать на то место, где должен располагаться вход, ввести команду
и указать интерьер. Присвоение виртуального мира, создание пикапов и остальное производится автоматически.

ziggi
23.03.2016, 13:22
пример использования SQLite (прим. - так и не реализован).

Чем gl_property не пример?


Moderntopia

Ох, помню его ещё Inferno на русский переводил. В то время моды на MySQL были редкостью.

TheMallard
23.03.2016, 14:45
gl_property работает на файлах.

ziggi
23.03.2016, 15:01
gl_property работает на файлах.

И правда, просто заметил там эти функции, а оказалось, что они нигде не используются:

stock Float:dbGetPropertyEntrance( database[], uniqId, &Float:x, &Float:y, &Float:z ){
new
DB:prop,
DBResult:query_result,
query[128],
num;

prop = db_open( database );
format( query, 128,"SELECT entX, entY, enZ, entA FROM properties WHERE id = %d LIMIT 1", uniqId );

query_result = db_query( prop, query );
num = db_num_rows(query_result);
if(!num) return -1.0;

else {
db_get_field_assoc( query_result, "entX", query, 128 );
x = floatstr( query );
db_get_field_assoc( query_result, "entY", query, 128 );
y = floatstr( query );
db_get_field_assoc( query_result, "entZ", query, 128 );
z = floatstr( query );
db_get_field_assoc( query_result, "entA", query, 128 );
return floatstr( query );
}
}


stock dbLoadProperties( database[] )
{
new
DB:prop,
DBResult:query_result,
query[128],
num,
i;

prop = db_open( database );
format( query, 128,"SELECT * FROM properties", uniqId );

query_result = db_query( prop, query );
num = db_num_rows(query_result);
if(!num) return 0;
else {
while( i < num ){
db_get_field_assoc( query_result, "entX", query, 128 );
x = floatstr( query );
db_get_field_assoc( query_result, "entX", query, 128 );
x = floatstr( query );
db_get_field_assoc( query_result, "entY", query, 128 );
y = floatstr( query );
db_get_field_assoc( query_result, "entZ", query, 128 );
z = floatstr( query );
db_get_field_assoc( query_result, "entA", query, 128 );
i++;
}
}

}