Вопрос по SendDeathMessage -
14_KaPaT - 09.09.2013
Здравствуйте, вот решил сделать такую штуку как в CS GO чтобы в килчате выводило не только того кто убил но и того кто дамажил по убитому. Сделал для начала такой вот набросок без проверок и прочего.
создал переменную на всех игроков далее в TakeDamage присваиваю стрелявшему ид игрока по которому он стрелял, после в OnPlayerDeath
PHP код:
/* new fkmessage[24];
new realplayername[MAX_PLAYER_NAME];
GetPlayerName(killerid,realplayername,sizeof(realplayername));
foreach(i) if(FriendKill[i] == playerid && i != killerid) format(fkmessage,sizeof(fkmessage),"%s+%s", pName(killerid),pName(i)), FriendKill[i]=-1; SetPlayerName(killerid,fkmessage);
SendDeathMessage(killerid,playerid,reason);
SetPlayerName(killerid,realplayername);
FriendKill[playerid]=-1;
}*/
В общем ищу игрока у которого на заданной мной переменной ид игрока который был убит, меняю ник killerid на ник killerid+ ник того кто дамажил вывожу сообщение в килчат и меняю обратно ник killerid на его прежний.
При тестировании сервер тупо вырубается когда игрока убивают двое, сначала я подумал что это такая реакция на символ + в килчате, но пробовал с _ тоже самое. Скажите что не так
Re: Вопрос по SendDeathMessage -
warlock02 - 10.09.2013
Идет отторжение инородных тканей сервером
Твоя система не прижилась.
Re: Вопрос по SendDeathMessage -
stabker - 10.09.2013
Слишком длинный ник получается, превышает лимит. А в массиве fkmessage недостаточно ячеек (из-за этого, видимо, и падает сервер).
Re: Вопрос по SendDeathMessage -
14_KaPaT - 10.09.2013
я делал и больше эффект тот же, поменял просто чтобы дописывало второй раз ник убившего, падать перестал, но не реагирует, как то странно id выводить можно, буквы дописывать к нику, а второй ник не дописывается, уже по всякому пробовал, ведь выводит в килчате длинные ники неоднократно видел, почему два ника не может вывести, по кол-ву символов одинаково, даже пробовал кол-во оставшегося hp у убившего отображать в килчате, не регирует на формат, только имя killerid выводит, как на автомате, игнорит изменение ника
Re: Вопрос по SendDeathMessage -
OKStyle - 12.09.2013
Приведите код с массивом мах_плеер_наме * 2 + 1 и знаком _ в имени
Re: Вопрос по SendDeathMessage -
stabker - 12.09.2013
Quote:
Originally Posted by OKStyle
Приведите код с массивом мах_плеер_наме * 2 + 1 и знаком _ в имени
|
Он все равно не сможет сделать игроку такое длинное имя, оно ведь ограничено в 24 символа
Re: Вопрос по SendDeathMessage -
lost13 - 14.09.2013
Quote:
Originally Posted by 14_KaPaT
Здравствуйте, вот решил сделать такую штуку как в CS GO чтобы в килчате выводило не только того кто убил но и того кто дамажил по убитому. Сделал для начала такой вот набросок без проверок и прочего.
создал переменную на всех игроков далее в TakeDamage присваиваю стрелявшему ид игрока по которому он стрелял, после в OnPlayerDeath
PHP код:
/* new fkmessage[24];
new realplayername[MAX_PLAYER_NAME];
GetPlayerName(killerid,realplayername,sizeof(realplayername));
foreach(i) if(FriendKill[i] == playerid && i != killerid) format(fkmessage,sizeof(fkmessage),"%s+%s", pName(killerid),pName(i)), FriendKill[i]=-1; SetPlayerName(killerid,fkmessage);
SendDeathMessage(killerid,playerid,reason);
SetPlayerName(killerid,realplayername);
FriendKill[playerid]=-1;
}*/
В общем ищу игрока у которого на заданной мной переменной ид игрока который был убит, меняю ник killerid на ник killerid+ ник того кто дамажил вывожу сообщение в килчат и меняю обратно ник killerid на его прежний.
При тестировании сервер тупо вырубается когда игрока убивают двое, сначала я подумал что это такая реакция на символ + в килчате, но пробовал с _ тоже самое. Скажите что не так
|
CS GO ? Это то о чем я думаю?