Вопрос по SendDeathMessage
#1

Здравствуйте, вот решил сделать такую штуку как в 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 на его прежний.
При тестировании сервер тупо вырубается когда игрока убивают двое, сначала я подумал что это такая реакция на символ + в килчате, но пробовал с _ тоже самое. Скажите что не так
Reply
#2

Идет отторжение инородных тканей сервером
Твоя система не прижилась.
Reply
#3

Слишком длинный ник получается, превышает лимит. А в массиве fkmessage недостаточно ячеек (из-за этого, видимо, и падает сервер).
Reply
#4

я делал и больше эффект тот же, поменял просто чтобы дописывало второй раз ник убившего, падать перестал, но не реагирует, как то странно id выводить можно, буквы дописывать к нику, а второй ник не дописывается, уже по всякому пробовал, ведь выводит в килчате длинные ники неоднократно видел, почему два ника не может вывести, по кол-ву символов одинаково, даже пробовал кол-во оставшегося hp у убившего отображать в килчате, не регирует на формат, только имя killerid выводит, как на автомате, игнорит изменение ника
Reply
#5

Приведите код с массивом мах_плеер_наме * 2 + 1 и знаком _ в имени
Reply
#6

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Приведите код с массивом мах_плеер_наме * 2 + 1 и знаком _ в имени
Он все равно не сможет сделать игроку такое длинное имя, оно ведь ограничено в 24 символа
Reply
#7

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 ? Это то о чем я думаю?
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)