Jonathan.P Posted August 21, 2013 Share Posted August 21, 2013 Здравствуйте. Когда время анимации ставишь на нуль, то пед получает возможность бегать и вообще передвигаться с анимацией. Так вот, а если я ставлю параметр loop на false, то в конце анимации у педа "замораживаются" руки, и отмораживаются только когда он прыгнет, сядет в машину и пр. Так вот, как разморозить их в конце анимации без физ. манипуляций? Пробовал таймером обнулить анимку: setPedAnimation(source) - не помогает. Желательно конечно обнулить её в самом конце. UP! Link to comment
H1TM4N Posted August 21, 2013 Share Posted August 21, 2013 Почему когда я делаю attachElements игрока к транспорту, при передвижении транспорта игрок не вертится вместе с транспортом? Link to comment
Elengar Posted August 22, 2013 Share Posted August 22, 2013 Чем отличается использование localPlayer и getLocalPlayer() ? Первое будет более оптимизированее, Верно ? И еще, где невозможно обойтись localPlayer и нужно использовать функцию ? Link to comment
TheNormalnij Posted August 22, 2013 Share Posted August 22, 2013 localPlayer - предопределенная переменная во всех клиентских скриптах. getLocalPlayer() - функция которая возвращает localPlayer. Ее оставили для совместимости со старыми версиями ресурсов, которые были написаны до введения localPlayer. Link to comment
SoliderJah Posted August 22, 2013 Share Posted August 22, 2013 Подскажите пожалуйста, как сделать анимацию мужской ходьбы на мужские педы, на женские - женские анимации? Link to comment
Kenix Posted August 22, 2013 Share Posted August 22, 2013 https://wiki.multitheftauto.com/wiki/SetPedWalkingStyle Link to comment
SoliderJah Posted August 22, 2013 Share Posted August 22, 2013 https://wiki.multitheftauto.com/wiki/SetPedWalkingStyle Нет, это то я знаю. Мне вот нужно чтобы у мужских педов был стиль ходьбы мужской, у женских - женский. Если ставить по функции setpewwalikngstyle -- заменяется на все. Link to comment
Kenix Posted August 22, 2013 Share Posted August 22, 2013 А ты проверяй модель игрока через функцию getElementModel придется правдо создать таблицу со скинами. Link to comment
TheNormalnij Posted August 22, 2013 Share Posted August 22, 2013 В фрироме есть xml со скинами, также там есть ключевые слова к скинам. Можно создать скриптик, который переберет их и возвратит таблицу, где ключ - ид скина, значение - булевое true, что значит мужик. Link to comment
SoliderJah Posted August 22, 2013 Share Posted August 22, 2013 Чёрт, я думаю что это мне не под силу (знаний недостаточно). Может на комьюнити есть ресурс похожий? Link to comment
TheNormalnij Posted August 22, 2013 Share Posted August 22, 2013 maleSkins = { [0] = true; [7] = true; [14] = true; [15] = true; [16] = true; [17] = true; [18] = true; [19] = true; [20] = true; [21] = true; [22] = true; [23] = true; [24] = true; [25] = true; [26] = true; [27] = true; [28] = true; [29] = true; [30] = true; [32] = true; [33] = true; [34] = true; [35] = true; [36] = true; [37] = true; [43] = true; [44] = true; [45] = true; [46] = true; [47] = true; [48] = true; [49] = true; [50] = true; [51] = true; [52] = true; [57] = true; [58] = true; [59] = true; [60] = true; [61] = true; [62] = true; [66] = true; [67] = true; [68] = true; [70] = true; [71] = true; [72] = true; [73] = true; [78] = true; [79] = true; [80] = true; [81] = true; [82] = true; [83] = true; [84] = true; [94] = true; [95] = true; [96] = true; [97] = true; [98] = true; [99] = true; [100] = true; [101] = true; [102] = true; [103] = true; [104] = true; [105] = true; [106] = true; [107] = true; [108] = true; [109] = true; [110] = true; [111] = true; [112] = true; [113] = true; [114] = true; [115] = true; [116] = true; [117] = true; [118] = true; [120] = true; [121] = true; [122] = true; [123] = true; [124] = true; [125] = true; [126] = true; [127] = true; [128] = true; [132] = true; [133] = true; [134] = true; [135] = true; [136] = true; [137] = true; [142] = true; [143] = true; [144] = true; [146] = true; [147] = true; [153] = true; [154] = true; [155] = true; [156] = true; [158] = true; [159] = true; [160] = true; [161] = true; [162] = true; [163] = true; [164] = true; [165] = true; [166] = true; [167] = true; [168] = true; [170] = true; [171] = true; [173] = true; [174] = true; [175] = true; [176] = true; [177] = true; [179] = true; [180] = true; [181] = true; [182] = true; [183] = true; [184] = true; [185] = true; [186] = true; [187] = true; [188] = true; [189] = true; [200] = true; [202] = true; [203] = true; [204] = true; [206] = true; [209] = true; [210] = true; [212] = true; [213] = true; [215] = true; [217] = true; [220] = true; [221] = true; [222] = true; [223] = true; [227] = true; [228] = true; [229] = true; [230] = true; [234] = true; [235] = true; [236] = true; [239] = true; [240] = true; [241] = true; [242] = true; [247] = true; [248] = true; [249] = true; [250] = true; [252] = true; [253] = true; [254] = true; [255] = true; [258] = true; [259] = true; [260] = true; [261] = true; [262] = true; [264] = true; [274] = true; [275] = true; [276] = true; [277] = true; [278] = true; [279] = true; [280] = true; [281] = true; [282] = true; [283] = true; [284] = true; [285] = true; [286] = true; [287] = true; [288] = true; } Link to comment
Kernell Posted August 22, 2013 Share Posted August 22, 2013 enum "eWalkingStyle" { MOVE_PLAYER = 54; MOVE_PLAYER_F = 55; MOVE_PLAYER_M = 56; MOVE_ROCKET = 57; MOVE_ROCKET_F = 58; MOVE_ROCKET_M = 59; MOVE_ARMED = 60; MOVE_ARMED_F = 61; MOVE_ARMED_M = 62; MOVE_BBBAT = 63; MOVE_BBBAT_F = 64; MOVE_BBBAT_M = 65; MOVE_CSAW = 66; MOVE_CSAW_F = 67; MOVE_CSAW_M = 68; MOVE_SNEAK = 69; MOVE_JETPACK = 70; MOVE_MAN = 118; MOVE_SHUFFLE = 119; MOVE_OLDMAN = 120; MOVE_GANG1 = 121; MOVE_GANG2 = 122; MOVE_OLDFATMAN = 123; MOVE_FATMAN = 124; MOVE_JOGGER = 125; MOVE_DRUNKMAN = 126; MOVE_BLINDMAN = 127; MOVE_SWAT = 128; MOVE_WOMAN = 129; MOVE_SHOPPING = 130; MOVE_BUSYWOMAN = 131; MOVE_SEXYWOMAN = 132; MOVE_PRO = 133; MOVE_OLDWOMAN = 134; MOVE_FATWOMAN = 135; MOVE_JOGWOMAN = 136; MOVE_OLDFATWOMAN = 137; MOVE_SKATE = 138; }; local SKIN_WALKING_STYLES = { [0] = MOVE_PLAYER; [1] = MOVE_MAN; [2] = MOVE_MAN; [7] = MOVE_MAN; [9] = MOVE_WOMAN; [10] = MOVE_OLDFATWOMAN; [11] = MOVE_WOMAN; [12] = MOVE_SEXYWOMAN; [13] = MOVE_WOMAN; [14] = MOVE_MAN; [15] = MOVE_MAN; [16] = MOVE_MAN; [17] = MOVE_MAN; [18] = MOVE_MAN; [19] = MOVE_GANG1; [20] = MOVE_MAN; [21] = MOVE_GANG1; [22] = MOVE_GANG2; [23] = MOVE_MAN; [24] = MOVE_MAN; [25] = MOVE_MAN; [26] = MOVE_MAN; [27] = MOVE_MAN; [28] = MOVE_GANG2; [29] = MOVE_MAN; [30] = MOVE_MAN; [31] = MOVE_OLDFATWOMAN; [32] = MOVE_MAN; [33] = MOVE_MAN; [34] = MOVE_MAN; [35] = MOVE_MAN; [36] = MOVE_MAN; [37] = MOVE_MAN; [38] = MOVE_WOMAN; [39] = MOVE_OLDFATWOMAN; [40] = MOVE_SEXYWOMAN; [41] = MOVE_WOMAN; [43] = MOVE_MAN; [44] = MOVE_MAN; [45] = MOVE_MAN; [46] = MOVE_MAN; [47] = MOVE_MAN; [48] = MOVE_MAN; [49] = MOVE_OLDMAN; [50] = MOVE_MAN; [51] = MOVE_MAN; [52] = MOVE_MAN; [53] = MOVE_OLDWOMAN; [54] = MOVE_OLDWOMAN; [55] = MOVE_WOMAN; [56] = MOVE_WOMAN; [57] = MOVE_MAN; [58] = MOVE_MAN; [59] = MOVE_MAN; [60] = MOVE_MAN; [61] = MOVE_MAN; [62] = MOVE_OLDMAN; [63] = MOVE_PRO; [64] = MOVE_PRO; [66] = MOVE_MAN; [67] = MOVE_MAN; [68] = MOVE_MAN; [69] = MOVE_WOMAN; [70] = MOVE_MAN; [71] = MOVE_MAN; [72] = MOVE_MAN; [73] = MOVE_MAN; [75] = MOVE_PRO; [76] = MOVE_SEXYWOMAN; [77] = MOVE_MAN; [78] = MOVE_MAN; [79] = MOVE_MAN; [80] = MOVE_MAN; [81] = MOVE_MAN; [82] = MOVE_MAN; [83] = MOVE_MAN; [84] = MOVE_MAN; [85] = MOVE_PRO; [87] = MOVE_SEXYWOMAN; [88] = MOVE_OLDWOMAN; [89] = MOVE_OLDFATWOMAN; [90] = MOVE_JOGWOMAN; [91] = MOVE_SEXYWOMAN; [92] = MOVE_SKATE; [93] = MOVE_SEXYWOMAN; [94] = MOVE_MAN; [95] = MOVE_MAN; [96] = MOVE_JOGGER; [97] = MOVE_JOGGER; [98] = MOVE_MAN; [99] = MOVE_SKATE; [100] = MOVE_MAN; [101] = MOVE_MAN; [102] = MOVE_GANG1; [103] = MOVE_GANG2; [104] = MOVE_GANG1; [105] = MOVE_GANG2; [106] = MOVE_GANG1; [107] = MOVE_GANG2; [108] = MOVE_GANG1; [109] = MOVE_GANG2; [110] = MOVE_GANG1; [111] = MOVE_MAN; [112] = MOVE_MAN; [113] = MOVE_MAN; [114] = MOVE_GANG1; [115] = MOVE_GANG2; [116] = MOVE_GANG1; [117] = MOVE_MAN; [118] = MOVE_MAN; [120] = MOVE_MAN; [121] = MOVE_GANG1; [122] = MOVE_GANG2; [123] = MOVE_GANG1; [124] = MOVE_GANG1; [125] = MOVE_MAN; [126] = MOVE_MAN; [127] = MOVE_MAN; [128] = MOVE_MAN; [129] = MOVE_OLDWOMAN; [130] = MOVE_OLDWOMAN; [131] = MOVE_SEXYWOMAN; [132] = MOVE_MAN; [133] = MOVE_MAN; [134] = MOVE_OLDMAN; [135] = MOVE_MAN; [136] = MOVE_MAN; [137] = MOVE_MAN; [138] = MOVE_WOMAN; [139] = MOVE_WOMAN; [140] = MOVE_WOMAN; [141] = MOVE_BUSYWOMAN; [142] = MOVE_MAN; [143] = MOVE_GANG1; [144] = MOVE_GANG2; [145] = MOVE_WOMAN; [146] = MOVE_MAN; [147] = MOVE_MAN; [148] = MOVE_BUSYWOMAN; [150] = MOVE_BUSYWOMAN; [151] = MOVE_SEXYWOMAN; [152] = MOVE_PRO; [153] = MOVE_MAN; [154] = MOVE_MAN; [155] = MOVE_MAN; [156] = MOVE_MAN; [157] = MOVE_WOMAN; [158] = MOVE_MAN; [159] = MOVE_MAN; [160] = MOVE_OLDMAN; [161] = MOVE_MAN; [162] = MOVE_OLDMAN; [163] = MOVE_MAN; [164] = MOVE_MAN; [165] = MOVE_MAN; [166] = MOVE_MAN; [167] = MOVE_MAN; [168] = MOVE_MAN; [169] = MOVE_SEXYWOMAN; [170] = MOVE_MAN; [171] = MOVE_MAN; [172] = MOVE_BUSYWOMAN; [173] = MOVE_GANG1; [174] = MOVE_GANG2; [175] = MOVE_GANG1; [176] = MOVE_MAN; [177] = MOVE_MAN; [178] = MOVE_SEXYWOMAN; [179] = MOVE_MAN; [180] = MOVE_MAN; [181] = MOVE_MAN; [182] = MOVE_MAN; [183] = MOVE_MAN; [184] = MOVE_MAN; [185] = MOVE_MAN; [186] = MOVE_MAN; [187] = MOVE_MAN; [188] = MOVE_MAN; [189] = MOVE_MAN; [190] = MOVE_BUSYWOMAN; [191] = MOVE_WOMAN; [192] = MOVE_SEXYWOMAN; [193] = MOVE_SEXYWOMAN; [194] = MOVE_SEXYWOMAN; [195] = MOVE_WOMAN; [196] = MOVE_OLDWOMAN; [197] = MOVE_OLDWOMAN; [198] = MOVE_WOMAN; [199] = MOVE_WOMAN; [200] = MOVE_MAN; [201] = MOVE_WOMAN; [202] = MOVE_MAN; [203] = MOVE_MAN; [204] = MOVE_MAN; [205] = MOVE_WOMAN; [206] = MOVE_MAN; [207] = MOVE_PRO; [209] = MOVE_OLDMAN; [210] = MOVE_OLDMAN; [211] = MOVE_WOMAN; [212] = MOVE_MAN; [213] = MOVE_MAN; [214] = MOVE_WOMAN; [215] = MOVE_WOMAN; [216] = MOVE_WOMAN; [217] = MOVE_MAN; [218] = MOVE_WOMAN; Link to comment
TheNormalnij Posted August 22, 2013 Share Posted August 22, 2013 Прям с исходника, Not Bad. Link to comment
SoliderJah Posted August 22, 2013 Share Posted August 22, 2013 TheNormalnij, Kernell, спасибо ребят! Что бы я без Вас делал! Link to comment
nikitafloy Posted August 24, 2013 Share Posted August 24, 2013 local skinID = { [280] = true, [281] = true, [282] = true, [283] = true, [284] = true, [288] = true, [228] = true, [286] = true } local skinIDrnd = { {280}, {281}, {282}, {283}, {284}, {288}, {228}, {286} } function giveWeapSec ( player, cmd ) if ( isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( player )), aclGetGroup ( "Security" ) ) ) then if skinID [ getElementModel ( player ) ] ~= nil then setPedSkin ( player, skinIDrnd[ math.random ( 1, #skinIDrnd ) ] ) giveWeapon ( player, 31, 300, true ) giveWeapon ( player, 24, 90, true ) setElementHealth ( player, 100 ) setPedArmor ( player, 100 ) else giveWeapon ( player, 31, 300, true ) giveWeapon ( player, 24, 90, true ) setElementHealth ( player, 100 ) setPedArmor ( player, 100 ) end end end addCommandHandler( "gwSec", giveWeapSec ) Не выдается рандомный скин. Наверняка проблема в извлечением элементов таблицы. И как не делать 2 таблицы, а пользоваться одной, в данном случае, подскажите. Спасибо. Link to comment
TheNormalnij Posted August 24, 2013 Share Posted August 24, 2013 1) Используете hasObjectPermissionTo 2) Можно просто if skinID [ getElementModel ( player ) ] then 3) skinIDrnd[ math.random ( 1, #skinIDrnd ) ] возвращает таблицу. Потому что вы так создали таблицу. Этот вариант ее будет рабочим. local skinIDrnd = { 280, 281, 282, 283, 284, 288, 228, 286, } Link to comment
H1TM4N Posted August 25, 2013 Share Posted August 25, 2013 Возможно сделать так, чтобы пули летели через транспорт не повреждая его(насквозь без физического контакта)? Link to comment
Jonathan.P Posted August 25, 2013 Share Posted August 25, 2013 Здрасти. Реализую свою систему неймтэгов над головами педов. На странице вики https://wiki.multitheftauto.com/wiki/GetPedBonePosition приведен пример реализации. Так вот, в том примере нет никаких колшейпов, а цикл просто перебирает всех игроков. Я решил реализовать с колшейпами: в начале рендера запихал создание колшейпа на позиции игрока, а в конце - удаление, после создания уже функцией getElementsWithinColShape брал всех игроков в этом колшейпе и создавал dx'ы (нэймтэги). Как оказалось, не работает(!). Я так и не понял почему, т.к. сам колшейп создается, и это видно если его не удалять в конце, а в консоли прописать "/showcol". (в итоге колшейпы бесконечно размножались) Позже я решил объявить колшейп в начале клиента, а после спавна приаттачить его к игроку и потом брать всех игроков в нем функцией getElementsWithinColShape - сработало. Но меня терзают сомненья: так как экономичнее и быстрее? Может в одном случае нагружается сервер, а в другом - клиент? Или один из способов сам по себе экономичнее и самый грамотный, проверенный годами? Объясните. Link to comment
CocaColaBear Posted August 25, 2013 Share Posted August 25, 2013 Здрасти. Реализую свою систему неймтэгов над головами педов. На странице вики https://wiki.multitheftauto.com/wiki/GetPedBonePosition приведен пример реализации. Так вот, в том примере нет никаких колшейпов, а цикл просто перебирает всех игроков. Я решил реализовать с колшейпами:в начале рендера запихал создание колшейпа на позиции игрока, а в конце - удаление, после создания уже функцией getElementsWithinColShape брал всех игроков в этом колшейпе и создавал dx'ы (нэймтэги). Как оказалось, не работает(!). Я так и не понял почему, т.к. сам колшейп создается, и это видно если его не удалять в конце, а в консоли прописать "/showcol". (в итоге колшейпы бесконечно размножались) Позже я решил объявить колшейп в начале клиента, а после спавна приаттачить его к игроку и потом брать всех игроков в нем функцией getElementsWithinColShape - сработало. Но меня терзают сомненья: так как экономичнее и быстрее? Может в одном случае нагружается сервер, а в другом - клиент? Или один из способов сам по себе экономичнее и самый грамотный, проверенный годами? Объясните. По-моему в использовании колшейп нет нужды. Рендерить неймтаг как показано в примере лучший вариант. Link to comment
Jonathan.P Posted August 25, 2013 Share Posted August 25, 2013 Но ведь это перебор всех игроков на сервере и вычисление расстояния через кв. корни - а это как известно неплохая нагрузка, разве не так? Link to comment
Flaker Posted August 25, 2013 Share Posted August 25, 2013 1) Вариант с колшейпами, при правильной реализации, работает и быстрее и по памяти экономичнее. 2) Вычислять расстояние между точками лучше функцией getDistanceBetweenPoints3D. Она выполняется на более низком уровне и производит расчеты быстрее. Link to comment
Jonathan.P Posted August 25, 2013 Share Posted August 25, 2013 1) Вариант с колшейпами, при правильной реализации, работает и быстрее и по памяти экономичнее.2) Вычислять расстояние между точками лучше функцией getDistanceBetweenPoints3D. Она выполняется на более низком уровне и производит расчеты быстрее. А если учесть то, что колшейпы присоединены к игрокам - это можно назвать правильной реализацией? Link to comment
Kenix Posted August 25, 2013 Share Posted August 25, 2013 Ещё как вариант делать выборку элементов в стриме через функцию getElementsByType. Третий аргумент streamedIn на true. И ещё как вариант сделать эту таблицу локальной и не вызывать эту функцию каждый раз при выборке. Это сэкономит 1-10мс в зависимости от размера таблицы. Link to comment
H1TM4N Posted August 25, 2013 Share Posted August 25, 2013 Как вычислить попадание из оружия по транспорту? Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now