Уважаемые пользователи, прежде чем открыть новую тему ознакомьтесь пожалуйста с правилами и воспользуйтесь поиском.
Помогите с кодом.
QviNSteN Дата: Понедельник, 2014-10-13, 14:52 | Сообщение # 1
Сообщений: 13
Есть у меня код: register_event("HLTV", "event_new_round", "a", "1=0", "2=0") public event_new_round(id) { //Действия тут не производятся , но должны( } И вот ещё: register_event("CurWeapon", "on_WChange", "be", "1=1") public on_WChange(id) { //Тоже не выполняются. } В чём может быть проблема?
Shaft Дата: Понедельник, 2014-10-13, 16:24 | Сообщение # 2
Сообщений: 351
Цитата QviNSteN (
)
В чём может быть проблема?
В первом случае убери параметр id в функции. То есть: public event_new_round() { //Действия тут не производятся , но должны( } А во втором случае должно работать. По крайней мере другие плагины которые отлавливают смену оружия с этим кодом работают.
Лучше быть умным и немного тупить - чем быть тупым и много умничать! Если обращаетесь ко мне с просьбой помочь то: 1 - полностью опишите вашу проблему. 2 - что хотите от меня. Программирую на языках: Pawn, Delphi, C++
QviNSteN Дата: Среда, 2014-10-15, 16:23 | Сообщение # 3
Сообщений: 13
[quote=Shaft;293030]В первом случае убери параметр id в функции. То есть: public event_new_round() { //Действия тут не производятся , но должны( } А во втором случае должно работать. По крайней мере другие плагины которые отлавливают смену оружия с этим кодом работают. [/quote] В первом случае у меня действия с id производятся... Вот весь код и первого и второго: public on_WChange(id) { if(has_speed[id] = true) { set_user_maxspeed(id,1500.0) client_cmd(id,"cl_forwardspeed 1500") client_cmd(id,"cl_backspeed 1500") client_cmd(id,"cl_sidespeed 1500") } if(has_spee[id] = true) { set_user_maxspeed(id,600.0) client_cmd(id,"cl_forwardspeed 600") client_cmd(id,"cl_backspeed 600") client_cmd(id,"cl_sidespeed 600") } if(has_spe[id] = true) { set_user_maxspeed(id,100.0) client_cmd(id,"cl_forwardspeed 100") } if(has_sp[id] = true) { set_user_maxspeed(id,200.0) client_cmd(id,"cl_forwardspeed 200") } } public event_new_round(id) { if(has_speed[id] = true) { set_user_maxspeed(id,1500.0) client_cmd(id,"cl_forwardspeed 1500") client_cmd(id,"cl_backspeed 1500") client_cmd(id,"cl_sidespeed 1500") } if(has_spee[id] = true) { set_user_maxspeed(id,600.0) client_cmd(id,"cl_forwardspeed 600") client_cmd(id,"cl_backspeed 600") client_cmd(id,"cl_sidespeed 600") } if(has_spe[id] = true) { set_user_maxspeed(id,100.0) client_cmd(id,"cl_forwardspeed 100") } if(has_sp[id] = true) { set_user_maxspeed(id,200.0) client_cmd(id,"cl_forwardspeed 200") } if(has_grav[id] = true) { set_user_gravity(id,0.6) } if(has_gra[id] = true) { set_user_gravity(id,0.2) } if(has_gr[id] = true) { set_user_gravity(id,2.0) } if(has_g[id] = true) { set_user_gravity(id,0.001) } arrayset(f, false, 33) arrayset(ff, false, 33) arrayset(fff, false, 33) arrayset(ffff, false, 33) arrayset(fffff, false, 33) arrayset(ffffff, false, 33) }
Сообщение отредактировал QviNSteN - Среда, 2014-10-15, 16:23
Shaft Дата: Среда, 2014-10-15, 18:12 | Сообщение # 4
Сообщений: 351
Цитата QviNSteN (
)
В первом случае у меня действия с id производятся...
С каким нафиг id? событие register_event("HLTV", "event_new_round", "a", "1=0", "2=0") вызывается не для конкретного игрока а каждый раз в начале раунда!!! Никакого id тут быть не может. id может быть только если событие вызывается для каждого игрока индивидуально например client_connect. Если хочешь чтобы твой код в функции event_new_round работал то тебе нужно сначала записать в массив всех игроков с помощью get_players а затем "пробежаться" циклом по этому массиву и выполнить код для каждого игрока. Появилась свободная минутка, набросал тебе код, проверяй, должно работать:
public event_new_round(){ new Players[32], int, i, UID get_players(Players, int, "ch") for (i=0; i<int; i++){ UID = Players[i] if(is_user_connected(UID)){ if(has_speed[UID] == true){ set_user_maxspeed(UID,1500.0) client_cmd(UID,"cl_forwardspeed 1500") client_cmd(UID,"cl_backspeed 1500") client_cmd(UID,"cl_sidespeed 1500") } if(has_spee[UID] == true){ set_user_maxspeed(UID,600.0) client_cmd(UID,"cl_forwardspeed 600") client_cmd(UID,"cl_backspeed 600") client_cmd(UID,"cl_sidespeed 600") } if(has_spe[UID] == true){ set_user_maxspeed(UID,100.0) client_cmd(UID,"cl_forwardspeed 100") } if(has_sp[UID] == true){ set_user_maxspeed(UID,200.0) client_cmd(UID,"cl_forwardspeed 200") } if(has_grav[UID] == true){ set_user_gravity(UID,0.6) } if(has_gra[UID] == true){ set_user_gravity(UID,0.2) } if(has_gr[UID] == true){ set_user_gravity(UID,2.0) } if(has_g[UID] == true){ set_user_gravity(UID,0.001) } } } arrayset(f, false, 33) arrayset(ff, false, 33) arrayset(fff, false, 33) arrayset(ffff, false, 33) arrayset(fffff, false, 33) arrayset(ffffff, false, 33) } public on_WChange(id){ if(has_speed[id] == true){ set_user_maxspeed(id,1500.0) client_cmd(id,"cl_forwardspeed 1500") client_cmd(id,"cl_backspeed 1500") client_cmd(id,"cl_sidespeed 1500") } if(has_spee[id] == true){ set_user_maxspeed(id,600.0) client_cmd(id,"cl_forwardspeed 600") client_cmd(id,"cl_backspeed 600") client_cmd(id,"cl_sidespeed 600") } if(has_spe[id] == true){ set_user_maxspeed(id,100.0) client_cmd(id,"cl_forwardspeed 100") } if(has_sp[id] == true){ set_user_maxspeed(id,200.0) client_cmd(id,"cl_forwardspeed 200") } }
P.S. На будущее: в языке Pawn для операции сравнения используется два знака равно == а не один =
Лучше быть умным и немного тупить - чем быть тупым и много умничать! Если обращаетесь ко мне с просьбой помочь то: 1 - полностью опишите вашу проблему. 2 - что хотите от меня. Программирую на языках: Pawn, Delphi, C++
Сообщение отредактировал Shaft - Среда, 2014-10-15, 21:16
Статистика Форума
Последние темы
Читаемые темы
Лучшие пользователи
Новые пользователи