본문 바로가기
프로그래밍/Pawn

[PAWN/SAMP] 연속킬 효과 주기

by 알용 2012. 5. 3.
반응형

머리말

서든어택이라는 FPS게임을 해본 사람들은 알겠지만 적군을 연달아 사살했을 때 더블킬, 멀티킬 등 음성이 흘러나온다.
이러한 시스템은 살해자로 하여금 더 많은 킬을 하고 싶도록 영향을 끼치게 되고 이 또한 서든어택의 재미 요소 중 하나가 된다.  SAMP에는 이러한 시스템이 없기에 모드메이커가 직접 구현해야 한다.
다른 계열의 모드보다 월등하게 킬이 빈번히 일어나는 데스매치 모드에는 넣어봄직 하다.


코드를 소개한다.


  1. new ContinueKill[MAX_PLAYERS];
  2.  
  3. public OnPlayerConnect(playerid)
  4. {
  5.         ContinueKill[playerid] = 0;
  6.         return 1;
  7. }
  8.  
  9. public OnPlayerDeath(playerid, killerid, reason)
  10. {
  11.         ContinueKill[playerid] = 0;
  12.         ContinueKill[killerid]++;
  13.         switch( ContinueKill[killerid] )
  14.         {
  15.         case 1: GameTextForPlayer(killerid, "~g~ nice shot", 5000, 6);
  16.         case 2: GameTextForPlayer(killerid, "~g~ double kill", 5000, 6);
  17.         case 3: GameTextForPlayer(killerid, "~g~ multi kill", 5000, 6);
  18.         case 4: GameTextForPlayer(killerid, "~g~ ultra kill", 5000, 6);
  19.         case 5: GameTextForPlayer(killerid, "~g~ great kill", 5000, 6);
  20.         default: GameTextForPlayer(killerid, "~g~ fantastic", 5000, 6);
  21.         }
  22.         return 1;
  23. }



* 주석

1. 각각의 플레이어가 연속킬을 한 횟수를 저장할 전역변수이다.
5. 플레이어가 서버에 접속했을 때 해당 변수의 값을 초기화시킨다. 
9. 플레이어가 사망했을 때 호출되는 콜백이며 playerid는 사망한 사람, killerid는 살해자, reason은 원인이다.
11. 플레이어가 사망하였으니 연속킬 횟수를 초기화시킨다.
12. 살해자의 연속킬 횟수를 증가시킨다.
13~21. 살해자의 연속킬 횟수에 따라 GameText를 그려준다.


반응형