반응형
SAMP에서 무기의 이름을 반환하는 함수 코드입니다.
SAMP 모든 버전에서 사용 가능하고 Weapon ID에 따른 무기 이름을 제공하는 API가 없기 때문에 만들어야 합니다.
귀찮을 수도 있지만 다르게 응용하자면 주먹(ID:0)이 활성화 된 상태일 때 무기 이름을 다른 걸로 바꿀 수도 있겠죠.
아래 코드는 switch문으로 작성되었는데 Look-Up Table로 만들었으면 더 좋을 것 같네요.
서버 동시 접속 인원이 많으면 많아질수록 작은 부분에서도 신경을 많이 써야하거든요.
모드의 성격에 따라 다르겠지만 그렇게 자주 호출되는 함수도 아닐 것 같고 크게 부하 걸릴 부분도 없어보이네요.
Pawn에서 정적 변수가 있는지 모르겠지만 있다면 룩업테이블로 구현하는 게 좋아보여요.
요즘은 메모리 용량이 커져서 속도 증가를 위해서라면 메모리를 차라리 더 잡아먹는게 나으니까요.
stock GetWeaponName( weaponid )
{
new wName[16];
switch( weaponid )
{
case 0: wName = "주먹";
case 1: wName = "너클";
case 2: wName = "골프채";
case 3: wName = "곤봉";
case 4: wName = "나이프";
case 5: wName = "야구배트";
case 6: wName = "삽";
case 7: wName = "당구채";
case 8: wName = "카타나";
case 9: wName = "전기톱";
case 10..13: wName = "딜도";
case 14: wName = "꽃다발";
case 15: wName = "지팡이";
case 16: wName = "수류탄";
case 17: wName = "연막탄";
case 22: wName = "콜트";
case 23: wName = "소음총";
case 24: wName = "데저트이글";
case 25: wName = "샷건";
case 26: wName = "스완오브샷건";
case 27: wName = "컴뱃샷건";
case 28: wName = "우지";
case 29: wName = "MP5";
case 30: wName = "AK-47";
case 31: wName = "M4";
case 32: wName = "Tec9";
case 33: wName = "소총";
case 34: wName = "스나이퍼 라이플";
case 35: wName = "RPG";
case 36: wName = "히트시커";
case 37: wName = "화염방사기";
case 38: wName = "미니건";
case 39: wName = "가방폭탄";
case 40: wName = "폭파기";
case 41: wName = "스프레이";
case 42: wName = "소화기";
case 43: wName = "카메라";
case 44,45: wName = "고글";
case 46: wName = "낙하산";
case 49: wName = "차량사고";
case 50: wName = "헬기 프로펠러";
case 51: wName = "폭팔사고";
case 52: wName = "익사";
case 53: wName = "낙사";
case 255: wName = "오류";
default: wName = "N/A";
}
return wName;
}
반응형
'프로그래밍 > Pawn' 카테고리의 다른 글
[PAWN/SAMP] 특정 총기에 드라이브 바이 제한 걸기 (2) | 2012.11.19 |
---|---|
[PAWN/SAMP] 무기핵 방지 스크립트 (2) | 2012.11.19 |
[PAWN/SAMP] 유용한 사용자 정의 함수 정리 (2) | 2012.11.19 |
[PAWN/SAMP] 랭킹 알고리즘 (0) | 2012.11.19 |
[PAWN/SAMP] 사살한 플레이어의 이름을 화면에 표시하기 (0) | 2012.09.17 |