Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Как добавить выпадение вещей ?
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, все работает. Проверено. Но не забудьте править под себя. wink

Если вы понимает о чем я wink ;)




Сообщение отредактировал 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.

Код
new dropitem3[33]


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(если нет,то добавляем)

вот с этим вообще никак разобраться не могу sad


Сообщение отредактировал TWENchik - Четверг, 03.01.2013, 02:51
 
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: