아래의 예제 : new String:Claws[MAX_CLAWS+1][PLATFORM_MAX_PATH]; new MaxClaws, Human_Knife, viewModelweaponindex[MAXPLAYERS+1]; public ZR_OnClientInfected(client, attacker, bool:motherInfect, bool:respawnOverride, bool:respawn) { if (!enabled) return; decl String:Weapon[32]; new ActiveWeapon = GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon"); GetEdictClassname(ActiveWeapon, Weapon, sizeof(Weapon));..
1 ) Event Death , Hurt 부분. Hurt나 Death 부분에서는 IsPlayerAlive 구문을 사용하지 말아야합니다 Death 에서는 더더욱입니다. 왜냐하면 Pre 후크부분에서는 부분적으로 먹히지만 언제죽었는지 체크가 안될때가 형성될수있거든요. 예를들어 이벤트가 죽고나서 발동할지 죽기전에 발동할지 모릅니다. 왜냐하면 ontakedamage에서 return handled를 둬 버리면 데미지가 안들어가지요. 그러나 이게 죽기전에 발동하는 이벤트로 처리되어 버리면 데미지가 들어가고나서 죽기전 체크가 되고 데미지를 다시 리턴 시킨다는 과정이 겹쳐버린다면 구조가 얽혀버리지요. 그래서 Isplayerconnected 까지만 쓰시면됩니다 Ingame도 쓰셔도 되고요. 2 ) SDK Hook 은 필요..
/* 오랫만에 강좌글이군요. 바로 들어가도록 합시다. 이번에는 유저에게 스킨을 씌우는건데요 이해에 맞게 Define을 사용하지않고 모델경로로 바로 사용하겠습니다. mdl 모델파일을 #define 변수 "경로" 로하여 쉽게 변수호출 가능합니다. */ #include #include // 꼭 해주셔야 해요. SetEntityModel 함수가 안에 있기 때문이에요!!! public OnMapStart() { HookEvent("player_spawn", Event_PlayerSpawn, EventHookMode_Pre); InitPrecache(); // 그저 함수 호출. } InitPrecache() { /* 왜 프리캐싱을 하고 다운로드를 하느냐? 프리캐싱은 꼭 필요한 작업입니다. 정의를 하자면, 미리 모델..