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

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

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

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

2 страниц V   1 2

ошибочки client_print

Статус пользователя stefkone
сообщение 29.11.2013, 13:35
Сообщение #1


Иконка группы

Стаж: 19 лет

Сообщений: 1711
Благодарностей: 1130
Полезность: 1068

Пытался не много подредактировать плагин, в итоге не вышло. Подскажите sad.gif
original http://forums.alliedmods.net/showthread.php?p=122252

Мой вариант
Код:
#include <amxmodx>
#include <amxmisc>

#define PLUGINNAME "Kill Distance"
#define VERSION "0.3"
#define AUTHOR "Nightscream"

new Float:modMeter = 32.00

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

register_event( "DeathMsg", "Event_Death", "a" )

register_cvar( "distance_meter", "1" )
register_cvar( "distance_all", "1" )
}

public Event_Death(id) {
new iVictimID = read_data(2)
new iWeapon, iAttackerID = get_user_attacker( iVictimID, iWeapon )

if( !is_user_connected( iVictimID ) ) return PLUGIN_CONTINUE

if( !is_user_connected( iAttackerID ) || iVictimID == iAttackerID ) return PLUGIN_CONTINUE

new name[33]
new name2[33]
get_user_name( iAttackerID, name, 32 )
get_user_name( iVictimID, name2, 32 )

new origin1[3]
new origin2[3]
get_user_origin( iAttackerID, origin1 )
get_user_origin( iVictimID, origin2 )

new distance = get_distance(origin1,origin2)
( get_cvar_num("distance_meter") == 1 ) {
if ( get_cvar_num( "distance_all" ) == 1 ) {
client_print( id, "%s убил %s, с расстояния %d метров",name, name2,floatround( distance/modMeter ) )
}
if ( get_cvar_num( "distance_all" ) == 0 ) {
client_print( iAttackerID, "Вы убили %s, с расстояния %d метров", name2,floatround( distance/modMeter ) )
}
}

return PLUGIN_CONTINUE
}


Ошибочки
Цитата
Код:
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// kill-distance.sma
// путь\kill-distance.sma(38) : warning 217: loo
se indentation
// путь\kill-distance.sma(38) : error 029: inval
id expression, assumed zero
// путь\kill-distance.sma(40) : error 035: argum
ent type mismatch (argument 2)
// путь\kill-distance.sma(43) : error 035: argum
ent type mismatch (argument 2)
// путь\kill-distance.sma(47) : warning 217: loo
se indentation
//
// 3 Errors.
// Could not locate output file C:\Users\└эфЁхщ\YandexDisk\scripting\compiled\ki
ll-distance.amx (compile failed).
//
// Compilation Time: 0,28 sec
// ----------------------------------------

Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Safety1st
сообщение 29.11.2013, 14:23
Сообщение #2
Стаж: 14 лет
Город: Moscow

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

Проще будет сказать, что вы хотите в итоге получить. В плагине нужно ещё вещи поправить, код морально сильно устарел.
Алсо не стоит вырезать копирайты из плагина, они в код не попадают, а в source находятся не просто так.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя stefkone
сообщение 29.11.2013, 14:34
Сообщение #3


Иконка группы

Стаж: 19 лет

Сообщений: 1711
Благодарностей: 1130
Полезность: 1068

Цитата(Safety1st @ 29.11.2013, 15:23) *
Проще будет сказать, что вы хотите в итоге получить. В плагине нужно ещё вещи поправить, код морально сильно устарел.
Алсо не стоит вырезать копирайты из плагина, они в код не попадают, а в source находятся не просто так.

Должно было получиться
Общий чат - Игрок1 убил Игрок2, с расстояния 75 метров
Тому кто убил - Вы убили Игрока2, с расстояния 26 метров

Идеал
Тому кого убили - Вас убил %s, с расстояния %d метров
Тот кто убил - Вы убили %s, с расстояния %d метров

Отредактировал: stefkone, - 29.11.2013, 14:37
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 29.11.2013, 14:39
Сообщение #4
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Цитата('stefkone')
Идеал
Того кого убили - Вас убил %s, с расстояния %d метров
Тот кто убил - Вы убили %s, с расстояния %d метров

Прикрепленный файл  stefkone_kill_distance.sma ( 1,12 килобайт ) Кол-во скачиваний: 37
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя stefkone
сообщение 29.11.2013, 14:50
Сообщение #5


Иконка группы

Стаж: 19 лет

Сообщений: 1711
Благодарностей: 1130
Полезность: 1068

Цитата(serfreeman1337 @ 29.11.2013, 15:39) *
Прикрепленный файл  stefkone_kill_distance.sma ( 1,12 килобайт ) Кол-во скачиваний: 37

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

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

А мой круче будет)
Прикрепленный файл  kill_distance_mod.sma ( 2,01 килобайт ) Кол-во скачиваний: 39


stefkone, ваши запятые в фразах не нужны - это не по-русски.

Печально видеть, когда скриптеры не делают очевидные оптимизации, которые занимают пару минут.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
serfreeman1337
сообщение 29.11.2013, 15:00
Сообщение #7
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Код:
if( !is_user_connected( iVictimID ) ) return PLUGIN_CONTINUE

А вдруг ВНЕЗАПНО какой-то плагин вызовет DeathMsg с 0 во втором параметре? Тогда "Вас убил Counter-Strike 1.6, c расстояния 1337 метров." вылезет всем.
А если 2ой параметр выйдет за пределы 32 ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 29.11.2013, 15:10
Сообщение #8
Стаж: 14 лет
Город: Moscow

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

Цитата(serfreeman1337 @ 29.11.2013, 17:00) *
А вдруг ВНЕЗАПНО какой-то плагин вызовет DeathMsg с 0 во втором параметре? Тогда "Вас убил Counter-Strike 1.6, c расстояния 1337 метров." вылезет всем.

Действительно! Обязательно надо это учесть - сторонние говноплагины. А то мало ли что)
Тут один 'специалист' в подобном вопросе уверен, что в плагине /rs обязательно должна быть проверка от фейков, пишущих в чат: мало ли им захочется команду say /rs отправить. Это же приведёт к ошибке, непорядок.

Цитата(serfreeman1337 @ 29.11.2013, 17:00) *
А если 2ой параметр выйдет за пределы 32 ?

Он и выйдет в случае взрыва C4. Ну, таким простым способом в говноплагинах проверяется, убил ли игрока другой игрок или что-то стороннее. Натива отрабатывает нормально, проверено)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя stefkone
сообщение 29.11.2013, 15:14
Сообщение #9


Иконка группы

Стаж: 19 лет

Сообщений: 1711
Благодарностей: 1130
Полезность: 1068

Цитата(Safety1st @ 29.11.2013, 15:54) *
А мой круче будет)
Прикрепленный файл  kill_distance_mod.sma ( 2,01 килобайт ) Кол-во скачиваний: 39


stefkone, ваши запятые в фразах не нужны - это не по-русски.

Печально видеть, когда скриптеры не делают очевидные оптимизации, которые занимают пару минут.

не буду создавать новую тему
Функция вкл/выкл тоже не пошла

Код:
/**
* Modified by Safety1st
* last update 11/29/2013
*
* Changes:
* - HUD->client_print
* - removed all cvars
* - some optimizations
*/

/*
AMXX Kill Distance

Author: Nightscream
Help: Kleenex
Version: 0.3
===============================================
Description:
If Someone kills an enemy/teammate
it will give a hud message to see from
how far you killed him in meters

made on request
<a href="https://c-s.net.ua/url?u=http%3A%2F%2Fwww.amxmodx.org%2Fforums%2Fviewtopic.php%3Ft%3D15208" target="_blank">http://www.amxmodx.org/forums/viewtopic.php?t=15208</a>
===============================================
Cvars:
distance_meter 0 = Feet
1 = Meter

ditance_all 0 = shows text only to killer
1= shows text to everyone
===============================================
Tested on:
Listen server | condition-zero | Windows XP Home | amxx 1.55
===============================================
Changelog:
0.1 - Release for amxx
0.2 - Added Distance in Feet
0.3 - Added distance_all cvar so text can be showed to everyone/killer
===============================================
suggestions are always welcome
*/

#include <amxmodx>

#define PLUGINNAME "Kill Distance (mod)"
#define VERSION "0.3"
#define AUTHOR "Nightscream"

const Float:modMeter = 32.00

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

register_event( "DeathMsg", "Event_Death", "a" )
register_clcmd("say /distance", "Event_Death")
}

public Event_Death(id) {
if(!g_bEvent_Death[id])
{
new iAttackerID = read_data(1)
new iVictimID = read_data(2)

if( !is_user_connected( iAttackerID ) || iVictimID == iAttackerID )
return

new nameA[33]
new nameV[33]
get_user_name( iAttackerID, nameA, 32 )
get_user_name( iVictimID, nameV, 32 )

new origin1[3]
new origin2[3]
get_user_origin( iAttackerID, origin1 )
get_user_origin( iVictimID, origin2 )

new distance = floatround( get_distance(origin1,origin2) / modMeter )

client_print( iAttackerID, print_chat, "Вы убили %s с расстояния %d метров", nameV, distance )
client_print( iVictimID, print_chat, "Вас убил %s с расстояния %d метров", nameA, distance )
g_bEvent_Death[id] = true
}
else
{
g_bEvent_Death[id] = false
return
}
}
public client_connect(id){
g_bEvent_Death[id] = false
}


Отредактировал: stefkone, - 29.11.2013, 15:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 29.11.2013, 15:21
Сообщение #10
Стаж: 14 лет
Город: Moscow

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

Вы разделом ошиблись изначально. Кому нужна помощь с модифицируемыми ими плагинами - пишут в Скриптинг.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя stefkone
сообщение 29.11.2013, 15:23
Сообщение #11


Иконка группы

Стаж: 19 лет

Сообщений: 1711
Благодарностей: 1130
Полезность: 1068

не страшно, перенесут :)

Отредактировал: stefkone, - 29.11.2013, 15:31
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sky Cat
сообщение 30.11.2013, 18:45
Сообщение #12
Стаж: 13 лет
Город: Белгород

Сообщений: 1179
Благодарностей: 734
Полезность: 1056

Цитата(stefkone @ 29.11.2013, 17:23) *
не страшно, перенесут :)

Можно сразу в правильный раздел писать, чтобы не создавать гемор модераторам;)


я знаю, что я ничего не знаю
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя stefkone
сообщение 30.11.2013, 19:46
Сообщение #13


Иконка группы

Стаж: 19 лет

Сообщений: 1711
Благодарностей: 1130
Полезность: 1068

Цитата(insamez @ 30.11.2013, 19:45) *
Можно сразу в правильный раздел писать, чтобы не создавать гемор модераторам;)

Будто я это специально сделал.

С плагином мне помогли, если кому нужен выкладываю ниже


Код:
#include <amxmodx>

#define PLUGINNAME "Kill Distance (mod)"
#define VERSION "0.3"
#define AUTHOR "Nightscream"

const Float:modMeter = 32.00
new iPlayerShow[33]

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

register_event( "DeathMsg", "Event_Death", "a" )
register_clcmd("say /distance", "OnOff")
}

public Event_Death(id)
{
new iAttackerID = read_data(1)
new iVictimID = read_data(2)

if( !is_user_connected( iAttackerID ) || iVictimID == iAttackerID )
return

new nameA[33]
new nameV[33]
get_user_name( iAttackerID, nameA, 32 )
get_user_name( iVictimID, nameV, 32 )

new origin1[3]
new origin2[3]
get_user_origin( iAttackerID, origin1 )
get_user_origin( iVictimID, origin2 )

new distance = floatround( get_distance(origin1,origin2) / modMeter )

if(iPlayerShow[iAttackerID])
{
client_print( iAttackerID, print_chat, "Вы убили %s с расстояния %d метров", nameV, distance )
}

if(iPlayerShow[iVictimID])
{
client_print( iVictimID, print_chat, "Вас убил %s с расстояния %d метров", nameA, distance )
}
}

public OnOff(id)
{
if(!iPlayerShow[id])
{
iPlayerShow[id] = true
client_print(id, print_chat, "Distance on")
}else{
iPlayerShow[id] = false
client_print(id, print_chat, "Distance off")
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 1.12.2013, 8:13
Сообщение #14
Стаж: 14 лет
Город: Moscow

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

Хорошо, что выложили конечный вариант!
Плохо - что удаляете комментарии из кода. Они делаются не просто так: это пояснения для скриптеров (и вообще разбирающихся людей) + указание авторства или credits. Комментарии не попадают в скомпилированный плагин и никак на нём не сказываются. Удаляя их и распространяя плагины без них вы лишаете скриптеров подсказок, облегчающих чтение кода либо поясняющих внесённые изменения, а также нарушаете условия лицензии. И то, и другое - без всякой необходимости) Когда-нибудь вам это может выйти боком: в случае проблем из-за багнутой правки, про которую вы забудете, плагин могут ошибочно посчитать дефолтным и проверенным поколениями; также не всем скриптерам понравится удаление их авторства/credits и в будущем они не захотят помогать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Safety1st
сообщение 22.12.2013, 19:53
Сообщение #15
Стаж: 14 лет
Город: Moscow

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

Тут на аленях проскочила инфа, что в 1 метре 39 юнитов.
Тогда в Kill Distance надо поправить:
Код
const Float:modMeter = 39.00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя HoHoL
сообщение 5.3.2014, 18:24
Сообщение #16


Иконка группы

Стаж: 14 лет

Сообщений: 962
Благодарностей: 918
Полезность: 1174

Меценат Меценат

Извиняюсь , что тему поднял , но интересует как заставить плагин высчитывать десятые и сотые расстояния . К примеру плагин в любом случае показывает или 1 или 2 метра , а нужно более точная инфа 1.5 , 1.23 , 1.65 , 0.60 ...
Кто нибудь подскажет ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Esecman
сообщение 5.3.2014, 19:16
Сообщение #17
Стаж: 12 лет

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

Цитата(HoHoL @ 5.3.2014, 19:24) *
Извиняюсь , что тему поднял , но интересует как заставить плагин высчитывать десятые и сотые расстояния . К примеру плагин в любом случае показывает или 1 или 2 метра , а нужно более точная инфа 1.5 , 1.23 , 1.65 , 0.60 ...
Кто нибудь подскажет ?

type float
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 6.3.2014, 1:21
Сообщение #18
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

не то

%.f десятые доли

либо %.2f сотые доли



go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 6.3.2014, 1:29
Сообщение #19
Стаж: 14 лет
Город: Moscow

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

Вот версия с сотыми долями:
Прикрепленный файл  kill_distance_mod.sma ( 1,76 килобайт ) Кол-во скачиваний: 277

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Flopik
сообщение 19.5.2014, 18:53
Сообщение #20
Стаж: 12 лет
Город: Работа

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

Цитата(Safety1st @ 6.3.2014, 1:29) *
Вот версия с сотыми долями:
Прикрепленный файл  kill_distance_mod.sma ( 1,76 килобайт ) Кол-во скачиваний: 277

Здравствуйте, а можете (если вам не сложно) сделать чтобы показывало жизни убийцы, убитому, а то я пытался сделать и у меня постоянно показывало 0 жизней?
Заранее спасибо!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: