Cso style beam yaratma problemı
Gönderilme zamanı: Sal Oca 12, 2021 1:30 pm
Merhaba millet. Maalesef yine sorunlarım var. Sorum şu ki, internette cso tarzı 2 tane beam buldum. Ancak biri tam olarak aynı değildir ve kendi kendine kaybolmazken, diğeri ise sıradan beamin kendi kendine kaybolmuş versiyonu gibi görünür. Bunu nasıl halledebilirim? Veya önerebileceğiniz herhangi bir yöntem var mı?
VIDEO-1 (İSTEK) (ORİJİNAL CSO/CSN:Z BEAM) > https://www.youtube.com/watch?v=i1ZcdoNZzvg
VIDEO-2 (İSTEK) (CS 1.6'DA CSO STİLİ BEAM) > https://www.youtube.com/watch?v=8uFZIXF5KfU&t=8s
VIDEO-3 (İSTEK) (CS 1.6'DA - ALTERNATIF VIDEO) > https://www.youtube.com/watch?t=102&v=F ... e=youtu.be
VIDEO-1 (ASLINDA OLAN [İLK KOD]) > https://www.youtube.com/watch?t=18&v=Yt ... e=youtu.be
VIDEO-2 (ASLINDA OLAN [İKİNCİ KOD]) > https://www.youtube.com/watch?t=11&v=n6 ... e=youtu.be
Kodlar alttadır:
Birinci:
İkinci (Bu "stock" kısmını get_position ile traceattack kısmını veya primaryattack_post kısmına eklediğimi varsayalım):
VIDEO-1 (İSTEK) (ORİJİNAL CSO/CSN:Z BEAM) > https://www.youtube.com/watch?v=i1ZcdoNZzvg
VIDEO-2 (İSTEK) (CS 1.6'DA CSO STİLİ BEAM) > https://www.youtube.com/watch?v=8uFZIXF5KfU&t=8s
VIDEO-3 (İSTEK) (CS 1.6'DA - ALTERNATIF VIDEO) > https://www.youtube.com/watch?t=102&v=F ... e=youtu.be
VIDEO-1 (ASLINDA OLAN [İLK KOD]) > https://www.youtube.com/watch?t=18&v=Yt ... e=youtu.be
VIDEO-2 (ASLINDA OLAN [İKİNCİ KOD]) > https://www.youtube.com/watch?t=11&v=n6 ... e=youtu.be
Kodlar alttadır:
Birinci:
Kod: Tümünü seç
...
register_forward(FM_StartFrame, "fw_StartFrame")
...
public Additional_Settings(id, ent)
{
set_pdata_int(id, 363, 90, 5)
// csbtedhan + kord12.7
new Float:originF[3], Float:aimoriginF[3]
pev(ent, pev_vuser1, aimoriginF)
Stock_Get_Postion(id, 40.0, get_cvar_num("cl_righthand")?7.5:-7.5, -5.0, originF)
//get_position(iAttacker, 40.0, 6.0, -7.0, StartOrigin)
for(new i = 0; i < min(floatround(vector_distance(originF, aimoriginF)*0.1), 10) ; i++)
{
new iBeam = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "beam"))
set_pev(iBeam, pev_classname, "beam");
set_pev(iBeam, pev_flags, pev(iBeam, pev_flags) | FL_CUSTOMENTITY);
set_pev(iBeam, pev_rendercolor, Float:{255.0, 255.0, 255.0})
set_pev(iBeam, pev_renderamt, 255.0)
set_pev(iBeam, pev_body, 0)
set_pev(iBeam, pev_frame, 0.0)
set_pev(iBeam, pev_animtime, 0.0)
set_pev(iBeam, pev_model, "sprites/laserbeam.spr");
set_pev(iBeam, pev_modelindex, spr)
set_pev(iBeam, pev_scale, 10.0)
set_pev(iBeam, pev_rendermode, (pev(iBeam, pev_rendermode) & 0x0F) | 0x40 & 0xF0)
set_pev(iBeam, pev_origin, originF)
set_pev(iBeam, pev_angles, aimoriginF)
set_pev(iBeam, pev_sequence, (pev(iBeam, pev_sequence) & 0x0FFF) | ((0 & 0xF) << 12))
set_pev(iBeam, pev_skin, (pev(iBeam, pev_skin) & 0x0FFF) | ((0 & 0xF) << 12))
Beam_RelinkBeam(iBeam);
set_pev(iBeam, pev_dmgtime, get_gametime()+0.4)
set_pev(iBeam, pev_fuser1, 0.8)
set_pev(iBeam, pev_iuser1, 2018)
}
}
...
public fw_StartFrame() // csbtedhan
{
new iEnt = -1
while((iEnt = find_ent_by_class(iEnt, "beam")) > 0)
{
if(!is_valid_ent(iEnt) || pev(iEnt, pev_iuser1) != 2018)
continue;
new Float:dmgtime, Float:color[3], Float:stay
pev(iEnt,pev_dmgtime, dmgtime)
pev(iEnt,pev_fuser1, stay)
pev(iEnt,pev_rendercolor, color)
if(dmgtime - get_gametime() < stay)
{
color[0] = floatmax(0.0, color[0] - 16.0)
color[1] = floatmax(0.0, color[1] - 16.0)
color[2] = floatmax(0.0, color[2] - 16.0)
set_pev(iEnt,pev_rendercolor, color)
}
if(dmgtime <= get_gametime())
set_pev(iEnt, pev_flags, pev(iEnt, pev_flags) | FL_KILLME)
}
}
stock Stock_Get_Postion(id,Float:forw,Float:right, Float:up,Float:vStart[])
{
static Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
pev(id, pev_origin, vOrigin)
pev(id, pev_view_ofs,vUp) //for player
xs_vec_add(vOrigin,vUp,vOrigin)
pev(id, pev_v_angle, vAngle) // if normal entity ,use pev_angles
angle_vector(vAngle,ANGLEVECTOR_FORWARD,vForward) //or use EngFunc_AngleVectors
angle_vector(vAngle,ANGLEVECTOR_RIGHT,vRight)
angle_vector(vAngle,ANGLEVECTOR_UP,vUp)
vStart[0] = vOrigin[0] + vForward[0] * forw + vRight[0] * right + vUp[0] * up
vStart[1] = vOrigin[1] + vForward[1] * forw + vRight[1] * right + vUp[1] * up
vStart[2] = vOrigin[2] + vForward[2] * forw + vRight[2] * right + vUp[2] * up
}
stock Beam_RelinkBeam(const iBeamEntity)
{
new Float:flOrigin[3],Float:flStartPos[3],Float:flEndPos[3];
new Float:flMins[3],Float:flMaxs[3];
pev(iBeamEntity, pev_origin, flOrigin);
pev(iBeamEntity, pev_origin, flStartPos);
pev(iBeamEntity, pev_angles, flEndPos);
flMins[0] = floatmin(flStartPos[0], flEndPos[0]);
flMins[1] = floatmin(flStartPos[1], flEndPos[1]);
flMins[2] = floatmin(flStartPos[2], flEndPos[2]);
flMaxs[0] = floatmax(flStartPos[0], flEndPos[0]);
flMaxs[1] = floatmax(flStartPos[1], flEndPos[1]);
flMaxs[2] = floatmax(flStartPos[2], flEndPos[2]);
xs_vec_sub(flMins, flOrigin, flMins);
xs_vec_sub(flMaxs, flOrigin, flMaxs);
set_pev(iBeamEntity, pev_mins, flMins);
set_pev(iBeamEntity, pev_maxs, flMaxs);
engfunc(EngFunc_SetSize, iBeamEntity, flMins, flMaxs);
engfunc(EngFunc_SetOrigin, iBeamEntity, flOrigin);
}
Kod: Tümünü seç
stock create_beampoints(Float:StartPosition[3], Float:TargetPosition[3], SpritesID, StartFrame, Framerate, Life, LineWidth, Amplitude, Red, Green, Blue, Brightness, Speed)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMPOINTS)
engfunc(EngFunc_WriteCoord, StartPosition[0])
engfunc(EngFunc_WriteCoord, StartPosition[1])
engfunc(EngFunc_WriteCoord, StartPosition[2])
engfunc(EngFunc_WriteCoord, TargetPosition[0])
engfunc(EngFunc_WriteCoord, TargetPosition[1])
engfunc(EngFunc_WriteCoord, TargetPosition[2])
write_short(SpritesID)
write_byte(StartFrame)
write_byte(Framerate)
write_byte(Life)
write_byte(LineWidth)
write_byte(Amplitude)
write_byte(Red)
write_byte(Green)
write_byte(Blue)
write_byte(Brightness)
write_byte(Speed)
message_end()
}