05:03
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: Alcoholik  
Когда игрок сам умирает
DRAgoONoNДата: Воскресенье, 02.03.2008, 17:18 | Сообщение # 1
Советчик
Группа: Продвинутые
Сообщений: 1149
Награды: 2
Город: Одесса
Репутация: 102
Замечания: 0%
Статус:
Помогите, у меня в моде когда игрок сам умирает то не показывается справа экрана в убийствах:
Code
public OnPlayerDeath(playerid, killerid, reason)
{
new KillSpreeName[30], ksmsg[256] ;
if(GetPlayerScore(killerid) ==25)
{
GetPlayerName(killerid, KillSpreeName, 30);
SendClientMessageToAll(COLOR_RED,"____________________________");
format(ksmsg, 256, " %s киллер, он убил 25 игроков!", KillSpreeName);
SendClientMessageToAll(GetPlayerColor(killerid), ksmsg);
}
else if(GetPlayerScore(killerid) ==50)
{
GetPlayerName(killerid, KillSpreeName, 30);
SendClientMessageToAll(COLOR_RED,"____________________________");
format(ksmsg, 256, " %s профи, он убил 50 игроков!", KillSpreeName);
SendClientMessageToAll(GetPlayerColor(killerid), ksmsg);
}
else if(GetPlayerScore(killerid) ==75)
{
GetPlayerName(killerid, KillSpreeName, 30);
SendClientMessageToAll(COLOR_RED,"____________________________");
format(ksmsg, 256, " %s монстр, он убил 75 игроков!", KillSpreeName);
SendClientMessageToAll(GetPlayerColor(killerid), ksmsg);
}
else if(GetPlayerScore(killerid) ==100)
{
GetPlayerName(killerid, KillSpreeName, 30);
SendClientMessageToAll(COLOR_RED,"____________________________");
format(ksmsg, 256, " %s машина для убийств, он убил 100 игроков!", KillSpreeName);
SendClientMessageToAll(GetPlayerColor(killerid), ksmsg);
}
MyDeaths[playerid]++;
MyKills[killerid]++;
if(killerid == INVALID_PLAYER_ID)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
GameTextForPlayer(playerid,"~r~WASTED",1500,1);
}
else
{
//...тут не важно...
//
// Убийства
if(gTeam[killerid] != gTeam[playerid])
{
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
GivePlayerMoney(killerid, 10000);
GivePlayerMoney(playerid, -1000);
GameTextForPlayer(killerid,"~r~OWNED",1500,1);
GameTextForPlayer(playerid,"~r~WASTED",1500,1);
}
else
{
// Убийства своих
TeamKills[killerid]++;
new string[256],plname[MAX_PLAYER_NAME];
GetPlayerName(killerid, plname, MAX_PLAYER_NAME);
format(string, sizeof(string), " %s нельзя убивать игроков из своей банды!", plname);
SendClientMessage(killerid, 0xFFFF00AA, string);
SendDeathMessage(killerid,playerid,reason);
GivePlayerMoney(killerid, -1000);
SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);
GameTextForPlayer(killerid,"~r~TEAM KILLER",5000,3);
teamkillcount[killerid]++;
if(teamkillcount[killerid] >= MAX_TEAMKILLS_FORJAIL)
{
SetPlayerPos(killerid,264.17,77.63,1001.04);
SetPlayerInterior(killerid,6);
ResetPlayerWeapons(playerid);
SetTimerEx("jailrelease",JAIL_TIME_LENGTH,0,"d",killerid);
IsPlayerInJail[killerid] = 1;
GivePlayerMoney(killerid, -2000);
}
if(teamkillcount[killerid] >= MAX_TEAMKILLS)
{
new teamkillername[30], tkmsg[256];
GetPlayerName(killerid, teamkillername, 30);
format(tkmsg, 256, " %s был кикнут с сервера за убийства игроков его банды!", teamkillername);
SendClientMessageToAll(COLOR_RED, tkmsg);
SendClientMessage(killerid, COLOR_RED, " Вы кикнуты с сервера за убийства игроков вашей банды!");
Kick(killerid);
}
}
}
return 1;
}
forward jailrelease(killerid);
public jailrelease(killerid)
{
SpawnPlayer(killerid);
SetPlayerInterior(killerid,0);
IsPlayerInJail[killerid] = 0;
ResetPlayerWeapons(killerid);
GivePlayerWeapon(killerid,24,300);
}



SAMP WIKI





Сообщение отредактировал DRAgoONoN - Воскресенье, 02.03.2008, 17:19
DarkByteДата: Воскресенье, 02.03.2008, 17:26 | Сообщение # 2
Долгожитель
Группа: Продвинутые
Сообщений: 1577
Награды: 7
Город: Челябинск
Репутация: 182
Замечания: 0%
Статус:
Чёта тут много всего, читать лень, вобщем в начале OnPlayerDeath добавь:
Code
    if (killerid == INVALID_PLAYER_ID) {SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);return 1;}



MusicSig vkontakte - расширение функционала ВКонтакте для Google Chrome
DRAgoONoNДата: Воскресенье, 02.03.2008, 18:01 | Сообщение # 3
Советчик
Группа: Продвинутые
Сообщений: 1149
Награды: 2
Город: Одесса
Репутация: 102
Замечания: 0%
Статус:
Есле вставляю то выдает много ошибок, а эти строки у меня есть:
Code
    }
     MyDeaths[playerid]++;
  MyKills[killerid]++;
  if(killerid == INVALID_PLAYER_ID)
  {
  SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
     GameTextForPlayer(playerid,"~r~WASTED",1500,1);
  }
  else
  {

Вот часть...так что не так ?



SAMP WIKI



DarkByteДата: Воскресенье, 02.03.2008, 18:15 | Сообщение # 4
Долгожитель
Группа: Продвинутые
Сообщений: 1577
Награды: 7
Город: Челябинск
Репутация: 182
Замечания: 0%
Статус:
Quote (DRAgoONoN)
Есле вставляю то выдает много ошибок, а эти строки у меня есть:
Вот часть...так что не так ?

Прогони код и посмотри что будет, допустим игрок с ид 0 убивает сам себя
public OnPlayerDeath(playerid==0, killerid==255, reason==0)
if(GetPlayerScore(killerid==255) ==25) // я бы на месте сампа вылетел с ошибкой Access violation
...
MyDeaths[playerid==0]++;
MyKills[killerid==255]++; // Если размер массива MyKills == MAX_PLAYERS то выход за границы массива, я бы опять вылетел
if(killerid == INVALID_PLAYER_ID)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
GameTextForPlayer(playerid,"~r~WASTED",1500,1);
}
...
if(gTeam[killerid==255] != gTeam[playerid==0]) // и опять выход за границы массива, gTeam
{

и дальше куча возможных проблем с выполнением действий над игроком с id:255
Просто вынести свою обработку (killerid == INVALID_PLAYER_ID) в начало функции и сделай в её конце return 1;


MusicSig vkontakte - расширение функционала ВКонтакте для Google Chrome

Сообщение отредактировал De[M]oN - Воскресенье, 02.03.2008, 18:15
DRAgoONoNДата: Воскресенье, 02.03.2008, 21:01 | Сообщение # 5
Советчик
Группа: Продвинутые
Сообщений: 1149
Награды: 2
Город: Одесса
Репутация: 102
Замечания: 0%
Статус:
Огромное спс теперь все работает и код выглядит так:
Code
public OnPlayerDeath(playerid, killerid, reason)
{
  if(killerid == INVALID_PLAYER_ID)
  {
  SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
     GameTextForPlayer(playerid,"~r~WASTED",1500,1);
     MyDeaths[playerid]++;
  MyKills[killerid]++;
  return 1;
  }
     new KillSpreeName[30], ksmsg[256] ;
  if(GetPlayerScore(killerid) ==25)
  {
  GetPlayerName(killerid, KillSpreeName, 30);
  SendClientMessageToAll(COLOR_RED,"____________________________");
  format(ksmsg, 256, " %s киллер, он убил 25 игроков!", KillSpreeName);
     SendClientMessageToAll(GetPlayerColor(killerid), ksmsg);
  }
  else if(GetPlayerScore(killerid) ==50)
  {
  GetPlayerName(killerid, KillSpreeName, 30);
  SendClientMessageToAll(COLOR_RED,"____________________________");
  format(ksmsg, 256, " %s профи, он убил 50 игроков!", KillSpreeName);
     SendClientMessageToAll(GetPlayerColor(killerid), ksmsg);
  }
  else if(GetPlayerScore(killerid) ==75)
  {
  GetPlayerName(killerid, KillSpreeName, 30);
  SendClientMessageToAll(COLOR_RED,"____________________________");
  format(ksmsg, 256, " %s монстр, он убил 75 игроков!", KillSpreeName);
     SendClientMessageToAll(GetPlayerColor(killerid), ksmsg);
     }
  else if(GetPlayerScore(killerid) ==100)
  {
  GetPlayerName(killerid, KillSpreeName, 30);
  SendClientMessageToAll(COLOR_RED,"____________________________");
  format(ksmsg, 256, " %s машина для убийств, он убил 100 игроков!", KillSpreeName);
     SendClientMessageToAll(GetPlayerColor(killerid), ksmsg);
  }
  else
  {

:)



SAMP WIKI





Сообщение отредактировал DRAgoONoN - Воскресенье, 02.03.2008, 21:12
DarkByteДата: Понедельник, 03.03.2008, 06:45 | Сообщение # 6
Долгожитель
Группа: Продвинутые
Сообщений: 1577
Награды: 7
Город: Челябинск
Репутация: 182
Замечания: 0%
Статус:
Quote (DRAgoONoN)
Огромное спс теперь все работает и код выглядит так:
public OnPlayerDeath(playerid, killerid, reason) {
if(killerid == INVALID_PLAYER_ID) {
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
GameTextForPlayer(playerid,"~r~WASTED",1500,1);
MyDeaths[playerid]++;
MyKills[killerid]++;
return 1;
}

Странно что оно работает crazy Строка отмеченная красным явно лишняя



MusicSig vkontakte - расширение функционала ВКонтакте для Google Chrome
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua