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

Round ended effect для биохазард  [Решено]

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

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

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

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

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

Round ended effect для биохазард

Сообщение Don Corleone » 05 фев 2018, 16:59

Здравствуйте, как переписать для биохазард?

Код: Выделить всё
/* 

    [ZP] Round ended effect
    
    Описание:
    В конце раудна, если...
    -никто не выиграл, то экран белеет;
    -выиграли зомби, то экран краснеет;
    -выиграли люди, то экран зеленеет.
    
    Мой скайп:las_vegas.by
*/

#include <amxmodx>
#include <zombieplague>

#define PLUGIN "[ZP] Round ended effect"
#define VERSION "1.0"
#define AUTHOR "*GEORGE*"


public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
}

public 
zp_round_ended(zp_team
{
    if(
zp_team == WIN_NO_ONE)
    {    
        
message_begin(MSG_BROADCASTget_user_msgid("ScreenFade"))
        
write_short((1<<12)*4)
        
write_short((1<<12)*1)    
        
write_short(0x0001)    
        
write_byte (255)
        
write_byte (255)
        
write_byte (255)
        
write_byte (255)
        
message_end()
    }
    else if(
zp_team == WIN_ZOMBIES)
    {
        
message_begin(MSG_BROADCASTget_user_msgid("ScreenFade"))
        
write_short((1<<12)*4)
        
write_short((1<<12)*1)    
        
write_short(0x0001)    
        
write_byte (255)
        
write_byte (0)
        
write_byte (0)
        
write_byte (255)
        
message_end()
    }
    else if(
zp_team == WIN_HUMANS)
    {
        
message_begin(MSG_BROADCASTget_user_msgid("ScreenFade"))
        
write_short((1<<12)*4)
        
write_short((1<<12)*1)    
        
write_short(0x0001)    
        
write_byte (0)
        
write_byte (255)
        
write_byte (0)
        
write_byte (255)
        
message_end()
    }
Аватара пользователя
Don Corleone
 
Сообщения: 79
Зарегистрирован: 23 окт 2016, 16:13
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Round ended effect для биохазард

Сообщение Subb98 » 05 фев 2018, 17:30

Поскольку в biohazard.inc нет форварда окончания раунда

Код: Выделить всё
/* Biohazard functions
*
*  by Cheap_Suit

*  This file is provided as is (no warranties).
*/

#if defined _biohazard_included
    #endinput
#endif
#define _biohazard_included

#pragma reqlib "biohazardf"

/* Returns the mods status */
stock is_biomod_active()
{
    if(!
cvar_exists("bh_enabled"))
    {
        
log_amx("Cvar: ^"bh_enabled^" does not exist.")
        return 
0
    
}
    return 
get_cvar_num("bh_enabled")
}

/* Called when a survivor is infected */
forward event_infect(victimattacker)

/* Called when the game starts */
forward event_gamestart()

/* Returns true if the game has started */
native bool:game_started()

/* Makes a user zombie */
native infect_user(victimattacker)

/* Makes a user human */
native cure_user(index)

/* Infect user before game starts */
native preinfect_user(indexbool:yesno)

/* Returns 1 if user is a zombie */
native is_user_zombie(index)

/* Returns 1 if the user is infected (before game)*/
native is_user_infected(index)

/* Returns user zombie class */
native get_user_class(index)

/* Returns zombie class id, -1 otherwise */
native register_class(classname[], description[])

/* Sets zombie player model */
native set_class_pmodel(classidplayer_model[])

/* Sets zombie weapon model */
native set_class_wmodel(classidweapon_model[])

/* Returns zombie class id */
native get_class_id(classname[])

#define DATA_HEALTH      0  //Health value
#define DATA_SPEED       1  //Speed value
#define DATA_GRAVITY     2  //Gravity multiplier
#define DATA_ATTACK      3  //Zombie damage multiplier
#define DATA_DEFENCE     4  //Bullet damage multiplier
#define DATA_HEDEFENCE   5  //HE damage multiplier
#define DATA_HITSPEED    6  //Pain speed multiplier
#define DATA_HITDELAY    7  //Pain speed delay value
#define DATA_REGENDLY    8  //Regeneration delay value
#define DATA_HITREGENDLY 9  //Pain regeneration delay value
#define DATA_KNOCKBACK   10 //Knockback multiplier

/* Return/set value of zombie class data */
native Float:get_class_data(classiddataid)
native set_class_data(classiddataidFloat:value

то отлавливать так:

Код: Выделить всё
// Победа зомби
register_event("SendAudio""ZombiesWin""a""2&%!MRAD_terwin")
// Победа людей    
register_event("SendAudio""HumansWin""a""2&%!MRAD_ctwin"
// Ничья     
register_event("SendAudio""RoundDraw""a""2&%!MRAD_rounddraw"

А zombieplague.inc отключить.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Round ended effect для биохазард

Сообщение Don Corleone » 18 мар 2018, 16:29

Subb98 писал(а):Поскольку в biohazard.inc нет форварда окончания раунда

Код: Выделить всё
/* Biohazard functions
*
*  by Cheap_Suit

*  This file is provided as is (no warranties).
*/

#if defined _biohazard_included
    #endinput
#endif
#define _biohazard_included

#pragma reqlib "biohazardf"

/* Returns the mods status */
stock is_biomod_active()
{
    if(!cvar_exists("bh_enabled"))
    {
        log_amx("Cvar: ^"bh_enabled^" does not exist.")
        return 0
    
}
    return get_cvar_num("bh_enabled")
}

/* Called when a survivor is infected */
forward event_infect(victim, attacker)

/* Called when the game starts */
forward event_gamestart()

/* Returns true if the game has started */
native bool:game_started()

/* Makes a user zombie */
native infect_user(victim, attacker)

/* Makes a user human */
native cure_user(index)

/* Infect user before game starts */
native preinfect_user(index, bool:yesno)

/* Returns 1 if user is a zombie */
native is_user_zombie(index)

/* Returns 1 if the user is infected (before game)*/
native is_user_infected(index)

/* Returns user zombie class */
native get_user_class(index)

/* Returns zombie class id, -1 otherwise */
native register_class(classname[], description[])

/* Sets zombie player model */
native set_class_pmodel(classid, player_model[])

/* Sets zombie weapon model */
native set_class_wmodel(classid, weapon_model[])

/* Returns zombie class id */
native get_class_id(classname[])

#define DATA_HEALTH      0  //Health value
#define DATA_SPEED       1  //Speed value
#define DATA_GRAVITY     2  //Gravity multiplier
#define DATA_ATTACK      3  //Zombie damage multiplier
#define DATA_DEFENCE     4  //Bullet damage multiplier
#define DATA_HEDEFENCE   5  //HE damage multiplier
#define DATA_HITSPEED    6  //Pain speed multiplier
#define DATA_HITDELAY    7  //Pain speed delay value
#define DATA_REGENDLY    8  //Regeneration delay value
#define DATA_HITREGENDLY 9  //Pain regeneration delay value
#define DATA_KNOCKBACK   10 //Knockback multiplier

/* Return/set value of zombie class data */
native Float:get_class_data(classid, dataid)
native set_class_data(classid, dataid, Float:value)

то отлавливать так:

Код: Выделить всё
// Победа зомби
register_event("SendAudio", "ZombiesWin", "a", "2&%!MRAD_terwin")
// Победа людей    
register_event("SendAudio", "HumansWin", "a", "2&%!MRAD_ctwin") 
// Ничья     
register_event("SendAudio", "RoundDraw", "a", "2&%!MRAD_rounddraw")

А zombieplague.inc отключить.


Что то не получилось сделать, ошибка. нужна ваша помощь
Аватара пользователя
Don Corleone
 
Сообщения: 79
Зарегистрирован: 23 окт 2016, 16:13
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Round ended effect для биохазард

Сообщение артист666 » 18 мар 2018, 22:08

Какая ошибка?
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Round ended effect для биохазард

Сообщение Don Corleone » 08 апр 2018, 10:46

артист666 писал(а):Какая ошибка?


Вот так сделал

Код: Выделить всё
#include <amxmodx>
#include <biohazard>

#define PLUGIN "[ZP] Round ended effect"
#define VERSION "1.0"
#define AUTHOR "*GEORGE*"


public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_event("SendAudio""ZombiesWin""a""2&%!MRAD_terwin")
    
register_event("SendAudio""HumansWin""a""2&%!MRAD_ctwin"
}

public 
zp_round_ended(zp_team
{
    if(
zp_team == ZombiesWin)
    {
        
message_begin(MSG_BROADCASTget_user_msgid("ScreenFade"))
        
write_short((1<<12)*4)
        
write_short((1<<12)*1)    
        
write_short(0x0001)    
        
write_byte (255)
        
write_byte (0)
        
write_byte (0)
        
write_byte (255)
        
message_end()
    }
    else if(
zp_team == HumansWin)
    {
        
message_begin(MSG_BROADCASTget_user_msgid("ScreenFade"))
        
write_short((1<<12)*4)
        
write_short((1<<12)*1)    
        
write_short(0x0001)    
        
write_byte (0)
        
write_byte (255)
        
write_byte (0)
        
write_byte (255)
        
message_end()
    }
}  
Аватара пользователя
Don Corleone
 
Сообщения: 79
Зарегистрирован: 23 окт 2016, 16:13
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Round ended effect для биохазард

Сообщение flymic24 » 08 апр 2018, 11:24

Тогда уже лучше так
Код: Выделить всё
#include <amxmodx>
#include <biohazard>

#define PLUGIN "[ZP] Round ended effect"
#define VERSION "1.0"
#define AUTHOR "*GEORGE*"

new iMsg

public plugin_init
() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_event("SendAudio", "ZombiesWin", "a", "2&%!MRAD_terwin")
    register_event("SendAudio", "HumansWin", "a", "2&%!MRAD_ctwin") 
    
    iMsg 
= get_user_msgid("ScreenFade");
}

public ZombiesWin() 
{
    message_begin(MSG_BROADCAST, iMsg)
    write_short((1<<12)*4)
    write_short((1<<12)*1)    
    write_short
(0x0001)    
    write_byte
(255)
    write_byte(0)
    write_byte(0)
    write_byte(255)
    message_end()
}

public HumansWin() 
{
    message_begin(MSG_BROADCAST, iMsg)
    write_short((1<<12)*4)
    write_short((1<<12)*1)    
    write_short
(0x0001)    
    write_byte
(0)
    write_byte(255)
    write_byte(0)
    write_byte(255)
    message_end()
}
 
Аватара пользователя
flymic24
 
Сообщения: 209
Зарегистрирован: 05 окт 2012, 17:29
Откуда: Bryansk
Благодарил (а): 4 раз.
Поблагодарили: 76 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Round ended effect для биохазард

Сообщение Don Corleone » 08 апр 2018, 11:46

flymic24 писал(а):Тогда уже лучше так
Код: Выделить всё
#include <amxmodx>
#include <biohazard>

#define PLUGIN "[ZP] Round ended effect"
#define VERSION "1.0"
#define AUTHOR "*GEORGE*"

new iMsg

public plugin_init
() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_event("SendAudio", "ZombiesWin", "a", "2&%!MRAD_terwin")
    register_event("SendAudio", "HumansWin", "a", "2&%!MRAD_ctwin") 
    
    iMsg 
= get_user_msgid("ScreenFade");
}

public ZombiesWin() 
{
    message_begin(MSG_BROADCAST, iMsg)
    write_short((1<<12)*4)
    write_short((1<<12)*1)    
    write_short
(0x0001)    
    write_byte
(255)
    write_byte(0)
    write_byte(0)
    write_byte(255)
    message_end()
}

public HumansWin() 
{
    message_begin(MSG_BROADCAST, iMsg)
    write_short((1<<12)*4)
    write_short((1<<12)*1)    
    write_short
(0x0001)    
    write_byte
(0)
    write_byte(255)
    write_byte(0)
    write_byte(255)
    message_end()
}


Благодарю, а как сделать чтобы цвет не густой был, а то экран весь в цвете, и не чечго не видно
Аватара пользователя
Don Corleone
 
Сообщения: 79
Зарегистрирован: 23 окт 2016, 16:13
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Round ended effect для биохазард  [Решено]

Сообщение flymic24 » 08 апр 2018, 12:41

Код: Выделить всё

write_byte
(255) - уменьшай 255 
message_end
()
 
Аватара пользователя
flymic24
 
Сообщения: 209
Зарегистрирован: 05 окт 2012, 17:29
Откуда: Bryansk
Благодарил (а): 4 раз.
Поблагодарили: 76 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6


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

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

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