[CS:S]WeaponThink и id владельца

Тема в разделе "Программирование / Скриптинг", создана пользователем Даниил Фролкин, 29 мар 2013.

  1. Даниил Фролкин

    Даниил Фролкин

    Сообщения:
    6
    Симпатии:
    0
    Никак не могу получить ID владельца оружия.
    new Owner = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");
    new Owner = GetEntPropEnt(entity, Prop_Send, "m_hOwner");
    Не помогают.
    public OnEntityCreated(entity, const String:classname[])
    {
    if(StrEqual(classname, "predicted_viewmodel", false))
    {
    SDKHook(entity, SDKHook_Spawn, OnEntitySpawned);
    }
    if(StrEqual(classname, "weapon_knife", false))
    {
    SDKHook(entity, SDKHook_Spawn, OnEntitySpawned2);
    }
    }

    public OnEntitySpawned2(entity)
    {
    if(IsValidEntity(entity))
    {
    SDKHook(entity, SDKHook_Think, WeaponThink);
    }
    }

    public WeaponThink(entity)
    {
    SetEntProp(entity, Prop_Send, "m_iWorldModelIndex", PrecachedModel[Тут указать id][1]);
    }
     
  2. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    Даниил Фролкин
    Скажи, что ты хочешь сделать? Объясни полностью
     
  3. Даниил Фролкин

    Даниил Фролкин

    Сообщения:
    6
    Симпатии:
    0
    Это часть кода из скрипта который меняет модель ножа на рандомные модели
    WeaponThink позволяет дропать оружие с новой моделью
    Но чтоб у каждого игрока была своя модель,надо указать ему ID user'a

    Генерация оружия проста до безобразия
    При спауне:
    new value = GetRandomInt(1,4);
    if(value == 1){//где * путь к модели она у меня прописана :D
    --------- -----
    PrecachedModel[client][1] = PrecacheModel("*"); //world
    }
     
  4. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    чтобы у каждого игрока был разный нож? что мешает сделать циклом? или тем же рандомом, тут уже смотри на то, сколько у тебя моделей и игроков, если моделей меньше, то рандомом, если же хватит на всех игроков, то циклом
     
  5. Даниил Фролкин

    Даниил Фролкин

    Сообщения:
    6
    Симпатии:
    0
    Модели назначаются рандомно каждому игроку,проблема в том что WeaponThink надо послать id юзера да бы ее поставить(код очень длинный перебирать заного из-за такой мелочи не хочется)
    Просто это идет как дополнительная ветка.
    Дальше идет назначение world и view модели..
    public OnPostThinkPost(id)
    {
    --------
    }
     
    Последнее редактирование: 29 мар 2013
  6. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    Первый вариант. Как я думаю.. Вот клиент, это же какой то id ? Так? Что если просто сделать циклом?
    PHP:
    public WeaponThink(entity)
    {
        for (new 
    1<= MaxClientsi++)
        {
            if (
    IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) != 2)
            {
                
    SetEntProp(entityProp_Send"m_iWorldModelIndex"PrecachedModel[i][1]);
            }
        }
    }
    Второй вариант. Создаешь глобальную переменную, при спавне игрока присваиваешь этой переменной клиента, затем в блоке WeaponThink используешь эту переменную
     
  7. Даниил Фролкин

    Даниил Фролкин

    Сообщения:
    6
    Симпатии:
    0
    Первый вариант никак не может подойти там в 3 разных местах прописана модель
    Второй вариант как не странно,не работает

    Но у меня есть 3 вариант,Weapon think будет генерировать глобальные для остальных скриптов

    Добавлено через 15 минут
    Исправлено(отсылка к потрачено)
    Выкладываю НЕ исправленный код(кому пригодится тот исправит)
    http://rghost.ru/44859696
     
    Последнее редактирование: 30 мар 2013
  8. Даниил Фролкин

    Даниил Фролкин

    Сообщения:
    6
    Симпатии:
    0
    Как убрать/спрятать гильзы при стрельбе?
     
  9. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.049
    Симпатии:
    344
    cl_ejectbrass 0