Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Помогите (=
Помогите (=
pro-health Дата: Вторник, 04.11.2014, 12:14:05 | Сообщение # 1
Сообщений: 188
Репутация: 5 [ +/- ]
Подскажите.
Усть файл такого старения:


Нужно вывести красные строчки в меню.

А зелёные в


Сообщение отредактировал pro-health - Вторник, 04.11.2014, 12:23:35
 
BarD Дата: Вторник, 04.11.2014, 12:35:14 | Сообщение # 2
Сообщений: 943
Репутация: 137 [ +/- ]
А смысл? Если ты путь к модели пропишешь, ничего не создастся. Энтити такого нет.
 
pro-health Дата: Вторник, 04.11.2014, 12:36:36 | Сообщение # 3
Сообщений: 188
Репутация: 5 [ +/- ]
BarD, а как правильно сделать тогда?
 
BarD Дата: Вторник, 04.11.2014, 13:00:29 | Сообщение # 4
Сообщений: 943
Репутация: 137 [ +/- ]
Это с меню:

Код
new Handle:KV = CreateKeyValues("Models");

if (FileToKeyValues(KV, "Путь к файлу") && KvGotoFirstSubKey(KV))
{
   decl String:Key[35], String:info[4];
   new x = 0;
   new Handle:menu = CreateMenu(Menu_Select);
    SetMenuTitle("Предметы:");
   while (KvGotoNextKey(KV))
   {  
      if (KvGetSectionName(KV, Key, 35))  
              {  
                 IntToString(x, info, sizeof(info));
                  AddMenuItem(menu, info, Key);
                 x++;
              }
   }
   SetMenuExitButton(menu, true);
    DisplayMenu(menu, client, 0);
}


А это с энтити:

Код

new prop_max;
new prop_ind[101];

new Handle:KV = CreateKeyValues("Models");
decl String:models[101][100];
if (FileToKeyValues(KV, "Путь к файлу") && KvGotoFirstSubKey(KV))
{
  new x=0;
   while (KvGotoNextKey(KV))
   {  
      KvGetString(KV, "file", models[x], 100);
     x++
   }
   prop_max = x;
}

stock CreateProp(const String:model[], Float:wS_Pos[3])
{
   new index = CreateEntityByName("prop_physics");  
if (index < 1)  
{  
LogError("Ошибка при создании");  
return;  
}  
SetEntityModel(index, model);
DispatchKeyValueVector(index, "origin", wS_Pos);  
DispatchKeyValue(index, "spawnflags", "1");  
DispatchSpawn(index);
return index;
}

// И там, где хочешь создать ентити
for (new i=0;i<=prop_max;i++)
{
prop_ind[i] = CreateProp(models[i], pos);
}

// И у тебя в переменной prop_ind лежат индексы каждого объекта из твоих предметов.


Надеюсь, тебе поможет.
 
king(rus) Дата: Вторник, 04.11.2014, 13:01:12 | Сообщение # 5
Сообщений: 109
Репутация: 2 [ +/- ]
Цитата pro-health ()
BarD, а как правильно сделать тогда?


Я так понимаю, что ты вручную каждый ключ проверяешь, верно?
Создай ключи 1, 2, 3, и т.д.. и через KvGotoNextKey получай то, что хочешь.
 
BarD Дата: Вторник, 04.11.2014, 13:03:03 | Сообщение # 6
Сообщений: 943
Репутация: 137 [ +/- ]
Цитата king(rus) ()
Создай ключи 1, 2, 3, и т.д..

Я так понял, что он делает шоп. Если у него ключи будут называться 1, 2, 3 и т.д., то люди будут открывать меню и видеть:

Предметы:
1. 1
2. 2
3. 3
и т.д.

KvGetSectionName - получает название ключа.
 
pro-health Дата: Среда, 05.11.2014, 10:52:25 | Сообщение # 7
Сообщений: 188
Репутация: 5 [ +/- ]
BarD, спасибо.
Я не шоп делаю.))

Переделал.


Вот так:

Но ошибки есть:
Код
Model_menu.sp(6) : warning 213: tag mismatch
Model_menu.sp(8) : error 100: function prototypes do not match
Model_menu.sp(17) : error 017: undefined symbol "Menu_Select"


Сообщение отредактировал pro-health - Среда, 05.11.2014, 11:03:22
 
BarD Дата: Среда, 05.11.2014, 11:43:46 | Сообщение # 8
Сообщений: 943
Репутация: 137 [ +/- ]
Код
#include <sourcemod>  
#pragma semicolon 1
#pragma tabsize 0;     

public OnPluginStart()  
{  
        RegConsoleCmd("WEP", WEP);  
}  
public Action:WEP(client, args)  
{  
new Handle:KV = CreateKeyValues("Models");   
if (FileToKeyValues(KV, "configs/accessories.cfg") && KvGotoFirstSubKey(KV))        
{        
          decl String:Key[35], String:info[4];        
          new x = 0;        
          new Handle:menu = CreateMenu(Menu_Select);        
           SetMenuTitle(menu, "Предметы:");  
          while (KvGotoNextKey(KV))        
          {         
             if (KvGetSectionName(KV, Key, 35))         
                     {         
                        IntToString(x, info, sizeof(info));        
                         AddMenuItem(menu, info, Key);        
                        x++;        
                     }        
          }        
          SetMenuExitButton(menu, true);        
           DisplayMenu(menu, client, 0);        
}  
}

public Menu_Select(Handle:menu, MenuAction:action, client, option)
{
    // Тут то, что должно происходить при выборе опции.
}
 
pro-health Дата: Четверг, 06.11.2014, 09:58:42 | Сообщение # 9
Сообщений: 188
Репутация: 5 [ +/- ]
Всем привет R1KO помог.
Но я туплю.
Код
public Menu_Select(Handle:menu, MenuAction:action, client, option)
{
      if (action == MenuAction_End) CloseHandle(menu);
      else if(action == MenuAction_Select)
      {
          decl String:sModel[128];
          GetMenuItem(menu, option, sModel, sizeof(sModel));
          // создаешь объект
          // присваиваешь модель   
          SetEntityModel(entity, sModel);
            
      }
}


А как entity_index присвоить.


Сообщение отредактировал pro-health - Четверг, 06.11.2014, 10:02:33
 
Naykon Дата: Четверг, 06.11.2014, 11:52:35 | Сообщение # 10
Сообщений: 439
Репутация: -4 [ +/- ]
разве entity не содержит в себе индекс?

PrintToChatAll("%d - индекс", entity);

Может я не понял вопрос..))


Сообщение отредактировал Naykon - Четверг, 06.11.2014, 11:56:52
 
BarD Дата: Четверг, 06.11.2014, 12:11:15 | Сообщение # 11
Сообщений: 943
Репутация: 137 [ +/- ]
Я же написал тебе нормалбную функцию.

Код
stock CreateProp(const String:model[], Float:wS_Pos[3])  
{  
    new index = CreateEntityByName("prop_physics");   
if (index < 1)   
{   
LogError("Ошибка при создании");   
return;   
}   
SetEntityModel(index, model);  
DispatchKeyValueVector(index, "origin", wS_Pos);   
DispatchKeyValue(index, "spawnflags", "1");   
DispatchSpawn(index);  
return index;  
}

И там, где хочешь создать объект: entity_index = CreateProp("Путь до модели", pos)// pos[3] - это координата, где располагать проп.
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Помогите (=
  • Страница 1 из 1
  • 1
Поиск: