반응형
머리말
서든어택이라는 FPS게임을 해본 사람들은 알겠지만 적군을 연달아 사살했을 때 더블킬, 멀티킬 등 음성이 흘러나온다.
이러한 시스템은 살해자로 하여금 더 많은 킬을 하고 싶도록 영향을 끼치게 되고 이 또한 서든어택의 재미 요소 중 하나가 된다. SAMP에는 이러한 시스템이 없기에 모드메이커가 직접 구현해야 한다.
다른 계열의 모드보다 월등하게 킬이 빈번히 일어나는 데스매치 모드에는 넣어봄직 하다.
코드를 소개한다.
- new ContinueKill[MAX_PLAYERS];
- public OnPlayerConnect(playerid)
- {
- ContinueKill[playerid] = 0;
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- ContinueKill[playerid] = 0;
- ContinueKill[killerid]++;
- switch( ContinueKill[killerid] )
- {
- case 1: GameTextForPlayer(killerid, "~g~ nice shot", 5000, 6);
- case 2: GameTextForPlayer(killerid, "~g~ double kill", 5000, 6);
- case 3: GameTextForPlayer(killerid, "~g~ multi kill", 5000, 6);
- case 4: GameTextForPlayer(killerid, "~g~ ultra kill", 5000, 6);
- case 5: GameTextForPlayer(killerid, "~g~ great kill", 5000, 6);
- default: GameTextForPlayer(killerid, "~g~ fantastic", 5000, 6);
- }
- return 1;
- }
* 주석
1. 각각의 플레이어가 연속킬을 한 횟수를 저장할 전역변수이다.
5. 플레이어가 서버에 접속했을 때 해당 변수의 값을 초기화시킨다.
9. 플레이어가 사망했을 때 호출되는 콜백이며 playerid는 사망한 사람, killerid는 살해자, reason은 원인이다.
11. 플레이어가 사망하였으니 연속킬 횟수를 초기화시킨다.
12. 살해자의 연속킬 횟수를 증가시킨다.
13~21. 살해자의 연속킬 횟수에 따라 GameText를 그려준다.
반응형
'프로그래밍 > Pawn' 카테고리의 다른 글
[PAWN/SAMP] 사살한 플레이어의 이름을 화면에 표시하기 (0) | 2012.09.17 |
---|---|
[PAWN/SAMP] 플레이어에게 데미지를 주는 함수 만들기 (0) | 2012.06.06 |
[PAWN/SAMP] 팀채팅 구현하기 (2) | 2012.04.15 |
[PAWN/SAMP] 서버에 접속한 모든 플레이어들을 소환하기 (0) | 2012.04.11 |
[PAWN/SAMP] 미니맵에 맵아이콘(Map Icon) 표시하기 (2) | 2012.04.11 |