Русское сообщество по скриптингу

Ревенант ICE

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Ревенант ICE

Сообщение Tyanka » 09 сен 2022, 16:42

Добрый день. Имеется класс Revenant ICE. Все не могу никак понять, что происходит со способностью "Ледяной шар". Иногда стукнется об стену раз и пропал, иногда раз 5 может отскочить. Но чаще всего он пропадает сразу при запуске. Что тут может быть не так? :dntknw:
Код: Выделить всё
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#include <cstrike>
#include <xs>

new const ball_name[] = "paralize_ball"
new const ball_model[] = "models/w_hiddentail2.mdl"
new const ball_soundtouch[] = { "warcraft3/frostnova.wav" }

new const 
zclass_name[] = { "Revenant" // name
new const zclass_info[] = { "Can throw ice balls" // description
new const zclass_model[] = { "revenant_ice" // model
new const zclass_clawmodel[] = { "v_revenant_ice.mdl" // claw model
new const g_vgrenade[] = "models/zombie_plague/28_zm/v_zombibomb-revice.mdl"
const zclass_health 6000 // health
const zclass_speed 260 // speed
const Float:zclass_gravity 0.7 // gravity
const Float:zclass_knockback 1.0 // knockback

#define OFFSET_MODELINDEX 491
#define OFFSET_LINUX 5 

new indexdefaultindex

new g_zclassparalize
new cvar_paralizedelay cvar_paralizevelocity  cvar_paralizeballhealth cvar_paralizeballparalizetime
new sTrail g_touchs[512] , g_can[33] , g_paralizen[33]

public 
plugin_init()
{
    
register_plugin("[ZP] Zombie Class: Paralize Zombie""0.1""=), LARS-BLOODLIKER")

    
cvar_paralizedelay register_cvar("zp_classparalize_delay","15")
    
cvar_paralizevelocity register_cvar("zp_classparalizeball_velocity","1300")
    
cvar_paralizeballhealth register_cvar("zp_classparalizeball_health","5")
    
cvar_paralizeballparalizetime register_cvar "zp_classparalizeball_paralizetime""7.0" )

    
register_touch(ball_name"worldspawn",        "touchWorld")
    
register_touch(ball_name"func_wall",            "touchWorld")
    
register_touch(ball_name"func_door",            "touchWorld")
    
register_touch(ball_name"func_door_rotating""touchWorld")
    
register_touch(ball_name"func_wall_toggle",    "touchWorld")
    
register_touch(ball_name"func_breakable",    "touchWorld")
    
register_touch(ball_name"player",            "touchPlayer")
    
register_think(ball_name,"ball_think")

    
register_clcmd("drop","paralize_cmd")
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
register_forward(FM_PlayerPreThink"fw_PreThink")
    
    
register_event("CurWeapon""Event_CurWeapon""be""1=1");

    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")

    
RegisterHam(Ham_Player_Duck"player""Player_Duck"1)
}

public 
plugin_precache()
{
    
precache_model(ball_model)
    
sTrail precache_model("sprites/laserbeam.spr")
    
    
precache_model(g_vgrenade)

    
g_zclassparalize zp_register_zombie_class(zclass_namezclass_infozclass_modelzclass_clawmodelzclass_healthzclass_speedzclass_gravityzclass_knockback)    

    
index precache_model("models/player/revenant_ice/revenant_ice.mdl")
        
defaultindex precache_model("models/player.mdl")
}

public 
paralize_cmdid )
{
    if( !
is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_zombie_class(id) != g_zclassparalize || zp_get_user_nemesis(id) )
        return 
PLUGIN_CONTINUE;

    if(
g_can[id]) 
    {
        
client_print(id,print_center,"Способность через %d сек.",g_can[id])
        return 
PLUGIN_HANDLED;
    }

    static 
Float:origin[3], Float:angles[3], Float:v_forward[3], Float:v_right[3], Float:v_up[3], Float:gun_position[3], Float:player_origin[3], Float:player_view_offset[3];
    static 
Float:OriginX[3]
    
pev(idpev_v_angleangles);
    
pev(idpev_originOriginX);
    
engfunc(EngFunc_MakeVectorsangles);

    
global_get(glb_v_forwardv_forward);
    
global_get(glb_v_rightv_right);
    
global_get(glb_v_upv_up);

    
//m_pPlayer->GetGunPosition( ) = pev->origin + pev->view_ofs
    
pev(idpev_originplayer_origin);
    
pev(idpev_view_ofsplayer_view_offset);
    
xs_vec_add(player_originplayer_view_offsetgun_position);

    
xs_vec_mul_scalar(v_forward13.0v_forward);
    
xs_vec_mul_scalar(v_right0.0v_right);
    
xs_vec_mul_scalar(v_up5.0v_up);

    
xs_vec_add(gun_positionv_forwardorigin);
    
xs_vec_add(originv_rightorigin);
    
xs_vec_add(originv_uporigin);

    new 
Float:StartOrigin[3]
            
    
StartOrigin[0] = origin[0];
    
StartOrigin[1] = origin[1];
    
StartOrigin[2] = origin[2];


    new 
Float:fVelocity[3] , Float:flOrigin[3] , Float:flAngle[3]
    
pev(id,pev_origin,flOrigin)
    
pev(id,pev_angles,flAngle)

    new 
ball create_entity("info_target")
    
    if (!
ball) return PLUGIN_HANDLED

    g_touchs
[ball] = 0

    entity_set_string
(ballEV_SZ_classnameball_name)
    
    
entity_set_model(ballball_model)
    
    
entity_set_origin(ballStartOrigin)
    
    
entity_set_vector(ballEV_VEC_anglesflAngle)
    
    new 
Float:MinBox[3] = {-1.0, -1.0, -1.0}
    new 
Float:MaxBox[3] = {1.01.01.0}
    
entity_set_vector(ballEV_VEC_minsMinBox)
    
entity_set_vector(ballEV_VEC_maxsMaxBox)
    
    
entity_set_int(ballEV_INT_solidSOLID_SLIDEBOX)
    
    
entity_set_int(ballEV_INT_movetypeMOVETYPE_BOUNCEMISSILE)
    
    
entity_set_edict(ballEV_ENT_ownerid)
    
    
entity_set_int(ballEV_INT_effectsEF_BRIGHTLIGHT)
    
    
VelocityByAim(idget_pcvar_num(cvar_paralizevelocity ), fVelocity)
    
entity_set_vector(ball EV_VEC_velocityfVelocity)

    
fm_set_rendering(ballkRenderFxGlowShell,255255255kRenderNormal16)
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_BEAMFOLLOW// Temporary entity ID
    
write_short(ball// Entity
    
write_short(sTrail// Sprite index
    
write_byte(10// Life
    
write_byte(3// Line width
    
write_byte(100// Red
    
write_byte(255// Green
    
write_byte(255// Blue
    
write_byte(255// Alpha
    
message_end() 

    
UTIL_PlayPlayerAnimation(id,10)
    
UTIL_PlayWeaponAnimation(id,8)

    
g_can[id] = get_pcvar_num(cvar_paralizedelay)
    
set_task(1.0,"ability_zero",id)

    
entity_set_float(ballEV_FL_health get_pcvar_float(cvar_paralizeballhealth))

    
entity_set_float(ballEV_FL_nextthinkget_gametime() + 0.1
    
    return 
PLUGIN_HANDLED;
}

public 
touchWorld(ballworld) {

    
emit_sound(ballCHAN_WEAPONball_soundtouch1.0ATTN_NORM0PITCH_NORM)
    
g_touchs[ball] += 1
    
if(g_touchs[ball] == get_pcvar_num(cvar_paralizeballhealth)) remove_entity(ball)
    
    return 
PLUGIN_HANDLED
}

public 
touchPlayer(ballplayer) {
    
client_print(0,print_chat,"touch %d",player)
    
remove_task(player)
    
paralize(player)
    
//set_task(get_pcvar_float(cvar_paralizeballparalizetime),"unparalize_player",player)
    
    
return PLUGIN_HANDLED
}

public 
event_round_start()
{
    new 
iEnt FM_NULLENT;
    while( (
iEnt engfunc(EngFunc_FindEntityByStringiEnt"classname"ball_name)) > )
    {
        
engfunc(EngFunc_RemoveEntity,iEnt)
    }    

    for(new 
i;i<=32;i++)
    {
        if(
g_paralizen[i]) fm_set_rendering(i)
        
g_can[i] = 0
        g_paralizen
[i] = 0
        remove_task
(i)
    }
}

public 
ball_think(ball)
{
    if(!
is_valid_ent(ball))
        return;

    new 
Float:oldangles[3],Float:angles[3]
    
pev(ball,pev_angles,oldangles)
    
angles[0] = oldangles[0] + random_float(20.0,100.0)
    
angles[1] = oldangles[1] + random_float(10.0,80.0)
    
angles[2] = oldangles[2] + random_float(10.0,80.0)
    
set_pev(ball,pev_angles,angles)

    new 
Float:Velocity[3]
    
pev(ball,pev_velocity,Velocity)

    if(
Velocity[0] < 1.0 && Velocity[2] < 1.0 && Velocity[1] < 1.0remove_entity(ball)
       
    if(
is_valid_ent(ball)) entity_set_float(ballEV_FL_nextthinkget_gametime() + 0.1

}

public 
paralize(id)
{
    if(!
is_user_alive(id) || zp_get_user_zombie(id))
        return;

    
g_paralizen[id] = 1
    fm_set_rendering
(idkRenderFxGlowShell,100255255kRenderNormal16)
    
set_task(get_pcvar_float(cvar_paralizeballparalizetime),"unparalize_player",id)
}

public 
unparalize_player(id)
{
    if(!
is_user_alive(id) || zp_get_user_zombie(id))
        return;

    
g_paralizen[id] = 0
    fm_set_rendering
(id)
}

public 
remove_values(id)
{
    
remove_task(id)
    
g_can[id] = 0
}

public 
ability_zero(id
{
    
g_can[id] -= 1
    
if(!g_can[id]) client_print(id,print_center,"Способность активна!")
    if(
g_can[id]) set_task(1.0,"ability_zero",id)
}

public 
fw_PreThink(id)
{
    if( !
is_user_alive(id) || zp_get_user_zombie(id) || !g_paralizen[id])
        return 
PLUGIN_CONTINUE;

    
set_pevidpev_buttonpev(id,pev_button) & ~IN_ATTACK );

    
set_pev(idpev_maxspeed0.0)        

    new 
Float:vel[3]
    
set_pev(id,pev_velocity,vel)

    return 
PLUGIN_HANDLED
}

public 
zp_user_humanized_post(id)
{
    
fm_set_user_model_index(iddefaultindex)

     
remove_values(id)
}
public 
fw_PlayerKilled(idattackershouldgibremove_values(id)
public 
client_connect(id)  remove_values(id)

public 
zp_user_infected_post(id
{
    if((
zp_get_user_zombie_class(id) == g_zclassparalize) && (zp_get_user_zombie(id)))
    {
        
fm_set_user_model_index(idindex)
    }
    
remove_values(id)
}

public 
zp_user_infected_pre(id

        if(!(
get_user_flags(id) & ADMIN_LEVEL_G)) 
    { 
            if(
zp_get_user_next_class(id) == g_zclassparalize
        { 
                    
zp_set_user_zombie_class(id0
            
client_print(idprint_chat"Данный класс только для Випов!")
            }     
        }     


stock fm_set_rendering(entityfx kRenderFxNone255255255render kRenderNormalamount 16)
{
    static 
Float:color[3]
    
color[0] = float(r)
    
color[1] = float(g)
    
color[2] = float(b)
    
    
set_pev(entitypev_renderfxfx)
    
set_pev(entitypev_rendercolorcolor)
    
set_pev(entitypev_rendermoderender)
    
set_pev(entitypev_renderamtfloat(amount))
}

stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
    
set_pev(Playerpev_weaponanimSequence)
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player)
    
write_byte(Sequence)
    
write_byte(pev(Playerpev_body))
    
message_end()
}

stock UTIL_PlayPlayerAnimation(const id, const Sequence Float:frame 1.0 Float:framerate 1.0)
{
    
entity_set_int(idEV_INT_sequenceSequence)
    
entity_set_int(idEV_INT_gaitsequence1)
    
entity_set_float(idEV_FL_frameframe)
    
entity_set_float(idEV_FL_framerateframerate)
}

stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speedFloat:new_velocity[3])
{
    
new_velocity[0] = origin2[0] - origin1[0]
    
new_velocity[1] = origin2[1] - origin1[1]
    
new_velocity[2] = origin2[2] - origin1[2]
    new 
Float:num floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2]))
    
new_velocity[0] *= num
    new_velocity
[1] *= num
    new_velocity
[2] *= num
       
    
return 1


stock fm_cs_set_user_deaths(idvalue)
{
    
set_pdata_int(id444value5)
}

stock fm_cs_get_user_team(id)
{
    return 
get_pdata_int(id1145);
}

public 
Player_Duck(id)
{
    if(
zp_get_user_zombie_class(id) == g_zclassparalize && zp_get_user_zombie(id))
    {
           static 
buttonducking
           button 
pev(idpev_button)
        
ducking pev(idpev_flags) & (FL_DUCKING FL_ONGROUND) == (FL_DUCKING FL_ONGROUND)

           if(
button IN_DUCK || ducking)
        {
            
set_pev(idpev_view_ofs, {0.00.020.0})   
           }
    }
}

stock fm_set_user_model_index(idvalue)
{
    
set_pdata_int(idOFFSET_MODELINDEXvalueOFFSET_LINUX)
}  

public 
Event_CurWeapon(id)    
{   
    new 
weaponID read_data(2)    

    if(!
zp_get_user_zombie(id) || !is_user_alive(id) || zp_get_user_zombie_class(id) != g_zclassparalize)   
    return 
PLUGIN_CONTINUE   

    
if(weaponID == CSW_HEGRENADE 
    { 
        
set_pev(idpev_viewmodelengfunc(EngFunc_AllocStringg_vgrenade))    
    }  
    if(
weaponID == CSW_FLASHBANG 
    { 
        
set_pev(idpev_viewmodelengfunc(EngFunc_AllocStringg_vgrenade))     
    }  
    if(
weaponID == CSW_SMOKEGRENADE 
    { 
        
set_pev(idpev_viewmodelengfunc(EngFunc_AllocStringg_vgrenade))    
    }  
    return 
PLUGIN_CONTINUE    
Аватара пользователя
Tyanka
 
Сообщения: 17
Зарегистрирован: 06 мар 2022, 23:02
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Я ничего не знаю

Re: Ревенант ICE

Сообщение Tyanka » 11 сен 2022, 05:52

Подниму тему на главную :-)
Аватара пользователя
Tyanka
 
Сообщения: 17
Зарегистрирован: 06 мар 2022, 23:02
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Я ничего не знаю

Re: Ревенант ICE

Сообщение [N][E][M][E][C] » 11 сен 2022, 10:31

Аватара пользователя
[N][E][M][E][C]
Скриптер
 
Сообщения: 537
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 45 раз.
Поблагодарили: 73 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Ревенант ICE

Сообщение Tyanka » 11 сен 2022, 21:01


Разве это форум не для помощи?
Аватара пользователя
Tyanka
 
Сообщения: 17
Зарегистрирован: 06 мар 2022, 23:02
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Я ничего не знаю

Re: Ревенант ICE

Сообщение RockTheStreet » 12 сен 2022, 01:36

Tyanka писал(а):

Разве это форум не для помощи?

Только вот проблема заключается в том, что Вы хотите чтобы Вам предоставили готовый вариант, ибо с Вашей стороны не видны попытки исправить 'проблему'.

Да и вообще. В теме один единственный вопрос, на который я даю ответ.
Что тут может быть не так?

Здесь не так следующее:
[*]Доисторический код.
[*]Автор темы, который поддерживает доисторический код и считает это логичным.
[*]Автор темы, который хочет чтобы за него всё сделали. При этом не готов заплатить за это.
Касательно телепатии: если Вы передаете Ваши проблемы телепатическим путем - ответы будут передаваться тоже телепатически.
Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком.
Аватара пользователя
RockTheStreet
 
Сообщения: 75
Зарегистрирован: 12 авг 2021, 23:13
Благодарил (а): 5 раз.
Поблагодарили: 9 раз.
Опыт программирования: Больше трех лет
Языки программирования: JS, PHP

Re: Ревенант ICE

Сообщение Tyanka » 12 сен 2022, 13:47

RockTheStreet писал(а):
Tyanka писал(а):

Разве это форум не для помощи?

Только вот проблема заключается в том, что Вы хотите чтобы Вам предоставили готовый вариант, ибо с Вашей стороны не видны попытки исправить 'проблему'.

Да и вообще. В теме один единственный вопрос, на который я даю ответ.
Что тут может быть не так?

Здесь не так следующее:
[*]Доисторический код.
[*]Автор темы, который поддерживает доисторический код и считает это логичным.
[*]Автор темы, который хочет чтобы за него всё сделали. При этом не готов заплатить за это.

Если я не написал, что не пытался исправить - это не означает что я ничего не делал)
Пытался с другого ревенанта вытащить код шара и срастить с этим, безуспешно.

Заметил в некоторых темах здесь, на этом форуме, что все в подобных темах посылают в тот топик, что написал Немец.
Когда то занимался php и сидел на одном форуме. Люди помогали, если хотели бесплатно. Никуда не посылали. Не хотели бесплатно помочь, просто проходили мимо. Так вот к чему это я, 2022 год. Кс 1.6 переживает не лучшие времена, можно сказать даже доживает. Так вот, почему бы друг другу не помочь хоть как то ее поддержать? Не хотите этого, просто промолчите. :-)
Аватара пользователя
Tyanka
 
Сообщения: 17
Зарегистрирован: 06 мар 2022, 23:02
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Я ничего не знаю

Re: Ревенант ICE

Сообщение RockTheStreet » 12 сен 2022, 14:12

Люди помогали, если хотели бесплатно

В таком случае, можете ждать помощи. Интересно, Ваши внуки дождутся решения или нет.
Кс 1.6 переживает не лучшие времена, можно сказать даже доживает. Так вот, почему бы друг другу не помочь хоть как то ее поддержать?

1.6 переживает не лучшие времена по причине лицемерных серверодержателей, которые хотят чтобы им сделали сервера за красивые глазки. Каждый день такие в ЛС по несколько штук пишут.
Так зачем поддерживать игру, коммьюнити которой на уровне червя?
Не хотите этого, просто промолчите.

Или что?
Касательно телепатии: если Вы передаете Ваши проблемы телепатическим путем - ответы будут передаваться тоже телепатически.
Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком.
Аватара пользователя
RockTheStreet
 
Сообщения: 75
Зарегистрирован: 12 авг 2021, 23:13
Благодарил (а): 5 раз.
Поблагодарили: 9 раз.
Опыт программирования: Больше трех лет
Языки программирования: JS, PHP

Re: Ревенант ICE

Сообщение Tyanka » 12 сен 2022, 14:44

RockTheStreet писал(а):
Люди помогали, если хотели бесплатно

В таком случае, можете ждать помощи. Интересно, Ваши внуки дождутся решения или нет.
Кс 1.6 переживает не лучшие времена, можно сказать даже доживает. Так вот, почему бы друг другу не помочь хоть как то ее поддержать?

1.6 переживает не лучшие времена по причине лицемерных серверодержателей, которые хотят чтобы им сделали сервера за красивые глазки. Каждый день такие в ЛС по несколько штук пишут.
Так зачем поддерживать игру, коммьюнити которой на уровне червя?
Не хотите этого, просто промолчите.

Или что?

Не лицемерных, а лентяев. Большинство серверов на паблик сборках аля "Казахские пироги", а все почему? Потому что им лень собирать и придумывать что то свое, а так же исправлять самим. Потому что все создают ради дохода, хоть это уже глупо для игры нулевых. Ко мне это не относится, я считаю, так как я все же пытался поправить код, хоть и не упомянул об этом. Но моих знаний не хватает.

А кому тогда еще поддерживать игру? Даже если бы эти сами "черви" не создавали бы свои сервера, то в поиске вообще бы осталось мизирное кол-во серверов от нормальных скриптеров. НО хотя возможно именно эти сервера бы тогда и проживали. Но в таком случае пару серверов на всех кто еще остался не хватило бы.

Скажете вы "доисторический код". Да, соглашусь, но он работает, хоть и требует пару поправок.

Да и в целом, я не хочу негативить, давайте быть на позитиве. У меня множество идей, которые понравились бы игрокам, но для их осуществления я конеечно же обращусь в платный топик. Так как там порядочно работы. А по поводу этой проблемы: моих знаний не хватает найти причину такой работы класса, там ошибка то может быть в какой то одной строчке, но я этого не вижу :(
Аватара пользователя
Tyanka
 
Сообщения: 17
Зарегистрирован: 06 мар 2022, 23:02
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Я ничего не знаю

Re: Ревенант ICE

Сообщение [N][E][M][E][C] » 12 сен 2022, 15:52

Самое интересное, с контры делают помойку!!! Ледяной шар и т.д. От сюда я считаю кс и пропала.
Аватара пользователя
[N][E][M][E][C]
Скриптер
 
Сообщения: 537
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 45 раз.
Поблагодарили: 73 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Ревенант ICE

Сообщение RockTheStreet » 13 сен 2022, 04:47

[N][E][M][E][C] писал(а):Самое интересное, с контры делают помойку!!! Ледяной шар и т.д. От сюда я считаю кс и пропала.

Тут я в корне не согласен. Модификации есть разные и разные подходы к геймплею. И то что на том или ином моде имеется класс с ледяным шаром - это не плохо, если реализовано адекватно. А если такое ублюдство что в пресинке у ТС'а, то тут уже его проблемы с говнокодом, нагрузкой, адекватностью.

А кому тогда еще поддерживать игру? Даже если бы эти сами "черви" не создавали бы свои сервера, то в поиске вообще бы осталось мизирное кол-во серверов от нормальных скриптеров

Ты думаешь настолько мало серверов с адекватными сборками? У меня с десяток заказывали сборки и покупали моды. И это на актуальном коде. Теперь представь сколько у других, более известных разработчиков. С несколько сотен серверов точно наберётся.
Тут проблема заключается в доступности аренды игровых серверов и говнокода. Если бы аренда игровых серверов была бы дороже, то и заказывали бы их только те у кого есть деньги. Также если бы говнокода не было на каждом шагу, то и меньший процент серверодержателей их использовал.
Также стоит отметить проблему с большинством серверодержателей, которые отпираются когда говоришь что не стоит использовать тот или иной плагин по причине лютого говнокода. И даже взять тебя в качестве примера: ты не отрицаешь что используешь доисторический код, в котором подход далеко не самый лучший, но при этом даже не думаешь пойти, взять актуальный мод и переделать под себя(при необходимости заказать те или иные вещи для мода).

Вот и сказочки конец. Кто прочитал этот монолог - молодец.
Касательно телепатии: если Вы передаете Ваши проблемы телепатическим путем - ответы будут передаваться тоже телепатически.
Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком.
Аватара пользователя
RockTheStreet
 
Сообщения: 75
Зарегистрирован: 12 авг 2021, 23:13
Благодарил (а): 5 раз.
Поблагодарили: 9 раз.
Опыт программирования: Больше трех лет
Языки программирования: JS, PHP


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 1