Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

помогите с плагином

IIuKa
сообщение 29.10.2012, 20:17
Сообщение #1
Стаж: 13 лет

Сообщений: 667
Благодарностей: 29
Полезность: < 0

Доброго времени! помогите почему не выводит второе сообщение???

Скрытый текст
Код
/* Script generated by Pawn Studio */

/*
Name:     Knife Round
Version:    1.6a
Author:     jas0n
Date:     16.05.08

Description: Allow to play first round in "knife only" mode. Also you could allow c4/granades.

Cvars:     kr_mode <0|1|2|3> (default "1")
0: knife only
1: knife + c4
2: knife + granades
3: knife + c4 + granades
kr_timer <sec> (default "0")
* If value less then 30 sec this function disabled
*/

#include <amxmodx>
#include <dhudmessage>

new const PLUGIN[] = "Раунд на ножах"
new const VERSION[] = "1.6a"
new const AUTHOR[] = "jas0n"

new const g_HudMsgStart[] = "Раунд на ножах!!!"
new const g_HudMsgEnd[] = "Желаем вам по больше фрагов и^nвесёлого настроения:)"

new bool:g_IsKnifeRound
new bool:g_IsCommencing
new g_Mode, p_Mode
new g_Timer, p_Timer
new g_SyncMsgObj

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_event("TextMsg", "evGameCommencing", "a", "2=#Game_Commencing")
register_event("CurWeapon", "evCurWeapon", "be", "1=1", "2!29")
register_event("HLTV", "evNewRound", "a", "1=0", "2=0")
register_logevent("evStartRound", 2, "1=Round_Start")
register_logevent("evRestartRound", 2, "1&Restart_Round_")

g_Mode = register_cvar("kr_mode", "1")
g_Timer = register_cvar("kr_timer", "0")
g_SyncMsgObj = CreateHudSyncObj()
}

public plugin_cfg() {
p_Mode = get_pcvar_num(g_Mode)
p_Timer = get_pcvar_num(g_Timer)
}

public evGameCommencing() {
g_IsCommencing = true
}

public evNewRound() {
if(!g_IsKnifeRound)
return

if(task_exists(348916))
remove_task(348916)

set_hudmessage(0, 191, 255, 0.35, 0.8, 2, 2.0, 6.0, _, _, -1)
ShowSyncHudMsg(0, g_SyncMsgObj, g_HudMsgEnd)

g_IsCommencing = false
g_IsKnifeRound = false

pause("ad")
server_cmd("sv_restartround 1");
}

public evStartRound() {
if (!g_IsCommencing)
return

g_IsKnifeRound = true

if (p_Timer >= 30)
set_task(float(p_Timer), "evNewRound", 348916)

set_hudmessage(0, 191, 255, 0.35, 0.8, 2, 2.0, 6.0, _, _, -1)
ShowSyncHudMsg(0, g_SyncMsgObj, g_HudMsgStart)
}

public client_spawn(id) {
if (!g_IsCommencing)
return

force_knife(id)
}

public evRestartRound() {
if (!g_IsKnifeRound)
return

g_IsKnifeRound = false
}

public evCurWeapon(id) {
if (!g_IsCommencing)
return

static weapon
weapon = get_user_weapon(id)

switch(p_Mode) {
case 1: if (weapon == CSW_C4) return
case 2: if (weapon == CSW_HEGRENADE || weapon == CSW_FLASHBANG || weapon == CSW_SMOKEGRENADE) return
case 3: if (weapon == CSW_C4 || weapon == CSW_HEGRENADE || weapon == CSW_FLASHBANG || weapon == CSW_SMOKEGRENADE) return
}

force_knife(id)
}

force_knife(id)
{
engclient_cmd(id, "weapon_knife")
}


Отредактировал: IIuKa, - 29.10.2012, 21:29
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Safety1st
сообщение 29.10.2012, 21:00
Сообщение #2
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Ты вставил некомпилируемый код: все отступы потеряны. Поправь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
IIuKa
сообщение 29.10.2012, 21:30
Сообщение #3
Стаж: 13 лет

Сообщений: 667
Благодарностей: 29
Полезность: < 0

изменил
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 29.10.2012, 22:46
Сообщение #4
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(IIuKa @ 29.10.2012, 23:30) *
изменил

По-прежнему неудачно.

Ну, ok. Можно было бы просто приложить переделанный код, вместо этого приведу куски.

Код
register_logevent("evRestartRound", 2, "1&Restart_Round_")
-->
Код
register_logevent("evRestartRound", 2, "1=#Game_will_restart_in")


Строку
Код
server_cmd("sv_restartround 1");

вытащить оттуда, где она есть, превратить в
Код
set_cvar_num("sv_restartround", "1");

выделить в отдельную функцию и указать на неё в задаче
Код
set_task(float(p_Timer), "evNewRound", 348916)


Я потратил время на описание + вы потратите на внесение изменений, если шарите в перечисленном. Это хуже, чем взять - и приложить сразу нормальный код или даже сам sma. Чтобы желающие помочь вам лишний раз не напрягались.

Надеюсь, работать теперь будет правильно, ибо даже проверить не могу.

Да, ещё можно снести
Код
#include <dhudmessage>

раз он не используется.

Отредактировал: Safety1st, - 30.10.2012, 0:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: