 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Когда игрок сам умирает
| |
| 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; } Странно что оно работает Строка отмеченная красным явно лишняя
MusicSig vkontakte - расширение функционала ВКонтакте для Google Chrome
|
| |
|
|
|
 |
|
 | |
| |
|