Вход

Просмотр полной версии : [Вопрос] Создание пикапа после смерти



Desulaid
10.06.2015, 13:38
Почему не создается объект?


stock CreateGunPickup(playerid)
{
// ..
CreateObject(object_gun, pickup[pos_x]+2, pickup[pos_y], pickup[pos_z], 93.7, 120.0, random(360));
return true;
}

public OnPlayerDeath(playerid, killerid, reason)
{
CreateGunPickup(playerid);
return 1;
}

Niko_Grey
10.06.2015, 15:34
1. Не проще ли использовать Пикап, вместо объекта?
2. pos_x, pos_y, pos_z как определяете?

Desulaid
10.06.2015, 15:57
1. Не проще ли использовать Пикап, вместо объекта?
2. pos_x, pos_y, pos_z как определяете?

получаю положение игрока

Пельмень
10.06.2015, 16:13
получаю положение игрока

Если не ошибаюсь, модельки оружия начинаются с 331, т.е object_gun = 331 + GetPlayerWeapon(playerid); Однако цветы, фалосы и прочие конфеты имеют ID, начиная с 321, поэтому лучше составить массив, в котором хранить { weapon_id, model_id } (http://wiki.sa-mp.com/wiki/Weapons)
P.S Может удачно ванганул..

#ball
10.06.2015, 16:18
.......

Desulaid
10.06.2015, 17:25
Если не ошибаюсь, модельки оружия начинаются с 331, т.е object_gun = 331 + GetPlayerWeapon(playerid); Однако цветы, фалосы и прочие конфеты имеют ID, начиная с 321, поэтому лучше составить массив, в котором хранить { weapon_id, model_id } (http://wiki.sa-mp.com/wiki/Weapons)
P.S Может удачно ванганул..

Я по другому сделал :)



new object_gun = GetPlayerWeapon(playerid);
switch(object_gun)
{
case 1: object_gun = 331;
case 2: object_gun = 333;
case 3: object_gun = 334;
case 4: object_gun = 335;
case 5: object_gun = 336;
case 6: object_gun = 337;
case 7: object_gun = 338;
case 8: object_gun = 339;
case 9: object_gun = 341;
case 10:object_gun = 321;
case 11:object_gun = 322;
case 12:object_gun = 323;
case 13:object_gun = 324;
case 14:object_gun = 325;
case 15:object_gun = 326;
case 16:object_gun = 342;
case 17:object_gun = 343;
case 18:object_gun = 344;
case 19:object_gun = 345;
case 20:object_gun = 354;
case 21:object_gun = 370;
case 22:object_gun = 346;
case 23:object_gun = 347;
case 24:object_gun = 348;
case 25:object_gun = 349;
case 26:object_gun = 350;
case 27:object_gun = 351;
case 28:object_gun = 352;
case 29:object_gun = 353;
case 30:object_gun = 355;
case 31:object_gun = 356;
case 32:object_gun = 372;
case 33:object_gun = 357;
case 34:object_gun = 358;
case 35:object_gun = 359;
case 36:object_gun = 360;
case 37:object_gun = 361;
case 38:object_gun = 362;
case 39:object_gun = 363;
case 40:object_gun = 364;
case 41:object_gun = 365;
case 42:object_gun = 366;
case 43:object_gun = 367;
case 44:object_gun = 368;
case 45:object_gun = 369;
}


- - - Добавлено - - -

Тут еще вопросик. Если держать все такие пикапы на одной переменной, то когда один пикап удалю, то удалятся все. Какие у вас варианты ? :D

Пельмень
10.06.2015, 18:18
Я по другому сделал :)



new object_gun = GetPlayerWeapon(playerid);
switch(object_gun)
{
case 1: object_gun = 331;
case 2: object_gun = 333;
case 3: object_gun = 334;
case 4: object_gun = 335;
case 5: object_gun = 336;
case 6: object_gun = 337;
case 7: object_gun = 338;
case 8: object_gun = 339;
case 9: object_gun = 341;
case 10:object_gun = 321;
case 11:object_gun = 322;
case 12:object_gun = 323;
case 13:object_gun = 324;
case 14:object_gun = 325;
case 15:object_gun = 326;
case 16:object_gun = 342;
case 17:object_gun = 343;
case 18:object_gun = 344;
case 19:object_gun = 345;
case 20:object_gun = 354;
case 21:object_gun = 370;
case 22:object_gun = 346;
case 23:object_gun = 347;
case 24:object_gun = 348;
case 25:object_gun = 349;
case 26:object_gun = 350;
case 27:object_gun = 351;
case 28:object_gun = 352;
case 29:object_gun = 353;
case 30:object_gun = 355;
case 31:object_gun = 356;
case 32:object_gun = 372;
case 33:object_gun = 357;
case 34:object_gun = 358;
case 35:object_gun = 359;
case 36:object_gun = 360;
case 37:object_gun = 361;
case 38:object_gun = 362;
case 39:object_gun = 363;
case 40:object_gun = 364;
case 41:object_gun = 365;
case 42:object_gun = 366;
case 43:object_gun = 367;
case 44:object_gun = 368;
case 45:object_gun = 369;
}


- - - Добавлено - - -

Тут еще вопросик. Если держать все такие пикапы на одной переменной, то когда один пикап удалю, то удалятся все. Какие у вас варианты ? :D

new pickup[MAX_PLAYERS] ?

Daniel_Cortez
10.06.2015, 18:46
Тут еще вопросик. Если держать все такие пикапы на одной переменной, то когда один пикап удалю, то удалятся все. Какие у вас варианты ? :D
Сохранять пикапы в массиве, очевидно же.

P.S.: Гораздо лучше было бы создать массив из ID объектов для каждого оружия. Да, массивы занимают место в памяти, но и код не берётся из ниоткуда, он тоже занимает место в ОЗУ. Код получения значений из массива будет состоять всего из 3-4 опкодов AMX. В случае же со switch получившийся код займёт куда больше места, чем вместе взятые данные и код из варианта с массивами. Да и работать такой код будет медленнее.

Desulaid
10.06.2015, 19:14
Сейчас все переделаю :)