Как добавить выпадение вещей ?
|
|
KinD | Дата: Вторник, 01.01.2013, 23:35 | Сообщение # 1 |
- Сообщения: 1148
- Награды: 22
- Замечания:
|
Заходим в constants.inl Добавляем: Код new dropitem1[33] new dropitem2[33] new dropitem3[33]
Идем в events.inl Ищем: on_Death( iVictim, iAttacker, iWeaponID, iHeadshot )
Добавляем в самый низ Код if(g_iShopMenuItems[iVictim][ITEM_SLOT_ONE] !=-1 || g_iShopMenuItems[iVictim][ITEM_SLOT_TWO]!=-1 || g_iShopMenuItems[iVictim][ITEM_SLOT_THREE]!=-1) { test_create(iVictim) }
Далее идем в war3ft.inl Добавляем: Код public test_create(id) {
new Float:g_origin[3] new Float:velocity[3] new Float:MinBox[3] new Float:MaxBox[3] new Float:color[3] MinBox[0] = -2.0 MinBox[1] = -2.0 MinBox[2] = -2.0 MaxBox[0] = 2.0 MaxBox[1] = 2.0 MaxBox[2] = 2.0 dropitem1[id] = g_iShopMenuItems[id][ITEM_SLOT_ONE] dropitem2[id] = g_iShopMenuItems[id][ITEM_SLOT_TWO] dropitem3[id] = g_iShopMenuItems[id][ITEM_SLOT_THREE] color[0] = 255.0 ; color[1] = 255.0 ; color[2] = 255.0; new NewItem NewItem = create_entity("info_target") entity_set_int(NewItem, EV_INT_renderfx, kRenderFxGlowShell) entity_set_float(NewItem, EV_FL_renderamt, 150.0) entity_set_int(NewItem, EV_INT_rendermode, kRenderTransAlpha) entity_set_vector(NewItem, EV_VEC_rendercolor,color) entity_set_string(NewItem, EV_SZ_classname, "test_item") entity_set_model(NewItem, "models/dropitem.mdl") entity_set_vector(NewItem, EV_VEC_mins, MinBox) entity_set_vector(NewItem, EV_VEC_maxs, MaxBox) entity_get_vector(id, EV_VEC_origin, g_origin) entity_set_origin(NewItem, g_origin) entity_set_int(NewItem, EV_INT_effects, 32) entity_set_int(NewItem, EV_INT_solid, 1) entity_set_int(NewItem, EV_INT_movetype, 6) entity_set_edict(NewItem, EV_ENT_owner, id) VelocityByAim(id, 400 , velocity) entity_set_vector(NewItem, EV_VEC_velocity, velocity) }
Далее,используем форвард Pfn_touch(если нет,то добавляем) Код public pfn_touch(ptr, ptd) { if (!ptr || !is_user_connected(ptd)) return; new itemClassName[33], playerClassname[33] entity_get_string(ptr, EV_SZ_classname, itemClassName,32); entity_get_string(ptd, EV_SZ_classname, playerClassname, 32) if(equal(itemClassName,"test_item") && equal(playerClassname,"player")) { new id = ptd new owner = entity_get_edict(ptr,EV_ENT_owner) if (g_iShopMenuItems[id][ITEM_SLOT_ONE] !=ITEM_NONE && g_iShopMenuItems[id][ITEM_SLOT_TWO] !=ITEM_NONE && g_iShopMenuItems[id][ITEM_SLOT_THREE] !=ITEM_NONE) { client_print(ptd,print_chat,"MAX SLOT") remove_entity(ptr) } else if(g_iShopMenuItems[id][ITEM_SLOT_ONE] ==ITEM_NONE && g_iShopMenuItems[id][ITEM_SLOT_TWO] ==ITEM_NONE && g_iShopMenuItems[id][ITEM_SLOT_THREE] ==ITEM_NONE) { if(dropitem1[owner] > -1) { ITEM_GiveItem(ptd,dropitem1[owner]); } if( dropitem2[owner] > -1) { ITEM_GiveItem(ptd,dropitem2[owner]); } if( dropitem3[owner] > -1) { ITEM_GiveItem(ptd,dropitem3[owner]); } remove_entity(ptr) } else if(g_iShopMenuItems[id][ITEM_SLOT_ONE] !=ITEM_NONE || g_iShopMenuItems[id][ITEM_SLOT_TWO] !=ITEM_NONE || g_iShopMenuItems[id][ITEM_SLOT_THREE] !=ITEM_NONE) { if(dropitem1[owner] > -1) { ITEM_GiveItem(ptd,dropitem1[owner]); } if( dropitem2[owner] > -1) { ITEM_GiveItem(ptd,dropitem2[owner]); } remove_entity(ptr) } } return; }
Далее идем в events.inl(снова) Ищем:public EVENT_NewRound() Ниже добавляем Код new del_items = 0 do { del_items = find_ent_by_class(del_items,"test_item") if(del_items > 0) remove_entity(del_items) } while(del_items) Далее добавляем в WC3_precache(war3ft.inl) Код precache_model( "models/dropitem.mdl" );
P.S Можно использовать register_touch,вместо Pfn_touch,но это уже другая история... P.S.S Выпадение для 3 предметов,если у вас только 2,то удаляйте g_iShopMenuItems[id][ITEM_SLOT_THREE].
Skype:daywerok
|
|
| |
Contra63 | Дата: Среда, 02.01.2013, 00:58 | Сообщение # 2 |
- Сообщения: 830
- Награды: 7
- Замечания:
|
KinD, все работает. Проверено. Но не забудьте править под себя.
Если вы понимает о чем я ;)
Сообщение отредактировал Contra63 - Среда, 02.01.2013, 01:00 |
|
| |
Тёма | Дата: Среда, 02.01.2013, 02:06 | Сообщение # 3 |
- Сообщения: 65
- Награды: 0
- Замечания:
|
а где dropitem.mdl ? или он не нужен?
|
|
| |
Podarok | Дата: Среда, 02.01.2013, 02:50 | Сообщение # 4 |
- Сообщения: 16
- Награды: 1
- Замечания:
|
Это всё конечно классно, молодец, Kind, но зачем это надо в паблик выкладывать?
|
|
| |
KinD | Дата: Среда, 02.01.2013, 12:03 | Сообщение # 5 |
- Сообщения: 1148
- Награды: 22
- Замечания:
|
Podarok, Несколько тем ниже ты увидишь ответ...
Skype:daywerok
|
|
| |
LBR-810 | Дата: Среда, 02.01.2013, 12:05 | Сообщение # 6 |
- Сообщения: 62
- Награды: 2
- Замечания:
|
Тёма, для этого ты сам должен где-нить найти файл,который подойдет тебе для выпадения и назвать его dropitem.mdl
Встраиваю расы, shopmenu в war3ft, пишу плагины, могу работать с DeathRun Писать только в лс
Сообщение отредактировал LBR-810 - Среда, 02.01.2013, 12:06 |
|
| |
gesha999 | Дата: Среда, 02.01.2013, 13:46 | Сообщение # 7 |
- Сообщения: 20
- Награды: 0
- Замечания:
|
//// cssbWar3ftMod.sma // war3ft/war3ft.inl(68) : error 001: expected token: ";", but found ")" // war3ft/war3ft.inl(68) : error 029: invalid expression, assumed zero // war3ft/war3ft.inl(68) : warning 215: expression has no effect // war3ft/war3ft.inl(1878) : error 008: must be a constant expression; assumed ero // war3ft/war3ft.inl(1879) : warning 204: symbol is assigned a value that is ne er used: "owner" // war3ft/war3ft.inl(1880) : error 017: undefined symbol "id" // war3ft/war3ft.inl(1883) : error 029: invalid expression, assumed zero // war3ft/war3ft.inl(1883) : error 017: undefined symbol "owner" // war3ft/war3ft.inl(1883 -- 1885) : error 001: expected token: "}", but found ;" // war3ft/war3ft.inl(1883 -- 1885) : fatal error 107: too many error messages o one line // // Compilation aborted. // 8 Errors. // Could not locate output file compiled\cssbWar3ftMod.amx (compile failed). // // Compilation Time: 6,16 secДобавлено (02.01.2013, 13:46) --------------------------------------------- что не так аааааа
|
|
| |
Podarok | Дата: Среда, 02.01.2013, 14:36 | Сообщение # 8 |
- Сообщения: 16
- Награды: 1
- Замечания:
|
Ппц, вот это меня просто сносит наповал, выложили им приватные коды, к тому же пошагово обьяснили что да как делать... А они не могут сделать ...
|
|
| |
Rafi_kus | Дата: Среда, 02.01.2013, 14:49 | Сообщение # 9 |
- Сообщения: 19
- Награды: 0
- Замечания:
|
gesha999,Это компилировать надо через исходник скрипта CSSB
|
|
| |
gesha999 | Дата: Среда, 02.01.2013, 14:53 | Сообщение # 10 |
- Сообщения: 20
- Награды: 0
- Замечания:
|
я компелирую вот такие вот ошибки вот кто себе его ставил отпешитесь C Новм годом !!
|
|
| |
Contra63 | Дата: Среда, 02.01.2013, 14:59 | Сообщение # 11 |
- Сообщения: 830
- Награды: 7
- Замечания:
|
gesha999, ну я ставил
|
|
| |
Podarok | Дата: Среда, 02.01.2013, 15:28 | Сообщение # 12 |
- Сообщения: 16
- Награды: 1
- Замечания:
|
GESHA999, дак нужно полностью удалить всё содержимое файла war3ft.inl и закинуть туда коды КайнДа. Должно сработать, поробуй и отпишись, я так делал , всё отлично работает.
|
|
| |
kica | Дата: Среда, 02.01.2013, 16:59 | Сообщение # 13 |
- Сообщения: 216
- Награды: 3
- Замечания:
|
KinD, спасибб
|
|
| |
gesha999 | Дата: Среда, 02.01.2013, 20:46 | Сообщение # 14 |
- Сообщения: 20
- Награды: 0
- Замечания:
|
Блин пацаны кто нибудь помогите ааааааааа напишите в скайп я свои исходники дам сделаете там на 10 мин работы пожалуйста !!! artem_94001Добавлено (02.01.2013, 20:46) --------------------------------------------- почти разобрался вот это точно не могу решить не как уже всё облазил eror 008 И eror 033
//// cssbWar3ftMod.sma // war3ft/events.inl(182) : error 008: must be a constant expression; assumed ze ro // war3ft/events.inl(184) : error 033: array must be indexed (variable "-unknown -") // // 2 Errors. // Could not locate output file compiled\cssbWar3ftMod.amx (compile failed). // // Compilation Time: 8,84 sec
|
|
| |
TWENchik | Дата: Среда, 02.01.2013, 21:09 | Сообщение # 15 |
- Сообщения: 172
- Награды: 2
- Замечания:
|
gesha999, открываешь events.inl и в нём 182 и 184 строчка и смотришь че не так
|
|
| |
kica | Дата: Среда, 02.01.2013, 21:20 | Сообщение # 16 |
- Сообщения: 216
- Награды: 3
- Замечания:
|
KinD, а если на сервере 2 слота для покупки а в выпадении задано 3 то что то изменится?
|
|
| |
gesha999 | Дата: Среда, 02.01.2013, 23:12 | Сообщение # 17 |
- Сообщения: 20
- Награды: 0
- Замечания:
|
в том то идело там строка которую я не трогал а вторая просто скобка
|
|
| |
Contra63 | Дата: Четверг, 03.01.2013, 00:54 | Сообщение # 18 |
- Сообщения: 830
- Награды: 7
- Замечания:
|
kica, убрать
1.
2.
Код || g_iShopMenuItems[iVictim][ITEM_SLOT_THREE]!=-1
3.
Код dropitem3[id] = g_iShopMenuItems[id][ITEM_SLOT_THREE]
4.
Код if( dropitem3[owner] > -1) { ITEM_GiveItem(ptd,dropitem3[owner]); }
P.S.S Выпадение для 3 предметов,если у вас только 2,то удаляйте g_iShopMenuItems[id][ITEM_SLOT_THREE]. для кого ?
|
|
| |
Podarok | Дата: Четверг, 03.01.2013, 01:31 | Сообщение # 19 |
- Сообщения: 16
- Награды: 1
- Замечания:
|
gesha999, я повторюсь, нудно удалить вар3фт.инл и запихать туда коды кайнда
|
|
| |
TWENchik | Дата: Четверг, 03.01.2013, 02:42 | Сообщение # 20 |
- Сообщения: 172
- Награды: 2
- Замечания:
|
Цитата (KinD) Далее,используем форвард Pfn_touch(если нет,то добавляем) вот с этим вообще никак разобраться не могу
Сообщение отредактировал TWENchik - Четверг, 03.01.2013, 02:51 |
|
| |