Стрельба
| |
serm
|
Дата: Вторник, 25.02.2014, 13:35:28 | Сообщение # 1 |
|
Сообщений: 137
Репутация: 7 [ +/- ]
|
|
Всем привет ! У меня проблемка , вот эта функция не работает так как мне нужно . Вот код . Код #pragma semicolon 1
#include <sourcemod> #include <sdktools> #include <cstrike> #include <sdkhooks>
new ent1, ent2; new Float:f_PosSoldier[3];
public OnPluginStart(){ RegConsoleCmd("ztest", cmd_spaws); }
public Action:cmd_spaws(client, args){ GetEntPropVector(client, Prop_Send, "m_vecOrigin", f_PosSoldier); SpawnSoldierHm(client); }
public SpawnSoldierHm(client){ f_PosSoldier[2]+=50; f_PosSoldier[1]+=150; new test_model1=CreateEntityByName("prop_dynamic"); DispatchKeyValue(test_model1, "model", "models/barney.mdl"); DispatchKeyValue(test_model1, "name", "stall2"); DispatchSpawn(test_model1); DispatchKeyValue(test_model1, "name", "stall2"); TeleportEntity(test_model1, f_PosSoldier, NULL_VECTOR, NULL_VECTOR); f_PosSoldier[1]-=300; new test_model2=CreateEntityByName("prop_dynamic"); DispatchKeyValue(test_model2, "model", "models/barney.mdl"); DispatchKeyValue(test_model2, "name", "stall1"); DispatchSpawn(test_model2); DispatchKeyValue(test_model2, "name", "stall1"); TeleportEntity(test_model2, f_PosSoldier, NULL_VECTOR, NULL_VECTOR); ent1=test_model1; ent2=test_model2; CreateTimer(5.0, Stest, _, TIMER_FLAG_NO_MAPCHANGE); }
public Action:Stest(Handle:timer, any:data){ new gunfire = CreateEntityByName("env_gunfire"); DispatchKeyValue(gunfire, "bias", "1"); DispatchKeyValue(gunfire, "collisions", "1"); DispatchKeyValue(gunfire, "maxburstdelay", "0"); DispatchKeyValue(gunfire, "maxburstsize", "1"); DispatchKeyValue(gunfire, "minburstdelay", "0"); DispatchKeyValue(gunfire, "minburstsize", "1"); DispatchKeyValue(gunfire, "parentname", "stall2"); DispatchKeyValue(gunfire, "rateoffire", "300"); DispatchKeyValue(gunfire, "shootsound", "weapons/ar2/fire1.wav"); DispatchKeyValue(gunfire, "spread", "15"); DispatchKeyValue(gunfire, "StartDisabled", "0"); DispatchKeyValue(gunfire, "target", "stall1"); DispatchKeyValue(gunfire, "targetname", "minigun_fire"); DispatchSpawn(gunfire); DispatchKeyValue(gunfire, "target", "stall1"); DispatchKeyValue(gunfire, "targetname", "minigun_fire"); DispatchKeyValue(gunfire, "parentname", "stall2"); f_PosSoldier[1]+=150; TeleportEntity(gunfire, f_PosSoldier, NULL_VECTOR, NULL_VECTOR); }
Вот пытаюсь создать эффект выстрела через sm но никак не получается , я уже замучился и сделал с таймером в надежду вдруг сработает так вот нифига ! ПРОБЛЕМА : Создается эффект выстрела но не на цель а на центр карты с координатами {0.0, 0.0, 0.0} !
Пробовал сделать через hammer на карте все получается а через см пробую никак не идет дело .
Может я что то не так делаю ??
|
|
| |
Vor4uN
|
Дата: Вторник, 25.02.2014, 18:54:58 | Сообщение # 2 |
|
Сообщений: 49
Репутация: 3 [ +/- ]
|
|
serm, Скинь vmf с хамера посмотрю что ты там намудрил, может помогу с координатами если это то что я думаю.
|
|
| |
panorama
|
Дата: Среда, 26.02.2014, 09:46:13 | Сообщение # 3 |
|
Сообщений: 203
Репутация: 2 [ +/- ]
|
|
Цитата Vor4uN ( ) serm, Скинь vmf с хамера посмотрю что ты там намудрил, может помогу с координатами если это то что я думаю. это не текстура выстрела а entity так что vfm не нужен
Сообщение отредактировал panorama - Среда, 26.02.2014, 11:26:54 |
|
| |
Vor4uN
|
Дата: Среда, 26.02.2014, 12:02:39 | Сообщение # 4 |
|
Сообщений: 49
Репутация: 3 [ +/- ]
|
|
Цитата panorama ( ) это не текстура выстрела а entity так что vfm не нужен
Странно , а разве я тебе написал про исходник хамера ? Может тебе он ничего не даст, а мне вот например даст объяснение того что хочет человек получить в итоге.
|
|
| |
serm
|
Дата: Суббота, 01.03.2014, 18:50:09 | Сообщение # 5 |
|
Сообщений: 137
Репутация: 7 [ +/- ]
|
|
Цитата Vor4uN ( ) Странно , а разве я тебе написал про исходник хамера ? Может тебе он ничего не даст, а мне вот например даст объяснение того что хочет человек получить в итоге. Он прав я создаю entity вот с такими параметрами в hammer и все работает Вот исходник карты http://yadi.sk/d/nd-t7ffTJdDhMДобавлено (01.03.2014, 10:02:46) --------------------------------------------- Ну так что никто не поможет ? Добавлено (01.03.2014, 18:50:09) --------------------------------------------- Никто не знает что ли ?
|
|
| |
Vor4uN
|
Дата: Воскресенье, 02.03.2014, 16:10:14 | Сообщение # 6 |
|
Сообщений: 49
Репутация: 3 [ +/- ]
|
|
serm, Если честно, я так и не понял что ты хочешь реализовать. Карта с твоего vmf показывает что знтити env_gunfire имеет парент (имя) к которому оно приклеплено и я так полагаяю что именно проп к которому она приклепрена отвечает за координаты ее рождения и направления пуль. В коде плагина видно, что ты ставишь проп даешь ему имя и после спавнишь env_gunfire с парентонеймом.
Попробуй сделать так - ставь проп с координатами согласно уроку http://world-source.ru/forum/100-2383-1 - после ставь env_gunfire не выдавая ей координаты (пусть унаследует от пропа)
ну и припарентить не забудь.
|
|
| |
serm
|
Дата: Воскресенье, 02.03.2014, 16:58:50 | Сообщение # 7 |
|
Сообщений: 137
Репутация: 7 [ +/- ]
|
|
Цитата Vor4uN ( ) serm, Если честно, я так и не понял что ты хочешь реализовать. Карта с твоего vmf показывает что знтити env_gunfire имеет парент (имя) к которому оно приклеплено и я так полагаяю что именно проп к которому она приклепрена отвечает за координаты ее рождения и направления пуль. В коде плагина видно, что ты ставишь проп даешь ему имя и после спавнишь env_gunfire с парентонеймом.
Попробуй сделать так - ставь проп с координатами согласно уроку http://world-source.ru/forum/100-2383-1 - после ставь env_gunfire не выдавая ей координаты (пусть унаследует от пропа)
ну и припарентить не забудь.
Вот я еще раз скину код который был в первом посту он полностью соответствует тому что ты написал но вот только через hammer на карте все работает , а через sm создаю он не работает !
Код
#pragma semicolon 1
#include <sourcemod> #include <sdktools> #include <cstrike> #include <sdkhooks>
new Float:f_PosSoldier[3];
public OnPluginStart(){ RegConsoleCmd("ztest", cmd_spaws); }
public Action:cmd_spaws(client, args){ GetEntPropVector(client, Prop_Send, "m_vecOrigin", f_PosSoldier); SpawnSoldierHm(client); }
public SpawnSoldierHm(client){ f_PosSoldier[2]+=50; f_PosSoldier[1]+=150; new test_model1=CreateEntityByName("prop_dynamic"); DispatchKeyValue(test_model1, "model", "models/barney.mdl"); DispatchKeyValue(test_model1, "name", "stall2"); DispatchSpawn(test_model1); DispatchKeyValue(test_model1, "name", "stall2"); TeleportEntity(test_model1, f_PosSoldier, NULL_VECTOR, NULL_VECTOR); f_PosSoldier[1]-=300; new test_model2=CreateEntityByName("prop_dynamic"); DispatchKeyValue(test_model2, "model", "models/barney.mdl"); DispatchKeyValue(test_model2, "name", "stall1"); DispatchSpawn(test_model2); DispatchKeyValue(test_model2, "name", "stall1"); TeleportEntity(test_model2, f_PosSoldier, NULL_VECTOR, NULL_VECTOR); CreateTimer(5.0, Stest, _, TIMER_FLAG_NO_MAPCHANGE); }
public Action:Stest(Handle:timer, any:data){ new gunfire = CreateEntityByName("env_gunfire"); DispatchKeyValue(gunfire, "bias", "1"); DispatchKeyValue(gunfire, "collisions", "1"); DispatchKeyValue(gunfire, "maxburstdelay", "0"); DispatchKeyValue(gunfire, "maxburstsize", "1"); DispatchKeyValue(gunfire, "minburstdelay", "0"); DispatchKeyValue(gunfire, "minburstsize", "1"); DispatchKeyValue(gunfire, "parentname", "stall2"); DispatchKeyValue(gunfire, "rateoffire", "300"); DispatchKeyValue(gunfire, "shootsound", "weapons/ar2/fire1.wav"); DispatchKeyValue(gunfire, "spread", "15"); DispatchKeyValue(gunfire, "StartDisabled", "0"); DispatchKeyValue(gunfire, "target", "stall1"); DispatchKeyValue(gunfire, "targetname", "minigun_fire"); DispatchSpawn(gunfire); DispatchKeyValue(gunfire, "target", "stall1"); DispatchKeyValue(gunfire, "targetname", "minigun_fire"); DispatchKeyValue(gunfire, "parentname", "stall2"); f_PosSoldier[1]+=150; f_PosSoldier[2]+=50; TeleportEntity(gunfire, f_PosSoldier, NULL_VECTOR, NULL_VECTOR); }
Скомпилируй и посмотри все создается но вот стреляет он в центр карты !
|
|
| |
hakerok
|
Дата: Воскресенье, 02.03.2014, 18:43:29 | Сообщение # 8 |
|
Сообщений: 1
Репутация: -2 [ +/- ]
|
|
реклама
|
|
| |
Vor4uN
|
Дата: Понедельник, 03.03.2014, 00:36:39 | Сообщение # 9 |
|
Сообщений: 49
Репутация: 3 [ +/- ]
|
|
Цитата serm ( ) Вот я еще раз скину код который был в первом посту он полностью соответствует тому что ты написал но вот только через hammer на карте все работает , а через sm создаю он не работает !
Подправил немного твой код, проверь то не?
Код #pragma semicolon 1
#include <sourcemod> #include <sdktools> #include <cstrike> #include <sdkhooks>
new Float:f_PosSoldier[3];
public OnPluginStart() { RegConsoleCmd("ztest", cmd_spaws); }
public Action:cmd_spaws(client, args) { GetEntPropVector(client, Prop_Send, "m_vecOrigin", f_PosSoldier); SpawnSoldierHm(client); }
public SpawnSoldierHm(client) { f_PosSoldier[2]+=50; f_PosSoldier[1]+=150; new test_model1=CreateEntityByName("prop_dynamic"); DispatchKeyValue(test_model1, "model", "models/barney.mdl"); DispatchKeyValue(test_model1, "targetname", "stall2"); DispatchSpawn(test_model1); TeleportEntity(test_model1, f_PosSoldier, NULL_VECTOR, NULL_VECTOR); f_PosSoldier[1]-=300; new test_model2=CreateEntityByName("prop_dynamic"); DispatchKeyValue(test_model2, "model", "models/barney.mdl"); DispatchKeyValue(test_model2, "targetname", "stall1"); DispatchSpawn(test_model2); TeleportEntity(test_model2, f_PosSoldier, NULL_VECTOR, NULL_VECTOR); CreateTimer(5.0, Stest, _, TIMER_FLAG_NO_MAPCHANGE); }
public Action:Stest(Handle:timer, any:data) { new gunfire = CreateEntityByName("env_gunfire"); DispatchKeyValue(gunfire, "bias", "1"); DispatchKeyValue(gunfire, "collisions", "1"); DispatchKeyValue(gunfire, "maxburstdelay", "0"); DispatchKeyValue(gunfire, "maxburstsize", "1"); DispatchKeyValue(gunfire, "minburstdelay", "0"); DispatchKeyValue(gunfire, "minburstsize", "1"); DispatchKeyValue(gunfire, "rateoffire", "300"); DispatchKeyValue(gunfire, "shootsound", "weapons/ar2/fire1.wav"); DispatchKeyValue(gunfire, "spread", "15"); DispatchKeyValue(gunfire, "StartDisabled", "0"); DispatchSpawn(gunfire); DispatchKeyValue(gunfire, "targetname", "minigun_fire"); - Зачем давать имя если используешь название при создании(спавне) ентити??? DispatchKeyValue(gunfire, "SetParent", "stall2"); f_PosSoldier[1]+=150; f_PosSoldier[2]+=50; TeleportEntity(gunfire, f_PosSoldier, NULL_VECTOR, NULL_VECTOR); }
Добавлено (03.03.2014, 00:36:39) --------------------------------------------- По моему ты просто копирнул откуда то код и приспособил на свой, так как ошибки есть в нем и вообще какое то странное написание, Ну я хз твой код твои правила )))
Сообщение отредактировал Vor4uN - Понедельник, 03.03.2014, 00:41:00 |
|
| |
serm
|
Дата: Понедельник, 03.03.2014, 12:05:58 | Сообщение # 10 |
|
Сообщений: 137
Репутация: 7 [ +/- ]
|
|
Цитата Vor4uN ( ) Цитата serm писал(а): Вот я еще раз скину код который был в первом посту он полностью соответствует тому что ты написал но вот только через hammer на карте все работает , а через sm создаю он не работает !
Подправил немного твой код, проверь то не?
Код
#pragma semicolon 1
#include <sourcemod> #include <sdktools> #include <cstrike> #include <sdkhooks>
new Float:f_PosSoldier[3];
public OnPluginStart() { RegConsoleCmd("ztest", cmd_spaws); }
public Action:cmd_spaws(client, args) { GetEntPropVector(client, Prop_Send, "m_vecOrigin", f_PosSoldier); SpawnSoldierHm(client); }
public SpawnSoldierHm(client) { f_PosSoldier[2]+=50; f_PosSoldier[1]+=150; new test_model1=CreateEntityByName("prop_dynamic"); DispatchKeyValue(test_model1, "model", "models/barney.mdl"); DispatchKeyValue(test_model1, "targetname", "stall2"); DispatchSpawn(test_model1); TeleportEntity(test_model1, f_PosSoldier, NULL_VECTOR, NULL_VECTOR); f_PosSoldier[1]-=300; new test_model2=CreateEntityByName("prop_dynamic"); DispatchKeyValue(test_model2, "model", "models/barney.mdl"); DispatchKeyValue(test_model2, "targetname", "stall1"); DispatchSpawn(test_model2); TeleportEntity(test_model2, f_PosSoldier, NULL_VECTOR, NULL_VECTOR); CreateTimer(5.0, Stest, _, TIMER_FLAG_NO_MAPCHANGE); }
public Action:Stest(Handle:timer, any:data) { new gunfire = CreateEntityByName("env_gunfire"); DispatchKeyValue(gunfire, "bias", "1"); DispatchKeyValue(gunfire, "collisions", "1"); DispatchKeyValue(gunfire, "maxburstdelay", "0"); DispatchKeyValue(gunfire, "maxburstsize", "1"); DispatchKeyValue(gunfire, "minburstdelay", "0"); DispatchKeyValue(gunfire, "minburstsize", "1"); DispatchKeyValue(gunfire, "rateoffire", "300"); DispatchKeyValue(gunfire, "shootsound", "weapons/ar2/fire1.wav"); DispatchKeyValue(gunfire, "spread", "15"); DispatchKeyValue(gunfire, "StartDisabled", "0"); DispatchSpawn(gunfire); DispatchKeyValue(gunfire, "targetname", "minigun_fire"); - Зачем давать имя если используешь название при создании(спавне) ентити??? DispatchKeyValue(gunfire, "SetParent", "stall2"); f_PosSoldier[1]+=150; f_PosSoldier[2]+=50; TeleportEntity(gunfire, f_PosSoldier, NULL_VECTOR, NULL_VECTOR); }
Добавлено (03.03.2014, 00:36:39) --------------------------------------------- По моему ты просто копирнул откуда то код и приспособил на свой, так как ошибки есть в нем и вообще какое то странное написание, Ну я хз твой код твои правила )))
Ну во первых из за передвижения entity ничего не случится фатального т.к. после я ее креплю на prop Во вторых так Код DispatchKeyValue(gunfire, "SetParent", "stall2"); категорически делать нельзя SetParent нет такого параметра у этой entity ! В третьих код я правда взял из других своих наработок если ты придирчивый вот на Код #pragma semicolon 1 // Люблю подключать все нужные библиотеки
#include <sourcemod> // Люблю подключать все нужные библиотеки #include <sdktools> // Люблю подключать все нужные библиотеки #include <cstrike> // Люблю подключать все нужные библиотеки #include <sdkhooks> // Люблю подключать все нужные библиотеки
new Float:f_PosGun[3]; // Создаю Float Для Позиции
public OnPluginStart() RegConsoleCmd("fire_test", console_test_gun); // Добавляю отлавливаемую команду
public Action:console_test_gun(client, args){ // Выполнию команду if(client < 0 || !IsClientInGame(client) || !IsPlayerAlive(client)) return; // Если client с потолка взят останавливаю GetEntPropVector(client, Prop_Send, "m_vecOrigin", f_PosGun); // Сохраняю позицию lient SpawnSoldierHm(client); // Передаю функцию }
public SpawnSoldierHm(client){ // Получаю функцию f_PosGun[2]+=50; // Настраиваю координаты чтобы не в земле заспавнился f_PosGun[1]+=150; // Двигаю чтобы не во мне заспавнился new test_model1=CreateEntityByName("prop_dynamic"); // Создаем маникен DispatchKeyValue(test_model1, "model", "models/barney.mdl"); DispatchKeyValue(test_model1, "targetname", "stall2"); DispatchSpawn(test_model1); TeleportEntity(test_model1, f_PosGun, NULL_VECTOR, NULL_VECTOR); // Телепортируем f_PosGun[1]-=300; // Двигаю чтобы заспавнился не в test_model1 new test_model2=CreateEntityByName("prop_dynamic"); // Создаем еще один DispatchKeyValue(test_model2, "model", "models/barney.mdl"); DispatchKeyValue(test_model2, "targetname", "stall1"); DispatchSpawn(test_model2); TeleportEntity(test_model2, f_PosGun, NULL_VECTOR, NULL_VECTOR); // Телепортируем CreateTimer(5.0, AfterCreate, _, TIMER_FLAG_NO_MAPCHANGE); // Подождем немного }
public Action:AfterCreate(Handle:timer, any:data){ new gunfire = CreateEntityByName("env_gunfire"); // Создаю эффект DispatchKeyValue(gunfire, "bias", "1"); DispatchKeyValue(gunfire, "collisions", "1"); DispatchKeyValue(gunfire, "maxburstdelay", "0"); DispatchKeyValue(gunfire, "maxburstsize", "1"); DispatchKeyValue(gunfire, "minburstdelay", "0"); DispatchKeyValue(gunfire, "minburstsize", "1"); DispatchKeyValue(gunfire, "rateoffire", "300"); DispatchKeyValue(gunfire, "shootsound", "weapons/ar2/fire1.wav"); DispatchKeyValue(gunfire, "spread", "15"); DispatchKeyValue(gunfire, "StartDisabled", "0"); DispatchSpawn(gunfire); DispatchKeyValue(gunfire, "targetname", "minigun_fire"); DispatchKeyValue(gunfire, "parentname", "stall2"); f_PosGun[1]+=150; f_PosGun[2]+=50; TeleportEntity(gunfire, f_PosGun, NULL_VECTOR, NULL_VECTOR); // Телепортирую }
Думаю тут все будет понятно !
А теперь ХХЕЕЕЛЛПП ЛЮДИ !
|
|
| |
Vor4uN
|
Дата: Понедельник, 03.03.2014, 12:59:47 | Сообщение # 11 |
|
Сообщений: 49
Репутация: 3 [ +/- ]
|
|
Цитата serm ( ) категорически делать нельзя SetParent нет такого параметра у этой entity ! Этот параметр есть у ентити. Параметром ты указываешь в коде к чему припарентить ее. А если взять все параметры с хамера то будет направельно. Я не придирчивый, просто не могу сообразить суть твоего плагина. Вот например куда должна быть направлена твоя стрельба? Зачем два пропа ? Зачем давать имя пропу если его не используешь?
Сообщение отредактировал Vor4uN - Понедельник, 03.03.2014, 13:08:58 |
|
| |
serm
|
Дата: Среда, 05.03.2014, 10:35:05 | Сообщение # 12 |
|
Сообщений: 137
Репутация: 7 [ +/- ]
|
|
Цитата Vor4uN ( ) Этот параметр есть у ентити. Параметром ты указываешь в коде к чему припарентить ее. А если взять все параметры с хамера то будет направельно. Я не придирчивый, просто не могу сообразить суть твоего плагина. Вот например куда должна быть направлена твоя стрельба? Зачем два пропа ? Зачем давать имя пропу если его не используешь?
1. Плагин я сделал для того чтобы сделать полную копию того что в хамере ! 2. Стрельба должна быть направленна на stall1 3. Для того чтобы на первый прикрепить эту entity а второй будет целью 4. С чего взял что я его не использую Код DispatchKeyValue(gunfire, "target", "stall1"); В первом посту это указанно 5. Я еще раз говорю нет такого параметра у entity ты спутал его с Код AcceptEntityInput(entity, "SetParent");
Вот как то так Добавлено (04.03.2014, 05:54:54) --------------------------------------------- WS Может ты знаешь ? Добавлено (05.03.2014, 10:35:05) --------------------------------------------- Ладно ребят всем спасибо , я так понимаю тут никто не знает в чем проблема дальше сам разбираться буду !
|
|
| |
|