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

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

Участник
Сообщения
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]);
}
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Даниил Фролкин
Скажи, что ты хочешь сделать? Объясни полностью
 

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

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

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

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
чтобы у каждого игрока был разный нож? что мешает сделать циклом? или тем же рандомом, тут уже смотри на то, сколько у тебя моделей и игроков, если моделей меньше, то рандомом, если же хватит на всех игроков, то циклом
 

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

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

The End Is Near...

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

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

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

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

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