Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Форум Perfect Soft » Моды и AMX Скриптинг CS 1.6 » CSSB War3FT MOD » Получение ID предмета через native
Получение ID предмета через native
SMaster
Дата: Воскресенье, 06.01.2013, 14:58 | Сообщение # 1
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
Шаг 1.
В cssbWar3ftMod.sma подключаем файлы
Код
#include "war3ft/natives.h"
#include "war3ft/natives.inl"


Шаг 2.
В cssbWar3ftMod.sma находим public plugin_natives() добавляем
Код
register_native("cssb_getIdItemUserSlot", "native_getIdItemUserSlot", 1);


Шаг 3.
В natives.h добавляем код:
Код
// Считывание ID предмета
native cssb_getIdItemUserSlot(idUser,iSlot);


Шаг 4.
В natives.inl добавляем код:
Код
// Считывание ID предмета
public native_getIdItemUserSlot(idUser,iSlot)
{
  new iCurrenItem = ITEM_NONE;

  if(ITEM_Has( idUser, ITEM_ANKH ) == iSlot && ITEM_HasItem( idUser, ITEM_ANKH ) == ITEM_ANKH )
   iCurrenItem = ITEM_ANKH;
  if(ITEM_Has( idUser, ITEM_BOOTS ) == iSlot && ITEM_HasItem( idUser, ITEM_BOOTS ) == ITEM_BOOTS )
   iCurrenItem = ITEM_BOOTS;
  if(ITEM_Has( idUser, ITEM_CLAWS ) == iSlot && ITEM_HasItem( idUser, ITEM_CLAWS ) == ITEM_CLAWS )
   iCurrenItem = ITEM_CLAWS;
  if(ITEM_Has( idUser, ITEM_CLOAK ) == iSlot && ITEM_HasItem( idUser, ITEM_CLOAK ) == ITEM_CLOAK )
   iCurrenItem = ITEM_CLOAK;
  if(ITEM_Has( idUser, ITEM_MASK ) == iSlot && ITEM_HasItem( idUser, ITEM_MASK ) == ITEM_MASK )
   iCurrenItem = ITEM_MASK;
  if(ITEM_Has( idUser, ITEM_NECKLACE ) == iSlot &&  
ITEM_HasItem( idUser, ITEM_NECKLACE ) == ITEM_NECKLACE )
   iCurrenItem = ITEM_NECKLACE;
  if(ITEM_Has( idUser, ITEM_FROST ) == iSlot && ITEM_HasItem( idUser, ITEM_FROST ) == ITEM_FROST )
   iCurrenItem = ITEM_FROST;
  if(ITEM_Has( idUser, ITEM_HEALTH ) == iSlot && ITEM_HasItem( idUser, ITEM_HEALTH ) == ITEM_HEALTH )
   iCurrenItem = ITEM_HEALTH;
  if(ITEM_Has( idUser, ITEM_SCROLL ) == iSlot && ITEM_HasItem( idUser, ITEM_SCROLL ) == ITEM_SCROLL )
   iCurrenItem = ITEM_SCROLL;
  if(ITEM_Has( idUser, ITEM_PROTECTANT ) == iSlot &&  
ITEM_HasItem( idUser, ITEM_PROTECTANT ) == ITEM_PROTECTANT )
   iCurrenItem = ITEM_PROTECTANT;
  if(ITEM_Has( idUser, ITEM_HELM ) == iSlot && ITEM_HasItem( idUser, ITEM_HELM ) == ITEM_HELM )
   iCurrenItem = ITEM_HELM;
  if(ITEM_Has( idUser, ITEM_AMULET ) == iSlot && ITEM_HasItem( idUser, ITEM_AMULET ) == ITEM_AMULET )
   iCurrenItem = ITEM_AMULET;
  if(ITEM_Has( idUser, ITEM_SOCK ) == iSlot && ITEM_HasItem( idUser, ITEM_SOCK ) == ITEM_SOCK )
   iCurrenItem = ITEM_SOCK;
  if(ITEM_Has( idUser, ITEM_GLOVES ) == iSlot && ITEM_HasItem( idUser, ITEM_GLOVES ) == ITEM_GLOVES )
   iCurrenItem = ITEM_GLOVES;
  if(ITEM_Has( idUser, ITEM_RING ) == iSlot && ITEM_HasItem( idUser, ITEM_RING ) == ITEM_RING )
   iCurrenItem = ITEM_RING;
  if(ITEM_Has( idUser, ITEM_CHAMELEON ) == iSlot &&  
ITEM_HasItem( idUser, ITEM_CHAMELEON ) == ITEM_CHAMELEON )
   iCurrenItem = ITEM_CHAMELEON;
  if(ITEM_Has( idUser, ITEM_MOLE ) == iSlot && ITEM_HasItem( idUser, ITEM_MOLE ) == ITEM_MOLE )
   iCurrenItem = ITEM_MOLE;
   
  return iCurrenItem;
}


Шаг 5.
Если нет функции ITEM_HasItem, добавьте код ниже в файл items.inl
Код
stock ITEM_HasItem( idUser, iItem )
{
  if ( g_iShopMenuItems[idUser][ITEM_SLOT_ONE] == iItem )
   return iItem;

  else if ( g_iShopMenuItems[idUser][ITEM_SLOT_TWO] == iItem )
   return iItem;

  return ITEM_NONE;
}


Пример использования:
Код
#include <amxmodx>
#include "war3ft/natives.h"

#define PLUGIN "CSSB Get Items"
#define VERSION "1.0"
#define AUTHOR "CSSB"

#define ITEM_SLOT_ONE       0
#define ITEM_SLOT_TWO       1

public plugin_init()
{
  register_plugin(PLUGIN, VERSION, AUTHOR);

  register_clcmd("cssb_useritems", "cmdIemsWar3ft");
}

public cmdIemsWar3ft(idUser)
{
  //Вывод ID в чат
  new iIdItemSlot1;
  new iIdItemSlot2;
   
  iIdItemSlot1 = cssb_getIdItemUserSlot(idUser,ITEM_SLOT_ONE);
  iIdItemSlot2 = cssb_getIdItemUserSlot(idUser,ITEM_SLOT_TWO);
   
  client_print(idUser,print_chat,"Item1 ID: %d | Item2 ID: %d",iIdItemSlot1,iIdItemSlot2);
}


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
KinD
Дата: Воскресенье, 06.01.2013, 16:02 | Сообщение # 2
офлайн

  • Сообщения: 1148
  • Награды: 22
  • Замечания:
 
ID предмета:
Код
stock user_items_id(id,NumSlot)
{
   return g_iShopMenuItems[id][NumSlot];
}

Облегченный вариант.


Skype:daywerok

Сообщение отредактировал KinD - Воскресенье, 06.01.2013, 16:02
 
Форум Perfect Soft » Моды и AMX Скриптинг CS 1.6 » CSSB War3FT MOD » Получение ID предмета через native
  • Страница 1 из 1
  • 1
Поиск: