April 29, 2005
¶À¤â¤Á
¶À¤â¤Á¥Ø¥ë¥¹¥Ñ¥Ã¥¯


¥¯¥ê¥Ã¥¯¤Ç³ÈÂç
¿ïʬ¤ÈÀΤ˺î¤Ã¤¿¤ä¤Ä¤Ç¡¢¤·¤«¤âµ¨Àá¤â¤«¤Ê¤ê°ã¤¤¤Þ¤¹¤¬°ì±þŽ¥Ž¥Ž¥¤È¤¤¤¦¤³¤È¤Ç¡£¥Ø¥ë¥¹¥Ñ¥Ã¥¯¤¬¶À¤â¤Á¤Ë¤Ê¤ê¤Þ¤¹¡£¤½¤ì¤À¤±¤Ç¤¹¡£Æ³Æþ¤Ïpk3¤òetmain¤«¤ª¹¥¤¤ÊMOD¥Õ¥©¥ë¥À¤ËÆþ¤ì¤Æ¤¯¤ì¤ì¤Ð¤ª¤·¤Þ¤¤¤Ç¤¹¡£
¥´¡¼¥ë¥Ç¥ó¥¦¥£¡¼¥¯¤È¤¤¤¦¤³¤È¤Ç¾®Î¹¹Ô¤Ø¤¤¤Ã¤Æ¤¤Þ¤¹v(^-^
Åê¹Æ¼Ô ikanatto : 11:10 AM | ¥³¥á¥ó¥È (0)
April 28, 2005
ETPRO 3.1.12 & 3.1.13 Features & Fixes ÏÂÌõ
ETPRO¤¬¿·¤·¤¯¤Ê¤Ã¤Æ²¿¤¬ÊѤï¤Ã¤¿¤Î¤«¡¢¤Ë¤Ä¤¤¤Æ¤òÏÂÌõ¤·¤Æ¤ß¤Þ¤·¤¿¡£Æä˿¿¿·¤·¤¤Éôʬ¤â¤Ê¤¯ÌÌÇò¤ß¤â¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¶½Ì£¤Ê¤É¤´¤¶¤¤¤Þ¤·¤¿¤é¤´¤é¤ó¤¯¤À¤µ¤¤¡£
ËÝÌõ¸µµÚ¤Óetpro¥À¥¦¥ó¥í¡¼¥É
¤Á¤Ê¤ß¤ËETPRO¤Î¥Ð¡¼¥¸¥ç¥óɽ¼¨¤Ë¤Ä¤¤¤Æ¤Ç¤¹¤¬¡¢°ìÈֺǽé¤Î¿ô»ú¤¬¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥ó¡¢¼¡¤¬¡Ö¥Ñ¥Ö¥ê¥Ã¥¯¸þ¤±¡×¤Î¥Þ¥¤¥Ê¡¼¥Ð¡¼¥¸¥ç¥ó¡¢ºÇ¸å¤¬³«È¯¥Á¡¼¥àÆâ¤ä¥Ù¡¼¥¿¤Ê¤É¤Ç¤Î¥Þ¥¤¥Ê¡¼¥Ð¡¼¥¸¥ç¥ó¡Ê¤Ä¤Þ¤êÀµ¼°¤Ç¤Ï¤Ê¤¤¡Ë¡¢¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¤³¤Î¸åbugfix x.x¤Ê¤ÉÆâÉô¥Ð¡¼¥¸¥ç¥ó¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
ETPRO Bug Fixes & Features
3.1.12
¥Ð¥°½¤Àµ¡¦¥Á¡¼¥ÈÂкö
cg_autoaction¤¬¥¹¥¯¥ê¡¼¥ó¥·¥ç¥Ã¥È¤ÎºÝ¤ËÀµ¾ï¤ËƯ¤«¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
opentimerinput¤Ï¥Þ¥¦¥¹¥Õ¥©¡¼¥«¥¹¤ò¤·¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£
Ũ¤ÎÉé½ý¤·¤¿¡ÊÊ¢¶ÚÃæ¤Î¡Ë¥×¥ì¥¤¥ä¡¼¤¬ÁÉÀ¸¤Î¾ã³²¤È¤Ê¤Ã¤Æ¤¤¤¿ÅÀ¤ò½¤Àµ¡£
¥ì¥Õ¥ê¡¼¤Ë¤è¤ë¹ß»²¤¬¸í¤Ã¤ÆÅêɼ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦ÅÀ¤ò½¤Àµ¡£
cg_teamchatsonly¤¬Á´ÂÎ¥Á¥ã¥Ã¥È¤ò¥Ö¥í¥Ã¥¯¤·¤Ê¤«¤Ã¤¿ÅÀ¤ò½¤Àµ¡£
shuffleteamsxp_norestart¤¬Åêɼ¥á¥Ë¥å¡¼¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿ÅÀ¤ò½¤Àµ¡£
¥Õ¥¡¥¤¥¢¥Á¡¼¥à¤Î¥¢¥¤¥³¥ó¤¬¼ã´³¤º¤ì¤Æɽ¼¨¤µ¤ì¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
cl_language¤¬ÊѤÊËÝÌõʸ¤òɽ¼¨¤·¤Æ¤¤¤¿ÅÀ¤ò½¤Àµ¡£
inviteall¤¬´û¤Ë¥Õ¥¡¥¤¥¢¥Á¡¼¥à¤ËÆþ¤Ã¤Æ¤¤¤ë¥×¥ì¥¤¥ä¡¼¤Ë¤â±Æ¶Á¤·¤Æ¤¤¤¿ÅÀ¤ò½¤Àµ¡£
etpro¤Î¥¢¥ó¥Á¥é¥°µ¡Ç½¤¬¸þ¾å¡£
Á´¤Æ¤ÎÉð´ï¤Îȯ¼ÍΨ¤È¥ª¡¼¥Ð¡¼¥Ò¡¼¥È¤ÏFPS¤Ë°Í¸¤·¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
b_fallingbugfix 1¤Ï¥Õ¥§¥¤¥¯¥Ö¥é¥·¤ò̵»ë¤·¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£
¥Õ¥¡¥¤¥¢¥Á¡¼¥à¤Î¥¢¥¤¥³¥ó¤Ïb_fireteamAlpha¤Ë½¾¤Ã¤ÆÀßÄꤵ¤ì¤Þ¤¹¡£
oasis¤Î¥¹¥¯¥ê¥×¥È¤¬½¤Àµ¤µ¤ì¤Þ¤·¤¿¡£
¥Á¥ã¥Ã¥ÈÃæ¤Ç¤ÎÃÏ̾¤Ï¿§¤¬ÊѤï¤é¤Ê¤«¤Ã¤¿ÅÀ¤ò½¤Àµ¤·¤Þ¤·¤¿¡£
Éé½ý¤·¤¿CVOPS¤¬Áê¼ê¤ÎÉþ¤òÃ¥¤¨¤¿ÅÀ¤ò½¤Àµ¡£
·ìº¯¤¬¥¯¥é¥Ã¥·¥å¤ª¤è¤Ó¥Ï¥ó¥°¤ò°ú¤µ¯¤³¤·¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
¥×¥ì¥¤¥ä¡¼¤¬¥ê¥ó¥Ü¡¼¤Ë¤Ê¤Ã¤¿¾õÂ֤Ǥâ»àÂΤ¬¼ÍÀþ¤ò¼×¤Ã¤Æ¤¤¤¿ÅÀ¤ò½¤Àµ¡£
cg_teamchatsonly¤¬¥Õ¥¡¥¤¥¢¥Á¡¼¥à¥Á¥ã¥Ã¥È¤ò¥Õ¥£¥ë¥¿¡¼¤·¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
Known bugs:
None
3.1.13
¥Ð¥°½¤Àµ¡¦¥Á¡¼¥ÈÂкö
¥µ¡¼¥Ð¡¼¤¬¥¯¥é¥Ã¥·¥å¤¹¤ëÌäÂê¤ò½¤Àµ¡£
clientkick¤¬°Û¤Ê¤ë¥¯¥é¥¤¥¢¥ó¥È¤ò½³¤ê¤À¤·¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
¸í¤Ã¤Æ¥ì¥Õ¥ê¡¼¤¬XP SHUFFLE NO RESTART¤ò¥³¡¼¥ë¤·¤Æ¤·¤Þ¤¦ÌäÂê¤ò½¤Àµ¡£
¥Ý¡¼¥º¤ò¤«¤±¤¿¤È¤¤Î¥Ð¥°¤ò½¤Àµ¡£
¥À¥¤¥Ê¥Þ¥¤¥ÈÀßÃÖ¡¦²ò½ü¡¢¥ª¥Ö¥¸¥§¥¯¥È¶¯Ã¥¡¦Ã¥´Ô¤Î¥í¥°¤È¥¢¥Ê¥¦¥ó¥¹¤ò½¤Àµ¡£
b_wolfrof¤ÏRtCW¤Împ40¤ÈƱ¤¸È¯¼ÍΨ¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¿·µ¡Ç½
ET 2.60¤ËÂбþ¡Ê¤Ö¤Ã¤Á¤ã¤±2.60¤Ë¤Î¤ßÂбþ¡Ë¡£
Mac¤ËÂбþ¡£
¥¢¥ó¥Á¥ê¥³¥¤¥ë¤È¥»¥ó¥¿¡¼¥Ó¥å¡¼¥¹¥¯¥ê¥×¥È¤â´¶ÃβÄǽ¡£
¥Ò¥Ã¥È¥µ¥¦¥ó¥É¤ÏÉð´ï¤Ë¤è¤Ã¤ÆÌĤëÌĤé¤Ê¤¤¤¬·è¤Þ¤ê¤Þ¤¹¡£
/guids¤Ï¥¹¥¯¥ê¥×¥È²òÀϤΤ¿¤á¤Ë¥Ø¥Ã¥À¡¼¤È¥Õ¥Ã¥¿¡¼¤ò½ÐÎϤ·¤Þ¤¹¡£
freecamSetPos¤Ï¼¡¤ÎÆó¼ïÎà¤Î¹½Ê¸¤Ë¤è¤ë»ÈÍѤ¬²Äǽ¤Ç¤¹¡£
freecamSetPos x y z
freecamSetPos x y z pitch yaw roll
b_noactivatelean¤Ë¤è¤Ã¤Æactivate¤Èstrafe¤ÎƱ»þ²¡¤·¤Çlean¤Ë¤Ê¤ë¤³¤È¤òÍÞÀ©¤Ç¤¤Þ¤¹¡£
b_drawspectatorteamflags¤Ë¤è¤Ã¤Æ¥¹¥Ú¥¯¥Æ¥¤¥¿¡¼ÃæHUD¤Ë¥Á¡¼¥à¤Î´ú¤òɽ¼¨¤Ç¤¤Þ¤¹¡£
b_flushitems for ground-oriented items (medpacks, ammopacks)
b_simpleitems by fretn
surrender¡Ê¹ß»²¡Ë¤¬¥³¡¼¥ë¤Ç¤¤Þ¤¹¡£¡Êvote_allow_surrender¤Ë¤è¤Ã¤Æµö²ÄÉÔµö²Ä¡Ë
¥³¥ó¥½¡¼¥ë¤«¤é¥×¥é¥¤¥Ù¡¼¥È¥á¥Ã¥»¡¼¥¸¤¬Á÷¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
shuffleteamsxp_norestart¤¬Äɲ䵤졢¥Þ¥Ã¥×¤ò¥ê¥¹¥¿¡¼¥È¤¹¤ë¤³¤È¤Ê¤¯¥·¥ã¥Ã¥Õ¥ë¤¬²Äǽ¤Ç¤¹¡£
fireteam inviteall¤Ï¥Õ¥¡¥¤¥¢¥Á¡¼¥à¤ËÆþ¤Ã¤Æ¤¤¤Ê¤¤Á´¤Æ¤Î¿Í¤ò¾·ÂÔ¤·¤Þ¤¹¡£
fireteam invite¤ÏÎ¥¤ì¤¿Ì¾Á°¤Ë¤âÂбþ¤·¤Þ¤¹¡£
¼êÜØÃƤò»ý¤Ã¤¿¾õÂÖ¤Çaltweapon¤¹¤ë¤Èvsay_team FireInTheHole¤ÈƱ¤¸Æ°ºî¤ò¤·¤Þ¤¹¡£
ÁȤ߹þ¤ß¼°¥¹¥Ñ¥¦¥ó¥¿¥¤¥Þ¡¼
/timerSet¤ÇÀßÄꤷ¤Þ¤¹¡£
/openTimerInput¤Ë¤è¤Ã¤Æ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò³«¤¤Þ¤¹¡£
/resetTimer¤Ç¥ê¥»¥Ã¥È¤·¤Þ¤¹¡£
New headbox code
¿·¤·¤¤¥Ø¥Ã¥É¥Ò¥Ã¥È¥Ü¥Ã¥¯¥¹¥³¡¼¥É
b_realhead 1¤Ë¤è¤Ã¤Æ¿·¤·¤¤¥³¡¼¥É¤òŬÍѤǤ¤Þ¤¹¡Ê+256,+512,+1024,+2048¤òÄɲ乤뤳¤È¤Ç¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤Ë¤Ê¤ê¤Þ¤¹¡Ë¡£
Ãí°Õ£±¡§Éú¤»¤¿¾õÂ֤ǤΥܥǥ£¤Î¥Ü¥Ã¥¯¥¹¤Ï¥Ò¥Ã¥È¤Ç¤Ï¤Ê¤¯¾×ÆÍȽÄê¤Î¤¿¤á¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤Î¤Ç¸í¤Ã¤Æɽ¼¨¤µ¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
Ãí°Õ£²¡§¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤ËÆþ¤Ã¤¿¤é¡¢g_smoothclients 0¤â»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤Ç¤Ê¤¤¤È¥Ç¥Ð¥Ã¥°¥Ü¥Ã¥¯¥¹¤Îɽ¼¨¤¬ÊѤˤʤ뤫¤â¤·¤ì¤Þ¤»¤ó¡£
Location names
°ÌÃÖ̾ɽ¼¨µ¡Ç½¤òÁ´ÌÌŪ¤Ë¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¥¯¥é¥¤¥¢¥ó¥È¤Ï
ɸ½à6¥Þ¥Ã¥×¤Ë¤Ä¤¤¤Æ¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç°ÌÃÖ̾¥Õ¥¡¥¤¥ë¤ò´Þ¤á¤Æ¤¤¤Þ¤¹¡£
°ÌÃÖɽ¼¨¤Ë´Ø¤¹¤ë¥³¥Þ¥ó¥É
loc_add , loc_del (operates on closest), loc_rename (closest), loc_save [full], loc_load, loc_show (closest).
Cvars:
b_emptyscript
ºÇ¸å¤Î¥×¥ì¥¤¥ä¡¼¤¬¥µ¡¼¥Ð¡¼¤«¤éÈ´¤±¤¿¤È¤¤Ë»ØÄꤷ¤¿¥¹¥¯¥ê¥×¥È¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
b_defaultbantime x -
ÌÀ³Î¤Ê»þ´ÖÀßÄê¤òɬÍפȤ·¤Ê¤¤ban»þ´Ö¤òÉäÇÀßÄꤷ¤Þ¤¹¡£¡Ê¥Ç¥Õ¥©¥ë¥È300ÉáË
b_wolfrof x -
SMG¤Î»þ´ÖÅö¤¿¤êȯ¼ÍΨ¤òÊѹ¹¤·¤Þ¤¹¡£0¤ÏETɸ½à¤Îȯ¼ÍΨ¡Ê¥Ç¥Õ¥©¥ë¥È¡Ë¡¢1¤ÇRTCW¤Î(mp40)ȯ¼ÍΨ¤Ë¤Ê¤ê¤Þ¤¹¡£
b_shrug x -
/shrug¤ò͸ú̵¸ú¤Ë¤¹¤ë¤«¤Ç¤¹¡£0¤Ç̵¸ú¡Ê¥Ç¥Õ¥©¥ë¥È¡Ë¡¢1¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤¹¡£
b_distancefalloff x -
µ÷Î¥¤Ë¤è¤ë¥À¥á¡¼¥¸¸º¾¯¤Î͸ú̵¸ú¡£0¤Ï¤Ê¤·¡¢1¤Ï͸ú¡Ê¥Ç¥Õ¥©¥ë¥È¡Ë¡£
b_locationMode x -
°ÌÃÖɽ¼¨¤Ë´Ø¤¹¤ëÀßÄê¤Ç¤¹¡£0¤Ç̵¸ú¡¢1¤Ç°ÌÃÖ¤Î̾Á°¤òɽ¼¨¡¢2¤ÏºÂɸ¤òɽ¼¨¡¢4¤ÏPVS¤Î¥Á¥§¥Ã¥¯¤Ê¤·¡¢8¤Ï°ÌÃÖ̾¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿»þ¤ËºÂɸ¤òÊÖ¤¹¤³¤È¤òÍÞÀ©¤·¤Þ¤¹¡£
b_debuglocations x (cheat) -
°ÌÃÖɽ¼¨¤Ë´Ø¤¹¤ë¥Ç¥Ð¥Ã¥°É½¼¨¤ÎÀßÄê¤Ç¤¹¡£1¤Ï°ÌÃÖ¥Þ¡¼¥«¡¼¤ËË¢¥¹¥×¥é¥¤¥È¤òɽ¼¨¤·¤Þ¤¹¡£¡ÊÎСáºÇû¡¢À֡᤽¤ì°Ê³°¡Ë¡£2¤Ï1¤¬Ë¢¤Ç¤Ï¤Ê¤¯¸÷¤Ë¤Ê¤ê¤Þ¤¹¡£4¤Ï¥Þ¡¼¥«¤Î¾å¤Ë̾Á°¤òɽ¼¨¤·¤Þ¤¹¡£8¤Ï¾¤Î¥×¥ì¥¤¥ä¡¼¤Ë¤è¤ë°ÌÃÖÊѹ¹¤ò¼õ¤±Æþ¤ì¤Þ¤¹¡£16¤Ï¾¤Î¥×¥ì¥¤¥ä¡¼¤Ø°ÌÃÖ¾ðÊó¤òÁ÷¤ê¤Þ¤¹¡£
Åê¹Æ¼Ô ikanatto : 04:46 PM | ¥³¥á¥ó¥È (13)
April 27, 2005
Urban Terror for Enemy Territory FAQ
ET:UrT FAQ
Urban Terror for Enemy Territory¤Ë´Ø¤¹¤ëFAQ¤òÏÂÌõ¤·¤Æ¤ß¤Þ¤·¤¿¡£ÂÔ¤Á±ó¤·¤¯¤Æ»ÅÊý¤¬¤Ê¤¤»ä¤È¤¢¤Ê¤¿¡¢¤·¤Ð¤é¤¯¤ÏÈàÅù¤Î´èÄ¥¤ê¤ò¸«¼é¤ê¤Ä¤ÄET¤òÍ·¤Ó¤Þ¤·¤ç¤¦¡£¤½¤â¤½¤âÈàÅù¤Ï¼ñÌ£¤Ç¤ä¤Ã¤Æ¤¤¤ë¤À¤±¤Ê¤Î¤Ç¶¯ÍפǤ¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ç¤â¤Ç¤¤ë¤À¤±Á᤯ºî¤Ã¤ÆÍߤ·¤¤¤È´ê¤¦¤Î¤Ï¿Í¤Î¥µ¥¬¤Ç¤·¤ç¤¦¤«¡£
Urban Terror for Enemy Territory FAQ
άµ¡§UrT(Urban Terror) ET(Enemy Territory) SD(Splash Damage) Q3(Quake 3 Arena) CoD(Call of Duty)
URBAN TERROR FOR ENEMY TERRITORY FAQ(update 04-08-04)
ET¤Ã¤Æ²¿¤Ç¤¹¤«¡£
¥¦¥ë¥Õ¥§¥ó¥·¥å¥¿¥¤¥ó¥·¥ê¡¼¥º¤ÎºÇ¿·ºîÉʤǤ¹¡£Allies¤ÈAxis¤ËÊ̤졢¤Ä¤Ê¤¬¤ê¤Î¤¢¤ë¥Þ¥Ã¥×·²¤òÀ襤¤Ì¤¯¤â¤Î¤Ç¤¹¡£
UrT¤Ï¥¹¥¿¥ó¥É¥¢¥í¥ó¤Ç¤¹¤«¡£
id software¤È¶¨µÄ¤·¤¿·ë²Ì¥¹¥¿¥ó¥É¥¢¥í¥ó¤Ë¤Ï¤Ê¤ê¤Þ¤»¤ó¡£ET¤ÈUrT¤òÊÌ¡¹¤ËƳÆþ¤·¤Æ¤¯¤À¤µ¤¤¡£
ÈÒÉÛ¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ï¤É¤ì¤¯¤é¤¤¤Ë¤Ê¤ê¤½¤¦¤Ç¤¹¤«¡£
Ìó260MB¤Ë¤Ê¤ê¤½¤¦¤Ç¤¹¡£
Macintosh¤Ë¤âÂбþ¤·¤Þ¤¹¤«¡£
º£¤Î¤È¤³¤íÂоݳ°¤Ç¤¹¡£¤·¤«¤·¥³¡¼¥À¡¼¤¬SD¤ÈÏä·¹ç¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢·ë²Ì¤¬½Ð¼¡ÂèÄɤäÆWeb¤Çȯɽ¤·¤Þ¤¹¡£
ET:UT¤Ë¤Ï¥Þ¥Ã¥×¤¬¤¤¤¯¤Ä´Þ¤Þ¤ì¤Þ¤¹¤«¡£
12¸Ä¤òͽÄꤷ¤Æ¤¤¤Þ¤¹¡£¤³¤ÎÃæ¤Ë¤ÏAbbey2¡¢Casa¡¢Druglord3¡¢Prague¡¢Turnpike¤¬´Þ¤Þ¤ì¤Þ¤¹¡£
32¿Í°Ê¾å¤Î¥µ¡¼¥Ð¡¼¤òΩ¤Æ¤ë¤Î¤Ï¤¤¤«¤¬¤Ç¤·¤ç¤¦¤«¡£
¥×¥í¥°¥é¥àÌ̤ÇÌäÂê¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¥Þ¥Ã¥×¤¬16¿Í¤ò¾å¸Â¤Ë¥Ç¥¶¥¤¥ó¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç16¡Á20¤ò¸ÂÅ٤ˤ·¤¿Êý¤¬¤è¤¤¤Ç¤·¤ç¤¦¡£
¥¹¥È¥ì¥¤¥Õ¥¸¥ã¥ó¥×¤Î¤è¤¦¤Ë¡¢Q3¤ÈʪÍý±é»»¤ÏƱ¤¸¤Ç¤¹¤«¡£
¤Ï¤¤¡£
¾¤Î¥¨¥ó¥¸¥ó¤ËUrT¤ò°Ü¿¢Í½Äê¤Ï¤¢¤ê¤Þ¤»¤ó¤«¡£
¤¢¤ê¤Þ¤»¤ó¡£
Q3¤ÇETÈǤÎUrT¤ò¥×¥ì¥¤¤Ç¤¤Þ¤¹¤«¡£
¤Ç¤¤Þ¤»¤ó¡£
ET¥¨¥ó¥¸¥ó¤ÏŬÀڤʥ¹¥±¥ë¥È¥ó¥¢¥Ë¥á¡¼¥·¥ç¥ó¤¬¤Ê¤¤¤Î¤Ç¤Ï¡£
¿·¤¿¤Ê¥×¥ì¥¤¥ä¡¼¥â¥Ç¥ë¤òºî¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£Éð´ï¤â¥Þ¥Ã¥×¤â¥³¥ó¥Ð¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¥³¡¼¥É¤Ï»÷¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ç¤â2¥ö·î°Ê¾å¤«¤«¤ë¸«Ä̤·¤Ç¤¹¡£
TeamKill¤ÏET¤Î¤è¤¦¤Ë°·¤ï¤ì¤ë¤Î¤Ç¤·¤ç¤¦¤«¡£
3²óTK¤¹¤ë¤È¥µ¡¼¥Ð¡¼¤«¤é½³¤ê¤À¤µ¤ì¤Þ¤¹¡£
Á´¤Æ¤Îºî¶È¤¬½ª¤ï¤ë¤Þ¤Ç¤Ë6¥ö·îÄø¤«¤«¤ë¤Î¤Ç¤Ï¤È¸«¹þ¤ó¤Ç¤ª¤ê¤Þ¤¹¤¬¡£
º£¤Î¤È¤³¤í¾¯¤Ê¤¯¤È¤â3¥ö·î°Ê¾å¤«¤«¤ë¤â¤Î¤È¤ß¤Æ¤¤¤Þ¤¹¡£
Q3¤Ç¤Ï¤Ê¤¯ET¤Ë°Ü¹Ô¤¹¤ë¥á¥ê¥Ã¥È¤È¤Ï¡£
ºÇ½é¤Ë¤·¤ÆºÇÂç¤ÎÅÀ¤¬¡¢ET¤¬¥Õ¥ê¡¼¥¦¥§¥¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£
Q3¤è¤ê¤âÍ¥¤ì¤¿¥¨¥ó¥¸¥ó¤¬Åо줷¤¿»þUrT¤Ï¤É¤¦¤Ê¤ë¤Î¤Ç¤·¤ç¤¦¤«¡£
¥²¡¼¥à¥·¥¹¥Æ¥à¤¬Â礤¯ÊѤï¤ë¤³¤È¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¡£¤¿¤À¡¢¥Þ¥Ã¥×¡¢¥¢¥Ë¥á¡¼¥·¥ç¥ó¡¢¥Ò¥Ã¥ÈȽÄ꤬ÂçÉý¤Ë²þÎɤµ¤ì¤ë¤Ê¤É¤Ï´üÂÔ¤µ¤ì¤Þ¤¹¡£
ET:UT¤Ï¥Ñ¥ó¥¯¥Ð¥¹¥¿¡¼¤Î¥µ¥Ý¡¼¥È¤òÆÀ¤Þ¤¹¤«¡£
¤Ï¤¤¡£
ET:UT¤Ç¤Ï¥²¡¼¥à¥â¡¼¥É¤ÎÄɲõڤӺï½ü¤Ï¤¢¤ê¤Þ¤¹¤«¡£
¸½ºßÏä·¹ç¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢Äɲ䵤ì¤ë¸«¹þ¤ß¤Ï¤Ê¤µ¤½¤¦¤Ç¤¹¡£
ET¤Î¤è¤¦¤Ê¥¯¥é¥¹¤Î³µÇ°¤Ï¤¢¤ê¤Þ¤¹¤«¡£
¤½¤ÎͽÄê¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤â¤È¤â¤ÈUrT¤ÏÁªÂò¤¹¤ëÉð´ï¤ÈÁõÈ÷¤ÇÀ³Ê¤Å¤±¤¬²Äǽ¤Ç¤¹¤Î¤Ç¡¢²þ¤á¤ÆÄɲ乤ëɬÍפâ¤Ê¤¤¤Î¤Ç¤¹¡£
ET¤Î¥½¡¼¥¹¥³¡¼¥É¤¬GPL¥é¥¤¥»¥ó¥¹¤Ë¤Ê¤Ã¤¿¾ì¹ç¡¢UrT¤Î¥³¡¼¥É¤â¸ø³«¤µ¤ì¤Þ¤¹¤«¡£
¤¤¤¤¤¨¡£
CoD¤ËUrT¤Î°Ü¿¢¤·¤Æ¤¯¤ì¤Þ¤»¤ó¤«¡£
ET¤Ë°Ü¿¢¤¹¤ë¤¤Ã¤«¤±¤Ï¡¢id software¤ÈSD¤ÈÃ礬¤è¤«¤Ã¤¿¤³¤È¡¢¤½¤·¤Æ̵ÎÁ¤Ç¤¢¤ë¤³¤È¤Ç¤¹¡ÊCoD¤ÏInfinity Ward¤ÈÏ¢Íí¤ò¤È¤Ã¤Æ¤¤¤Ê¤¤¤¿¤áÌÌÅÝ¡Ë¡£
UrT¤òET¤Ø°Ü¿¢¤¹¤ë¤³¤È¤ÏSID¤Ë¤É¤Î¤è¤¦¤Ê±Æ¶Á¤ò¤â¤¿¤é¤·¤Þ¤¹¤«¡£
MODȯɽÅö½é¤è¤êid software¤ÈSD¡Ê¥¢¥Þ¥Á¥å¥¢¤Î¤³¤í¡Ë¤ÈÏ¢Íí¤ò¼è¤ê³¤±¤Æ¤¤¤Þ¤¹¡£UrT¤òET¤Ë°Ü¿¢¤¹¤ë¤³¤È¤Ç¤³¤ì¤ò¿¤¯¤Î¥²¡¼¥à¥³¥ß¥å¥Ë¥Æ¥£¤Ë¾Ò²ð¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£¤¹¤Ç¤Ë¤¤¤¯¤Ä¤«¤Î¾ÍèŪ¤Ê¥¿¥¤¥È¥ë¤Ë¸þ¤±¤¿¥¢¥¤¥Ç¥¢¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤ì¤ò¼Â¸½¤¹¤ëµ¡²ñ¤¬ÆÀ¤é¤ì¤Æ¤¤¤Ê¤¤¾õ¶·¤Ç¤¹¡£UrT¤Î°Ü¿¢¤Ë¤è¤ê¡¢¥¢¥¤¥Ç¥¢¤ò¼Â¸½¤µ¤»¤ë¤¿¤á¤ÎÀÜ¿¨¤¬ÆÀ¤é¤ì¤ë¤È¹Í¤¨¤Æ¤¤¤Þ¤¹¡£
Åê¹Æ¼Ô ikanatto : 06:37 PM | ¥³¥á¥ó¥È (16)
ETpro crashes ET servers and administrators
¡¡ÀèÆü¥ê¥ê¡¼¥¹¤µ¤ì¤¿ETPRO¡¢¥Ù¡¼¥¿ÈǤȤ¤¤¦³«È¯¼Ô¤Î°Õ¿Þ¤Ë¸Æ±þ¤·¤¿¤«¤Î¤è¤¦¤Ë³Æ½ê¤Ç¥¯¥é¥Ã¥·¥å¤òµ¯¤³¤·¤Æ¤¤¤ë¡£
¡¡¶ñÂÎŪ¤Ë²¿¤¬ÌäÂê¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ÏÄ꤫¤Ç¤Ï¤Ê¤¤¤¬¡¢º£¤Þ¤ÇÀµ¾ï¤Ë²ÔÆ°¤·¤Æ¤¤¤¿¥µ¡¼¥Ð¡¼¤¬Æä˥³¥ó¥Õ¥£¥°¤òÄ´À°¤¹¤ë¤³¤È¤â¤Ê¤¯Æ°¤«¤·¤Æ¤Î¥¯¥é¥Ã¥·¥å¤È¤¤¤¦¤³¤È¤ÇETPRO¼«ÂΤ¬¸¶°ø¤À¤í¤¦¤«¡£
¡¡¤¿¤À¤·¡¢¥¯¥é¥¤¥¢¥ó¥È¥µ¥¤¥É¤ÈWindows·Ï¤Ç¤Ï¤³¤ÎÌäÂê¤ÏÀ¸¤¸¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¢¤ë¡£¥¯¥é¥¤¥¢¥ó¥È¥µ¥¤¥É¤Ç¤Ï¥×¥ì¥¤¥ä¡¼¤ò¥¥Ã¥¯¤¹¤ëµ¡Ç½¤Ë¥Ð¥°¤¬¤¢¤ë¤è¤¦¤À¤¬¡¢¤½¤ì°Ê³°¤Ï¤ª¤ª¤à¤ÍÌäÂê¤Ê¤¯µ¡Ç½¤·¤Æ¤¤¤ë¡£¤¿¤À¤·¡¢µ¡Ç½¤¬¥Ð¥é¥ó¥¹¤òÊÝ»ý¤·¤Æ¤¤¤ë¤«¤ÏÊÌÌäÂê¤Ç¤¢¤ê¡¢ROF¤Ê¤É¥²¡¼¥àÀ¤òÊѲ½¤µ¤»¤ë¥Õ¥£¡¼¥Á¥ã¡¼¤Ë´Ø¤·¤Æ¤Ï(¡©)¤Ç¤¢¤ë¡£RtCW¤Ë¤ÏRtCW¤Î¡¢ET¤Ë¤ÏET¤ÎÌ£¤¬¤¢¤ë¤Î¤Ç¤Ï¤Ê¤«¤í¤¦¤«¡£
¡¡[N]¤µ¤ó¤Î²Ë¤Ä¤Ö¤·¥µ¡¼¥Ð¤âÎã³°¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ç¡¢´û¤ËET2.56¤Ø¥Ð¡¼¥¸¥ç¥ó¤òº¹¤·Ìᤷ¤Æ¤¤¤ë¡£Á°¥Ð¡¼¥¸¥ç¥ó¤¬Èó¾ï¤Ë°ÂÄê¤Ç¤¢¤Ã¤¿¤À¤±¤Ëº£²ó¤ÎÁûÆ°¤ÏÈó¾ï¤Ë»ÄÇ°¤Ç¤¢¤ë¡£
¡¡³ÆÃϤΥե©¡¼¥é¥à¤ò¸«¤Æ²ó¤Ã¤¿¸Â¤ê¡¢¥¯¥é¥Ã¥·¥å¤òµ¯¤³¤·¤Æ¤¤¤ë¿¤¯¤¬Linux·ÏDedicated¡£¥í¥°¤ò³Îǧ¤¹¤ë¤È¡¢ÂçÄñ¤Î¾ì¹ç¥¤¥ó¥¿¡¼¥ß¥Ã¥·¥ç¥ó¤ò½ª¤¨¤Æ¥¥ã¥ó¥Ú¡¼¥ó¤Ê¤¤¤·¥Þ¥Ã¥×¤òÆɤ߹þ¤ß¤Ê¤ª¤¹»þ¤Ë¥¯¥é¥Ã¥·¥å¤¬À¸¤¸¤Æ¤¤¤ë¤è¤¦¤Ç¤¢¤ë¡£¤Þ¤¿¥Þ¥Ã¥×½ªÎ»»þ¤Ë½ÐÎϤµ¤ì¤ë¥ê¥¶¥ë¥È¤â¼ã´³É½¼¨¤¬¤ª¤«¤·¤¤¤³¤È¤âÊó¹ð¤µ¤ì¤Æ¤¤¤ë¡£³«È¯¼Ô¦¤Î¹Í¤¨¤Ç¤Ï¥Ñ¥ó¥¯¥Ð¥¹¥¿¡¼¤È¤ÎÁêÀÉÔÎɤˤè¤Ã¤ÆÀ¸¤¸¤Æ¤¤¤ë¤é¤·¤¤¡£
Åê¹Æ¼Ô ikanatto : 05:45 PM | ¥³¥á¥ó¥È (13)
April 26, 2005
ETpro available for ver 2.60
ET Pro 3.1.12
ETPRO¤Î2.60ÂбþÈǤ¬¥Ù¡¼¥¿¤Ê¤¬¤é½Ð¤¿¤è¤¦¤Ç¤¹¡£
¥Ð¡¼¥¸¥ç¥ó¤ÏET Pro 3.1.12 ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
Â礤ÊÌäÂê¤Ï¤Ê¤¤¤è¤¦¤Ç¤¹¤¬¡¢¥µ¡¼¥Ð¡¼¤ËµÏ¿¤µ¤ì¤ë¥í¥°¤¬Àµ¾ï¤Ë½ÐÎϤµ¤ì¤Ê¤¤ÌÏÍͤǤ¹¡£
Readme Overview
¥Ð¥°¥Õ¥£¥Ã¥¯¥¹¤Ê¤É¤ÏÆÃÉ®¤¹¤Ù¤Éôʬ¤Ï¾¯¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£Ê¢¶ÚÃæ¤Î¥×¥ì¥¤¥ä¡¼¤¬ÁÉÀ¸¤ä¥À¥¤¥Ê¥Þ¥¤¥È²ò½ü¤Î¾ã³²¤È¤Ê¤ëÉôʬ¤¬½¤Àµ¤µ¤ì¤¿¤³¤È¤Ï¥Á¥§¥Ã¥¯¤¹¤ë¤Ù¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
2.60´°Á´Âбþ¤È¤¤¤¦¤³¤È¤ÇMac¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ÅöÁ³¤È¤¤¤¨¤ÐÅöÁ³¤Ç¤¹¡£
ÃíÌܤ¹¤Ù¤¤Ï¡¢¥ê¥³¥¤¥ë¥¥ã¥ó¥»¥ë¤È¥»¥ó¥¿¡¼¥Ó¥å¡¼¤Î¥¹¥¯¥ê¥×¥È¤âETpro¤Ë¤è¤Ã¤ÆÇÓ½ü²Äǽ¤Ë¤Ê¤Ã¤¿¤È¤¤¤¦¤È¤³¤í¤Ç¤·¤ç¤¦¤«¡£¸Ä¿ÍŪ¤Ë¤Ï¤³¤ì¤Ë¤Ï¤¢¤Þ¤ê»¿Æ±¤Ç¤¤Þ¤»¤ó¤¬¡¢É¬ÍפȤ¹¤ë¿Í¤â¤¤¤ë¤è¤¦¤Ê¤Î¤Ç¤è¤¦¤ä¤¯¡¢¤È¤¤¤Ã¤¿¤È¤³¤í¤Ç¤¹¡£¤¿¤ÀETPro¤¬²¿¤ò¥»¥ó¥·¥ó¥°¤·¤Æ¥¹¥¯¥ê¥×¥ÈȽÄê¤ò²¼¤·¤Æ¤¤¤ë¤Î¤«¤À¤¤¤¿¤¤Í½ÁۤϤĤ¯¤Î¤Ç¡¢¤³¤Î΢¤ò¤«¤¤¤¿¥¹¥¯¥ê¥×¥È¤¬¤¤¤º¤ìÅо줹¤ë¤ä¤â¤·¤ì¤Þ¤»¤ó¡£
Ƭ¤Î¥Ò¥Ã¥È¥Ü¥Ã¥¯¥¹¤Ë´Ø¤¹¤ë¥³¡¼¥É¤¬¤Þ¤¿ÊѤï¤Ã¤¿¤½¤¦¤Ç¤¹¡£¤É¤¦¤Ê¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤Í¡©
¥Þ¥Ã¥×¤Î°ÌÃÖ¤È̾¾Î¤òÊÌ¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤¹¤ë¤³¤È¤Ç´°Á´Âбþ¤µ¤»¤é¤ì¤ë¤è¤¦¤Ç¤¹¡£ÌÌÅݤǤ¹¤¬²ÁÃͤϤ¢¤ë¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¡£
¤¢¤È¤Ï¿·µ¬¤ËÄɲ䵤줿µ¡Ç½´Ø·¸¤ÎCvar¤¬¤¤¤¯¤Ä¤«¿·¤¿¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹¡£È¯¼ÍΨ¤òRtCW¤ËÊѹ¹¤¹¤ë¤â¤Î¤â¤¢¤ë¤è¤¦¤Ç¤¹¡£¤¢¤È¥µ¡¼¥Ð¡¼¤Ëï¤â¤¤¤Ê¤¯¤Ê¤Ã¤¿¤È¤¤Ë¥¹¥¯¥ê¥×¥È¤òÁö¤é¤»¤ëCvar¤âÄɲ䵤ì¤Æ¤¤¤Þ¤¹¡£¤Ê¤«¤Ê¤«¿´Áþ¤¤µ¡Ç½¤Ç¤¹¡£
°Ê²¼¤Ï¾åµ¥Õ¥©¡¼¥é¥à¤«¤é¤ÎžºÜ¤Ç¤¹¡£
Version 3.1.12 cg_autoaction was broken for screenshots opentimerinput doesnt get mouse focus enemy wounded could block team wounded for revive ref surrender menu callvoted by mistake cg_teamchatsonly didnt ignore public chats shuffleteamsxp_norestart was missing from vote menu fireteam objective icon was misaligned slightly cl_language could cause garbage translations inviteall tried to invite players already on a fireteam etpro unlagged accuracy increased all weapon rof / overheat are now completely fps independent b_fallingbugfix 1 no longer ignores fake brushes fireteam objective icon now obeys b_fireteamAlpha oasis script fixed (remove end of round delay after destroying both guns) location names didn't reset color in chats wounded covops could steal uniforms if close enough bloodtrail crash/hang fixed corpses could be "shot" after players tapped out cg_teamchatsonly incorrectly filtered fireteam chats New features: ET 2.60 support (in fact, 2.60 only) Mac OSX support Anti-recoil and centerview scripts defeated hitsounds are now generated for hitscan weapons only /guids now outputs a header/footer for easier script parsing freecamSetPos now supports two syntaxes: freecamSetPos x y z freecamSetPos x y z pitch yaw roll b_noactivatelean (default 0, disabled) to enable/disable strafe+activate=lean show team flag on hud while spectator following, b_drawspectatorteamflags to enable/disable b_flushitems for ground-oriented items (medpacks, ammopacks) b_simpleitems by fretn callvote surrender (vote_allow_surrender enables/disables) console can now send pm's shuffleteamsxp_norestart to shuffle teams without restarting the map 'fireteam inviteall' to invite all players on your team who arent already on a fireteam fireteam invite can now match on partial names altweapon while holding grenade will vsay_team FireInTheHole builtin spawntimer: /timerSet to set it (eg from a script) /openTimerInput for a ui popup /resetTimer to reset the timer New headbox code new headbox code, enabled through b_realhead 1 (+256,+512,+1024,+2048 enables various hitbox debugging modes) note: debugging body box for prone may "appear" wrong because its the box used for player collisions, not shots. note2: if you use one of the debugging modes, use g_smoothclients 0 as well, or the debugging boxes will "appear" wrong. Location names Added full location name support - client will attempt to load from_loc_override.dat (for user's own location names) followed by _loc.dat (for server-supplied location names in e.g. a pk3), and failing both, client will build locations from target_location entities in the map. Included rough draft versions of locations for all 6 stock maps. Quick summary of location code: Commands: loc_add , loc_del (operates on closest), loc_rename (closest), loc_save [full], loc_load, loc_show (closest). Cvars: b_emptyscript Name of a script to execute when the last player leaves the server b_defaultbantime x - Time in seconds for bans without explicitly defined ban time (default 300) b_wolfrof x - 0 = ET Standard SMG Rate of fire (default 1 = RTCW Standard SMG Rate of fire b_shrug x - 0 = Disable /shrug (default) 1 = Enable /shrug b_distancefalloff x - 0 = Disable distance damage falloff for bullet weapons 1 = Enable distance damage falloff for bullet weapons (default) b_locationMode x - 0 = Disabled 1 = Location names (Default) 2 = Location coordinates 4 = Don't check PVS when finding nearest location name 8 = Don't fall back on coordinates when no location found (return "unknown") b_debuglocations x (cheat) - 1 - Draw bubble sprites at location markers (green = nearest, red = others) 2 - Draw dlights at location markers (red = nearest, green = others) 4 - Float location names at location markers (currently no scaling) 8 - Accept location updates from other players 16 - Send location updates to other players 8 + 16 simply bounce the command to other players on a loc_add/del/rename, so that multiple people can work on marking up a level with location names.
Åê¹Æ¼Ô ikanatto : 12:17 AM | ¥³¥á¥ó¥È (21)
April 24, 2005
Conception of mds/mdm/mdx importer
MDS/MDM/MDX importer for 3ds max
This plan is still conceptional. I have done a little about this, scratching some ideas and learning c++ from c :p Arrrgg, Object orientation??? what the hell is this...
I cant even figure out how long this work takes till an available version comes. God may only know. Or even he doesn't.
What this plugin does
The final target of this plugin concept is free and easy input/output between 3ds max and ET(RtCW). There are some formats for ET and they have different import/export gateways. Yes, this is REALLY BOTHERING. One more thing I have to say, there is no tools to export/import mdm or mdx. Whoever should be blamed, this environment is sucked for all modders as wll as me.
Eh, simple reasons why I try this. Let you guess a sec.
Model Formats in ET
MD3 is a versatile format to the quale3-engine-based games and used for various things. In ET, MD3 is common object models for map objects, weapons(partly there are some MDCs), accesseries and so on. MD3 can include animations.
MDM is a mesh data however MDM itself can not be used as model data. Combination of MDM and MDX makes a model. MDM has only vertex weights and texture coordinates and tags. MDX has bones and thier animations. Normally most humans have same bones( i think you have two arms and legs, and a head, dont you? ) so ET handles one mdx to all models and saves memory.MDM and MDX are used for player models.
MDS is used in RtCW. In fact, MDS = MDM + MDX however tags are somewhat different. Still they are almost same. The problem of MDS is to consume quite memory. Each MDS has animation data, which is ordinally enormus. So loading many MDSes leadd to high memory consumption.
Åê¹Æ¼Ô ikanatto : 12:07 AM | ¥³¥á¥ó¥È (132)
April 22, 2005
W:ET¥½¡¼¥¹¥³¡¼¥ÉϯÆɲñ¡¡Ê䣲
Reading the Source Code of W:ET Appendix #2
The world of an 'Entity'
¤ß¤Ê¤µ¤ó¤³¤ó¤Ë¤Á¤Ï¡£°§»¢¤·¤Æ¤â¶²¤é¤¯Ã¯¤â¤³¤³¤ò¸«¤Æ¤¤¤Ê¤¤¤Î¤¬¼ä¤·¤¤¤È¤³¤í¤Ç¤¹¡£¤·¤«¤·¤á¤²¤º¤Ëº£²ó¤â¥½¡¼¥¹¥³¡¼¥É¤òÆɤó¤Ç¤¤¤¤Þ¤¹¡£
¤³¤Î²ó¤Ç¼è¤ê¾å¤²¤ë¤Î¤Ï¼ÂºÝ¤Î½èÍýÉôʬ¤Ç¤Ï¤Ê¤¯¡¢entity¤È¤¤¤¦¹½Â¤ÂΤǤ¹¡£Quake3¤Î¥³¡¼¥ÉÄ󶡤ò¼õ¤±¤Æ³«È¯¤µ¤ì¤¿¥²¡¼¥à¤Î¤Û¤ÜÁ´¤Æ¤Ï¤³¤Î¹½Â¤ÂΤâ·Ñ¾µ¤·¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤À¤±½ÅÍפÊÉôʬ¤È¤¤¤¦¤³¤È¤Ç¤¹¤«¤é¡¢¥½¡¼¥¹¥³¡¼¥É¤òÆɤàΩ¾ì¤Î²æ¡¹¤â¤³¤ì¤òÃΤäƤª¤¯É¬Íפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£
An Entity
entity¤È¤¤¤¦±Ññ¸ì¤Ï¤Ê¤«¤Ê¤«Ìܤˤ·¤Þ¤»¤ó¡£¼½ñ¤Ç°ÕÌ£¤òÄ´¤Ù¤ë¤È¡¢¡Ö¡Ê¼Âºß¤¹¤ë¡Ëʪ¡¨¡Ê¾¤«¤éÆÈΩ¤·¤¿¡Ë¸ºß¡Êʪ¡Ë¡×¤È¡¢¼Â¤Ë¤¢¤¤¤Þ¤¤¤Êµ½Ò¤Ë¤È¤É¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£»úÌ̤ò¤½¤Î¤Þ¤Þ²ò¼á¤¹¤ì¤Ð¡¢Íפ¹¤ë¤Ë²¿¤«¡Ö¤â¤Î¡×¤ò»Ø¤¹ÊØÍø¤Ê¸ÀÍդǡ¢thing¤Ë¶á¤¤¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£
Î㤨¤Ð¤¢¤Ê¤¿¤¬¼êÜØÃƤòÅꤲ¤Þ¤¹¤È¡¢gentity_t¤È¤¤¤¦·¿¤ò»ý¤Ã¤¿g_entitiesÇÛÎó¤ÎÃæ¤Î»È¤ï¤ì¤Æ¤¤¤Ê¤¤°ì¤Ä¤¬ÁªÂò¤µ¤ì¡¢¼êÜØÃƤξðÊ󤬽ñ¤¹þ¤Þ¤ì¤Þ¤¹¡£½ñ¤¹þ¤Þ¤ì¤ëÆâÍƤϡ¢°Üư®ÅÙ¡¢¸þ¤¡¢Åꤲ¤¿¿Í¡¢¥Ø¥ë¥¹¡¢ÃÆÀ¡¢Â礤µ¡¢¸«¤¿ÌÜ¡¢ßÚÎö¤·¤¿»þ¤Î²»¡¢¥À¥á¡¼¥¸ÎÌ¡¢ßÚÎöÈÏ°Ï¡¢Çúȯ¤¹¤ë¤Þ¤Ç¤Î»þ´Ö¡¢Çúȯ»þ´Ö¤Ë㤷¤¿»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤Ê¤É¤Ê¤É¡¢¤³¤Î¼êÜØÃƤ˴ؤ¹¤ë¤¢¤é¤æ¤ë¾ðÊ󤬳ÊǼ¤µ¤ì¤Þ¤¹¡£
Éð´ï¤Ë¸Â¤é¤º¡¢¥²¡¼¥àÃæ¤ËÅо줹¤ë¤Û¤ÜÁ´¤Æ¤Î¤â¤Î¤¬g_entities¤Ë¤è¤Ã¤Æ´ÉÍýÀ©¸æ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥×¥ì¥¤¥ä¡¼¤â¤½¤Î°ì¤Ä¤Ç¤¹¡Ê¸·Ì©¤Ë¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Ïentity¤Ë²Ã¤¨¤Æplayerstate_t¤Ê¤É¤ò´Þ¤àgclient_t¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤Þ¤¹¡Ë¡£
·ë¶É¤Î¤È¤³¤í¡¢entity¤È¤Ï¤Ä¤Þ¤ê²¿¤Ç¤â¤¢¤ê¤Ç¡¢¤È¤Ë¤«¤¯¥²¡¼¥àÃæÅо줹¤ëÁ´¤Æ¤Î¤â¤Î¤ò°ì¸µ´ÉÍý¤¹¤ë¥¢¥¤¥Ç¥¢¤Î²¼¤Ëºî¤é¤ì¤¿¹½Â¤ÂΤǤ¢¤ë¤â¤Î¤Ç¤·¤ç¤¦¡£¤½¤³¤Ï¥«¡¼¥Þ¥Ã¥¯¤µ¤ó¤Ë¿Ò¤Í¤Æ¤ß¤Ê¤¤¤È¿¿¼Â¤Ï¤ï¤«¤ê¤Þ¤»¤ó¡£¤·¤«¤·¡¢³ÈÄ¥À¤Î¹â¤¤¥·¥¹¥Æ¥à¤Ç¤¢¤ë¤³¤È¤Ë¤Ï´Ö°ã¤¤¤Ê¤¤¤Î¤Ç¡¢¤µ¤¹¤¬¤Ï¥«¡¼¥Þ¥Ã¥¯¤µ¤ó¤È¤¤¤Ã¤¿¤È¤³¤í¤Ç¤¹¡£¥¹¡¼¥Ñ¡¼¥×¥í¥°¥é¥Þ¡¼¤È¤Ï¤«¤¯¤¢¤ê¤¤Ç¤¹¤Í¡£
A Structure 'entity_t'
³µÇ°Åª¤Ê¤³¤È¤Ð¤«¤ê¾Ò²ð¤·¤Æ¤â¥¤¥á¡¼¥¸¤¬ÄϤߤˤ¯¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¤Î¤Ç¡¢¼ÂºÝ¤É¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Î¤«¤ò¸«¤Æ¤æ¤¤Þ¤·¤ç¤¦¡£gentity_t¹½Â¤ÂΤÎÄêµÁ¤Ïg_local.h¤Ë¤¢¤ê¤Þ¤¹¡£213¹Ô°Ê¹ß¤Ç¤¹¡£g_entities¤ÎÀë¸À¤Ïg_main.c¤ÎºÇ½é¤¢¤¿¤ê¤Ë¤¢¤ê¤Þ¤¹¡£¤Þ¤º¤Ïg_main.c¤«¤é¤ß¤Þ¤·¤ç¤¦¡£
gentity_t g_entities[MAX_GENTITIES];
ËÁƬ¶á˵¤Ç¤³¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë¤«¤È»×¤¤¤Þ¤¹¡£¤Á¤Ê¤ß¤ËMAX_GENTITIES¤ÏÊ̤ΤȤ³¤í¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¤Þ¤¹¡£
#define GENTITYNUM_BITS 10 #define MAX_GENTITIES (1<<GENTITYNUM_BITS)
¤Ê¤¼Äê¿ôÄêµÁ¤Ë¥Ó¥Ã¥È±é»»¤òÍѤ¤¤Æ¤¤¤ë¤Î¤«¿Ó¤Àµ¿Ìä¤Ç¤Ï¤´¤¶¤¤¤Þ¤¹¤¬¡¢·ë¶ÉMAX_GENTITIES¤Ï2¤Î10¾è¡¢¤Ä¤Þ¤ê1024¤Ç¤¹¡£¤Ä¤Þ¤ê1024¸Ä¤Îentity¤òƱ»þ¤Ë°·¤¦¤³¤È¤¬½ÐÍè¤ë¤ï¤±¤Ç¤¹¡£
¤Ç¤Ïgentity_t¤ÎÄêµÁ¤ò¤ß¤Æ¤ß¤Þ¤·¤ç¤¦¡£
struct gentity_s { entityState_t s; // communicated by server to clients entityShared_t r; // shared by both the server system and game // DO NOT MODIFY ANYTHING ABOVE THIS, THE SERVER // EXPECTS THE FIELDS IN THAT ORDER! //================================ struct gclient_s *client; // NULL if not a client qboolean inuse; ¡Ê¾Êά¡Ë // bleh - ugly int backupWeaponTime; int mg42weapHeat; vec3_t oldOrigin; qboolean runthisframe; g_constructible_stats_t constructibleStats; };
¤«¤Ê¤êÂ礤¯Ê£»¨¤Ê¹½Â¤ÂΤˤʤäƤª¤ê¤Þ¤¹¡£¤â¤·C++¤ÇÁȤޤì¤Æ¤¤¤¿¤é¤â¤¦¾¯¤·¥¹¥Þ¡¼¥È¤Ê¥¯¥é¥¹¤È¤·¤ÆÄêµÁ¤Ç¤¤¿¤«¤â¤·¤ì¤Þ¤»¤ó¤Í¡£
¤Þ¤º¤ÏºÇ½é¤ÎÉôʬ¤ò¤ß¤Æ¤ß¤Þ¤·¤ç¤¦¡£
entityState_t s; // communicated by server to clients entityShared_t r; // shared by both the server system and game
Ãí¼á¤ò¸«¤ë¤È¤ï¤«¤ë¤È¤ª¤ê¡¢¥µ¡¼¥Ð¡¼ÄÌ¿®µ¡Ç½¤È¥²¡¼¥à½èÍýÉôʬ¤Ë¤è¤Ã¤Æs¤Èr¤¬¶èÊ̤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¤É¤Á¤é¤âentity¤Î´ðËÜŪ¤Ê¾ðÊó¤ò´Þ¤ó¤Ç¤¤¤ë¤³¤È¤Ë¤ÏÊѤï¤ê¤Þ¤»¤ó¡£¶ñÂÎŪ¤Ë¤Ï°ÌÃÖ¡¢Â®ÅÙ¡¢¸þ¤¡¢¼ïÎà¡¢Â礤µ¡¢¥¤¥Ù¥ó¥È¤Ê¤É¤Ê¤É¡£¥µ¡¼¥Ð¡¼¤È¥¯¥é¥¤¥¢¥ó¥È¤Ç¤ä¤ê¼è¤ê¤µ¤ì¤Æ¤¤¤ëÉôʬ¤Ç¤â¤¢¤ê¤Þ¤¹¡£
struct gclient_s *client; // NULL if not a client qboolean inuse; vec3_t instantVelocity; // ydnar: per entity instantaneous velocity, set per frame char *classname; // set in QuakeEd int spawnflags; // set in QuakeEd
ÂçÄñ¤Î¤â¤Î¤Ë¤ÏÃí¼á¤¬¤Ä¤¤¤Æ¤ª¤ê¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¤½¤ÎÄ̤ê¤Î»È¤ï¤ìÊý¤ò¤·¤Æ¤¤¤Þ¤¹¡£client¤Ïentity¤¬¥¯¥é¥¤¥¢¥ó¥È¤«¤É¤¦¤«¤Ë¤Ä¤¤¤Æ¤Î¤â¤Î¤Ç¡¢¤â¤·¤½¤¦¤Ê¤é¥¯¥é¥¤¥¢¥ó¥È¾ðÊó¤ò´Þ¤à¥¢¥É¥ì¥¹¡¢¤½¤¦¤Ç¤Ê¤¤¤Ê¤é0¤È¤Ê¤ê¤Þ¤¹¡£inuse¤Ï¤³¤Îentity¤¬»ÈÍÑÃ椫¤É¤¦¤«¤Î¥Õ¥é¥°¤Ç¤¹¡£instantVelociity¤ÏÃí¼á¤É¤ª¤ê¥Õ¥ì¡¼¥à¤Ë¤ª¤±¤ë½Ö´Ö®Å٤Ǥ¹¡£classname¤Èspawnflag¤Ï¥Þ¥Ã¥×¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤ÆÄêµÁ¤µ¤ì¡¢¥Þ¥Ã¥×¥¨¥Ç¥£¥¿Ãæ¤ÇÀßÄꤷ¤¿Ãͤ¬¤³¤³¤ËÆþ¤ê¤Þ¤¹¡£
¤³¤ì°Ê³°¤âentity¤ÎÀ¼Á¡¢¾õÂÖ¡¢Æ°¤¤Ë´Ø¤¹¤ë¥Ç¡¼¥¿¤¬Ê¤ó¤Ç¤¤¤Þ¤¹¡£¤³¤ÎÃæ¤ÇÃíÌܤ¹¤Ù¤¤Ï¥¤¥Ù¥ó¥ÈȯÀ¸¤Ë´Ø¤¹¤ëÉôʬ¤Ç¤¹¡£
int nextthink; void (*free)(gentity_t *self); void (*think)(gentity_t *self); void (*reached)(gentity_t *self); // movers call this when hitting endpoint void (*blocked)(gentity_t *self, gentity_t *other); void (*touch)(gentity_t *self, gentity_t *other, trace_t *trace); void (*use)(gentity_t *self, gentity_t *other, gentity_t *activator); void (*pain)(gentity_t *self, gentity_t *attacker, int damage, vec3_t point); void (*die)(gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int damage, int mod);
nextthink¤ÏÀßÄꤵ¤ì¤¿¥¤¥Ù¥ó¥È¤¬È¯À¸¤¹¤ë¤Þ¤Ç¤Î»þ´Ö¤Ç¡¢¥ß¥êÉä¬Ã±°Ì¤Ç¤¹¡£°Ê²¼¤Ëʤ֤Τ¬³Æ¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤Î¥¢¥É¥ì¥¹¤Ç¤¹¡£free¤Ï¤³¤Îentity¤¬³«Êü¤µ¤ì¤ë¡¢¤Ä¤Þ¤êinuse¤Ë¤Ê¤ë»þ¤Ë¥³¡¼¥ë¤µ¤ì¤Þ¤¹¡£think¤ÏÀßÄꤷ¤¿»þ¹ï¤¬·Ð²á¤·¤¿¾ì¹ç¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£¼êÜØÃƤ¬5Éøå¤ËÇúȯ¤¹¤ë¤Î¤Ï¤³¤Î¤¿¤á¤Ç¤¹¡£¤½¤Î¾³Æ¥¤¥Ù¥ó¥È¤Ë¤âÂбþ¤·¤¿½èÍý¤¬¼«Æ°Åª¤Ë¹Ô¤ï¤ì¤Þ¤¹¡£¤Ê¤«¤Ê¤«¶½Ì£¿¼¤¤Éôʬ¤Ç¤¹¡£
¶ñÂÎŪ¤ÊÎã¤È¤·¤Æ¡¢g_weapon.c¤Î2237¹Ô¤Ë¶õÇú´Ì¤Ë´Ø¤¹¤ë¥³¡¼¥É¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¸«¤Æ¤ß¤Þ¤·¤ç¤¦¡£
void weapon_checkAirStrikeThink1( gentity_t *ent ) { if( !weapon_checkAirStrike( ent ) ) { ent->think = G_ExplodeMissile; ent->nextthink = level.time + 1000; return; } ent->think = weapon_callAirStrike; ent->nextthink = level.time + 1500; }
´Ø¿ô¤Î°ú¿ô¤È¤·¤Æent¤È¤¤¤¦entity¤¬ÅϤµ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¶õÇú´Ì¤ò»Ø¤·¤Æ¤¤¤ëentity¤Ç¤¹¡£ifʸ¤Ï¶õÇú¤ò¹Ô¤¦¤³¤È¤¬½ÐÍè¤ë¾ò·ï¤Î¤â¤È¤Ë¶õÇú´Ì¤¬Åꤲ¤é¤ì¤¿¤«¤ò¸«¤Æ¤¤¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¤Ê¤é¤³¤Î¶õÇú´Ì¤Ï¶õÇú¤ò¤»¤º¤ËG_ExplodeMissile¤È¤¤¤¦Ã±¤ËÇúȯ¤¹¤ë¤À¤±¤Î½èÍý¤òlevel.time + 1000¥ß¥êÉø塢¤Ä¤Þ¤ê°ìÉøå¤Ë¹Ô¤¤¤Þ¤¹¡£¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤¿¾ì¹ç¡¢¶õÇú´Ì¤Ï¶õÇú½èÍý¤ò¹Ô¤¦weapon_callAirStrike¤ò1.5Éøå¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Entity is Everything
¤³¤ì¤Þ¤Ç¤ß¤¿¤è¤¦¤Ë¡¢entity¤È¤Ï¤Ä¤Þ¤ê¤Ê¤ó¤Ç¤â¤¢¤ê¤È¤¤¤¦¤³¤È¤¬Íý²ò¤·¤Æ¤â¤é¤¨¤¿¤«¤È»×¤¤¤Þ¤¹¡£¤Þ¤¿¥Ç¡¼¥¿¤Ç¤Ê¤¯¥¤¥Ù¥ó¥È¼«Æ°½èÍý¤Ë´Ø¤¹¤ë¹àÌܤâ´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢¤¤¤«¤Ë¥²¡¼¥à½èÍý¥¢¥ë¥´¥ê¥º¥à¤ÎÂ礤ʤȤ³¤í¤òô¤Ã¤Æ¤¤¤ë¤«¤â¤ªÊ¬¤«¤ê¤Ê¤Ã¤¿¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£
º£²ó¾Ò²ð¤·¤¿Éôʬ°Ê³°¤Ë¤â¥³¡¼¥É¤ËÅо줹¤ë¹½Â¤ÂΤϤ¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¡£¥¯¥é¥¤¥¢¥ó¥È¡¢¥¢¥¤¥Æ¥à¡¢Éð´ï¡¢¥Þ¥Ã¥×¡¢¥³¥ó¥Õ¥£¥°¤Ê¤É¤Ê¤É¿§¡¹¤Ê¤â¤Î¤Ë¹½Â¤ÂΤ¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¿·¤·¤¯MOD¤òºî¤ë¾ì¹ç¤Ë¤Ï¤³¤ì¤é¤ÎÍý²ò¤¬·ç¤«¤»¤Þ¤»¤ó¤Î¤Ç¡¢¤½¤Î¤ª¤Ä¤â¤ê¤Î¤¢¤ë¾ì¹ç¤ÏÀ§Èó°ì¸«¤Ê¤µ¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£
Åê¹Æ¼Ô ikanatto : 06:11 PM | ¥³¥á¥ó¥È (110)
April 21, 2005
Urban Terror Equipments
Equipment selection
Urban Terror¡Ê°Ê²¼UrT¡Ë¤Ç¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤¬¤É¤Î¤è¤¦¤ÊÉðÁõ¤ò¤¹¤ë¤«¤ÏÈÏ°ÏÆâ¤ÇǤ°Õ¤Ë·è¤á¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¤Þ¤È¤á¤ë¤È°Ê²¼¤Îɽ¤Î¤è¤¦¤ËÁªÂò¤Ç¤¤Þ¤¹¡£
¥á¥¤¥ó¡Ê¥µ¥¤¥É´Þ¤à¡Ë1¤Ä¡¢½à¥á¥¤¥ó°ì¤Ä¡¢¥Ï¥ó¥É¥¬¥ó1¤Ä¡¢ÁõÈ÷ÉÊ°ì¤Ä
¥á¥¤¥ó1¤Ä¡¢¥Ï¥ó¥É¥¬¥ó1¤Ä¡¢ÁõÈ÷ÉÊ2¤Ä
¥µ¥¤¥É°ì¤Ä¡¢¥Ï¥ó¥É¥¬¥ó1¤Ä¡¢ÁõÈ÷ÉÊ2¤Ä
¥Ï¥ó¥É¥¬¥ó1¤Ä¡¢ÁõÈ÷ÉÊ3¤Ä
¶ñÂÎŪ¤Ê¥Ñ¥¿¡¼¥ó¤È¤·¤Æ¡¢M4 Assault Rifle¡ÜMP5K¡ÜBeretta¡ÜHE Grenade¤Ê¤ó¤«¤ò¥Á¥ç¥¤¥¹¤¹¤ë¤³¤È¤Ç¤Ò¤¿¤¹¤é·â¤Á¤Þ¤¯¤ë¥¹¥¿¥¤¥ë¤ò¤È¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¤Þ¤¿HK69¡ÜDE¡ÜHE Grenade¡ÜÄɲÃÃÆÌô¤ÇÁö¤ëÇúÃÆËâ¤Ë¤Ê¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
»ä¤¬¹¥¤¤ÊÁȤ߹ç¤ï¤»¤Ï¡¢M4¡ÜDE¡ÜFlash Grenade¡ÜËÉÃÆ¥Á¥ç¥Ã¥¤ÈËÉÃƥإë¥á¥Ã¥È¤ÇÁ®¸÷ÆÍ·â·¿¡¢FFA¤Ê¤ó¤«¤À¤ÈSR-8¡ÜUMP45¡ÜDE¡Ü°Å»ë¥¹¥³¡¼¥×¤Ç¥ª¡¼¥ë¥é¥¦¥ó¥É·¿¤Ç¤¹¡£¤³¤Î¤¢¤¿¤ê¤Ï¤½¤Î¿Í¤Î¸ÄÀ¤¬Îɤ¯¸½¤ì¤Þ¤¹¡£¤Þ¤¿Éð´ï¤Ë¤³¤À¤ï¤ê¤Î¤¢¤ë¾ì¹ç¤â¤¢¤ë¤Î¤Ç¡¢¤Ê¤«¤Ê¤«¸«¤Æ¤¤¤ë¤À¤±¤Ç¤â³Ú¤·¤¤¤â¤Î¤Ç¤¹¡£
Urban Terror Fire-arms
¤½¤ó¤Ê½Æ·âÀï¤òºÌ¤ëUrT¤ÇÅо줹¤ë²Ð´ï¤ò¾Ò²ð¤·¤Þ¤¹¡£¾Ò²ð¤¹¤ë¤È¤Ï¤¤¤Ã¤¿¤â¤Î¤Î¡¢»ä¤Ï¼Âºß¤Î²Ð´ïÎà¤Ë¤Ï¤Þ¤Ã¤¿¤¯¾Ü¤·¤¯¤Ê¤¤¤Î¤Ç¥²¡¼¥à¤ËÅо줹¤ëÉð´ï¤È¤·¤Æ¤ÎÀâÌÀ¤Ë¤Ê¤ê¤Þ¤¹¡£¼ÂºÝ¤ÎÀǽ¤Ê¤É¤Ë¤Ä¤¤¤Æ¤Ï¸¡º÷¤¹¤ë¤³¤È¤ÇÍưפËÃΤ뤳¤È¤¬¤Ç¤¤ë¤«¤È»×¤¤¤Þ¤¹¡£
ZM300

¤â¤È¤â¤ÈUrT¤Ë¤ÏÍ̾¤ÊM4 Assault Rifle¤¬¤¢¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¤½¤Á¤é¤¬¥â¥Ç¥ë¥Á¥§¥ó¥¸¤·¤Æ¤³¤Á¤é¤Ë¤Ê¤ê¤Þ¤·¤¿¡£Àǽ¤ÏM4¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¤Ç¤¹¡£Èó¾ï¤Ë¥Ð¥é¥ó¥¹¤Î¼è¤ì¤¿½Æ¤Ç¡¢ÆÍ·â¤Ê¤É¤Î¶áµ÷Î¥¡¢Áø¶øÀï¤È¤¤¤Ã¤¿Ãæµ÷Î¥¤«¤é±óµ÷Î¥¤Þ¤ÇÁ´¤Æ¤ËÂбþ¤Ç¤¤Þ¤¹¡£º¤¤Ã¤¿¤é¤³¤ì¤òÁª¤Ù¤Ð¤Þ¤¡´Ö°ã¤¤¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¡£
ÁõŶÃÆ¿ô30¡¦°ÒÎÏ¡û¡¦Ï¢¼Í¡û¡¦½¸ÃÆ¡û
¥¢¥¿¥Ã¥Á¥á¥ó¥È¡§¥µ¥¤¥ì¥ó¥µ¡¼¡¢¥ì¡¼¥¶¡¼¥µ¥¤¥È
ʬÎࡧ¥á¥¤¥ó¥¦¥§¥Ý¥ó
AK103

»ä¤ÎÃæ¤Ç¤Ï¡¢¥Æ¥í¥ê¥¹¥ÈÄêÈ֤νƤȤ¤¤¦°õ¾Ý¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤âÈó¾ï¤Ë¥Ð¥é¥ó¥¹¤Î¤è¤¤½Æ¤Ç¤¹¤¬¡¢¼ã´³M4¤è¤ê¤â°ÒÎϤ¬¹â¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£µ¤¤Î¤»¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£¥µ¥¤¥ì¥ó¥µ¡¼¤Ï¤Ä¤¤Þ¤»¤ó¡£
ÁõŶÃÆ¿ô30¡¦°ÒÎÏ¡û¡Ü¡¦Ï¢¼Í¡û¡¦½¸ÃÆ¡û
¥¢¥¿¥Ã¥Á¥á¥ó¥È¡§¥ì¡¼¥¶¡¼¥µ¥¤¥È
ʬÎࡧ¥á¥¤¥ó¥¦¥§¥Ý¥ó
G36

¤³¤ì¤Ï¤«¤Ê¤êÌÌÇò¤¤Éð´ï¤Ç¤¹¡£²¿¤¬ÌÌÇò¤¤¤«¤È¤¤¤¦¤È¡¢ÁÀ·â½Æ¤È¤·¤Æ¥Þ¥·¥ó¥¬¥ó¤È¤·¤Æ¤â»È¤¨¤ëÅÀ¤Ç¤¹¡£¤½¤Î¤¿¤á±óµ÷Î¥¤«¤é¶áµ÷Î¥¤Þ¤Ç¡¢Á´¤Æ¤Î¥ì¥ó¥¸¤¬¤³¤ÎÉð´ï¤ÎÆÀ°ÕÎΰè¤Ë¤Ê¤ê¤Þ¤¹¡£¼ã´³°ÒÎϤ¬Ä㤤µ¤¤â¤·¤Þ¤¹¤¬¡¢¤½¤ì¤Ç¤â¤ä¤Ï¤êÌÌÇò¤¤Éð´ï¤Ç¤¹¡£
ÁõŶÃÆ¿ô30¡¦°ÒÎÏ¡û-¡¦Ï¢¼Í¡û¡¦½¸ÃÆ¡û
¥¢¥¿¥Ã¥Á¥á¥ó¥È¡§¥µ¥¤¥ì¥ó¥µ¡¼
ÇÜΨ¡§2ÇܤޤÇ
ʬÎࡧ¥á¥¤¥ó¥¦¥§¥Ý¥ó
PSG-1

UrT¤Ë¤â¶áÂå¤òÉñÂæ¤Ë¤·¤¿¥¬¥ó¥·¥å¡¼¥Æ¥£¥ó¥°¤ª·è¤Þ¤ê¤ÎÁÀ·â½Æ¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Î¤¦¤Á¤Î°ì¤Ä¤¬¤³¤ÎPSG-1¤Ç¤¹¡£SR-8¤ÈÈæ³Ó¤·¤¿»þ¤ËºÇ¤â°Û¤Ê¤ë¤Î¤¬¡¢ÁÀ·â½Æ¤Ê¤¬¤é¤â¥»¥ß¥ª¡¼¥È¥Þ¥Á¥Ã¥¯¤Ê¤Î¤Ç¥»¥«¥ó¥É¥·¥ç¥Ã¥È¤òÁÇÁ᤯¹Ô¤¨¤ëÅÀ¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Î°Ù½éÃƤÇÅݤ»¤Ê¤¯¤È¤â¡¢¼¡¤Î¹¶·â¤Ë¤è¤êÅݤ¹¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
ÁõŶÃÆ¿ô5¡¦°ÒÎÏ¡ý¡¦Ï¢¼Í¢¤¡¦½¸ÃÆ¡½
¥¢¥¿¥Ã¥Á¥á¥ó¥È¡§¥µ¥¤¥ì¥ó¥µ¡¼
ÇÜΨ¡§2ÇÜ¡¦4ÇÜ¡¦6ÇÜ
ʬÎࡧ¥á¥¤¥ó¥¦¥§¥Ý¥ó
SR-8

ÁÀ·â½Æ¤ÎÂåɽ³Ê¤Ç¤¹¡£ÀäÂç¤Ê°ÒÎϤò¸Ø¤ë¤¿¤á¡¢ËÉÃÆ¥Á¥ç¥Ã¥¤òÃ夿Áê¼ê¤Ç¤â¤Û¤Ü½Ö»¦¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£¼ê¤ËÅö¤¿¤Ã¤¿¾ì¹ç¤Ç¤âÂÎÎϤò8³ä°Ê¾åÃ¥¤¨¤Þ¤¹¡£·çÅÀ¤Ï¼¡¤ÎÃƤò·â¤Ä¤Þ¤Ç¤Ë»þ´Ö¤¬¤«¤«¤ë¤³¤È¡¢¶áÀܤˤÏÂбþ¤Ç¤¤Ê¤¤¤³¤È¤Ç¤¹¡£¤·¤«¤·¤½¤ì¤òÊä¤Ã¤Æ;¤ê¤¢¤ë°ÒÎϤϤä¤Ï¤êÌ¥ÎÏŪ¤Ç¤¹¡£
ÁõŶÃÆ¿ô5¡¦°ÒÎÏ¡ý¡ý¡¦Ï¢¼Í¡ß¡¦½¸ÃÆ¡½
¥¢¥¿¥Ã¥Á¥á¥ó¥È¡§¤Ê¤·
ÇÜΨ¡§2ÇÜ¡¦4ÇÜ¡¦6ÇÜ
ʬÎࡧ¥á¥¤¥ó¥¦¥§¥Ý¥ó
HK69

ÆÃħŪ¤Ê²Ð´ï¤Ç¤¹¡£ÃƤòÈô¤Ð¤¹ÅÀ¤Ç¤Ï¾¤Î²Ð´ï¤ÈÊѤï¤ê¤Þ¤»¤ó¤¬¡¢Èô¤ó¤Ç¤¤¤¯ÃƤ¬¼Â¤ÏÇúÃƤʤΤǤ¹¡£±ó¤¯¤ËÈô¤Ð¤»¤ë¼êÜØÃƤȹͤ¨¤ë¤È¤ï¤«¤ê¤¤¤¤¤Ç¤·¤ç¤¦¤«¡£Â¯¤Ë¸À¤¦¥°¥ì¥Í¡¼¥É¥é¥ó¥Á¥ã¡¼¤Ç¤¹¡£¤³¤Á¤é¤ÎÉð´ï¤Ï¤«¤Ê¤ê°ÒÎϤ¬Ä´À°¤µ¤ì¤¿Îò»Ë¤¬¤¢¤ê¡¢¤½¤ì¤À¤±»È¤¤¾¡¼ê¤Î¤¤¤¤¤â¤Î¤Ç¤¹¡£Èô¤Ð¤¹µ÷Î¥¤âÃʳ¬Åª¤ËÄ´À°¤Ç¤¤Þ¤¹¡£¤³¤ì¤ò¥Þ¥¹¥¿¡¼¤·¤Æ¤¢¤Ê¤¿¤â¥¸¥§¥É¡¦¹ë»Î¡ª¡©
ÁõŶÃÆ¿ô4¡¦°ÒÎÏ¡ý¡ý¡ý¡¦Ï¢¼Í¡ß¡¦½¸ÃÆ¡½
¥¢¥¿¥Ã¥Á¥á¥ó¥È¡§¤Ê¤·
ʬÎࡧ¥á¥¤¥ó¥¦¥§¥Ý¥ó
Negev

°ì¸À¤Ç¤¤¤¨¤Ð¥Þ¥·¥ó¥¬¥ó¤Ç¤¹¡£¤½¤ì¤âʤǤϤʤ¯¡¢À¨¤¤Ï¢¼Í¤Ç¤¤ë¥Þ¥·¥ó¥¬¥ó¤Ç¤¹¡£150ȯʬ¤ÎÃƴݤ¬ÁõŶ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢»×¤¤¤Î¾æÏ¢¼Í¤Ç¤¤Þ¤¹¡£¤½¤ÎÂå¤ï¤ê¤Ë½¸ÃÆÀ¤¬µ¾À·¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢»È¤¤Êý¤Ë¤Á¤ç¤Ã¤È¹©Éפ¬¤¤¤ë¤Ç¤·¤ç¤¦¡£
ÁõŶÃÆ¿ô150¡¦°ÒÎÏ¡û¡¦Ï¢¼Í¡ý¡¦½¸ÃÆ¢¤
¥¢¥¿¥Ã¥Á¥á¥ó¥È¡§¥ì¡¼¥¶¡¼¥µ¥¤¥È
ʬÎࡧ¥á¥¤¥ó¥¦¥§¥Ý¥ó
MP5K

¥³¥ó¥Ñ¥¯¥È¤Ê¥Þ¥·¥ó¥¬¥ó¤Ç¤¹¡£¤½¤Î¤¿¤á°ÒÎϤ¬¤«¤Ê¤ê¸«Îô¤ê¤·¤Þ¤¹¤¬¡¢Ï¢¼ÍÀǽ¤Ë´Ø¤·¤Æ¤Ï¾¤Î¥Þ¥·¥ó¥¬¥ó¤ÈÊѤï¤ê¤Þ¤»¤ó¡£¥Ø¥Ã¥É¥·¥ç¥Ã¥È¤òÀѶËŪ¤ËÁÀ¤¤¤¿¤¤¤È¤³¤í¤Ç¤¹¡£
ÁõŶÃÆ¿ô30¡¦°ÒÎÏ¢¤¡¦Ï¢¼Í¡û¡¦½¸ÃÆ¡û
¥¢¥¿¥Ã¥Á¥á¥ó¥È¡§¥µ¥¤¥ì¥ó¥µ¡¼¡¦¥ì¡¼¥¶¡¼¥µ¥¤¥È
ʬÎࡧ¥µ¥¤¥É¥¦¥§¥Ý¥ó
UMP45

¥µ¥¤¥É¥¦¥§¥Ý¥ó¤Î¥Þ¥·¥ó¥¬¥ó¤Ê¤¬¤é°ÒÎϤϹâ¤á¤Ç¤¹¡£¤½¤ÎÂå¤ï¤ê¤ËÏ¢¼ÍÀ¤ÈÃÆ¿ô¤¬¾¯¤·¾¯¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢MP5K¤È¤É¤Á¤é¤òÁª¤Ö¤«¤Ï¸Ä¿ÍŪ¤Ê¼ñÌ£¤Î°ã¤¤¤Ë¤Ê¤ë¤È»×¤¤¤Þ¤¹¡£
ÁõŶÃÆ¿ô25¡¦°ÒÎÏ¡û¡¦Ï¢¼Í¢¤¡¦½¸ÃÆ¡û
¥¢¥¿¥Ã¥Á¥á¥ó¥È¡§¥µ¥¤¥ì¥ó¥µ¡¼¡¦¥ì¡¼¥¶¡¼¥µ¥¤¥È
ʬÎࡧ¥µ¥¤¥É¥¦¥§¥Ý¥ó
SPAS12

¥·¥ç¥Ã¥È¥¬¥ó¤Ç¤¹¡£¤¿¤À¤·°·¤¤¤¬¥µ¥¤¥É¥¦¥§¥Ý¥ó¤Î´Ø·¸¾å¡¢Á´ÃÆÌ¿Ã椷¤ÆÁê¼ê¤ò°ì·â¤ÇÅݤ»¤ëÄøÅ٤ΰÒÎϤˤʤäƤ¤¤Þ¤¹¡£¤·¤«¤·¤³¤Î¥·¥ç¥Ã¥È¥¬¥ó¤Î¶Ã¤¯¤Ù¤ÆÃħ¤È¤·¤Æ¡¢Èó¾ï¤ËÏ¢¼ÍÀ¤¬¹â¤¤ÅÀ¤¬µó¤²¤é¤ì¤Þ¤¹¡£¤³¤Î¤¿¤á´Ö¹ç¤¤¤Î¶á¤¤¾õÂ֤ʤéÈó¾ï¤ËÍÍø¤ËÀ臘¤³¤È¤¬½ÐÍè¤ë¤Ç¤·¤ç¤¦¡£·çÅÀ¤òµó¤²¤ë¤È¤¹¤ë¤Ê¤é¥Ø¥Ã¥É¥·¥ç¥Ã¥ÈȽÄ꤬¤Ê¤¤¤³¤È¤Ç¤¹¡£
ÁõŶÃÆ¿ô8¡¦°ÒÎÏ¡û¡¦Ï¢¼Í¢¤¡¦½¸ÃÆ¡ß
¥¢¥¿¥Ã¥Á¥á¥ó¥È¡§¤Ê¤·
ʬÎࡧ¥µ¥¤¥É¥¦¥§¥Ý¥ó
Beretta

¤´¤¯ÉáÄ̤Υϥó¥É¥¬¥ó¤Ç¤¹¡£¤½¤Î°Ù°ÒÎϤϹµ¤¨¤á¤Ç¤¹¤¬¡¢15ȯÁõŶ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç°Õ³°¤ËÀ廊¤Þ¤¹¡£
ÁõŶÃÆ¿ô30¡¦°ÒÎÏ¢¤¡¦Ï¢¼Í¢¤¡¦½¸ÃÆ¡ý
¥¢¥¿¥Ã¥Á¥á¥ó¥È¡§¥µ¥¤¥ì¥ó¥µ¡¼¡¦¥ì¡¼¥¶¡¼¥µ¥¤¥È
ʬÎࡧ¥Ï¥ó¥É¥¬¥ó
Desert Eagle

¤Ç¤Ã¤«¤¤¥Ï¥ó¥É¥¬¥ó¤Ç¤¹¡£¤Ç¤«¤¤¤Î¤Ç°ÒÎϤ¬¤¹¤´¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢M4¤è¤ê¤â¶¯ÎϤʰì·â¤ò¸«Éñ¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¤³¤ÎÉð´ï¤ÇÂç³èÌö¤·¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Þ¤»¤ó¡£
ÁõŶÃÆ¿ô7¡¦°ÒÎÏ¡ý¡¦Ï¢¼Í¢¤¡¦½¸ÃÆ¡û
¥¢¥¿¥Ã¥Á¥á¥ó¥È¡§¥ì¡¼¥¶¡¼¥µ¥¤¥È
ʬÎࡧ¥Ï¥ó¥É¥¬¥ó
Urban Terror Gear
UrT¤Ï¤½¤Î¾¥×¥ì¥¤¥ä¡¼¤òÆÃħÉÕ¤±¤ë¤â¤Î¤È¤·¤Æ¡¢ÁõÈ÷ÉʤòÁªÂò¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ÁªÂò¤Ç¤¤ëÁõÈ÷ÉʤϺÇÂç¤Ç3¸Ä¤Ç¡¢ÁªÂò¤·¤¿Éð´ï¤Î¸Ä¿ô¤Ë¤è¤Ã¤ÆÁý¸º¤·¤Þ¤¹¡£
Kevlar Vest
¤¤¤ï¤æ¤ëËÉÃÆ¥Á¥ç¥Ã¥¤Ç¤¹¡£Æ¹ÂΤؤΥÀ¥á¡¼¥¸¤ò·Ú¸º¤·¡¢Î®·ì¤òËɤ®¤Þ¤¹¡£¤¿¤À¤·SR-8¤Î¤è¤¦¤Ê¶¯Îõ¤ÊÃƴݤϴÓÄ̤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
Kevlar Helmet
ËÉÃƥإë¥á¥Ã¥È¤Ç¤¹¡£¥Á¥ç¥Ã¥¤ÈƱ¤¸¤¯Æ¬Éô¤Ø¤Î¥À¥á¡¼¥¸¤ò·Ú¸º¤·¡¢Â¨»à¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¤¬¡¢¶¯ÎϤÊÉð´ï¤ËÂФ·¤Æ¤Ï°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó¡£
HE Grenade
¼êÜØÃƤǤ¹¡£ßÚÎö¤·¤¿¼þ°Ï¤Î¥×¥ì¥¤¥ä¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤Þ¤¹¡£¶á¤±¤ì¤Ð¨»à¤Ç¤¹¡£
Flash Grenade
Á®¸÷ÜØÃƤǤ¹¡£ßÚÎö¤·¤¿½Ö´Ö¤Ë¼þ°Ï¤Î¥×¥ì¥¤¥ä¡¼¤Î»ëÎϤòÃ¥¤¤¤Þ¤¹¡£»ëÎϤ¬²óÉü¤¹¤ë¤Þ¤Ç¤Î»þ´Ö¤Ï¡¢Á®¸÷ÃƤȤε÷Î¥¤È¸þ¤¤Ë¤è¤Ã¤ÆÊѤï¤ê¤Þ¤¹¡£
Smoke Grenade
±ìËëÃƤǤ¹¡£¤³¤ì¤¬ßÚÎö¤·¤¿¼þ°Ï¤ËÇ»¤¤±ì¤òȯÀ¸¤µ¤»¤Æ¥×¥ì¥¤¥ä¡¼¤Î»ëÌî¤ò¶¹¤¯¤·¤Þ¤¹¡£
Laser Sight
¥ì¡¼¥¶¡¼¤ò¾È¼Í¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÁÀ¤¤¤òÄê¤á¤ë¤â¤Î¤Ç¤¹¡£²Ð´ï¤Î½¸ÃÆÀ¤¬¸þ¾å¤·¤Þ¤¹¡£
Silencer
²Ð´ï¤Î¼Í·â²»¤ò·Ú¸º¤·¤Þ¤¹¡£¼ã´³½¸ÃÆÀ¤â¸þ¾å¤·¤Þ¤¹¡£¥ì¡¼¥¶¡¼¥µ¥¤¥È¤ÈƱ»þ¤Ë»È¤¦¤³¤È¤â¤Ç¤¤Þ¤¹¡£
Night Vision Goggles
°Å»ë¥¹¥³¡¼¥×¤Ç¤¹¡£¤³¤ì¤ò»È¤¦¤³¤È¤Ç°Å°Ç¤ËÀø¤à¥×¥ì¥¤¥ä¡¼¤â±ó¤¯¤«¤é³Îǧ¤Ç¤¤Þ¤¹¤Î¤Ç¡¢¥¹¥Ê¥¤¥Ñ¡¼¤ò¤¹¤ë¤Ê¤é¥ª¥¹¥¹¥á¤Ç¤¹¡£¤¿¤À¤·¤³¤ì¤òÁõÃ夷¤¿¾õÂ֤ǥեé¥Ã¥·¥å¥°¥ì¥Í¡¼¥É¤Î±Æ¶Á¤ò¼õ¤±¤ë¤È¤È¤Æ¤âŤ¤´Ö»ëÎϤòÃ¥¤ï¤ì¤Þ¤¹¡£
Backpack Medkit
¤³¤ì¤Ï¾¤Î¿Í¤ËÂФ·¤Æ¼£ÎŤò¤¹¤ë¤È¤¤Ë°ÕÌ£¤Î¤¢¤ë¤â¤Î¤Ç¤¹¡£Ä̾CÎŤò¤·¤Æ¤âºÇÂç40¥Ñ¡¼¥»¥ó¥È¤Þ¤Ç¤·¤«ÂÎÎϤϲóÉü¤·¤Þ¤»¤ó¡£¤·¤«¤·¤³¤ì¤ò¤â¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï80¥Ñ¡¼¥»¥ó¥È¤Þ¤Ç²óÉü¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤¿¤À¤·¼«Ê¬¼«¿È¤Ë¤Ï̵¸ú¤Ê¤Î¤Ç¤´Ãí°Õ¤¯¤À¤µ¤¤¡£
Åê¹Æ¼Ô ikanatto : 11:40 PM | ¥³¥á¥ó¥È (11)
April 20, 2005
ET 2.60 patch Readme ÏÂÌõ
¤¹¤Ã¤«¤ê½Ü¤òƨ¤·¤Þ¤·¤¿¤¬2.60 Readme¤ÎÏÂÌõ¤Ç¤¹¡£
ÏÂÌõ¤·¤¿¤â¤Î¤Î°ÕÌ£¤Î¤ï¤«¤é¤Ê¤¤¤â¤Î¤¬»ä¼«¿È¤¿¤¯¤µ¤ó¤¢¤Ã¤¿¤Î¤Ç¡©¡©¡©¤ÊÉôʬ¤¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢¤â¤·È¯¸«¤Ê¤µ¤ì¤¿¾ì¹ç¤Ï¥³¥á¥ó¥È¤Ê¤É¤Ç¤´»ØŦ¤¤¤¿¤À¤±¤ì¤Ð¹¬¤¤¤Ç¤¹¡£
Ver 2.60 »¨´¶
¤·¤«¤·2.60¤Ë¤Ê¤Ã¤Æ¿ïʬ¤È¿§¡¹¤ÈÊѤï¤Ã¤¿´¶¤¸¤¬¤·¤Þ¤¹¤Í¡£Åö¤¿¤êȽÄꤢ¤¿¤ê¤¬¤«¤Ê¤êÊѤï¤Ã¤¿µ¤¤¬¤¹¤ë¤Î¤Ï»ä¤À¤±¤Ç¤·¤ç¤¦¤«¡ª¡©¥Ð¥°¥Õ¥£¥Ã¥¯¥¹´ØÏ¢¤Ï³µ¤Í¤è¤¤´¶¤¸¤Ç¤¹¤¬¡¢¤Þ¤À²Ð±êÊü¼Í´ï¤¬´ñÅ·Îõ¤ÊÅö¤¿¤êȽÄê¤òȯÀ¸¤µ¤»¤ë¤¢¤¿¤ê¤Ï¤É¤¦¤Ë¤â¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¹¡£»ÄÇ°¡£¤¢¤È¼ÂÍÑÀ¤Ë˳¤·¤¤¤È¸Ä¿ÍŪ¤Ë»×¤¦¥Õ¥£¡¼¥Á¥ã¡¼¤¬¤¤¤¯¤Ä¤«Äɲ䵤ì¤Æ¤¤¤Þ¤¹¡£°ÛÊýÀ¥·¥§¡¼¥À¡¼¤Ê¤ó¤Æ»È¤¦µ¡²ñ¤¢¤ë¤ó¤Ç¤·¤ç¤¦¤«¤Í¡£Îã³°¤È¤·¤ÆHTTP¥ê¥À¥¤¥ì¥¯¥È¤µ¤»¤ë¤È¤¤Ë¥¨¡¼¥¸¥§¥ó¥È¾ðÊó¤òÉÕÍ¿¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ï¤è¤¤¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£
¤Ê¤ó¤Ë¤·¤Æ¤â¡¢Â¾MOD¤¬2.6¤ËÂбþ¤¹¤ë¤Î¤¬ÂÔ¤Á±ó¤·¤¤¤Ç¤¹¤Í¡£ETPRO¤Ï¥Ñ¥Ã¥Á¼«ÂΤ˴ؤï¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¤°Âбþ¤Ç¤¤ë¤â¤Î¤À¤È¤Ð¤«¤êŽ¥Ž¥Ž¥¡£
2.60 Fixes:
¿·µ¬Äɲûö¹à
¥µ¡¼¥Ð¡¼¤È¥¯¥é¥¤¥¢¥ó¥È¤ËÄã®CPU¸þ¤±¤Î¼ã´³ºÇŬ²½¤ò¤·¤¿¡£
¥¯¥é¥¤¥¢¥ó¥È¤Ï¥²¡¼¥à¤òwavÊݸ²Äǽ¤Ë¤Ê¤Ã¤¿¡£
wav_record¤Ç²»À¼¥ì¥³¡¼¥Ç¥£¥ó¥°³«»Ï¡£
wav_stoprecord¤ÇÄä»ß¡£
cl_wavefilerecord¤ò1¤Ë¤¹¤ë¤È¡¢¥Ç¥âºÆÀ¸³«»Ï¤«¤é¾¯¤·¸å¤Ë¥ì¥³¡¼¥Ç¥£¥ó¥°¤¬»Ï¤Þ¤ë¡£
"Unable to load an official pak file"¤Î¥á¥Ã¥»¡¼¥¸¤Ï¤É¤Î¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¤Î¤«¤òɽ¼¨¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
Win32¤È¥ê¥Ê¥Ã¥¯¥¹¤Ç¥µ¥¦¥ó¥É´ØÏ¢cvar¤¬Åý°ì¤µ¤ì¤¿¡£:
s_khz, s_bits, s_numchannels
s_khz¤ÏCVAR_LATCH¤ËÊѹ¹¡£
¥×¥ì¥¤¥ä¡¼¤Ïcom_ignorecrash 1¤Ë¤¹¤ë¤³¤È¤Ç¥¯¥é¥Ã¥·¥å¤¹¤ë¤è¤¦¤Ê´í¸±¤ÊcvarÀßÄê¤ò¾å½ñ¤¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£
"server is full"¤ÎÂå¤ï¤ê¤Ësv_fullmsg¤ÇÊ̤Υá¥Ã¥»¡¼¥¸¤òɽ¼¨¤µ¤»¤ë¤³¤È¤¬½ÐÍè¤ë¡£
¥µ¡¼¥Ð¡¼¤ÏÀܳ¿ô¤¬°ìÇդλþ¤Ë¿·µ¬Àܳ¥×¥ì¥¤¥ä¡¼¤òÊ̤Υµ¡¼¥Ð¡¼¤Ë¥ê¥À¥¤¥ì¥¯¥È¤Ç¤¤ë¡£sv_fullmsg "ET://host.to.redirect.to:port¤òÀßÄê¡£
map¥³¥Þ¥ó¥É¤Ç¥¥ã¥ó¥Ú¡¼¥ó¤ò³«»Ï¤Ç¤¤Ê¤«¤Ã¤¿»þ¡¢¥µ¡¼¥Ð¡¼¤ÏGT_WOLF¤òÆɤ߹þ¤à¡£
¥Ç¥âºÆÀ¸¥³¥Þ¥ó¥É¤Ïdm_83³ÈÄ¥»Ò¤òÌÀ³Î¤ËȽÊ̤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£³ÈÄ¥»Ò¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢dm_83¤«dm_84¤È¤·¤Æ°·¤¦¤³¤È¤ò»î¹Ô¤·¤Þ¤¹¡£
ÀܳÃæ¤Î¥×¥ì¥¤¥ä¡¼¤Ë¤Ï´Êά¤µ¤ì¤¿¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤òÁ÷¿®¤¹¤ë¤³¤È¤ÇÄÌ¿®ÂÓ°è¤òÀáÌ󤹤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
¥¯¥é¥¤¥¢¥ó¥È¤Ï¥Ç¥â¤ò¥ì¥³¡¼¥Ç¥£¥ó¥°Ãæ¡¢cg_recording_statusline¤òÀßÄꤹ¤ë¤³¤È¤Ç¥ì¥³¡¼¥Ç¥£¥ó¥°¥¹¥Æ¡¼¥¿¥¹¤Îɽ¼¨°ÌÃÖ¤òÊѤ¨¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£0¤Ë¤¹¤ë¤ÈÈóɽ¼¨¤È¤Ê¤ë¡£
/buyNow¤È/singlePlayLink¤Ïºï½ü¡£
¥á¥Ë¥å¡¼¤ËMODS¤òÄɲá£
°ÛÊýÀ¥Æ¥¯¥¹¥Á¥ã¡¼¥Õ¥£¥ë¥¿¥ê¥ó¥°¤¬ÉÁ²è¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤¿¡£r_ext_texture_filter_anisotropic 1¤Ç͸ú¡£r_textureAnisotropy¤Ç¤É¤ÎÄøÅÙ½èÍý¤¹¤ë¤«¤òÀßÄê¡£
cg_draw2D¤Ïcheat protected¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£
Ê¢¶Ú¾õÂ֤ΤȤ¤Ë¼þ°Ï¤ò¸«¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£¤Þ¤¿½èÍý¤ò´°Á´¤Ë¥¯¥é¥¤¥¢¥ó¥È¥µ¥¤¥É¤Ë°Ü¤·¤¿¤Î¤Ç¥é¥°¤¬¤Ê¤¯¤Ê¤Ã¤¿¡£
Åêɼ´ØÏ¢¤Ë¤Ä¤¤¤Æ¤â¥³¥ó¥½¡¼¥ë¥í¥°¤Ëή¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
¡öwin32¤Î¤ß:
¥¯¥é¥¤¥¢¥ó¥È¤Ï/clearviewlog¤ÇÀìÍÑ¥³¥ó¥½¡¼¥ë¥í¥°¤ò¥¯¥ê¥¢¤Ç¤¤ë¡£
s_khz 44¤¬Àµ¾ï¤Ë»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
¡öLinux¤Î¤ß:
dgamouse 2¤ËÀßÄꤹ¤ë¤³¤È¤Ç¥¯¥é¥¤¥¢¥ó¥È¤ÏOS¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Þ¥¦¥¹²Ã®µ¡Ç½¤ò̵¸ú¤Ë½ÐÍè¤ë¡£
r_swapInterval¤ò»ÈÍѲÄǽ¤Ë¤Ê¤Ã¤¿¡£
¥¡¼¤Î³ä¤êÅö¤Æ¤òLinux¸þ¤±¤ËÄ´À°¡£CTRL/SHIFT/ALT¤Ê¤É¡¢Àµ¾ï¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¡£
¥Ð¥°½¤Àµ´ØÏ¢
¥¯¥é¥¹¤Ê¤É:
Ê¢¶Ú¾õÂÖ¤ÎCo¤¬ÊÑÁõ²Äǽ¤ò½¤Àµ¡£
Lv4¤ÎCo¤¬Ê¢¶ÚÃæ¤ÎÁê¼ê¤ËÉÔŬÀڤʥʥ¤¥Õ¥À¥á¡¼¥¸¤òÍ¿¤¨¤Æ¤¤¤¿¤Î¤ò½¤Àµ¡£
ÊÑÁõCo¤ÎÂÎÎϤ¬Áê¼ê¥Á¡¼¥à¤Ëɽ¼¨¤µ¤ì¤ë»þ¤Ë¥é¥°¤¬¤¢¤Ã¤¿¤Î¤ò½¤Àµ¡£
Lv3¤Î¥¨¥ó¥¸¥Ë¥¢¤¬ÃÏÍë¤Ë»È¤¦¥Á¥ã¡¼¥¸¤ò½¤Àµ¡£
Fo¤¬Ammo Pack¤ò½Ð¤¹¤Î¤ËMed¤Î¥Á¥ã¡¼¥¸¤ò¾ÃÈñ¤ò¤·¤Æ¤¤¤¿¤³¤È¤ò½¤Àµ¡£
¤½¤Î¾°ìÈÌ:
HTTP¥À¥¦¥ó¥í¡¼¥É¤Ç¤Þ¤ì¤Ë¥¯¥é¥Ã¥·¥å¤¹¤ëÉÔ¶ñ¹ç¤ò½¤Àµ¡£
¥À¥¦¥ó¥í¡¼¥É»þ¤Ë¥¯¥é¥¤¥¢¥ó¥È¤ÏID_DOWNLOAD/2.0 libcurl/7.12.2¤È¤¤¤¦UserAgent¾ðÊó¤òÁ÷¿®¤¹¤ë¡£¤Þ¤¿¥ê¥Õ¥¡¥é¡¼¤È¤·¤ÆET://server.IP.address:port¤òÉղ乤롣
¥µ¡¼¥Ð¡¼¥¨¥ó¥¸¥ó¤Î³Æ¼ï¥¯¥é¥Ã¥·¥åÉÔ¶ñ¹ç¤ò½¤Àµ¡£
¥¹¥Ú¥¯¥Æ¥¤¥¿¡¼¤¬Àܳ»þ¤Ë»þ¡¹Êɤò¤¹¤êÈ´¤±¤Æ¤·¤Þ¤¦ÉÔ¶ñ¹ç¤ò½¤Àµ¡£
profile.pid¤ÎÌäÂê¤ò½¤Àµ¡£
1¥¥ã¥ó¥Ú¡¼¥óÃæ¤Ë10¥Þ¥Ã¥×°Ê¾å´Þ¤Þ¤ì¤ë»þ¡¢¥¯¥é¥Ã¥·¥å¤¹¤ëÉÔ¶ñ¹ç¤ò½¤Àµ¡£
À¸¤¤Æ¤¤¤ë¥×¥ì¥¤¥ä¡¼¤Ç¤â¥¹¥³¥¢¤Ë¤É¤¯¤í¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ëÌäÂê¤ò½¤Àµ¡£
¥¥ã¥ó¥Ú¡¼¥ó¤´¤È¤Ë¥¥ã¥ó¥Ú¡¼¥ó¿ô¤¬¥«¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ëÌäÂê¤ò½¤Àµ¡£
cg_drawgun 0¤Ë¤¹¤ë¤È¼ÖºÜ½Æ¤Î½Æ¸ý¸¶ÅÀ°ÌÃÖ¤¬Àµ¤·¤¯¤Ê¤«¤Ã¤¿ÌäÂê¤ò½¤Àµ¡£¤Þ¤¿²Ð±êÊü¼Í´ï¤È¼ÖºÜ½Æ¤òƱ»þ¤Ëȯ¼Í¤Ç¤¤ëÌäÂê¤â½¤Àµ¡£
Light Weapon¤ÈHeavy Weapon¤¬Lv4¤Ë¤Ê¤ë¤È¥¯¥é¥¹¤¬Soldier¤Ë¤Ê¤ëÌäÂê¤ò½¤Àµ¡£
¥ì¥Õ¥ê¡¼¥á¥Ë¥å¡¼¤Î¿§¤òÆóÅÙ³ÈÄ¥¤¹¤ëÉÔ¶ñ¹ç¤ò½¤Àµ¡£
³¤³°¤Î¥¡¼¥Ü¡¼¥É(±Ñ¸ì·÷°Ê³°)¤Ç¥³¥ó¥½¡¼¥ë¤ò³«¤¤¤¿¾õÂ֤ǥµ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤Ê¸»ú¤òÂǤÁ¹þ¤á¤ëÌäÂê¤ò½¤Àµ¡£
cl_language¤¬Ž°1¤«0¤Î¤È¤¤ËËÝÌõ¤¬ÉÔŬÀÚ¤À¤Ã¤¿ÌäÂê¤ò½¤Àµ¡£
²¿¤«¤ò½¦¤Ã¤¿»þ(Radar Parts¤Ê¤É)¡¢HUD¤Ëɽ¼¨¤µ¤ì¤ë¤Þ¤Ç¥é¥°¤¬¤¢¤Ã¤¿ÌäÂê¤ò½¤Àµ¡£
ÃÏÍ뤬¤È¤¤É¤ºîÆ°¤·¤Æ¤â̵²»¤À¤Ã¤¿ÌäÂê¤ò½¤Àµ¡£
Bind¤·¤¿ÆâÍƤ¬Á´¤ÆLowercast¤µ¤ì¤ë(ÀèƬñ¸ì¤¬¥³¥Þ¥ó¥É¤Î¾ì¹çÌäÅú̵ÍѤǼ¹Ԥµ¤ì¤ë)ÌäÂê¤ò½¤Àµ¡£
ÁÉÀ¸¤¹¤ë¤È¥×¥ì¥¤¥ä¡¼¤Î»ëÀþ¤¬²óž¤¹¤ëÌäÂê¤ò½¤Àµ¡£
Players_Axis/Players_Allies¤¬Â礤¯¤Ê¤ê¤¹¤®¤Æ¥µ¡¼¥Ð¡¼¤ò¥¯¥é¥Ã¥·¥å¤µ¤»¤ëÌäÂê¤ò½¤Àµ¡£
¥×¥ì¥¤¥ä¡¼Æ±»Î¤¬¤Ö¤Ä¤«¤Ã¤Æ¡¦½Å¤Ê¤Ã¤Æ¥¹¥¿¥Ã¥¯¤¹¤ëÌäÂê¤ò½¤Àµ¡£
Æ°¤¯¤â¤Î¤Î¾å¤Ë¥À¥¤¥Ê¥Þ¥¤¥È¤òÀßÃÖ¤·¤Æ¥ª¥Ö¥¸¥§¥¯¥Æ¥£¥Ö¤¬ºîÆ°¤¹¤ëÌäÂê¤ò½¤Àµ¡£
"configstring > max_configstrings"¤ÇÀܳ¤Ç¤¤Ê¤¤ÌäÂê¤ò½¤Àµ¡£
¥¹¥Ú¥¯¥Æ¥¤¥¿¡¼Ãæ¤Ë¥µ¥Ã¥Á¥§¥ëÇúÃƤ¬Àµ¾ï¤ËºîÆ°¤·¤Ê¤¤ÌäÂê¤ò½¤Àµ¡£
ºîÀ®¤¬´°Î»¤·¤¿·ú¤ʪ¤Ç¤Î´í¸±Í½Â¬¥á¥Ã¥»¡¼¥¸É½¼¨¤ò½¤Àµ¡£¤Þ¤¿ÄÆÍî»þ¤â½¤Àµ¡£
¼ç¤Ë¥Ð¥é¥ó¥¹Ä´À°¤Ê¤É¡§
¥¢¥ó¥Á¥Ð¥Ë¡¼¥Û¥Ã¥×¤ò½¤Àµ¡£
¥¤¥Ù¥ó¥È¤¬Æ±»þ¤Ëµ¯¤³¤ëÌäÂê¤ò½¤Àµ¡£
¥Ô¥¹¥È¥ë¤¬Á᤯·â¤Æ¤ëÌäÂê¤ò½¤Àµ¡£
MG42ȯ¼Í®Å٤Υե졼¥à¥ì¡¼¥È°Í¸À¤ò½¤Àµ¡£
¥Þ¥Ã¥×ºÇ²¼ÅÀ¤ËÊ¿¤é¤ÊÌ̤¬¤¢¤ë¾ì¹ç¥È¥ì¡¼¥¹¥Þ¥Ã¥×¤¬²õ¤ì¤ëÌäÂê¤ò½¤Àµ¡£
Lv4ǽÎϤò³ÍÆÀ¤·¤¿»þ¥é¥ó¥À¥à¤Ç¥¹¥Ú¥¯¥Æ¥¤¥¿¡¼¤ËÊѤï¤Ã¤Æ¤·¤Þ¤¦ÌäÂê¤ò½¤Àµ¡£
Antilag¤ò½¤Àµ¡£
¥í¥°¤Ç¥¿¥¤¥à¥¹¥¿¥ó¥×¤¬°ìÉôºï½ü¤µ¤ì¤Æ¤¤¤ëÌäÂê¤ò½¤Àµ¡£
¥ì¥ó¥À¥ê¥ó¥°»þ¿Ä¥²èÁü¤¬Â¿¤¹¤®¤ë¤È¥¯¥é¥Ã¥·¥å¤¹¤ëÌäÂê¤ò½¤Àµ¡£
ÆÃÄê¤ÎÃÏ·Á¤ÇÈô¤Ö¤ÈÄÀ¤ó¤Ç¤æ¤¤ä¤¬¤ÆÄÆÍ¤ëÌäÂê¤ò½¤Àµ¡£
ÆÃÄê¤ÎIP¤ÈLAN¥¢¥É¥ì¥¹¤ò¸í¤Ã¤Æ²ò¼á¤¹¤ëÌäÂê¤ò½¤Àµ¡£
¹â¼¡¥¢¥¹¥¡¼Ê¸»ú¤¬¸í¤Ã¤¿¿§¤Çɽ¼¨¤µ¤ì¤ë³ÈÄ¥½ñ¼°¤ÎÌäÂê¤ò½¤Àµ¡£
ˤ·â¥Þ¡¼¥«¡¼¤¬¥³¥ó¥Ñ¥¹¾å¤ÇÀµ¾ï¤Ëɽ¼¨¤µ¤ì¤Ê¤«¤Ã¤¿ÌäÂê¤ò½¤Àµ¡£
9ʸ»úÌܤ˥ԥꥪ¥É¤ò´Þ¤ßÁ´ÂΤÎŤµ¤¬21»ú¤Î¥Û¥¹¥È¤¬IPX¤È¤·¤Æ°·¤ï¤ì¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
MAX_GLOBAL_SERVERS°Ê¾å¤¬¥Þ¥¹¥¿¡¼¥µ¡¼¥Ð¡¼¤«¤éÌá¤Ã¤Æ¤¤¿¤È¤¤Ë¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
¥ë¥¬¡¼¤Î»¶ÃÆΨ¤ÈºÇ¸å¤ÎÃƤò·â¤Ã¤¿¤È¤¤Î¹Åľ¤ò½¤Àµ¡£
ÆóÃú·ý½Æ¤¬Á᤯·â¤Æ¤ëÌäÂê¤ò½¤Àµ¡£
ÁÀ·â¤Î¥º¡¼¥à¤ò½¤Àµ¡£
¥¯¥é¥¤¥¢¥ó¥È¤¬IP¤ò¾å½ñ¤¤Ç¤¤ë¥»¥¥å¥ê¥Æ¥£¥Û¡¼¥ë¤ò½¤Àµ¡£
¥¹¥Ú¥¯¥Æ¥¤¥¿¡¼¤È¥ê¥ó¥Ü¡¼¥«¥á¥é¤¬¤æ¤Ã¤¯¤ê¤È³ê¤Ã¤Æ¤È¤Þ¤é¤Ê¤¤ÌäÂê¤ò½¤Àµ¡£
¥µ¡¼¥Ð¡¼¥³¥ó¥½¡¼¥ë¤Ë¥ê¥À¥¤¥ì¥¯¥ÈÄÌÃΤ¬²¿ÅÙ¤âɽ¼¨¤µ¤ì¤ë¤³¤È¤ò½¤Àµ¡£
LMS¤Ë¤ÆFIRST BLOOD¤¬É½¼¨¤µ¤ì¤Ê¤«¤Ã¤¿¤Î¤ò½¤Àµ¡£
LMS¤Ë¤Æ¥Á¡¼¥à¤¬²¿¾¡¤·¤Æ¤¤¤ë¤Î¤«¤òɽ¼¨¤·¤Ê¤«¤Ã¤¿ÌäÂê¤ò½¤Àµ¡£
Åêɼ¤¬¹Ô¤ï¤ì¤Æ¤¤¤ëºÇÃæ¤ËÀܳ¤·¤Æ¤¤¿¥×¥ì¥¤¥ä¡¼¤¬¥Þ¥Ã¥×½ª¤ï¤ë¤Þ¤ÇÅêɼ¤Ç¤¤Ê¤¤ÌäÂê¤ò½¤Àµ¡£
Fuel Dump¤Ë¤Æ"base fortification"¤Èɽ¼¨¤µ¤ì¤ë¾ì½ê¤Ë¥À¥¤¥Ê¥Þ¥¤¥È¤òÀßÃÖ¤·¤Æ¤âFuel Dump¤¬Ç˲õ¤Ç¤¤ëÌäÂê¤ò½¤Àµ¡£
pmove¤ÈÉð´ï¥Á¥ã¡¼¥¸¤Ë´Ø¤¹¤ëÉÔŬÅö¤ÊÉôʬ¤ò½¤Àµ¡£
Radar¤Ç¥À¥¤¥Ê¥Þ¥¤¥È²ò½ü¤Ë´Ø¤¹¤ë¥Ð¥°¤ò½¤Àµ¡£
¥Á¡¼¥à¤ÎÃÏÍ뤬Á´¤Æ»È¤ï¤ì¤Æ¤¤¤ë¤È¤¤ËÁê¼ê¥Á¡¼¥à¤ÎÃÏÍë¤ò²ò½ü¤Ç¤¤Ê¤«¤Ã¤¿¥Ð¥°¤ò½¤Àµ¡£
ÃÏÍë¤Î¥«¥¦¥ó¥È¤¬Àµ¤·¤¯¤µ¤ì¤Ê¤«¤Ã¤¿¥Ð¥°¤ò½¤Àµ¡£
Goldrush¤Ç¥À¥¤¥Ê¥Þ¥¤¥ÈÀßÃÖ¥¢¥Ê¥¦¥ó¥¹¤È¼ÂºÝ¤¬¹çÃפ·¤Ê¤¤ÌäÂê¤ò½¤Àµ¡£
¥×¥ì¥¤¥ä¡¼¤¬·úÀß²Äǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤òÇ˲õ¤¹¤ë¤¿¤á¤Î¥À¥¤¥Ê¥Þ¥¤¥È¤òÁ˳²¤¹¤ëÌäÂê¤ò½¤Àµ¡£
¥×¥ì¥¤¥ä¡¼¤ÎÉú¤»¾õÂÖ¤¬¥Ñ¥±¥Ã¥È¥í¥¹¤Ë¤è¤Ã¤Æ¼º¤ï¤ì¤ëÌäÂê¤ò½¤Àµ¡£
3ÉðÊÆâ¤ËÁê¼ê¤òÁ´ÌǤµ¤»¡¢¤«¤Ä¼«Ê¬¤é¤¬¼«»¦¤·¤¿¾ì¹ç¤Ë¾¡Íø¤·¤¿¥Á¡¼¥à¤¬¾¡Íø¤È¤Ê¤é¤Ê¤«¤Ã¤¿ÌäÂê¤ò½¤Àµ¡£
LMS¤Ë¤Æ°ìÊý¤Î¥Á¡¼¥à¤¬Á´ÌǤ·¤Æ¤â½ª¤ï¤é¤Ê¤«¤Ã¤¿ÌäÂê¤ò½¤Àµ¡£
¥Ý¡¼¥ºÃæ¤Ç¤ÎÉð´ï»ý¤ÁÂؤ¨¤ò½¤Àµ¡£
ÆóÃú·ý½Æ¤ÈMG42¤¬cg_autoreload¤ò̵»ë¤·¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
timelimit 0¤Ë¤ª¤±¤ëMaxlivesÄ´À°¤ò½¤Àµ¡£
¾È½à¤Ëɽ¼¨¤µ¤ì¤ë̾Á°¤¬¤¿¤Þ¤ËÀµ¤·¤¯¤Ê¤«¤Ã¤¿ÌäÂê¤ò½¤Àµ¡£
g_{axies,allies}mapxp¤¬Ä¹¤¤¥¥ã¥ó¥Ú¡¼¥ó¤Ë¤Æ¥ª¡¼¥Ð¥Õ¥í¡¼¤òµ¯¤³¤·¥µ¡¼¥Ð¡¼¤ò¥¯¥é¥Ã¥·¥å¤µ¤»¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
¸ÇÄꤵ¤ì¤¿MG42¤¬¥Õ¥§¥ó¥¹¤Ê¤É¤Î¾ã³²Êª¤òÇ˲õ¤·¤Ê¤¤ÌäÂê¤ò½¤Àµ¡£
¥×¥ì¥¤¥ä¡¼¤¬¥Ç¥£¥¹¥³¥Í¥¯¥È¤·¤¿»þ¤Ë'complaint dismissed'¤Èɽ¼¨¤µ¤ì¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
MG42¤¬¥¢¥ó¥Á¥é¥°½èÍý¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿ÌäÂê¤ò½¤Àµ¡£
¥é¥¤¥Õ¥ë¥°¥ì¥Í¡¼¥É¤¬¥Á¡¼¥à¥É¥¢¤ò´ÓÄ̤·¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
¥¤¥ó¥¿¡¼¥ß¥Ã¥·¥ç¥ó¤Ë¤ª¤±¤ëReady½èÍý¤òmatch_readypercent¤ËÊѹ¹¡£
¥¤¥ó¥¿¡¼¥ß¥Ã¥·¥ç¥ó¤ÎReady¤Ï¥¹¥Ú¥¯¥Æ¥¤¥¿¡¼¤Î¤â¤Î¤ò´Þ¤Þ¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
²á¾ê¤Êcg_errordecay¤¬½ÐÎϤµ¤ì¤ëÌäÂê¤ò½¤Àµ¡£
Co¤ÎÃÏÍëȯ¸«¤Ë´Ø¤¹¤ëÌäÂê¤ò½¤Àµ¡£
¥Ê¥¤¥Õ¤¬¥¢¥ó¥Á¥é¥°½èÍý¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿ÌäÂê¤ò½¤Àµ¡£
Ç˲õ¤Ç¤¤ë¥ª¥Ö¥¸¥§¥¯¥È±Û¤·¤ËÉú¤»¤¿»þ¡¢¥×¥ì¥¤¥ä¡¼¤¬¼«¿È¤ÎƬÉô¤ò·â¤Ã¤Æ¤·¤Þ¤¦ÌäÂê¤ò½¤Àµ¡£
Ê¢¶Ú»þ¤Ë»þ¡¹Med°Ê³°¤Î¥¯¥é¥¹¤Ç¤â»ëÀþ¤¬¸ÇÄꤵ¤ì¤Æ¤·¤Þ¤¦ÌäÂê¤ò½¤Àµ¡£
Â礤¹¤®¤ë¥µ¡¼¥Ð¡¼¥³¥Þ¥ó¥É¤¬¥¯¥é¥¤¥¢¥ó¥È¤ò¥¯¥é¥Ã¥·¥å¤µ¤»¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
¥µ¡¼¥Ð¡¼¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë¤Æ//¤¬½èÍý¤µ¤ì¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
¥¬¡¼¥é¥ó¥É¤ÈK43¤ÎÃÆÌôÊü½Ð¤Ë¤Ä¤¤¤Æ½¤Àµ¡£
¥¹¥Ú¥¯¥Æ¥¤¥¿¡¼¤Ë¤Ê¤Ã¤¿»þ¤ËÃÆÌô¤¬ÇÛ¤é¤ì¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
¥ê¥ó¥Ü¡¼Ãæ¤Î¥×¥ì¥¤¥ä¡¼¤¬¥¥ã¥ê¥¢Ãæ¤Î¥×¥ì¥¤¥ä¡¼¤ò¸«¤Æ¤¤¤ë¤È¤¤Ë¥Ç¥£¥¹¥³¥Í¥¯¥È¤¹¤ë¤È¥µ¡¼¥Ð¡¼¤¬Íî¤Á¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
¹¶·âµ÷Î¥¤Ë¤è¤ë¥À¥á¡¼¥¸¸º¾¯¤ÎÉÔ¶ñ¹ç¤ò½¤Àµ¡£
setu ch¤¬¥µ¡¼¥Ð¡¼¤ò¥¯¥é¥Ã¥·¥å¤µ¤»¤ëÌäÂê¤ò½¤Àµ¡£
Éú¤»¤Æ¤¤¤ë¥×¥ì¥¤¥ä¡¼¤¬Êɤˤá¤ê¹þ¤àÌäÂê¤ò½¤Àµ¡£
Ctrl-`¤Ç¥ß¥Ë¥³¥ó¥½¡¼¥ë¤¬³«¤¤¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
¥¹¥Ú¥¯¥Æ¥¤¥¿¡¼»þ¡¢ÊÑÁõ¤·¤Æ¤¤¤ë¥×¥ì¥¤¥ä¡¼¤Î¸µ¤Î̾Á°¤ÈÉþ¤òÃ¥¤Ã¤¿Áê¼ê¤Î̾Á°¤¬½Ð¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
̾Á°¤¬32ʸ»ú°Ê¾å¤Î¥×¥ì¥¤¥ä¡¼¤ËÂФ¹¤ëkick/mute/referee/etc¤¬½ÐÍè¤Ê¤«¤Ã¤¿ÌäÂê¤ò½¤Àµ¡£
¥ª¡¼¥Ð¡¼¥Ò¡¼¥È¤·¤¿Éð´ï¤¬»þ¡¹ºÇÂçÃͤòĶ¤¨¤ë¤ÈÇ®¤¬½é´ü²½¤µ¤ì¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
·ì¤äÇËÊÒ¤¬À¸¤¸¤¿»þ¤Ë¤Þ¤ì¤ËÆ°¤±¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ¡£
Battery¤Ë¤ª¤¤¤Æ¡¢bunker¤Î´ú¤ò¤È¤ë¤È¼«Æ°Åª¤Ë¥¹¥Ñ¥¦¥ó¥Ý¥¤¥ó¥È¤¬°ÜÆ°¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
Railgun¤Î²ßʪ¼Ö¤Î¤è¤¦¤Ê°ÜÆ°¥ª¥Ö¥¸¥§¥¯¥È¤ÏÄä»ß¤è¤ê¤â·Ñ³°ÜÆ°¤¹¤ë¤³¤È¤òÍ¥À褵¤»¤Þ¤¹¡£
¥¯¥é¥¤¥¢¥ó¥È¤Ï/userinfo¤¬»È¤¨¤Ê¤¯¤Ê¤ê¡¢¤³¤ì¤Ë¤è¤êuserinfo nuke¤â½ÐÍè¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
MG42¤È¥â¡¼¥¿¡¼¤ò¹½¤¨¤¿¤È¤¤ËÁдã¶À¤Ï»È¤¨¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£
¥¤¥ó¥¿¡¼¥ß¥Ã¥·¥ç¥óÀ£Á°¤Ë»à¤ó¤Ç¤â"Killed by
̤»ÈÍÑcvar¤Îcg_specswing¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿¡£
F13¡ÁF15¤Î¥¡¼¤â»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
Linux¤Ç¤âCapslock¤Èkp_numlock¤Èkp_equals¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
Made some minor fixes to Linux keyhandling.
¤½¤Î¾Linux¤Ç¤Î¥¡¼ÆþÎϤ˴ؤ¹¤ë¥Þ¥¤¥Ê¡¼¤Ê½¤Àµ¤ò¹Ô¤¤¤Þ¤·¤¿¡£
Åê¹Æ¼Ô ikanatto : 01:28 AM
April 18, 2005
Wolfenstein:Enemy Territory´ØÏ¢¤Î¥Õ¥¡¥¤¥ë
Files
ºî¤Ã¤¿¤â¤Î¤Ê¤É¤Ç¤¹¡£½ÐÍ褬¤¢¤Þ¤ê¤è¤í¤·¤¯¤Ê¤¤¤Î¤Ï½é¿´¼Ô¤È¤¤¤¦¤³¤È¤Ç¤´´ªÊÛ¤¯¤À¤µ¤¤¡£
¸½ºß¥Õ¥¡¥¤¥ë¤ÎÇÛÉۤϽô»ö¾ð¤Ë¤è¤ê¸«¹ç¤ï¤»¤Æ¤¤¤Þ¤¹¡£
Several files were removed because of some reasons.
zip¤ärar¤Ï¤½¤Î¤Þ¤Þ²òÅष¤Æ¤¯¤À¤µ¤¤¡£pk3¥Õ¥¡¥¤¥ë¤¬½Ð¤Æ¤¤¿¤é¡¢etmain¤«¤´´õ˾¤ÎMOD¥Õ¥©¥ë¥À¤ËÆþ¤ì¤Æ¤¯¤À¤µ¤ì¤Ð¤½¤ì¤ÇƳÆþ¤Ï¤ª¤·¤Þ¤¤¤Ç¤¹¡£Ë°¤¤¿¾ì¹ç¤Ë¤Ï°Ü¤·¤¿pk3¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¤³¤È¤Ç¤Ê¤«¤Ã¤¿¤³¤È¤Ë¤Ç¤¤Þ¤¹¡£
ET¥¢¥Ë¥á¥¹¥¥ó
¥Õ¥¡¥¤¥ë
¥¹¥¯¥ê¡¼¥ó¥·¥ç¥Ã¥È
¥¹¥¯¥ê¡¼¥ó¥·¥ç¥Ã¥È¸«¤Æ¤¤¤¿¤À¤±¤ì¤ÐÀâÌÀÉÔÍפǤ·¤ç¤¦¤«¡£»×¤¤¤Ã¤¤ê¼ñÌ£¤Ê¤Î¤Çµ¤»ý¤Á°¤¤¤È´¶¤¸¤¿Êý¤Ï̵Íý¤ËƳÆþ¤¹¤ë¤³¤È¤Ï¤Ê¤¤¤«¤È¸¤¸¤Þ¤¹¡£¤¢¤È¥¥ã¥é¥¯¥¿¡¼¤´¤È¤Ëºî¤ê¤Î»¨¤µ¤¬°ã¤¦¤Î¤Ï¡¢ºî¤Ã¤¿¿Í¤¬°ã¤¦¤¿¤á¤Ç¤¹¡£¤è¤ê»¨¤Ç¤¤¿¤Ê¤¤½ÐÍè¤Î¤â¤Î¤¬ikanattoºî¡¢¤½¤¦¤Ç¤Ê¤¤¤â¤Î¤Ï¤È¤¢¤ëÃΤê¹ç¤¤¤Î¤â¤Î¤Ç¤¹¡£
»ö¾ð¤Ë¤è¤ê¥Õ¥¡¥¤¥ë¤Ïºï½ü¤·¤Þ¤·¤¿¡£
Wolfenstein:Enemy Territory Custom Model Depot Yard¤Î¥¢¡¼¥«¥¤¥Ö·²
Àκî¤Ã¤¿Ê¸½ñ¤ò¤Þ¤È¤á¤Æzip¤·¤¿¤â¤Î¤Ç¤¹¡£¤Á¤Ê¤ß¤Ëzip¤·¤¿Ê¸½ñ¤Ï¸½weblog¤ËÂçȾ¤Ï°Ü¤·¤Æ¤¢¤ë¤Î¤Ç²þ¤á¤ÆɬÍפˤʤ뤳¤È¤Ï¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
W:ET¡¡¥×¥ì¥¤¥ä¡¼¥â¥Ç¥ë¥¢¥Ë¥á¡¼¥·¥ç¥ó
ET¤Ç»È¤ï¤ì¤Æ¤¤¤ë¥×¥ì¥¤¥ä¡¼¥â¥Ç¥ë¤Î¥¢¥Ë¥á¡¼¥·¥ç¥ó¤òϢ³ºÆÀ¸¤·¤¿¤â¤Î¤Ç¤¹¡£¤Á¤Ê¤ß¤Ë¤³¤ì¤À¤±¤Ç¤Ï»È¤¤¤è¤¦¤¬¤Ê¤¤¤Î¤Ç¡¢¤Õ¡¼¤ó¡¢¤³¤ó¤Ê¤Î¤â¤¢¤ë¤ó¤À¡¼ÄøÅ٤˸«¤Æ¤ä¤Ã¤Æ¤¯¤À¤µ¤¤¡£
W:ET¡¡¥×¥ì¥¤¥ä¡¼¥â¥Ç¥ë¥¢¥Ë¥á¡¼¥·¥ç¥ó¡¡3ds max¥Ç¡¼¥¿
¥Õ¥¡¥¤¥ë(rar)¡¡
¾åµ¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Î3ds max¥Ç¡¼¥¿¤Ç¤¹¡£»ä¤Î3ds max´Ä¶¤Ï5.1J¤Ëcharactor studio 3.0¤Ç¤¹¡£¥á¥Ã¥·¥å¥Ç¡¼¥¿¤È¤·¤ÆAxis¤ÎCovert Ops¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£¥ê¥¯¥¨¥¹¥È¤¢¤ì¤Ð¾¤Î¥á¥Ã¥·¥å¥Ç¡¼¥¿¤Ë¤âÂбþ¤Ç¤¤Þ¤¹¤Î¤Ç¤´ÁêÃ̤¯¤À¤µ¤¤¡£
Åê¹Æ¼Ô ikanatto : 06:34 PM | ¥³¥á¥ó¥È (383)
April 17, 2005
¤´°Õ¸«¡¦¤´´¶ÁÛ
Movable Type¤Ï·Ç¼¨ÈĤΥ¢¥É¥¤¥ó¤¬¤Ê¤¤¤è¤¦¤Ç¤¹¡£¤È¤¤¤¦¤³¤È¤Ç¡¢¤´°Õ¸«¤Ê¤É¤´¤¶¤¤¤Þ¤·¤¿¤é¤³¤Á¤é¤Îʸ½ñ¤Ë¥³¥á¥ó¥È¤È¤·¤Æ¤´Åê¹Æ¤¯¤À¤µ¤¤¡£Åê¹Æ¼Ô ikanatto : 03:51 AM | ¥³¥á¥ó¥È (1191)
What's Urban Terror
»ä¤ÎÂç¹¥¤¤Ê¥²¡¼¥à¤Î°ì¤ÄQ3A¤ÎMOD¡¢Urban Terror¤Ë¤Ä¤¤¤Æ¤Î¾Ò²ð¤Ç¤¹¡£
¤â¤¦¤Á¤ç¤Ã¤È¤ÇET¤Ë¤â°Ü¿¢¤µ¤ì¤ëÍͻҤʤΤǡ¢À޳Ѥε¡²ñ¤È¤È¤¤¤¦¤³¤È¤Ç¾Ò²ðʸ¤òºî¤Ã¤Æ¤ß¤Þ¤¹¡£
Urban Terror¤È¤Ï
Urban Terror¤Ï¡¢Sillicon Ice development¡ÊMODºîÀ®Í»Ö¡Ë¤Ë¤è¤Ã¤Æºî¤é¤ì¤¿Q3A¤ÎMOD¤Î°ì¤Ä¤Ç¤¹¡£¥Æ¡¼¥Þ¤È¤·¤Æ¤Ï¤´Â¸ÃÎCounter Strike¤Ë¶á¤¤¤â¤Î¤Ç¡¢¶áÂå¤òÉñÂæ¤Ë¥Æ¥í¥ê¥¹¥È¤ÈÆüìÉôÂâ¤Ë¤è¤ë½Æ·âÀï¤Ç¤¹¡£
¥×¥ì¥¤´¶³Ð¤È¤·¤Æ¤Ï¡¢¥À¥á¡¼¥¸¥·¥¹¥Æ¥à¤¬¥ê¥¢¥ë·Ï¡¢±¿Æ°¥·¥¹¥Æ¥à¤¬¥¹¥Ý¡¼¥Ä·Ï¤È¤Ê¤Ã¤Æ¤ª¤ê¾¤ÎMOD¤È¤Ï°ìÌ£°ã¤Ã¤¿Ì£ÉÕ¤±¤Ç¤¹¡£»ä¸Ä¿Í¤È¤·¤Æ¤Ï¡¢CS¤è¤ê¤â¤³¤Á¤é¤ÎÊý¤¬¹¥¤¤Ç¤¹¡£
Quake2¤ËAction Quake2¤È¤¤¤¦MOD¤¬¤¢¤Ã¤¿¤Î¤ò¤´Â¸ÃΤÎÊý¤¬¤¤¤é¤Ã¤·¤ã¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢¤Þ¤µ¤·¤¯¤½¤ì¤Î¸å·Ñ¼Ô¤È¤¤¤Ã¤¿´¶¤¸¤Ç¤¹¡£
Urban Terror¤Î³µÍ×
Åо줹¤ëÉð´ï¤Ï´ðËÜŪ¤Ë¼Âºß¤Î¤â¤Î¤Ç¡¢Æ¬Éô¤Ø¤ÎÈïÃƤϨ»à¡¢¤½¤ì°Ê³°¤Ç¤âÂçÄñ½Å¾É¤È¤Ê¤ê¤Þ¤¹¡£µÓÉô¤Ø¤Î¥À¥á¡¼¥¸¤¬±¿Æ°Ç½ÎϤÎÄã²¼¡¢ÏӤؤϾȽà¤Î¤Ö¤ì¤Ê¤É¡¢¼Â¤Ë¶Å¤Ã¤Æ¤¤¤Þ¤¹¡£¤Þ¤¿Éð´ï°Ê³°¤Ë¤âÁõÈ÷ÉʤòÁª¤Ö¤³¤È¤¬²Äǽ¤Ç¡¢ËÉÃÆ¥Á¥ç¥Ã¥¡¢¥Ø¥ë¥á¥Ã¥È¡¢ÄɲÃÃÆÌô¡¢¥Ê¥¤¥È¥Ó¥¸¥ç¥ó¡¢¼êÜØÃÆ¡¢Á®¸÷ÃÆ¡¢±ì´É¡¢¥µ¥¤¥ì¥ó¥µ¡¼¡¢¥ì¡¼¥¶¡¼¥µ¥¤¥È¤Ê¤É¤¬ÁªÂò²Äǽ¤Ç¤¹¡£
¥²¡¼¥à¥â¡¼¥É¤Ï¥Ç¥¹¥Þ¥Ã¥Á¡ÊFFA¡Ë¡¢¥Á¡¼¥à¥Ç¥¹¥Þ¥Ã¥Á¡¢CTF¤Ë²Ã¤¨¤ÆET¤Ç¤¤¤¦LMS¤ËÁêÅö¤¹¤ëSurvivor¤¬¤¢¤ê¤Þ¤¹¡£¤É¤Î¥²¡¼¥à¥â¡¼¥É¤Ç¤â³Ú¤·¤¯Í·¤Ö¤³¤È¤¬½ÐÍè¤Þ¤¹¡£Æä˥µ¥Ð¥¤¥Ð¡¼¥â¡¼¥É¤ÏÏ¢·È¤¬¤â¤Î¤ò¤¤¤¦¥¯¥é¥óÀï¸þ¤±¤Î¥â¡¼¥É¤Ç¤¹¤«¤é¡¢¥é¥¤¥È¥æ¡¼¥¶¡¼¤«¤é¥Ø¥Ó¡¼¥×¥ì¥¤¥ä¡¼¤Ë¤Þ¤ÇÂбþ¤Ç¤¤Þ¤¹¡£
Ver3°Ê¹ß¤«¤éBomb¥â¡¼¥É¤¬Äɲ䵤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤ÏCounter Strike¤Ë¤¢¤ë¤è¤¦¤Ê¡¢¥À¥¤¥Ê¥Þ¥¤¥È¤ò¥Þ¥Ã¥×µ¬Äê²Õ½ê¤ËÀßÃÖ¤·¡¢¤³¤ì¤òËɱҤޤ¿¤Ï²ò½ü¤ò½ä¤Ã¤ÆÁ褦¤â¤Î¤Ç¤¹¡£¤Ê¤«¤Ê¤«¤Ë¥¢¥Ä¥¤¤Ç¤¹¡£
¤Þ¤¿Åо줷¤Æ¤«¤é¤½¤³¤½¤³Ç¯·î¤¬·Ð²á¤·¤Æ¤ª¤ê¡¢¥æ¡¼¥¶¡¼¤ä¥ª¥Õ¥£¥·¥ã¥ë¤Ë¤è¤ë¥«¥¹¥¿¥à¥Þ¥Ã¥×¤ä¥¹¥¥ó¤¬Î®Ä̤·¤Æ¤¤¤ë¤³¤È¤â¸«Æ¨¤»¤Þ¤»¤ó¡£¤¤¤¯¤é¤Ç¤âÍ·¤Ö¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
Urban Terror¤ÎƳÆþÊýË¡
¤Þ¤º»Ï¤á¤ËQuake 3 Arena¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¿Í¤ÏÇã¤Ã¤Æ¤¯¤À¤µ¤¤¡£º£¤È¤Ê¤Ã¤Æ¤Ï¤È¤Æ¤â°Â²Á¤ËÇ㤦¤³¤È¤¬½ÐÍè¤ë¤È»×¤¤¤Þ¤¹¡£¤½¤·¤ÆQ3A¤ÎºÇ¿·¥Ñ¥Ã¥Á¤òÅö¤Æ¤Æ¤¯¤À¤µ¤¤¡£1.32¤¢¤¿¤ê¤¬ºÇ¿·¤Ç¤·¤ç¤¦¤«¡£
¤½¤·¤Æ¡¢Urban Terror¥µ¥¤¥È¤Ë¤ÆºÇ¿·¤ÎUrban Terror¤Î¥Õ¥¡¥¤¥ë¤ò¼ê¤ËÆþ¤ì¤Æ¤¯¤À¤µ¤¤¡£¶²¤é¤¯3.7¤¬Q3AÈǺǿ·¥Ð¡¼¥¸¥ç¥ó¤Ç¤·¤ç¤¦¡£
¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Õ¥¡¥¤¥ë¤ò²òÅष¤Æ½Ð¤Æ¤¤¿pk3·²¤òQ3A¥Õ¥©¥ë¥À°Ê²¼¤ËÃÖ¤±¤Ð´ðËÜŪ¤Ë½àÈ÷¤Ï´°Î»¤Ç¤¹¡£¤è¤ê¾ÜºÙ¤ÊƳÆþÊýË¡¤ä¥Þ¥Ã¥×¤Ê¤É¤Î¼ê¤ËÆþ¤ìÊý¤ÏETUT¤¬½Ð¤Æ¤«¤é¤Þ¤¿½ñ¤¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
Åê¹Æ¼Ô ikanatto : 03:08 AM | ¥³¥á¥ó¥È (940)
April 16, 2005
W:ET¥½¡¼¥¹¥³¡¼¥ÉϯÆɲñ¡¡ÂèÏ»²ó
Reading the Source Code of W:ET #6
º£²ó¤Î¤Í¤é¤¤
²¿¤À¤«¤ó¤À¤ÇÏ»²óÌܤˤʤê¤Þ¤·¤¿¡£ET¤âµ×¤·¤Ö¤ê¤Î¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤ò¼õ¤±¡¢2.60¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤³¤ì¤Ëȼ¤¤¡¢¥½¡¼¥¹¥³¡¼¥É¤â¿·¤·¤¤¤â¤Î¤¬ÇÛÉÛ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£º£²ó¤«¤é¤Ï¤³¤Á¤é¤ò°·¤¤¤Þ¤¹¡£¥À¥á¡¼¥¸¸º¿ê¤Ë´Ø¤¹¤ë¥³¡¼¥É½¤Àµ¤½¤Î¾¤¤¤í¤¤¤í¥Õ¥£¥Ã¥¯¥¹¤¬¤Ê¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£
º£²ó¤Ï¥¢¥ó¥Á¥é¥°µ¡Ç½¤¬¤É¤Î¤è¤¦¤ËƯ¤¤¤Æ¤¤¤ë¤Î¤«¡¢¤Ë¤Ä¤¤¤Æ¤ß¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¥¢¥ó¥Á¥é¥°¤Ã¤Æ¡©
¥¢¥ó¥Á¥é¥°¤Ï²¿¤¹¤ë¤â¤Î¤¾¡¢¤È»×¤ï¤ì¤ëÊý¤¬¤¤¤é¤Ã¤·¤ã¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£¥é¥°¤È¤Ï¤´Â¸ÃΤÎÄ̤ꡢ¥¯¥é¥¤¥¢¥ó¥È¥µ¡¼¥Ð¡¼´Ö¤Ç¤ÎÄÌ¿®½èÍý¤Ë¤è¤Ã¤ÆÀ¸¤º¤ëƱ´ü¤Î¤º¤ì¡¢¥¿¥¤¥à¥é¥°¤Î¤³¤È¤Ç¤¹¡£¤½¤Î¤¿¤á¡¢¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¤Ï¤¤Á¤ó¤È¥¿¡¼¥²¥Ã¥È¤ËÂФ·¤ÆÌ¿Ã椹¤ëÊý¸þ¤Ç¤â¡¢¥µ¡¼¥Ð¡¼¾å¤Î¥Ç¡¼¥¿¤Ç¤Ï´û¤Ë¥¿¡¼¥²¥Ã¥È¤Ï¤½¤³¤Ë¤Ï¤ª¤é¤ºÌ¿Ã椷¤Ê¤¤¸½¾Ý¤¬µ¯¤¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢Ping¤ÎÂ礤ʥµ¡¼¥Ð¡¼¤Ç¤Ï¡ÖÀèÆɤߡפò¤·¤Æ¹¶·â¤ò¹Ô¤¦¤³¤È¤¬¤¤¤ï¤ÐFPS¤Î¾ï¼±¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤·¤¿¡£

¤³¤ì¤ò²ò·è¤¹¤ë¤¿¤á¤Ë¥¢¥ó¥Á¥é¥°¤¬Æ³Æþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¥¯¥é¥¤¥¢¥ó¥È¤ÎÆ°ºîÆâÍƤȹԤä¿»þ´Ö¤ò¥µ¡¼¥Ð¡¼¤¬¹Íθ¤·¤Æ¡¢¥¯¥é¥¤¥¢¥ó¥È¤¬¼ÂºÝ¤Ë¸«¤Æ¤¤¤ë¾ò·ï²¼¤Ë¤ÆÅö¤¿¤êȽÄê¤ò¹Ô¤¦¤â¤Î¤Ç¤¹¡£¤³¤Î¤¿¤á¡¢¥¯¥é¥¤¥¢¥ó¥È¤ÏÀèÆɤߤò¤¹¤ëɬÍפϤʤ¯¤Ê¤ê¤Þ¤¹¡£
¤·¤«¤·¤Þ¤Ã¤¿¤¯ÌäÂ꤬¤Ê¤¤¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Ping¤Î¾®¤µ¤¤¿Í¤ÈÂ礤ʿͤ¬½Ð²ñ¤¤Æ¬¤Ë¥Ñ¥ó¥Ä¥¡¡¼¥Õ¥¡¥¦¥¹¥È¤ò·â¤Ã¤¿¤È¤·¤Þ¤¹¡£·ë²Ì¡¢Ping¤Î¾®¤µ¤¤¿Í¤¬Â礤ʿͤò¡Öɬ¤º¡×ÀèÀ©¤·¤Þ¤¹¡£¤³¤ì¤ÏÄÌ¿®È¿±þ®Å٤κ¹¤Ç¤¢¤ê¡¢¥¢¥ó¥Á¥é¥°µ¡Ç½¤ò¤â¤Ã¤Æ¤·¤Æ¤â¤³¤ì¤òËä¤á¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¤Î¤Ç¤¹¡£

¥¢¥ó¥Á¥é¥°µ¡Ç½¼Â¸½¤Î¤¿¤á¤Î¥³¡¼¥É·²¤¬Æþ¤Ã¤Æ¤¤¤ë¤Î¤Ïg_antilag.c¤¬¼ç¤Ç¤¹¡£Ver2.60¤Ë¤Ê¤Ã¤Æ¤«¤é¥Ê¥¤¥Õ¤ÈMG42¤Ë´Ø¤·¤Æ¤â¥¢¥ó¥Á¥é¥°µ¡Ç½¤¬Æ¯¤¯¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤Ä¤Þ¤ê¡¢Åö¤¿¤êȽÄê¤ÎºÝ¤Ë¤Ï¤³¤³¤Î´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¤µ¤Ã¤½¤¯¤ß¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¥¢¥ó¥Á¥é¥°¡§°ÌÃÖ¾ðÊóÊݸ
void G_StoreClientPosition( gentity_t* ent ) { int top, currentTime; if (!( ent->inuse && (ent->client->sess.sessionTeam == TEAM_AXIS || ent->client->sess.sessionTeam == TEAM_ALLIES) && ent->r.linked && (ent->health > 0) && !(ent->client->ps.pm_flags & PMF_LIMBO) && (ent->client->ps.pm_type == PM_NORMAL) )) { return; } (¾Êά) ent->client->clientMarkers[top].servertime = level.time; ent->client->clientMarkers[top].time = currentTime; }
°ìÈֺǽé¤Î´Ø¿ô¤Ç¤¹¡£G_StoreClientPosition¤È¤¤¤¦Ì¾Á°¤«¤é¤·¤Æ¡¢¥¯¥é¥¤¥¢¥ó¥È¤Î°ÌÃÖ¾ðÊó¤òÊݸ¤·¤Æ¤ª¤¯¤â¤Î¤Î¤è¤¦¤Ç¤¹¤Í¡£¾Ü¤·¤¯¸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
top = ent->client->topMarker; // new frame, mark the old marker's time as the end of the last frame if( ent->client->clientMarkers[top].time < level.time) { ent->client->clientMarkers[top].time = level.previousTime; top = ent->client->topMarker = ent->client->topMarker == MAX_CLIENT_MARKERS - 1 ? 0 : ent->client->topMarker + 1; }
top¤ËtopMarker¤òÂåÆþ¤·¤Æ¤¤¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢top¤Ï¥µ¡¼¥Ð¡¼¤ËµÏ¿¤µ¤ì¤Æ¤¤¤ëºÇ¿·¤Î¥¯¥é¥¤¥¢¥ó¥È°ÌÃÖ¾ðÊó¤Î¡ÖÈÖ¹æ¡×¤Ç¤¹¡£
¼¡¤Îif¾ò·ï¤Ï¡¢µÏ¿¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¤¥¢¥ó¥È¤Î»þ´Ö¤¬¥µ¡¼¥Ð¡¼¤Î»þ´Ö¤è¤ê¤â¾®¤µ¤¤¤«¤É¤¦¤«¤ò¤ß¤Æ¤¤¤Þ¤¹¡£¤â¤·¤½¤¦¤Ê¤é¡¢¤³¤ÎµÏ¿»þ´Ö¤òpreviousTime¤ËÃÖ¤´¹¤¨¡¢top¤ò1¸ÄÁý¤ä¤¹¡¢¤Ä¤Þ¤ê¿·¤·¤¤µÏ¿ÈÖ¹æ¤Ë¤·¤Þ¤¹¡£
VectorCopy( ent->r.mins, ent->client->clientMarkers[top].mins ); VectorCopy( ent->r.maxs, ent->client->clientMarkers[top].maxs ); VectorCopy( ent->r.currentOrigin, ent->client->clientMarkers[top].origin ); ent->client->clientMarkers[top].servertime = level.time; ent->client->clientMarkers[top].time = currentTime;
¤³¤³¤Ç¤Ï¿·¤·¤¯¥¯¥é¥¤¥¢¥ó¥È¤Î°ÌÃÖ¾ðÊó¤È»þ´Ö¤òµÏ¿¤·¤Æ¤¤¤Þ¤¹¡£
¥µ¡¼¥Ð¡¼¤Ç¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Î¡Ö°ÌÃ֡פȡֻþ´Ö¡×¤¬¥»¥Ã¥È¤ÇµÏ¿¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò²±¤¨¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¤Í¡£
¥¢¥ó¥Á¥é¥°¡§Historical Trace
¥¯¥é¥¤¥¢¥ó¥È¤Î°ÌÃÖ¾ðÊ󤬻þ´Ö¤È¤È¤â¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤·¤¿¡£¤½¤ì¤Ç¤Ï¼ÂºÝ¤ÎÅö¤¿¤êȽÄê¤ò¸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£¤³¤ì¤ÏG_HistoricalTrace´Ø¿ô¤Ç¹Ô¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
if( !g_antilag.integer || !ent->client) { G_AttachBodyParts( ent ) ; trap_Trace( results, start, mins, maxs, end, passEntityNum, contentmask ); res = G_SwitchBodyPartEntity(&g_entities[results->entityNum]); POSITION_READJUST G_DettachBodyParts(); return; }
¤³¤³¤Ï¥¢¥ó¥Á¥é¥°µ¡Ç½¤¬Ìµ¸ú¡¢¤Þ¤¿¤ÏÂоݤ¬¥¯¥é¥¤¥¢¥ó¥È¤Ç¤Ê¤¤¾ì¹ç¤Î½èÍý¤Ç¤¹¡£¤¤¤ï¤æ¤ëÉáÄ̤ÎÅö¤¿¤êȽÄê¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£¤Á¤Ê¤ß¤ËG_AttachBodyParts¤ÈG_DettachBodyParts¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Ë¥Ø¥Ã¥É¤ä¤ʤɤθÄÊ̤ÎÅö¤¿¤êȽÄê²Õ½ê¤ò¤¯¤Ã¤Ä¤±¤¿¤ê¼è¤ê½ü¤¤¤¿¤ê¤·¤Þ¤¹¡£
G_AdjustClientPositions( ent, ent->client->pers.cmd.serverTime, qtrue ); G_AttachBodyParts( ent ) ; trap_Trace( results, start, mins, maxs, end, passEntityNum, contentmask ); res = G_SwitchBodyPartEntity(&g_entities[results->entityNum]); POSITION_READJUST G_DettachBodyParts();
¤½¤·¤Æ¤³¤Á¤é¤¬¥¢¥ó¥Á¥é¥°µ¡Ç½¤¬Í¸ú¤Ê¾ì¹ç¤ÎÅö¤¿¤êȽÄê¤Ç¤¹¡£¤Þ¤º¤ÏG_AdjustClientPositions¤«¤é¸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£Æó¤ÄÌܤΰú¿ô¤Ë¡¢ent->client->pers.cmd.serverTime¤ò¥¨¥ó¥È¥ê¡¼¤·¤Æ¤¤¤ëÅÀ¤ò²±¤¨¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¿ôÃͤϡ¢¥¯¥é¥¤¥¢¥ó¥È¤¬ºÇ¸å¤Ë¼õ¤±¼è¤Ã¤¿¥Ç¡¼¥¿¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢¥¯¥é¥¤¥¢¥ó¥È¤¬º£¼ÂºÝ¤Ë¸«¤Æ¤¤¤ë¾õ¶·¤òºÆ¸½¤¹¤ë¥µ¡¼¥Ð¡¼»þ´Ö¤Ç¤¹¡£
void G_AdjustClientPositions( gentity_t* ent, int time, qboolean forward) { int i; gentity_t *list; for ( i = 0; i < level.numConnectedClients; i++, list++) { list = g_entities + level.sortedClients[i]; // Gordon: ok lets test everything under the sun if ( list->client && list->inuse && (list->client->sess.sessionTeam == TEAM_AXIS || list->client->sess.sessionTeam == TEAM_ALLIES) && (list != ent) && list->r.linked && (list->health > 0) && !(list->client->ps.pm_flags & PMF_LIMBO) && (list->client->ps.pm_type == PM_NORMAL) ) { if(forward) { G_AdjustSingleClientPosition( list, time ); } else { G_ReAdjustSingleClientPosition( list ); } } } }
Â礤Êif¾ò·ï¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤Þ¤È¤á¤ë¤ÈÂоݤ¬¥¯¥é¥¤¥¢¥ó¥È¤Ç¥Á¡¼¥à¤Ë»²²Ã¤·¤Æ¤¤¤Æ¹¶·âÂоݤȹ¶·â¼Ô¤¬Æ±¤¸¤Ç¤Ï¤Ê¤¯¤Æ¥Ø¥ë¥¹¤¬1°Ê¾å¤Ç¤¢¤ë¤³¤È¤ò¤ß¤Æ¤¤¤Þ¤¹¡£¤â¤·¤½¤¦¤Ê¤é¡¢G_AdjustSingleClientPosition¤Ë¤è¤Ã¤Æ¹¶·âÂоݡʾò·ï¤òËþ¤¿¤¹¤¹¤Ù¤Æ¤Î¥¯¥é¥¤¥¢¥ó¥È¡Ë¤Î°ÌÃÖ¾ðÊó¤ò¹¶·â¤·¤Æ¤¤¤ë¥¯¥é¥¤¥¢¥ó¥È¤Îtime¡Êent->client->pers.cmd.serverTime¡Ë¤Ë¤è¤Ã¤Æ½¤Àµ¤·¤Þ¤¹¡£¼ÂºÝ¤Î¥³¡¼¥É¤ò¸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
static void G_AdjustSingleClientPosition( gentity_t* ent, int time ) { int i, j; if( time > level.time) { time = level.time; } // no lerping forward.... i = j = ent->client->topMarker; do { if(ent->client->clientMarkers[i].time <= time) { break; } j = i; i = (i > 0) ? i - 1 : MAX_CLIENT_MARKERS - 1; } while(i != ent->client->topMarker); if(i == j) { // oops, no valid stored markers return; }
ºÇ½é¤Îifʸ¤Ï¡¢¥¯¥é¥¤¥¢¥ó¥È¤¬¥µ¡¼¥Ð¡¼¤è¤ê¤âÀè¤Î¥Õ¥ì¡¼¥à¤Ë㤷¤Æ¤¤¤¿¾ì¹ç¤³¤ì¤ò¥µ¡¼¥Ð¡¼¤Î»þ´Ö¤ËƱ´ü¤µ¤»¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡Ê¤³¤ó¤Ê¾õ¶·¤Ï¥í¡¼¥«¥ëÀܳ¤Ç¤â¤·¤Ê¤¤¸Â¤ê¤Ê¤«¤Ê¤«µ¯¤³¤ê¤¨¤Þ¤»¤ó¤¬Ž¥Ž¥Ž¥¡Ë¡£¹«¤Ç¤Ïcom_maxfps¤òÁàºî¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÅö¤¿¤ê¤ä¤¹¤¯¤Ê¤ë¤Ê¤É¤Î±½¤¬Óñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£¼ÂºÝ¤ËfpsÀßÄêÃͤϤ³¤Î¤¢¤¿¤ê¤Ç¥Õ¥ì¡¼¥à¤´¤È¤Î»þ´Ö¤È¤¤¤¦·Á¤Ç¸ú¤¤¤Æ¤¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¥Õ¥ì¡¼¥à¤´¤È¤Î»þ´Ö¤¬Ã»¤¤¤Û¤É°ÌÃÖ¾ðÊ󤬾ܤ·¤¯µÏ¿¤µ¤ì¤ë¤¿¤á¡¢Åö¤¿¤êȽÄ꤬ºÙ¤«¤¯·×»»¤µ¤ì¤Þ¤¹¡£¤³¤Î¤¿¤áÅö¤¿¤ê°×¤µ¤Ëº¹¤¬À¸¤¸¤ë²ÄǽÀ¤¬¤¢¤ë¤Î¤Ç¤¹¡£

¼¡¤Îwhile¹½Ê¸¤¬¤Þ¤µ¤Ë¥¢¥ó¥Á¥é¥°µ¡Ç½¤½¤Î¤â¤Î¤Ç¤¹¡£½¤ÀµÂоݤȤʤ륯¥é¥¤¥¢¥ó¥È¤Î°ÌÃÖ¾ðÊó¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë»þ´Ö¤È¹¶·â¼Ô¤¬¸«¤Æ¤¤¤ë»þ´Ö¤òÈæ³Ó¤·¤Æ¡¢Æ±¤¸¤«Á°¼Ô¤¬¸å¼Ô¤è¤ê¤âÁ°¤Ë¤Ê¤Ã¤¿¤È¤¤Î°ÌÃÖÅÐÏ¿ÈÖ¹æ¤òµá¤á¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤Ã¤Æ¡Ö¹¶·â¼Ô»ëÅÀ¤«¤é¡×¤Î¥¿¥¤¥à¥é¥°¤òÂǤÁ¾Ã¤·¥¹¥È¥ì¥¹¤Î¤Ê¤¤¥²¡¼¥à¥×¥ì¥¤¤ò¼Â¸½¤·¤Æ¤¤¤Þ¤¹¡£¤¿¤À¤·¡¢¡ÖÈﹶ·â¼Ô¡×¤«¤é¤Ï¼«¿È¤¬¹¶·â¤ò¼õ¤±¤ë¥¿¥¤¥ß¥ó¥°¤Ç¤Ï¤Ê¤¤¤Ï¤º¤Î»þ¤Ë¤â¥À¥á¡¼¥¸¤òÈï¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ï¹¶·â¼Ô¤ÎPing¤¬°¤±¤ì¤Ð°¤¤¤Û¤ÉÀ¸¤¸¤ä¤¹¤¯¤Ê¤ë¤Î¤Ç¡¢¤É¤³¤Þ¤Ç¤³¤Îµ¡Ç½¤ò͸ú¤Ë¤¹¤ë¤«¤Ï¼Â¤Ë¹Í¤¨¤É¤³¤í¤Ç¤¹¡£
¼¡¤Ë»²¤ê¤Þ¤·¤ç¤¦¡£
if(i != ent->client->topMarker) { float frac = ((float)(ent->client->clientMarkers[j].time - time)) / (ent->client->clientMarkers[j].time - ent->client->clientMarkers[i].time); LerpPosition(ent->client->clientMarkers[j].origin, ent->client->clientMarkers[i].origin, frac, ent->r.currentOrigin); LerpPosition(ent->client->clientMarkers[j].mins, ent->client->clientMarkers[i].mins, frac, ent->r.mins); LerpPosition(ent->client->clientMarkers[j].maxs, ent->client->clientMarkers[i].maxs, frac, ent->r.maxs); } else { VectorCopy( ent->client->clientMarkers[j].origin, ent->r.currentOrigin ); VectorCopy( ent->client->clientMarkers[j].mins, ent->r.mins ); VectorCopy( ent->client->clientMarkers[j].maxs, ent->r.maxs ); }
¤³¤³¤Ï¡¢¥Õ¥ì¡¼¥à¤È¥Õ¥ì¡¼¥à¤Î´Ö¤Î¡Ö»þ´ÖŪ¤Ê¡×·ä´Ö¤òÊä´°¤¹¤ë¤¿¤á¤ÎÉôʬ¤Ç¤¹¡£Î㤨¤Ð¹¶·â¼Ô¤¬¹ÔÆ°¤·¤¿»þ´Ö¤¬3Éäá¤À¤Ã¤È¤È¤·¤Þ¤¹¡£¤È¤³¤í¤¬¥µ¡¼¥Ð¡¼¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¤¥¢¥ó¥È¤Î°ÌÃÖ¾ðÊó¤¬1ÉäÈ5ÉäΤâ¤Î¤·¤«¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤½¤ó¤Ê»þ¡¢3ÉÃÌܤΰÌÃÖ¾ðÊó¤ò¿ä¬¤¹¤ë¤¿¤á¤Ë¡¢Ä¾Á°¤Èľ¸å¤Î°ÌÃÖ¤ò¥¯¥é¥¤¥¢¥ó¥È¤¬Ä¾ÀþŪ¤ËÆ°¤¤¤¿¤È²¾Äꤷ¡¢¹¶·â¼Ô¤Î¹ÔÆ°»þ´Ö¤Ç¤Î°ÌÃÖ¤ò·×»»¤·¤Æ¤¤¤Þ¤¹¡£

ÅöÁ³¤Ê¤¬¤é¤³¤³¤Ë¤â¸íº¹¤ò´Þ¤à²ÄǽÀ¤Ï¤¢¤ê¤Þ¤¹¤¬¡¢ÂçÄñ¤Î¾ì¹ç¤ÏÎɹ¥¤Ê·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£¤³¤¦¤¤¤Ã¤¿Éôʬ¤ò¸«¤Æ¤â¡¢¼ÂÀ蘆¤Ê¤¬¤é¤Î¥¸¥°¥¶¥°¤ÊÆ°¤¤¬Áê¼ê¤Î¹¶·â¤ò²óÈò¤¹¤ë¾å¤Ç¤È¤Æ¤â͸ú¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£
¤µ¤Æ¡¢ÏäòG_HistoricalTrace¤ËÌᤷ¤Þ¤¹¡£G_AdjustSingleClientPosition¤Ë¤è¤Ã¤Æ¥¯¥é¥¤¥¢¥ó¥È¤Î°ÌÃÖ¤ò½¤Àµ¤â¤·¤¯¤ÏÊä´°¤·¡¢¤½¤·¤Ætrap_Trace¤Ë¤è¤êÅö¤¿¤êȽÄê¤ò¸«¤Æ¤¤¤Þ¤¹¡£¤³¤Î·ë²Ì¤Ïresults¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ²áµî¤Î¾õÂ֤ˤʤäƤ¤¤ë³Æ¥¯¥é¥¤¥¢¥ó¥È¤Î°ÌÃÖ¾ðÊó¤ò¡¢G_AdjustClientPositions¤ò3¤ÄÌܤΰú¿ô¤òfalse¤Ç¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¸µ¤ËÌᤷ¤Æ¤¤¤Þ¤¹¡£
¤Á¤Ê¤ß¤ËG_SwitchBodyPartEntity¤ÏÅö¤¿¤Ã¤¿ÂΤÎÉô°Ì¤Ë±þ¤¸¤Æ½èÍý¤òʬ¤±¤ë´Ø¿ô¤Î¤è¤¦¤Ç¤¹¤¬¡¢¸½ºß¤Î¤È¤³¤íÌܤÀ¤Ã¤¿µ¡Ç½¤Ï²Ì¤¿¤·¤Æ¤¤¤Þ¤»¤ó¡£Æ¬¤Ç¤âƹÂΤǤâ¤Ǥâ¡Ö¥¯¥é¥¤¥¢¥ó¥È¤ËÅö¤¿¤Ã¤¿¡×¤È¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤ì°Ê¹ß¤Î¥³¡¼¥É¤Ï¡¢°ÌÃÖ½¤Àµ¤·¤Æ¥¯¥é¥¤¥¢¥ó¥È¤Ë¥Ò¥Ã¥È¤·¤¿¤È¤°ÌÃÖ½¤Àµ¤Ê¤·¤Ç¤ÎÅö¤¿¤êȽÄê¤ò¹Ô¤¤¡¢¤³¤Î·ë²Ì¤òres¤ËÂåÆþ¤·¤Æ¤¤¤Þ¤¹¡£
¤Þ¤È¤á
º£²ó¤Ï¥¢¥ó¥Á¥é¥°µ¡Ç½¤È¤¤¤¦¤³¤È¤Ç¡¢¥µ¡¼¥Ð¡¼¤È¥¯¥é¥¤¥¢¥ó¥È´Ö¤Ç¤Î»þ´Öº¹¤ò¹Íθ¤¹¤ë¥³¡¼¥É¤ò¸«¤Æ¤¤Þ¤·¤¿¡£¤Ê¤«¤Ê¤«¶½Ì£¿¼¤¤Éôʬ¤Ç¤·¤¿¤Í¡£¥¯¥é¥¤¥¢¥ó¥È´Ö¤Î´Ä¶º¹¤Ï»ÅÊý¤Î¤Ê¤¤¤³¤È¤È¤¤¤¨¤Ð¤½¤ì¤Þ¤Ç¤Ç¤¹¤¬¡¢¥³¡¼¥É¤Ç¤³¤ì¤ò¸øÊ¿¤ËÊ䤦¤³¤È¤¬½ÐÍè¤ë¤Ê¤éÁÇÀ²¤é¤·¤¤¤³¤È¤À¤È»×¤¤¤Þ¤¹¡£¥¯¥é¥¤¥¢¥ó¥È¤¬¸Ä¿Í¤ò±×¤¹¤ë¤¿¤á¤ËÊäÀµ¤ò¤«¤±¤ë¤³¤È¤Ï¥Á¡¼¥È¹Ô°Ù¤Ç¤¹¡£¤ä¤á¤Þ¤·¤ç¤¦¤Í¡£
Åê¹Æ¼Ô ikanatto : 06:14 PM | ¥³¥á¥ó¥È (1269)
April 15, 2005
Trouble Shootings for Modeling
"OMG! WHAT THE HELL IS THIS!?"
I can not remember how often I have said the above words. Yes, still saying that. But the activity of the modeling for a half of year, I have earned some know-hows.
If you are a new challanger of modeling, my knowledgements may help you. I hope so, hope so.
Troubles in ET
Checking the console log first!
Generally if errors occured while loading model data, console log displays those.

In this situation, ET failed to find the image file for accessory and body because of missing of skin file and path to non-existing files.
The console log is extremely useful for us to shoot the bugs. If you have problems in game, check console log first.
Black and yellow texture appears instead of your image file.

This means that ET failed to find the shader to object(s). The model data holds its shader info in it, but almost models has nothing about it.
So we need to define their shader by using the skin file. Check your definition file has proper path or name.
The skin filename must be modelname_classname.skin if your player model name is modelname.mdm.
For other models, like helmets or accesseries, the md3 also needs the skin files. If model name is modelname.md3, the skin file must be modelname.skin.
The model does not appear.

Looks like no errors but your model does not be seen, its reason can be that skin file exists correctly but defines the non-existing image file.
Check the console log and the skin file descriptions.
One more thing you must remember that the image width and height to be used as texture must be the numbers powered by 2. e.g. 512*512 or 128*256 are OK but 384*512 and 64*768 are NG.
The XYZ orientations appear instead of your model.

This will occur when the model file is not found. Check your definition files such as .char or .skin.
ET crashes when the model you made should be rendered.
This will occur when your model data has invalid value. e.g. too large bounding box otherwords too far vertices, negative value which must be positive( bone length, index number as well ). These invalid values are almost generated when the model data is converted, also may be done by my mdstool.
There are a little ways to correct this. Preventing the models from converting will do but you can not use the model in wanted format.
The player model looks floating or sinking!
This is caused if the mdx information is not compatible for your player model. The default mdx is best for the models which are similar to the default models. Their height is 80 in max unit. You can correct this by modification of mdx. My mdstool supports mdx adjustment and rescaling. But other problem will happen with mdx modification. Using the different mdx costs more memory. Thus your player model can be hard to use for low power PC users.
WTF!? My player model is collapsed but it looked well before exporting to mds!!
Be easy first. This can be caused if you rescaled the models which had been already physiqued with the biped.
I think this it the 3ds max bug or problem of the export-skelton plugin. So you should adjust your model size before physique. My mdstool supports to rescale mdm and mdx though I can not recommand this way because the rescaled model may look something weird...
Troubles in Exporting
When you export skl from max, max says that error occured and closes.
The indicator of progress goes for some point and but max closes... This can be caused if your player model has too many vertices.
I do not know the precise number of max vertices, though models with over 2000 vertices always fails to be exported, a 1500 vertices model can be exported.
So make sure that your model has lower vertex(or poly?) counts as possible as it can. Of course lower poly design tech required.
In max, the player model has several objects, but exported model has only 1 object.
This is caused if you forgot to assign the unique material number to each object. The sklout plugin regards the obejects which has the same material number as one united object. Thus although the objects has the same material, the material number must be different each other.
e.g. u_body assigned 1, u_lfthand 2, u_rthand 3, l_legs 4.
Some md3 exporters of max have issue.
This is not a common problem, but for the some max plugins which enable to export md3.
The plugins which do not require the setting of texture file path will implant the texture file path which is currently used in md3.
If md3 is loaded in ET, the texture file must be in /etmain/ subdirectories, so path must be such as "models/players/temperate/somemodel/". Although if you work on the different folder structure, the texture file path will not point the correct path with those plugins.
This can be corrected with using the skin file. However error message remains in console, but the texture applied by refering the skin file.
How can I handle MDC?
MDC is a model data like md3 but compressed. Its benefit is saving some memory, however, not much memory.
A man of SD said that you should not bother with mdc, just use md3. mdc is slightly difficult to use than md3 because not so popular.
Rather than using mdc, md3 prefered clearly.
Åê¹Æ¼Ô ikanatto : 07:26 PM | ¥³¥á¥ó¥È (228)
Adding New Animations
This tutorial spots how we can add the new animations to the existing player model system. I will explain that how we add the new animations to the deafault bone system, but you should be able to do this in another bone system.
Quick tutorial for adding the new animations






1. Create animations with biped in max
Well, the first step to climb up is creating animations. To do this, you must create the default biped. For more detail about the default biped, here. This work is pretty fun for me :). If you are doing with the Character studio plugin, it will help you to create smart animations easily. When it is done, write down somewhere about "Name of animation", "First frame number", "Length", "FPS to play this animation" for each animation you got.
You may want to know the default biped figure. Yes I wanted to know that. So I have adjusted the biped to fit the normal player character. You can get it here( figure file ).
2. Skin up the biped roughly.
As for the mds exporting plugin can not reguard the biped mesh itself as the model object, we need to make a skin around the biped. No need to make a detail skin, just dummy. Physique the model with biped roughly, but remember each bone must have a link to 1 vertex at least.
Guess what is the most simple skin that fullfill that state...? Yes, it can be an object with one triangle. Attaching this object to the biped node and assign the vertices to all bones. Whoa, you have made it. Easy?
3. Export mds and cut into mdx
Now we are going to export mds so that we can get the animation data into ET. You can cut mds into mdx by my tool with running mode 2.
4. Configure the .aninc file
What is the .aninc file...? The aninc file is the definition of the mdx to tell ET what animations this mdx holds and those properties, so that ET can handle the series of frames as an animation to play.
The aninc file format is the followings. Each animation requires this description.<Animation Name> <First Frame Number> <Length of Animation> <Looping> <FPS to play> <Move speed> <Transition> <Revered>
For example, suppose that a mdx holds the 3 types of animation, punch, kick, guard. The punch animation ranges from 0 to 14 frames and it should be played at 30 fps. The kick animation is 15-44 frames at 30 fps and the guard animation is 45-59 frames at 45 fps. The animc for this mdx is the followings:
// animation config for the custom mdx punch 0 15 0 30 0 0 0 kick 15 30 0 30 0 0 0 guard 45 15 0 45 0 0 0
Save your aninc text as animationname.animc. animationname prefers to be the same as the mdx name animationname.mdx.
5. Put the mdx and aninc into the folder tree
Maybe you already have, if you do not then just make, the folder animations/base/human somewhere on your disk. Put the your mdx and animc file into animations/base/human/.
6. Configure the anim file to include your mdx
Now let's copy the human_base.anim at animations/ to your tree and open it with text editor. Then, add the lines to the line before the last '}' like this:
animgroup { animfile "animations/human/base/body.mdx" { #include "animations/human/base/body.aninc" } animfile "animations/human/base/mortar.mdx" { #include "animations/human/base/mortar.aninc" } animfile "animations/human/base/akimbo.mdx" { #include "animations/human/base/akimbo.aninc" } animfile "animations/human/base/prone_pistol.mdx" { #include "animations/human/base/prone_pistol.aninc" } animfile "animations/human/base/prone_rifle.mdx" { #include "animations/human/base/prone_rifle.aninc" } animfile "animations/human/base/prone_dual_pistols.mdx" { #include "animations/human/base/prone_dual_pistols.aninc" } animfile "animations/human/base/prone_mortar.mdx" { #include "animations/human/base/prone_mortar.aninc" } animfile "animations/human/base/binocs.mdx" { #include "animations/human/base/binocs.aninc" } animfile "animations/human/base/no_juice.mdx" { #include "animations/human/base/no_juice.aninc" } animfile "animations/human/base/swim.mdx" { #include "animations/human/base/swim.aninc" } animfile "animations/human/base/youranimation.mdx" { #include "animations/human/base/youranimation.aninc" } }
Save this text. Therefore we have configured the anim file to let the default human animation have your animations included and enable to use them in ET.
7. Assign the animations to the actions
Okay, almost done... the left thing is assigning those animations to the specific actions. Copy into your tree the script at animations/script/ of pak0.pk3 then open in text editor. Oi, indeed oi, huge text file. This is the script for assigning the animations to actions. Find out and replace the existing animation to yours where you want the model to play, or if you are modding totally and adding new actions then add the script by refering the existing. As you can see, the player animation is separated to 2 parts, torso and legs. Due to this feature we can save the time to build animations of whole body parts. Nice SD :)
8. Done!
Congraturations, you have added(replaced) the new animations. If you have added the new another action, you need to code to activate it. I think this work also fun for coders...isn't it? To see your new animations in ET, just compress the folder animations and rename its extension to pk3(recommand to rename it as its name starts with a letter 'q' or alphabetically later), place it to etmain.
Åê¹Æ¼Ô ikanatto : 07:22 PM | ¥³¥á¥ó¥È (62)
Making player model using default mdx
Using the deafult mdx is a nice idea to save our time to make original animations. The default mdx holds more than 4500 frames. Can you tolerate to make it all by yourself?

If you intend to use the deafault mdx as your mdm's bones and frames, you must create a biped figure which has the same bone strucure as the default has. The default biped is almost normal except having 5 fingers with 3 links, 1 toe with 1 link.
The default biped figure bone list:
Bip01 Pelvis Bip01 Spine Bip01 Spine1 Bip01 Spine2 Bip01 Spine3 Bip01 Neck Bip01 Head Bip01 L Clavicle Bip01 L UpperArm Bip01 L Forearm Bip01 L Hand Bip01 L Finger0 Bip01 L Finger01 Bip01 L Finger02 Bip01 L Finger1 Bip01 L Finger11 Bip01 L Finger12 Bip01 L Finger2 Bip01 L Finger21 Bip01 L Finger22 Bip01 L Finger3 Bip01 L Finger31 Bip01 L Finger32 Bip01 L Finger4 Bip01 L Finger41 Bip01 L Finger42 Bip01 R Clavicle Bip01 R UpperArm Bip01 R Forearm Bip01 R Hand Bip01 R Finger0 Bip01 R Finger01 Bip01 R Finger02 Bip01 R Finger1 Bip01 R Finger11 Bip01 R Finger12 Bip01 R Finger2 Bip01 R Finger21 Bip01 R Finger22 Bip01 R Finger3 Bip01 R Finger31 Bip01 R Finger32 Bip01 R Finger4 Bip01 R Finger41 Bip01 R Finger42 Bip01 L Thigh Bip01 L Calf Bip01 L Foot Bip01 L Toe0 Bip01 R Thigh Bip01 R Calf Bip01 R Foot Bip01 R Toe0 Total 53 bones
Note that if there is a bone which does not link to any vertex when exporting skl, the sklout plugin will ignore that bone. So to get the same bone structure from the default biped figure, you must assign 1 or more vertices at least to each bone.
1. Make the model with textured.
No special things about this work. Same as the standard low polygon modeling.
One thing you should take care of is that an object can use 1 texture because a mds vertex can only 1 uv coordinate. Otherwords, multi material can not be used. However you can use the shader script to player model for multi mapping or ambient and so on.
2. Create the default biped figure and physique your model.
See above about the default biped.
3. Export mds with one frame that model stands ease.
You can get a good tutorial about 2 and 3 process at http://www.mothermushroom.com/images/miscFiles/mdsExport.html.Nice work pants :)
If you encounter some problems when exporting, my Trouble Shootings may help.
4. Convert this mds to mdm and mdx.
To do this, run the tool with MODE 3.5. Replace the bone structure of the default mdx to one of the converted mdx.
To do this, set config to use the converted mdx as reference mdx and the default mdx as source mdx, then run the tool with Mode 5. Now your mdx has an original bone structure and the default mdx's animations. You can get the default mdx in animations/human/base/body.mdx by unpacking pak0.pk3.6. Build up the folder structure to pack up.
Build tree such as:[root] | |-[models] | |-[players] | |-[temperate] | |-[yourmodel] | |-[characters] | |-[temperate] | |-[allied or axis] | |-[animations] |-[human] |-[base]
7. Put your mesh, textures, animation file into tree.
mdm, textures, other accesseries model in models/players/temperate/yourmodel/. Put the adjusted mdx in /animations/human/base/ and rename mdx such as body_yourmodel.mdx.8. Make a anim file.
Open the text editor and write down like as the followings.animgroup { animfile "animations/human/base/body_yourmodel.mdx" { #include "animations/human/base/body.aninc" } animfile "animations/human/base/mortar.mdx" { #include "animations/human/base/mortar.aninc" } animfile "animations/human/base/akimbo.mdx" { #include "animations/human/base/akimbo.aninc" } animfile "animations/human/base/prone_pistol.mdx" { #include "animations/human/base/prone_pistol.aninc" } animfile "animations/human/base/prone_rifle.mdx" { #include "animations/human/base/prone_rifle.aninc" } animfile "animations/human/base/prone_dual_pistols.mdx" { #include "animations/human/base/prone_dual_pistols.aninc" } animfile "animations/human/base/prone_mortar.mdx" { #include "animations/human/base/prone_mortar.aninc" } animfile "animations/human/base/binocs.mdx" { #include "animations/human/base/binocs.aninc" } animfile "animations/human/base/no_juice.mdx" { #include "animations/human/base/no_juice.aninc" } animfile "animations/human/base/swim.mdx" { #include "animations/human/base/swim.aninc" } }The red descriptions depend on what name you saved the mdx as. Save this text as human_base_yourmodel.anim and put it in /animations/.
9. Make a char file.
Open up the text editor, write down like as the followings.characterDef { skin "class" mesh "models/players/temperate/yourmodel/body.mdm" animationgroup "animations/human_base_yourmodel.anim" animationscript "animations/scripts/human_base.script" undressedCorpseModel "models/players/temperate/yourmodel/body.mdm" undressedCorpseSkin "naked.skin" hudhead "models/players/hud/head.md3" hudheadanims "animations/human/heads/base.anim" hudheadskin "models/players/hud/team_class.skin" }Where class is soldier, medic, engineer, fieldops or cvops if you will replace the exisiting class model.
mesh refers where is the mdm for this model.
animationgroup refers where is the animation setting file for this model. We have made this file so we should set this path to refer it.
undressedCorpseSkin refers the skin file applied when uniform taken by covert ops.
Save this text as classname.char. classname depends on what class you want use this model for. Place this file at /characters/temperate/allied or axis/.
10. Put the skin files.
The skin files are required when models are wrapped. The skin file format is:objectname, path of an image file for this object wrappingIf you have u_body, u_lfthand, u_rthand, l_legs objects in your model and they are using the image files body.tga and legs.tga, the skin file should be the followings:
u_body, "models/players/temperate/yourmodel/body.tga" u_lfthand, "models/players/temperate/yourmodel/body.tga" u_rthand, "models/players/temperate/yourmodel/body.tga" l_legs, "models/players/temperate/yourmodel/legs.tga"You can attach some accesseries such as helmet or backpack with adding lines into the skin file. The followings are quoted from Splash Damage http://www.splashdamage.com/files/docs/playermodels.html.
md3_beltr Attaches to tag tag_bright. md3_beltl Attaches to tag tag_bleft. md3_belt Attaches to tag tag_ubelt. md3_back Attaches to tag tag_back. md3_weapon Attaches to tag tag_weapon. md3_weapon2 Attaches to tag tag_weapon2. md3_hat Attaches to tag_mouth, gets removed when a headshot is given. md3_hat2 Attaches to tag tag_mouth. md3_hat3 Attaches to tag tag_mouth.The skin filename should be modelname_class.skin. e.g. model name is body.mdm and it is for medic, the skin filename should be body_medic.skin. Unlike player models, such as heads or accesseries requires the skin files but its name should be modelname.skin.
11. Finish!

Congraturations, you have made the player model with the default animations. To play with your model, just compress the 3 folders models, animations, characters into 1 zip file and rename its extension to pk3. Place it your etmain folder or mod folder to play with it.
Åê¹Æ¼Ô ikanatto : 07:18 PM | ¥³¥á¥ó¥È (13)
unofficial MDM&MDX specification
Here is the data structure of mdm and mdx which I am using in the tool. but there is no guarantee to ensure this document saying truth. So use these info at your own risk.Player model in ET
Each character used in ET is assigned in characters of pak0.pk3. There are some files to define a character, they refer what class it is, what mesh it uses, what animation group it uses, what mesh it uses when it is undressed, what model its head is.
The mdm is a mesh data file for player models. mdm includes the surfaces and tags. The surface is a geometric data of model or polygon data. Skinning the surfaces with textures, the model appears in ET. The tag is a position info to attach another model to this model. The tag has its position and degree at each frame.
The mdx is a animation data file which contains bone structure and frames. The bone is a skeltal model data. Each bone has its length and its parent bone. The frame is a 3D-position data of the bones. one of the mdx frames have slightly different bone position compared with the previous frame. Thus a series of those frame will make an animation of a action. Ordinarily the mdx has several(or massive) number of animations in it.
A combination of mdm and mdx makes the polygons live, act, be a player.
This system is extremely good for sharing the animations which are used by the similar models. For example, ET only has one mdx( precisely there are more but they are a little ) to be used by the player models, 5 classes of allies and axis team. If we need to create the animation data for each model as like RtCW, The file size will be more bigger and memory requirements will be higher.
However the combination of mdm and mdx is valid when they have the same bone structure. This means that we must create new mdx if we make a non-humanlike model or a small or tall person. I myself think that separating the model data into a set of meshes, tags and bone structure and frames is better if we want to make a small or large human model.MDM Data Structure
[MDM] | |--[MDM HEADER] | |--[Surface] | | | |--[Header] | |--[Vertex] | |--[Triangle] | |--[Collapsemap] | |--[Bone Reference] | : | |--[Tag] | : | |--[EOF] [MDX] | |--[MDX HEADER] | |--[Frame] | | | |--[Frame State] | |--[Compressed Bone Frame] | : | |--[Bone] | : | |--[EOF]
Detail Data Structure
Here is a data specifications of mdm and mdx. Repeatly I say, they are not guaranteed to be right.MDM HEADER
MDM HEADER is the header section of mdm. There are information of version, location, Level of Detail, number and offset of the surfaces and tags and so on.MDM HEADER | ||
Name | Type and Size | Description |
MDM Identification | char * 4 | Magic Number. It should be 'MDMW'. |
MDM Version | int32 * 1 | mdm version. It should be 3. |
MDM Name | char * 64 | Name and virtual path to this mdm. |
LoD Bias | float * 1 | These are coeffcients of Level of Detail. |
LoD Scale | float * 1 | |
Number of Surfaces | int32 * 1 | Number of surfaces this mdm has. |
Offset to Surfaces | int32 * 1 | Offset to the address of the surfaces from this header. Header size is fixed then this value also fixed. |
Number of Tags | int32 * 1 | Number of tags this mdm has. |
Offset to Tags | int32 * 1 | Offset to the address of the tags from this header. |
Offset to EoF | int32 * 1 | Offset to EoF of this mdm. Otherwords this mdm file size. |
Surface
Surface is a mesh data which will be seen as a part of the player model in ET. Generally a mdm has several surfaces. They are almost separated upper and lower parts, also hands and torso. Example:
MDM SURFACE HEADER | ||
Name | Type and Size | Description |
Surface Identification | int32 * 1 | ID or version of surface. It should be 0x00000009. |
Surface Name | char * 64 | Name of this surface. Generally it refers what part it is. Such as u_body, l_legs. |
Shader Name | char * 64 | Name and virtual path of the shader to apply this surface. The ET mdm has nothing here. The skin file defines what shader this surface uses. |
Shader Index | int32 * 1 | ?? I dont know what this means. However this is always 0. |
LoD Minimum | int32 * 1 | This determines the maximum LoD effect on this surface. |
Offset to MDM Header | int32 * 1 | Offset to MDM Header from this surface address. always negative value. |
Number of Vertices | int32 * 1 | Number of vertices this surface has. |
Offset to Vertices | int32 * 1 | Offset to the address of the vertices data from the head of surface data. |
Number of Triangles | int32 * 1 | Number of triagles(polygons) which consist of this surface. |
Offset to Triangles | int32 * 1 | Offset to the address of the triangles data from the head of surface. |
Offset to Collapsemap | int32 * 1 | Offset to the address of the collapsemap. The collapsemap is the list of triangle indices in order to apply LoD. This list indicates the triangle(or vertex?) will be omitted in that order. |
Number of Reference Bones | int32 * 1 | Number of the bones which are used when this surface will be rendered with calculating its vertices. |
Offset to Reference Bones | int32 * 1 | Offset to the address of the reference bone list. |
Offset to Next Surface | int32 * 1 | Offset to the next surface or this surface data size. |
Name | Type and Size | Description |
MDM SURAFCE VERTEX is a vertex data of this surface.
MDM SURFACE VERTEX | ||
Name | Type and Size | Description |
Vertex Normalized Vector | float * 3 | Normalized vector of this vertex. Maybe used for lightening effect. |
Texture Coordinates | float * 2 | UV coordinates of the texture image. 3 vertices will cut an triangle image which their potisions are refered by this uv coords from the texture. This value is standardized so ranges from 0 to 1. |
Number of Bone Weights | int32 * 1 | Number of the bone weights which will affect this vertex. |
Weight is a element to determine where the vertex is. The vetex potision is calculated by summation of the multiple of the weight and its position of each bone.
MDM SURFACE WEIGHT | ||
Name | Type and Size | Description |
Bone Index | int32 * 1 | Index number of the bone which affect the vertex. |
Weight | float * 1 | A coefficient how much this bone affects the vertex position. A summation of this value must be 1. |
Position Vector | float * 3 | The position vector of vertex when this bone is treated as an origin. |
Triangle is combinations of 3 vertex indices to buld a polygon.
MDM SURFACE TRIANGLE | ||
Name | Type and Size | Description |
Vertex Indices | int32 * 3 | 3 vertex indices to make a polygon. |
Collapsemap data is not specified yet. Reference Bone data is the continuous number of the bone index. They are int32 and their amount is same as the number of Number of Reference Bones in Surface Header.
Tag
Tag is popular for Quake3-Engine-Based game modders. Tag is used to attach another model to this model. mds which has been used in RtCW has different tag data type. mds treat the tags as bones so the position of tag will be changed at each frame.MDM TAG | ||
Name | Type and Size | Description |
Tag Name | char * 64 | Name of this tag. |
Rotation Matrix | float * 9 | A 3*3 rotation matrix to calculate another model's pose or angles. |
Attach Bone Index | int32 * 1 | Index of the bone which this tag is attached to. |
Position Vector | float * 3 | The position vector of tag when attached bone is treated as an origin. |
Number of Reference Bones | int32 * 1 | The number of bones to calculate the tag's parent bone position. Ther are from a root bone to the previous bone of the attached to. |
Offset to Reference Bones | int32 * 1 | The relative offset to the Reference Bones data from the head of this tag data. |
Offset to Next Tag | int32 * 1 | Offset to the next tag data or this tag data size. |
Reference Bone List | int32 * Number of Reference Bones | Index list of the Reference Bones. |
MDX HEADER
MDX Header refers the version, numbers and offset of the frame and bone structure of this mdx.
MDX HEADER | ||
Name | Type and Size | Description |
MDX Identification | char * 4 | ID of mdx, it should be 'MDXW'. |
MDX Version | int32 * 1 | MDX version, should be 2 for now. |
MDX Name | char * 4 | Name and virtual path of this mdx. |
Number of Frames | int32 * 1 | Number of the frames this mdx has. |
Number of Bones | int32 * 1 | Number of the bones this mdx has. |
Offset to Frames | int32 * 1 | Offset to the address of frames from the header. |
Offset to Bones | int32 * 1 | Offset to the address of bones from the header. |
Torso Parent Bone Index | int32 * 1 | Bone Index to be a torso parent. |
Offset to EoF | int32 * 1 | Offset to EoF of mdx otherwords size of this mdx. |
MDX FRAME
Frame is a state of the skeltal model at a moment. It can be the scene of firing Panzer, or dying by the head shot, or Nazi salutling. There are 2 sections in Frame, Frame State and Compressed Bone Frame. Frame State refers the bounding box of this model at this frame and a base position which will be used as the parent bone by the root bone. Compressed Bone Frame is the bone position data at this frame. "Compressed" means that each data is not 32bit, but 16bit.
MDX FRAME STATE | ||
Name | Type and Size | Description |
Bounding Box Vector 1 | float * 3 | The relation of 1 and 2 is diagonal. The box area created by using vector 1 and 2 to the box diagonal positions is called Bounding Box. The Bounding Box is used for checking collision or hitting box or trigger entity and so on. |
Bounding Box Vector 2 | float * 3 | |
Local Origin | float *3 | The origin position which is used at this frame. |
Bounding Sphere Radius | float * 1 | Another Bounding area, sphere type. Used for the explosion damage etc. |
Parent of Root Bone | Tfloat * 3 | The position used by calculatin of the root bone position. |
The Compressed Bone Frame follows after Frame State. It will repeat same times as the number of bones.
MDX COMPRESSED BONE FRAME | ||
Name | Type and Size | Description |
Angle(Pitch) | int16 * 1 | These are used to calculate the rotation matrix of this bone. |
Angle(Yaw) | int16 * 1 | |
Angle(Roll) | Type and Size | |
(unused?) | int16 * 1 | Maybe this is inserted to make an unit of Compressed Bone Frame has 32bit order. |
Offset Angle(Pitch) | int16 * 1 | This is used to calculate where is this tag. |
Offset Angle(Yaw) | int16 * 1 |
To know the bone position, you have to summation the vectors which are calcurated by using ( Parent Distance, 0 , 0 ) as a start vector, rotating it with Offset Angles.
To convert angles to radian, just do this: Radian = 2 * 3.14 * Angle / 65536.0
MDX BONE
Bone Structure is like a puppet. A puppet has joints and fixed-length bones. Bones in ET is so. The meshed are attached around the bones. If a bone moves, mesh moves. If a bone is rotated, mesh is rotated as well.
MDX BONE | ||
Name | Type and Size | Description |
Bone Name | char * 64 | Name of this boen. |
Index of Parent Bone | int32 * 1 | Index of the parent bone to calculate this bone position. |
Torso Weight | float * 1 | Coeeficient how much this bone tends to be like torso. |
Parent Distance | float * 1 | Distance from this bone's parent. |
Flag(?) | int32 * 1 | If this bone is a tag, this value is 1 or not, 0. but in ET there is no longer tags as bones, this is always 0. |
References and Thanks
http://mojo.gmaxsupport.com/Articles/MDSFileFormat.html
Chris Cookson speced the mds, and this is extremely helpful for ET modder as well. Thanks that great documents.
Åê¹Æ¼Ô ikanatto : 07:11 PM | ¥³¥á¥ó¥È (13)
Enemy Territory¤Ç¼«Ê¬¤À¤±¤Î¥â¥Ç¥ë¤òºî¤í¤¦
¤Ï¤¸¤á¤Æ¤Î3DÂθ³
À޳Ѥ³¤Î¥µ¥¤¥È¤ËÍè¤Æ¤¯¤ì¤¿¤Î¤Ë²¿¤âÆÀ¤ë¤â¤Î¤¬Ìµ¤«¤Ã¤¿¤Ê¤ó¤Æ¡¢¤³¤Á¤é¤È¤·¤Æ¤â¿½¤·Ìõ¤Ê¤¤¤Î¤Ç¡¢´Êñ¤Ê¤¬¤é¡¢1¤«¤é½Ðȯ¤¹¤ëMD3ºîÀ®¥Á¥å¡¼¥È¥ê¥¢¥ë¤ò½ñ¤¤¤Æ¹Ô¤³¤¦¤«¤È»×¤¤¤Þ¤¹¡£
Âç¶Ä¤Ê¤³¤È¤ò½ñ¤¤Þ¤·¤¿¤¬¡¢»ä¤âET¤Ë¿¨¤ì¤ë¤Þ¤ÇMODºî¤ëµ¤¤Ê¤ó¤Æ¤³¤ì¤Ã¤Ý¤Ã¤Á¤â¤Ê¤«¤Ã¤¿¿Í´Ö¤Ç¤¹¡£¤·¤«¤·¡¢¤ª¤è¤½È¾Ç¯¤¯¤é¤¤¤Î¤Û¤Û¤ó¤È¼è¤êÁȤó¤Ç¤¤¤¿¤é¡¢¤½¤ì¤Ê¤ê¤Î¤â¤Î¤¬ºî¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤½¤ÎÄøÅ٤Τ³¤È¤Ê¤Î¤Ç¤¹¡£Ê̤ˤ³¤ì¤Ç¥á¥·¤ò¶ô¤¦¡ª¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤À¤«¤é¡¢¤½¤ÎÄøÅ٤ε¤¹½¤¨¤ÇÂç¾æÉפǤ¹¡£
¤½¤ÎÁ°¤Ë¡¢»ä¤ÎÀÛ¤¤²òÀâ¤è¤ê¤â¤è¤ê¤ï¤«¤ê¤ä¤¹¤¯¡¢¤Þ¤¿¥Æ¡¼¥Þ¤È¤·¤Æ¤âÌÌÇò¤¤ÏÂʸ¥Á¥å¡¼¥È¥ê¥¢¥ë¤¬¤¢¤ë¤Î¤Ç¡¢¤½¤Á¤é¤ò»²¹Í¤Ë¤¹¤ë¤Î¤âÎɤ¤¤È»×¤¤¤Þ¤¹¡£
¥Ê¥¤¥Õ¤ò¤Ê¤ó¤È¥¢¥¤¥¹¥Ô¥Ã¥¯¤Ë¤·¤Æ¤·¤Þ¤ª¤¦¤È¤¤¤¦¥Á¥å¡¼¥È¥ê¥¢¥ë¡£¤³¤Á¤é¤Ï¥á¥¤¥ó¥Ä¡¼¥ë¤ËMilkshape¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£²èÁü¤ò»È¤Ã¤¿ÃúÇ«¤Ç´Ê·é¤ÊÀâÌÀ¤Ç¤ï¤«¤ê¤ä¤¹¤¤¤Ç¤¹¡£
¤³¤Á¤é¤Ï¤¢¤í¤¦¤³¤È¤«¡¢½÷À¤Î¶»Éô¤ò¥Ø¥ë¥á¥Ã¥È¤Ë¤·¤Æ¤·¤Þ¤ª¤¦¤È¤¤¤¦¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¤¹¡£¤½¤ÎÂêºà¤Ë¤Ä¤¤¤ÆÀ§Èó¤ÏÃÖ¤¤¤È¤¤¤Æ¡¢¥á¥¤¥ó¥Ä¡¼¥ë¤È¤·¤Ægmax¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£¤³¤Á¤é¤â²èÁü¤ÈÃúÇ«¤Ê²òÀâ¤Ê¤ª¤«¤²¤ÇÌäÂê¤Ê¤¯Íý²ò¤Ç¤¤ë¤Ï¤º¤Ç¤¹¡£
¤³¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Î¥Æ¡¼¥Þ
¤µ¤Æ¡¢¤Ê¤Ë¤Ï¤È¤â¤¢¤ì¡¢¤Þ¤º¼«Ê¬¤¬ºî¤ê¤¿¤¤¤â¤Î¤¬¤¢¤ë¤È»×¤¤¤Þ¤¹¡£¤³¤ì¤ò»ä¤Ï¡Ö¥Æ¡¼¥Þ¡×¤È¸Æ¤ó¤Ç¤¤¤Þ¤¹¤¬¡¢¤³¤Î¡Ö¡Á¤·¤¿¤¤¡×¤È¤¤¤¦½é´ü¤Î¾×Æ°¤µ¤¨»ý³¤¹¤ì¤Ð²¿»ö¤âãÀ®²Äǽ¤Ç¤¹¡£¾å¤Ç¾Ò²ð¤·¤¿¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ï¡¢¡Ö¤ï¤«¤ê¤ä¤¹¤¤¥Á¥å¡¼¥È¥ê¥¢¥ë¡¢¤À¤±¤ÉÌÌÇò¤ª¤«¤·¤¯¤·¤¿¤¤¡×¤È¤¤¤¦¥Æ¡¼¥Þ¤À¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¡¢¤¤Ã¤È¡£»ä¤Ï¤¢¤Ê¤¿¤Î¡Ö¡Á¤·¤¿¤¤¡×¤Ë¤Ä¤¤¤ÆÃΤë½Ñ¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢»ä¤Ï¤³¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ë¤è¤Ã¤Æ¡¢¤¢¤Ê¤¿¤¬¼«Ê¬¤Çºî¤ë¥â¥Ç¥ë¤ÏET¤ÎÃæ¤Ç²¿¤Ë¤Ê¤ë¤Î¤«Íý²ò¤·¡¢¼ÂÁ©¤Ç¤¤ë¤³¤È¤ò¥Æ¡¼¥Þ¤È¤·¤ÆºîÀ®¤·¤Æ¤¤¤Þ¤¹¡£ Íפϡ¢²¿¤é¤«¤Î¥Ä¡¼¥ë¤ÇºîÀ®¤·¤¿3D¥ª¥Ö¥¸¥§¥¯¥È¤ò¼ÂºÝ¤Ë¥²¡¼¥àÃæ¤Çɽ¼¨¤µ¤»¤ëÊýË¡¤Î¾Ò²ð¤Ç¤¹¡£
»ä¤Î¾ì¹ç¡¢¥â¥Ç¥ê¥ó¥°¤Ë¸Â¤é¤º¼Â̳¾å¤Î¤â¤Î¤ä¼ñÌ£¤Ç¶½Ì£¤¬¤¢¤ë¤±¤ÉÆñ¤·¤¤¤ÊŽ¥Ž¥Ž¥¤ÈÍý²ò¤Î˸¤²¤Ë¤Ê¤ë¤Î¤Ï¡¢·è¤Þ¤Ã¤ÆÀìÌçÍѸì¤À¤Ã¤¿¤ê¤·¤Þ¤¹¡£»ä¤Ï²½³ØÅ̤ʤΤÇÍý²Ê¥Á¥Ã¥¯¤Êµ»½ÑŪÍѸì¤Ï¤Ê¤ó¤È¤Ê¤¯¤ï¤«¤ë¤Î¤Ç¤¹¤¬¡¢Ë¡Î§¤äʸ³Ø¤Ë´Ø¤¹¤ëÊýÌ̤Ϥµ¤Ã¤Ñ¤ê¤ï¤«¤ê¤Þ¤»¤ó¡£¤½¤ì¤é¤ò¹Íθ¤ËÆþ¤ì¡¢¤³¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ï¤Ê¤ë¤Ù¤¯ÍѸì¤Ê¤É¤òÍѤ¤¤º¡¢»È¤Ã¤Æ¤âÊ¿°×¤Ë¤½¤ì¤ò²òÀ⤷¤Ê¤¬¤é¡¢¤è¤ê¿¤¯¤Î¿Í¤¬Æɤá¤ë¤è¤¦¤Ë¿Ê¤á¤Æ¤¤¤¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
¤³¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¡¢¤¢¤¢¡¢¥â¥Ç¥ê¥ó¥°¤Ã¤Æ·ë¹½´Êñ¤Ê¤ó¤À¤Ê¤È»×¤Ã¤Æ¤¯¤ì¤Æ¡¢¾¯¤·¤Ç¤âÆüËܤÎMODºîÀ®¼Ô¤¬Áý¤¨¤ì¤Ð¤È´ê¤¦¤Ð¤«¤ê¤Ç¤¹¡£
MOD3ʬ¥á¥¤¥¥ó¥°
ËÜÂê¤ËÆþ¤ê¤Þ¤¹¡£
º£²ó¤Î¤è¤¦¤Ë¿·¤¿¤Ë¥â¥Ç¥ë¤òºî¤Ã¤¿¤êÃÖ¤´¹¤¨¤ë¤Ê¤É¡¢¤È¤Ë¤«¤¯¥²¡¼¥à¤Î²¿¤é¤«¤ÎÍ×ÁǤò²þÊѤ¹¤ë¤â¤Î¤òMOD¤È¸Æ¤Ó¤Þ¤¹¡£MOD¤ÏModification¤Îά¤Ç²þ¤¤È¤«¤½¤¦¤¤¤¦°ÕÌ£¤Ç¤¹¡£MOD¤Ïµ¬ÌϤÎÂç¾®¤Ï¤¢¤ì¤É¡¢¥²¡¼¥à¤Ë¼ê¤ò²Ã¤¨¤ë¤È¤¤¤¦ÅÀ¤Ç¤Ï¤ß¤ó¤ÊƱ¤¸¤Ç¤¹¡£Æäˡ¢Â絬ÌϤǹÈϰϤˤ錄¤ëMOD¤òTC¡¢Total Conversion¡¢¤È¸Æ¤Ó¤Þ¤¹¡£¤è¤¯ÃΤé¤ì¤Æ¤¤¤ëCounter Strike¤ÏHalflife¤ÎTC¤Ç¤¹¡£
¤Þ¤º¡¢MODºîÀ®¤Î¤È¤Æ¤â´Êñ¤Ê°ìÎã¤ò¤¢¤²¤Þ¤¹¡£É¬Íפʤâ¤Î¤Ï¡¢notepad.exe¤Î¤è¤¦¤Ê¥Æ¥¥¹¥È¥¨¥Ç¥£¥¿¡¼¤È¡¢lhasa¤Î¤è¤¦¤Êzip¥¢¡¼¥«¥¤¥Ð¡¼¤Ç¤¹¡£
¥Æ¥¥¹¥È¥¨¥Ç¥£¥¿¡¼¤Ç¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¤¤¿¤â¤Î¤ò¡¢body_soldier.skin¤È¤·¤ÆÊݸ¤·¤Æ¤¯¤À¤µ¤¤¡§
// This is your first mod to change helmets of allied soldiers to covert ops caps. md3_back, "models/players/temperate/allied/soldier/acc/backpack.md3" md3_hat, "models/players/temperate/allied/cap.md3" l_legs, "models/players/temperate/allied/leg01.tga" u_body, "models/players/temperate/allied/soldier/body.tga" u_rthand, "models/players/temperate/allied/soldier/body.tga" u_lfthand, "models/players/temperate/allied/soldier/body.tga"
ƱÍͤˡ¢¼¡¤ÎÆâÍƤòcap_soldier.skin¤È¤·¤ÆÊݸ¤·¤Æ¤¯¤À¤µ¤¤¡£
helmet, "models/players/temperate/allied/cvops/cap"
¼¡¤Ë¡¢models¤È¤¤¤¦Ì¾Á°¤Ç¤É¤³¤«¤Ë¥Õ¥©¥ë¥À¤òºî¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤·¤Æ¡¢¤½¤Îmodels¥Õ¥©¥ë¥À¤ÎÃæ¤Ë¡¢players¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥©¥ë¥À¤òºî¤Ã¤Æ¤¯¤À¤µ¤¤¡£°Ê²¼¡¢temperate¡¢allied¡¢soldier¤Þ¤ÇƱÍͤˤ·¤Æºî¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤·¤Æsoldier¥Õ¥©¥ë¥À¤ÎÃæ¤Ë¡¢ÀèÄøÊݸ¤·¤¿body_soldier.skin¤Ècap_soldier.skin¤ò¤½¤ì¤¾¤ìsoldier¤Èallied¤Ë°ÜÆ°¤·¤Æ¤¯¤À¤µ¤¤¡£ºÇ½ªÅª¤Ë¡¢models/players/temperate/allied/soldier/body_soldier.skin¤Èmodels/players/temperate/allied/cap_soldier.skin¤¬ÆÀ¤é¤ì¤ì¤Ð·ë¹½¤Ç¤¹¡£
³¤¤¤Æ¡¢ºî¤Ã¤¿¥Õ¥©¥ë¥À¥Ä¥ê¡¼¤ò¡¢models¤«¤é´Ý¤´¤È̵°µ½Ì¤Çzip¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ÆÀ¤é¤ì¤¿zip¥Õ¥¡¥¤¥ë¤ò¡¢¤Þ¤¢Å¬Åö¤Ë¡¢test1.pk3¤È¤Ç¤â̾Á°¤òÊѤ¨¤Æ¡¢ET¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Õ¥©¥ë¥ÀÃæ¤Îetmain¥Õ¥©¥ë¥À¤ËÆþ¤ì¤Æ¤¯¤À¤µ¤¤¡£
¤µ¤Æ¡¢¼Â¤Ï¤³¤Î»þÅÀ¤Ç¤â¤¦ºî¶È¤Ï´°Î»¤·¤Æ¤¤¤Þ¤¹¡£¤Ç¤Ï¼ÂºÝ¤Ë¥²¡¼¥à¤òµ¯Æ°¤·¤Æ²¿¤¬ÊѤï¤Ã¤¿¤Î¤«¤ò³Î¤«¤á¤Æ¤ß¤Þ¤·¤ç¤¦¡£ET¤òµ¯Æ°¤·¤ÆŬÅö¤ËHOST GAME¤·¤Æ¤¯¤À¤µ¤¤¡£¤¿¤À¤·Dedicated¤ÏOFF¤Ç¡£
Allies¤ÎSoldier¤Î¥Ø¥ë¥á¥Ã¥È¤¬¡¢Covert Ops¤Î˹»Ò¤ËÊѤï¤Ã¤Æ¤¤¤ë¤³¤È¤Ëµ¤¤Å¤¤Þ¤·¤¿¤«¡©

¤Ç¤Ï¡¢¤¢¤Ê¤¿¤¬º£¤Þ¤Ç¤·¤¿¤³¤È¤Î°ÕÌ£¤òÀâÌÀ¤·¤Þ¤¹¡£ºÇ½é¤ËºîÀ®¤·¤¿¡Á.skin¤È¤¤¤¦¤Î¤Ï¡¢3D¥ª¥Ö¥¸¥§¥¯¥È¤Ë´Ø¤¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤¹¡£º£²óÊѹ¹¤·¤¿¤Î¤Ï¡¢¤½¤ÎÃæ¤Î°ì¹Ô¡§
md3_hat, "models/players/temperate/allied/cvops/cap.md3"
¤³¤ÎÉôʬ¤À¤±¤Ç¤¹¡£¸µ¡¹¤Ï¥Ø¥ë¥á¥Ã¥È¤Î¥â¥Ç¥ë¤ò»ØÄꤷ¤Æ¤¤¤¿¤³¤Î¹Ô¤ò¡¢Covert Ops¤Î˹»Ò¤Ë»ØÄꤷ¤Þ¤·¤¿¡£Â³¤¤¤Æ¥Õ¥©¥ë¥À¥Ä¥ê¡¼models/players/temperate/allied/soldier/¤òºîÀ®¤·¤Þ¤·¤¿¤¬¡¢¤³¤ì¤Ïpak0.pk3¤Ë¸½Â¸¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¿·¤¿¤ËºîÀ®¤·¤¿ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¾å½ñ¤¤·¤¿¤¤¤Î¤Ç¡¢¥Õ¥©¥ë¥À°ÌÃÖ¤òƱ¤¸¤â¤Î¤Ë»ØÄꤹ¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£¤½¤·¤Æzip¤Ë¤·¤Æpk3¤Ë¤·¤Þ¤·¤¿¤¬¡¢pk3¤Ë¤¹¤ë¤³¤È¤ÇETµ¯Æ°»þ¤Ë¼«Æ°Åª¤ËÆɤ߹þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£½ÅÍפÊÅÀ¤È¤·¤Æ¡¢´û¤ËÆɤ߹þ¤Þ¤ì¤¿pk3Ãæ¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ÈƱ̾¤Î¥Õ¥¡¥¤¥ë¤¬¸å¤«¤éÆɤ߹þ¤ó¤Àpk3Ãæ¤Ë¤¢¤Ã¤¿¾ì¹ç¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ï¸å¤«¤éÆɤ߹þ¤Þ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ç¾å½ñ¤¤µ¤ì¤Þ¤¹¡£º£²ó¤Ï¤½¤ì¤òÍøÍѤ·¤Þ¤·¤¿¡£
¤µ¤Æ¡¢¾åµ¤ÎÎã¤ÇET¤Ç¤Î¥â¥Ç¥ë¤Î°·¤¤¤¬¤Ê¤ó¤È¤Ê¤¯¤ï¤«¤Ã¤¿¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£ET¤Ç¤Ï¡¢ÀßÄê¥Õ¥¡¥¤¥ëÃæ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥â¥Ç¥ë¤ä¥Æ¥¯¥¹¥Á¥ã(¸å½Ò)¤ò²Äǽ¤Ê¸Â¤êÍøÍѤ·¤è¤¦¤È¤·¤Þ¤¹¡£¤Ç¤¹¤«¤é¡¢²æ¡¹¤ÎÌÜɸ¤Ç¤¢¤ë¼«Ê¬¤Çºî¤Ã¤¿¥â¥Ç¥ë¤ò¥²¡¼¥àÃæ¤ËÅо줵¤»¤ë¤Ë¤Ï¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤ò²þÊѤ·¼«Ê¬¤Îºî¤Ã¤¿¥â¥Ç¥ë¤ò»ØÄꤹ¤ë¤«¡¢¸½Â¸¤¹¤ë¥â¥Ç¥ë̾¤ÈƱ̾¤Î¥Õ¥¡¥¤¥ë̾¤Ë¤·¤Æ¾å½ñ¤¤¹¤ë¤«¡¢¤³¤Î¤É¤Á¤é¤«¤Ë¤è¤Ã¤Æ¼Â¸½²Äǽ¤Ç¤¹¡£
¥â¥Ç¥ê¥ó¥°¥Ä¡¼¥ë¤ò¼ê¤ËÆþ¤ì¤è¤¦
ÅƤˤâ³Ñ¤Ë¤â¡¢¤Þ¤º¤Ï3D¥ª¥Ö¥¸¥§¥¯¥È¤ò¤Ä¤¯¤é¤Ê¤±¤ì¤Ðº£²ó¤Î´ë²è¤Ï»Ï¤Þ¤ê¤Þ¤»¤ó¡£3D¥ª¥Ö¥¸¥§¥¯¥È¤È¤Ï¡¢»ä¤¿¤Á¤¬¥²¡¼¥àÃæ¤ÇÌܤˤ¹¤ëΩÂÎŪ¤Ê¤â¤Î°ìÈ̤ò»Ø¤·¤Þ¤¹¡£¤Á¤Ê¤ß¤Ë3D¥ª¥Ö¥¸¥§¥¯¥È¤òºî¤ë¤³¤È¤ò¥â¥Ç¥ê¥ó¥°¤È¤¤¤¤¤Þ¤¹¡£ºî¤ë¿Í¤ò¥â¥Ç¥é¡¼¤È¤¤¤¤¤Þ¤¹¡£¥â¥Ç¥ê¥ó¥°¤¹¤ë¤Ë¤ÏwindowsÉÕ°¤Î¥Ú¥¤¥ó¥È¤Ç¤ÏÎÏÉÔ¤ǡ¢¤½¤ìÁê±þ¤Î¥Ä¡¼¥ë¤¬É¬Íפˤʤê¤Þ¤¹¡£¤Þ¤º¡¢¤½¤Î¾Ò²ð¤ò¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ET¤ÏÀ޳ѤΥե꡼¥½¥Õ¥È¤Ê¤Î¤Ç¡¢¥Ä¡¼¥ë¤â̵ÎÁ¤Þ¤¿¤Ï°Â²Á¤Ê¤â¤Î¤¬Îɤ¤¤Ç¤·¤ç¤¦¡¢¤È¤¤¤¦¤³¤È¤Ç¥Õ¥ê¡¼¥½¥Õ¥È¤òÃæ¿´¤Ë¾Ò²ð¤·¤Þ¤¹¡£
gmax *Free*
gmax¤Ïdiscreet¤¬Ä󶡤¹¤ë¥Õ¥ê¡¼¤Î¹âÀǽ¥â¥Ç¥ê¥ó¥°¥Ä¡¼¥ë¤Ç¤¹¡£¤â¤È¤â¤È3ds max¤È¤¤¤¦¥Ä¡¼¥ë¤¬ÊìÂΤȤʤäƤ¤¤Æ¡¢¤½¤Îµ¡Ç½¤ÈÊݸ·Á¼°¤òÉôʬŪ¤Ë¤·¤¿¤â¤Î¤¬gmax¤Ç¤¹¡£3ds max¤Ï3D¥â¥Ç¥ê¥ó¥°¥½¥Õ¥È¤ÎʬÌî¤Ç¤«¤Ê¤ê¤Î¥·¥§¥¢¤ò¸Ø¤Ã¤Æ¤ª¤ê¡¢¤½¤ÎÀǽ¤Ï¾¤ÎÄÉ¿ï¤òµö¤µ¤Ê¤¤¤â¤Î¤À¤½¤¦¤Ç¤¹¡£ÊìÂΤ¬¾¦ÍѤǤ·¤«¤âºÇÂ祷¥§¥¢¤Î¤â¤Î¤À¤±¤¢¤Ã¤Æ¡¢gmax¤â¥Õ¥ê¡¼¥Ä¡¼¥ë¤ÎÃæ¤Ç¥â¥Ç¥ê¥ó¥°Ç½ÎϤϷ²¤òÈ´¤¤¤Æ¤¤¤Þ¤¹¡£¥ª¥¹¥¹¥á¤Ç¤¹¡£¤¿¤À¤·¡¢Êݸ¤Ç¤¤ë·Á¼°¤¬¸Â¤é¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ºî¤Ã¤¿¤â¤Î¤ÎÌÜŪ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½ÐÍè¤Ê¤«¤Ã¤¿Ž¥Ž¥Ž¥¤Ê¤ó¤ÆÈᤷ¤¤¥ª¥Á¤¬ÂԤäƤ¤¤ë¤³¤È¤â¤¢¤ë¤Î¤ÇÍ×Ãí°Õ¤Ç¤¹¡£
Milkshape 3D *Share* $25 or EUR 25(¥æ¡¼¥í)
Milkshape 3D¤Ï¡¢¥²¡¼¥à¥â¥Ç¥é¡¼¤Î´Ö¤Ç¥ê¡¼¥º¥Ê¥Ö¥ë¤Ê¥â¥Ç¥ê¥ó¥°¥Ä¡¼¥ë¤È¤·¤ÆÈó¾ï¤ËÉáµÚ¤·¤Æ¤¤¤Þ¤¹¡£¤½¤ÎÆÃħ¤Ï¡¢¸µ¡¹¥²¡¼¥à¤Î¥â¥Ç¥ëºî¤ê¤òÌÜŪ¤È¤·¤Æ³«È¯¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¿ô¿¤¯¤Î¥²¡¼¥à¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÂбþ¤·¤Æ¤¤¤ë¤³¤È¤Ç¤¹¡£¤â¤Á¤í¤óMD3¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£»È¤¤¾¡¼ê¤È¤·¤Æ¤â¤Ê¤«¤Ê¤«Îɤ¤¤È»×¤¤¤Þ¤¹¡£°ì¥ö·î¤Î̵ÎÁ»îÍÑ´ü´Ö¤¬¤¢¤ë¤Î¤Ç¡¢¤½¤Î´Ö¤ËÍÑ»ö¤òºÑ¤Þ¤»¤Æ¤·¤Þ¤¨¤Ð»ö¼Â¾å¡¢¡Ö̵ÎÁ¡×¤Ç¤¹¡£
Metasequoia *Free* and *Share* \5000
¥²¡¼¥à¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤Metasequoia(¥á¥¿¥»¥³¥¤¥¢)¤ò´º¤¨¤Æ¾Ò²ð¤¹¤ëÍýͳ¤Ï¡¢¤³¤Î¥â¥Ç¥ê¥ó¥°¥½¥Õ¥È¤¬Èó¾ï¤Ëľ´¶Åª¤«¤Ä´Êñ¤ËÁàºî¤Ç¤¤ë¤«¤é¤Ç¤¹¡£¤Þ¤¿ÆüËܸì¤Ç¤¢¤ë¡¢¤È¤¤¤¦ÅÀ¤â½é¿´¼Ô¤ÎÊý¤Ë¤Ï¸«Æ¨¤»¤Ê¤¤Í×ÁǤÀ¤È»×¤¤¤Þ¤¹¡£¤È¤Ë¤«¤¯¡¢Áàºî¤¬³Ú¤Ç¤¹¡£»ëÅÀ°ÜÆ°¡¢²óž¡¢¥º¡¼¥à¥¤¥ó¥¢¥¦¥È¡¢ÌÌŽ¤ê¡¢UV¤È¤¤¤Ã¤¿ËÜÍè¤Ê¤éÈѤ路¤¤ºî¶È¤¬´Êñ¤Ë¤Ç¤¤Þ¤¹¡£¤¿¤À¤·Êݸ·Á¼°¤ÇMD3¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢°ìÅÙɸ½àŪ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤ÇÊݸ¤·¤Æ¤½¤ì¤ò¾¤Î¥½¥Õ¥È¤Ç³«¤¤¤ÆÊÑ´¹¤¹¤ëºî¶È¤¬É¬Íפˤʤê¤Þ¤¹¡£
Light Ray 3D *Share* EUR 70
Milkshape 3D¤Ï¡¢ºÇ¶á¿·¤¿¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ø°Ü¹Ô¤¹¤ë¤¿¤á¤ËÂбþ¥Õ¥©¡¼¥Þ¥Ã¥È¹¹¿·ºî¶È¤¬ÂڤäƤ¤¤ë´¶¤¸¤¬¤·¤Þ¤¹¡£¤½¤³¤Ç¤³¤ÎLight Ray 3D¤¬¤Ê¤«¤Ê¤«¥ª¥¹¥¹¥á¤Ç¤¹¡£Quake¤Ë¸Â¤é¤ºCall Of Duty¤ä¤½¤Î¾Í̾¥²¡¼¥à¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÂбþ¤·¤Æ¤¤¤Ê¤¬¤é¡¢¤µ¤é¤Ë¥¢¥Ë¥á¡¼¥·¥ç¥óÊÔ½¸¤â½ÐÍè¤ë¥Õ¥ê¡¼¤Î¥½¥Õ¥È¤Ç¤¹¡£¥Õ¥©¡¼¥é¥à¤Î¤Û¤¦¤ÇET¤Î¥×¥ì¥¤¥ä¡¼¥â¥Ç¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ä¤¤¤Æ¤ÎÂбþ¤â¸¡Æ¤¤·¤Æ¤¤¤ë¤³¤È¤«¤é¡¢º£¸å¤ÎÆ°¤¼¡Âè¤Ç¤Ï¥â¥Ç¥ê¥ó¥°¥Ä¡¼¥ë¤Î¥×¥é¥¤¥ª¥ê¥Æ¥£¤ò³ÍÆÀ¤¹¤ë²ÄǽÀ¤â¤¢¤ê¤Þ¤¹¡£»ä¼«¿È¡¢¤³¤Î¥½¥Õ¥È¤ò»È¤Ã¤¿¤³¤È¤¬Ìµ¤¤¤Î¤ÇÁàºî´¶¤Ê¤É¤Ë¤Ä¤¤¤Æ¤Ï½Ò¤Ù¤é¤ì¤Þ¤»¤ó¤¬¡¢Áàºî²èÌ̤ʤɤò¸«¤ë¤Èɸ½àŪ¤Ê¥â¥Ç¥ê¥ó¥°¥Ä¡¼¥ë¤ÈÂ纹¤Ê¤¤¤è¤¦¤Ë»×¤¨¤Þ¤¹¡£ÆÃÉ®»ö¹à¤È¤·¤Æ¡¢¤½¤Î³ÈÄ¥À¤Î¹â¤µ¤¬¤¢¤ê¤Þ¤¹¡£SDK¤Ê¤É¤Î¥Ä¡¼¥ë¤¬¸ø³«¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¥¢¥É¥ª¥ó¤ä¥¹¥¯¥ê¥×¥È¤Ê¤É¤¬Íưפ˺îÀ®¡¿ÍøÍѤǤ¤Þ¤¹¡£
¤É¤Î¥Ä¡¼¥ë¤ò»È¤Ã¤¿¤È¤·¤Æ¤â¡¢ºÇ½ªÅª¤ËºîÀ®¤·¤¿3D¥â¥Ç¥ë¤òET¤¬°·¤¦¤³¤È¤Î½ÐÍè¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ëMD3¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ÎÊÑ´¹ºî¶È¤ÏÍøÍѤ·¤Æ¤¤¤ë¥½¥Õ¥È¤Ë¤è¤Ã¤Æ¤Þ¤Á¤Þ¤Á¤Ç¤¹¡£
¤³¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ï¡¢¥Õ¥ê¡¼¤Ç¥²¡¼¥à¥â¥Ç¥ë¡¢ÆäËQuake3´ØÏ¢¤Î¤â¤Î¤òºîÀ®¤¹¤ë¤Î¤ËºÇŬ¤Êgmax¤ò»È¤Ã¤ÆÀâÌÀ¤·¤Æ¤¤¤¤Þ¤¹¡£
¤µ¤¢¡¢»Ï¤á¤è¤¦¡ª
¤µ¤¢¡¢¥â¥Ç¥ê¥ó¥°¤Î½àÈ÷¤ÏÀ°¤¤¤Þ¤·¤¿¡£¤Ç¤â¤½¤ÎÁ°¤ËÂç»ö¤Ê¤³¤È¤ò·è¤á¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£²¿¤òºî¤ë¤«¡©¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ËÜÍè¤Ê¤éÀè¤Ë¤½¤ì¤¬¤¢¤Ã¤Æ¡¢ºî¶È¤Ë°Ü¤ë¤Î¤Ç¤¹¤¬¡¢º£²ó¤Ï¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¤¹¤«¤éÌÜŪ¤È¼êÃʤ¬µÕ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£¥Æ¡¼¥ÞÀßÄê¤ÎÎɤ·°¤·¤Ï¡¢ºîÉʤνÐÍè¤À¤±¤Ç¤Ê¤¯ºî¶ÈÃæ¤Î¼«Ê¬¤Î¥â¥Á¥Ù¡¼¥·¥ç¥ó°Ý»ý¤Ë¤âÂçÀڤʤâ¤Î¤Ç¤¹¡£
¤³¤ì¤Ï¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ê¤Î¤Ç¡¢´Êñ¤Ê¤â¤Î¤¬Îɤ¤¤Ç¤·¤ç¤¦¡£ÏäÏÊѤï¤ê¤Þ¤¹¤¬¡¢¥á¥Ç¥£¥Ã¥¯¤ÏÀï¾ì¤Ç½ý¤Ä¤¤¤¿Ãç´Ö¤ò½õ¤±¤ë¡¢´Ç¸îÉؤΤ褦¤Ê¡¢¤Ä¤Þ¤ê¤ÏÀïÆ®Éþ¤òÃ夿ŷ»È¤Î¤è¤¦¤Ê¸ºß¤Ç¤¹(°Âľ¤Ç¤¹¤«¡©)¡£¤È¤¤¤¦¤³¤È¤Ç¡¢º£²ó¤Ï¥á¥Ç¥£¥Ã¥¯¤òÅ·»ÈÍͤˤ·¤Æ¤·¤Þ¤¤¤Þ¤·¤ç¤¦¡£Å·»È¤È¤¤¤¨¤Ð²Ä°¦¤¤½÷¤Î»ÒŽ¥Ž¥Ž¥¡¢¤È¤¤¤¦¤Î¤ÏÆüËܤΥ¢¥Ë¥áʸ²½¤ËÆǤµ¤ì²á¤®¤Ç¤¹¡£Å·»È¤È¤¤¤¨¤Ð¡¢¥¨¥ó¥¸¥§¥ë¥Ï¥¤¥í¥¦¡¢¤½¤·¤ÆÍã¤Ç¤¹¡£¤½¤³¤Ç¡¢¤³¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¤ÏºÇ½ªÅª¤ËAllies¤Î¥á¥Ç¥£¥Ã¥¯¤ËÅ·»È¤ÎÎؤȱ©¤ò¤¯¤Ã¤Ä¤±¤ë¤³¤È¤òÌÜɸ¤È¤·¤Þ¤¹¡£
ºî¤ë¤â¤Î¤¬·è¤Þ¤ì¤Ð¡¢¸å¤Ï¤½¤ì¤òºî¤Ã¤Æ¤¯¤Ã¤Ä¤±¤ë¤À¤±¤Ç¤¹¡£ËÜÅö¤Ë¤½¤¦¤Ê¤Î¤Ç¤¹¡£¼Â¤Ï²¿¤òºî¤ë¤«¤µ¤¨·è¤Þ¤Ã¤Æ¤µ¤¨¤¹¤ì¤Ð¸å¤Î¾ã³²¤Ïµ»½ÑŪ¤Ê¤â¤Î¤À¤±¤Ê¤Î¤Ç¡¢¤¢¤È¤Ï»þ´Ö¤µ¤¨¤«¤±¤ì¤Ð²¿¤È¤Ç¤â¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
Å·»È¤ÎÎؤòºî¤í¤¦
¤Ç¤Ï¤Ç¤ÏÁᮡ¢gmax¤òµ¯Æ°¤·¤Æ¤¯¤À¤µ¤¤¡£ÌÌÅݤʥ쥸¥¹¥È¥ì¡¼¥·¥ç¥ó¤Ê¤É¤ò½ª¤¨¤ë¤È¡¢»Íʬ³ä¤µ¤ì¤¿¥¦¥£¥ó¥É¥¦¤ä¤é¿§¡¹½Ð¤Æ¤¤¿¤È»×¤¤¤Þ¤¹¡£¤Þ¤ººÇ½é¤ËÅ·»È¤ÎÎؤòºî¤ê¤Þ¤·¤ç¤¦¡£¤³¤ì¤Ï¤È¡¼¡¼¡¼¤Ã¤Æ¤â´Êñ¤Ç¤¹¡£¤Ê¤¼¡©¤È»×¤ï¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢gmax¤Ï¥É¡¼¥Ê¥Ä¾õ¤Î¥Ý¥ê¥´¥ó¤ò°ìÁàºî¤Çºî¤ì¤Þ¤¹¡£¤½¤ì¤ò¥¯¥ê¡¼¥à¿§¤ËÃ忧¤¹¤ì¤Ð¡¢¤Û¤éÅ·»È¤ÎÎؤνÐÍè¾å¤¬¤ê¡ª¤½¤ì¤Ç¤Ï¼ÂºÝ¤Îºî¶È¤Îή¤ì¤òÄɤäƤ¤¤¤Þ¤·¤ç¤¦¡£

¤Þ¤º¤Ïµ¯Æ°¤·¤¿¾õÂÖ¤«¤é¡¢¡¡¢¢¤È¥¯¥ê¥Ã¥¯¤¹¤ë¤È¥É¡¼¥Ê¥Ä¾õ¤Î¥Ý¥ê¥´¥ó¤òÀ¸À®¤¹¤ë¤¿¤á¤ÎÀßÄꥦ¥£¥ó¥É¥¦¤¬±¦²¼¤Ë½Ð¤Þ¤¹¡£¤³¤Î¾õÂ֤ˤʤë¤È¡¢Ãæ±û¤Îºî¶È¥¦¥¤¥ó¥É¥¦¤Ë¥Þ¥¦¥¹¤Ç¥É¥é¥Ã¥°¤¹¤ë¤È¥É¡¼¥Ê¥Ä¾õ¤Î¥Ý¥ê¥´¥ó¤¬À¸À®¤µ¤ì¤Þ¤¹¡£¤½¤ì¤Ç¤Ïºî¤Ã¤Æ¤ß¤Þ¤·¤ç¤¦¡£

¡¤Î°ÌÃÖ¤«¤é¢¤Î°ÌÃ֤ޤǺ¸¥É¥é¥Ã¥°¤·¤Þ¤¹¡£¤¹¤ë¤È¥É¡¼¥Ê¥Ä¤ÎÆâ·Â¤¬·èÄꤷ¤Þ¤¹¡£Â³¤¤¤Æ£¤Î°ÌÃ֤Ǻ¸¥¯¥ê¥Ã¥¯¤¹¤ë¤È³°·Â¤¬·èÄꤵ¤ì¡¢¥É¡¼¥Ê¥Ä¤¬À¸À®¤µ¤ì¤Þ¤¹¡£¤½¤Î¥É¡¼¥Ê¥Ä¤Ï±¦²¼¤Î¥¦¥£¥ó¥É¥¦¤Ç³Îǧ¤Ç¤¤Þ¤¹¡£¤³¤³¤Ç³Æ¥¦¥£¥ó¥É¥¦¤ÎÀâÌÀ¤ò¤·¤Æ¤ª¤¯¤È¡¢º¸¾å¤ÏTop¤È¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¤¬¡¢¤³¤Î¥¦¥£¥ó¥É¥¦¤Ç¤Ï¥â¥Ç¥ë¤ò¿¿¾å¤«¤é¸«¤¿¤â¤Î¤Ç¤¹¡£±¦¾å¤Èº¸²¼¤Ï¤½¤ì¤¾¤ìÀµÌÌ¡¢º¸Â¦Ì̤«¤é¸«¤¿¤â¤Î¤Ç¤¹¡£±¦²¼¤Ï¥Ñ¡¼¥¹¥Ú¥¯¥Æ¥£¥Ö¡¢¤Ä¤Þ¤êÄ»â×Ū¤Ë¤ß¤¿¤â¤Î¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£Ä»â×Ū¤Ëɽ¼¨¤µ¤ì¤ë¤È¡¢¸½¼Â¤Ë¤¢¤ë±ó¶áË¡¤¬È¿±Ç¤µ¤ì¤ë¤¿¤á¡¢¼ÂºÝ¤Ë¸«¤¿´¶¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£
ºî¤Ã¤¿¥É¡¼¥Ê¥Ä¤Î·Á¾õ¤¬¤¢¤Ê¤¿¤Î´¶À¤Ë¹ç¤ï¤Ê¤¤¾ì¹ç¡¢¤³¤Î¥É¡¼¥Ê¥Ä¤Ïºï½ü¤Þ¤¿¤Ï½¤Àµ¤µ¤ì¤ë¤Ù¤¤Ç¤¹¡£ºï½ü¤Ï´Êñ¡¢¤³¤Î¥É¡¼¥Ê¥Ä¤¬ÁªÂò¤µ¤ì¤¿¾õÂÖ¤ÇDel¥¡¼¤Ç¤¹¡£½¤Àµ¤¹¤ë¤Ë¤Ï¡¢ÀèÄø¥É¡¼¥Ê¥Ä¤òºî¤ì¤ë¾õÂ֤ˤ·¤¿²èÌ̱¦Éô¤Ë¤¢¤ë¤È¤³¤í¤ò¤¤¤¸¤ê¤Þ¤¹¡£

¤³¤³¤Î¹àÌܤò¤¤¤¸¤ë¤È¡¢Â礤µ°Ê³°¤Ë¤â¿§¡¹¤ÈÊѹ¹¤Ç¤¤Þ¤¹¡£¼ÂºÝ¼«Ê¬¤Ç¿§¡¹Êѹ¹¤·¤Æ¤ß¤Æ¡¢²¿¤ò¤É¤¦¤¹¤ë¤È¤É¤¦¤Ê¤ë¤«¤ò±¦²¼¤Î¥¦¥£¥ó¥É¥¦¤Ê¤É¸«¤Ê¤¬¤é³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£¥¢¥ó¥É¥¥¤ÏCtrl+Z¤Ç¤¹¡£¼ý½¦¤Ä¤«¤Ê¤¯¤Ê¤Ã¤¿¤éDel¤Çºï½ü¤·¤Æ¿·¤¿¤Ëºî¤êľ¤·¤Þ¤·¤ç¤¦¡£
¤µ¤Æ¡¢Ëþ¤ιԤ¯¥É¡¼¥Ê¥Ä¡¢¤â¤È¤¤Å·»È¤ÎÎؤηÁ¾õ¤Ë¤Ê¤ê¤Þ¤·¤¿¤«¡©¼¡¤Ë¡¢¤³¤Î¥É¡¼¥Ê¥Ä¤Ë¿§¤ò¤Ä¤±¤ÆÅ·»È¤ÎÎؤ餷¤¯¤·¤Þ¤·¤ç¤¦¡£¤³¤Î¥Ý¥ê¥´¥ó¤Ë¿§¤äÌÏÍͤò¤Ä¤±¤ëºî¶È¤ò¥¹¥¥Ë¥ó¥°¤È¤¤¤¤¤Þ¤¹¡£

Å·»È¤ÎÎؤϱ߷Á·Ö¸÷Åô¤Î¤è¤¦¤Ê¤â¤Î¤Ã¤Ý¤¤¤Î¤Ç¡¢º£²ó¤ÏÃÈ¿§¤Î¥Ù¥¿Åɤê²èÁü¤òÍÑ°Õ¤·¤Þ¤·¤¿¡£³§¤µ¤ó¤Ï³Æ¼«¹¥¤¤Ê¿§¡¿ÌÏÍͤβèÁü¤òÍÑ°Õ¤·¤Æ¤â¤é¤Ã¤Æ¹½¤¤¤Þ¤»¤ó¤¬¡¢Ãí°ÕÅÀ¤È¤·¤Æ²èÁü¤Î½Ä²£¥µ¥¤¥º¤Ï64/128¡¿256¡¿512¥Ô¥¯¥»¥ë¤Ë¤Ê¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£¤Ç¤Ï¤³¤Î²èÁü¤ò¥É¡¼¥Ê¥Ä¤ËŽ¤êÉÕ¤±¤Þ¤·¤ç¤¦¡£¤È¡¢¤½¤ÎÁ°¤Ëºî¶È¥Õ¥©¥ë¥À¤Ç¤âºî¤Ã¤Æ¤½¤ÎÃæ¤Ë¤³¤Î¥É¡¼¥Ê¥Ä¤òÊݸ¤·¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£Êݸ¤ÏCtrl-S¤Ç¤¹¡£º£¤Ï¤Þ¤Àgmax·Á¼°Êݸ¤Ç·ë¹½¤Ç¤¹¡£

¾å¿Þ¤Î¥Ü¥¿¥ó¤ò²¡¤¹¤È¡¢¥Ý¥ê¥´¥ó¤ËŽ¤êÉÕ¤±¤ë¡Ö¥Þ¥Æ¥ê¥¢¥ë¡×¤òÊÔ½¸¤¹¤ë¥¦¥£¥ó¥É¥¦¤¬½Ð¤Æ¤¤Þ¤¹¡£¥Þ¥Æ¥ê¥¢¥ë¤È¤Ï¡¢¤Ä¤Þ¤êÌÏÍͤΤ³¤È¤Ç¤¹¡£¶ñÂÎŪ¤ÊÏäÏÈò¤±¤Þ¤¹¤¬¡¢¤È¤Æ¤â±ü¤Î¿¼¤¤¤â¤Î¤Ç¤¹¡£¤³¤³¤Ç¤Ï¤³¤ì¤òñ¤ËÌÏÍͤòÊÔ½¸¤¹¤ë¤â¤Î¡¢¤È¤·¤Æ¹Í¤¨¤Æ¤¯¤À¤µ¤¤¡£


¤È¤ê¤¢¤¨¤º½Ð¤Æ¤¤¿¥¦¥£¥ó¥É¥¦¤ÎNew¥Ü¥¿¥ó¤ò²¡¤·¤Æ¡¢½Ð¤Æ¤¤¿¥¦¥£¥ó¥É¥¦¤ÇStandard¤òÁªÂò¤·¤ÆOK¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£


¤³¤³¤Ç¤Ï³Æ¹àÌܤˤĤ¤¤Æ¿¼¤¯¹Í¤¨¤º¤Ë¡¢Blinn¥Ñ¥é¥á¡¼¥¿¤ÎÃæ¤ÎDiffuse¹àÌܤα¦¤Î¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£¤¹¤ë¤È¤Þ¤¿¥¦¥£¥ó¥É¥¦¤¬½Ð¤Æ¤¤Þ¤¹¤¬¡¢¤³¤Î¥¦¥£¥ó¥É¥¦¤Ç¼ÂºÝ¤ËŽ¤êÉÕ¤±¤ë²èÁü¤òÁª¤Ó¤Þ¤¹¡£½Ð¤Æ¤¤¿¥¦¥£¥ó¥É¥¦¤ÎBitmap¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤¹¤ë¤È¥Õ¥¡¥¤¥ë¤òÁªÂò¤¹¤ë¤è¤¦¤Ê¥À¥¤¥¢¥í¥°¤¬½Ð¤Æ¤¯¤ë¤Î¤Ç¡¢¤¢¤Ê¤¿¤¬ÍÑ°Õ¤·¤¿Å·»È¤ÎÎزèÁü¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£


¡¦¡¦¡¦¡£¤Þ¤¡Ìܰ¤Ȥ·¤Æ¤¤¤¿¤Î¤¬±ß·Á·Ö¸÷Åô¤Ç¤¹¤«¤é¡¢·ë²ÌŪ¤Ë·Ö¸÷Åô¤Ë¤Ê¤ë¤Î¤Ï»ÅÊý¤Î̵¤¤¤³¤È¤Ç¤¹¤Í¡£
¤½¤ì¤Ç¤Ïºî¤Ã¤¿Å·»È¤ÎÎؤòET¤Ç»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¡¢Â礤µ¤ä°ÌÃ֤ν¤Àµ¡¢MD3¤Ø¤ÎÊÑ´¹ºî¶È¤Ë°Ü¤ê¤Þ¤¹¡£¤³¤Î¤¢¤¿¤ê¤Ï¥²¡¼¥à¥â¥Ç¥ëºîÀ®¸Çͤκî¶È¤Ç¡¢¥â¥Ç¥ê¥ó¥°¤ò¤·¤Æ¤¤¤ë¿Í¤¬É¬¤º¤·¤âÃΤäƤ¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç0¤«¤é³Ø½¬¤¹¤ë¤Î¤¬Æñ¤·¤¤Éôʬ¤Ç¤â¤¢¤ê¤Þ¤¹¡£ °ìögmax¤Ç¤Îºî¶È¤òCtrl-S¤ÇÊݸ¤·¤Æ¡¢ÊĤ¸¤Þ¤¹¡£¤È¤¤¤¦¤Î¤â¡¢MD3¤ò°·¤¦¤¿¤á¤Ë¤Ïgmax¤ËÄɲäΥ¹¥¯¥ê¥×¥È¤ä¥¢¥É¥ª¥ó¤¬É¬ÍפÀ¤«¤é¤Ç¤¹¡£http://mojo.gmaxsupport.com/¤«¤é¡¢MaxScripts¤ÎQuake3 MD3 Importer¤ÈPlugins¤ÎEnhanced MD3 Exporter¤ò¥À¥¦¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£¤½¤ì¤¾¤ì²òÅष¤Æ½Ð¤Æ¤¤¿¥Õ¥¡¥¤¥ë¤ò¡¢gmax¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Õ¥©¥ë¥ÀÃæ¤Îscripts/startup¡¢plugins¤ËÆþ¤ì¤Æ¤¯¤À¤µ¤¤¡£½ª¤ï¤Ã¤¿¤é¡¢gmax¤òºÆµ¯Æ°¤·¤Æ¤¯¤À¤µ¤¤¡£¤½¤·¤ÆÀèÄøÊݸ¤·¤¿¥Õ¥¡¥¤¥ë¤ò³«¤¤Ê¤ª¤·¤Æ¤¯¤À¤µ¤¤¡£
2004ǯ7·î2Æü ̤´°À®
Åê¹Æ¼Ô ikanatto : 07:02 PM | ¥³¥á¥ó¥È (10)
¥À¥¤¥Ê¥Þ¥¤¥È¤ÇÇ˲õ¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È
Dynamite Object
ËÝÌõ¸µ¡§http://etmapping.andityler.com/dynamiteobject.php
1. ¤ª¹¥¤ß¤Î¥µ¥¤¥º¤Î¥Ö¥é¥·¤òºî¤Ã¤Æ¤¯¤À¤µ¤¤¡£
2. ºî¤Ã¤¿¥Ö¥é¥·¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¾õÂ֤ǡ¢2Dɽ¼¨¥¦¥£¥ó¥É¥¦¾å¤Î¤É¤ì¤Ç¤â¤¤¤¤¤Î¤Ç±¦¥¯¥ê¥Ã¥¯¤ò²¡¤·¡¢func/func_explosive¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£
3.¥Ö¥é¥·¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¾õÂ֤ǡ¢N¤ò²¡¤·¤Æentity¥¦¥£¥ó¥É¥¦¤òɽ¼¨¤µ¤»¤Æ¤¯¤À¤µ¤¤¡£É½¼¨¤µ¤ì¤¿¥¦¥£¥ó¥É¥¦¤Ç¤Ï¡¢¾åÉô¤Çfunc_explosive¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¾õÂ֤ǡ¢Ãæ±ûÉôʬ¤Ë¤Ï¥¡¼¤È¤½¤ÎÃͤ¬É½¼¨¤µ¤ì¤Æ¤ª¤ê¡¢²¼Éô¤Ç¤ÏÊѹ¹¤·¤¿¤¤Éôʬ¤ÈÆþÎϤ¹¤ë¤Ù¤ÃͤΥ¬¥¤¥À¥ó¥¹¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¡£¥¡¼ÆþÎÏÍó¤Ë'scriptname'¤È¤¤¤ì¤Æ¡¢Tab¤ò²¡¤·¤ÆÃÍÆþÎÏÍó¤Ë°Ü¤ê'dynamitetest'¤ÈÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£¤½¤¦¤·¤¿¤é¡¢Enter¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤Ç¡¢¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¹¥¯¥ê¥×¥È¤ò»È¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£dynamitetest°Ê³°¤Î̾Á°¤Ç¤â¹½¤¤¤Þ¤»¤ó¤¬¡¢Êѹ¹¤·¤¿¤é¸å¤Û¤Éºî¤ë³ºÅö¤¹¤ë¥Õ¥¡¥¤¥ë̾¤âÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¤Í¡£
***¥ª¥×¥·¥ç¥ó***
4. ¥¡¼¤Ë'mass'¡¢ÃͤË'400'¤òÆþ¤ì¤Æ¡¢Enter¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤Ë¤è¤ê¡¢¤³¤ì¤¬ÇúÇˤµ¤ì¤¿»þ¤Ë¤è¤ê¿¤¯¤ÎÇËÊÒ¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£¤Þ¤¿use shader¤òº¸¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢ÇËÊҤˤâ¥Æ¥¯¥¹¥Á¥ã¤È¥·¥§¡¼¥À¡¼¤¬Å¬±þ¤µ¤ì¤Þ¤¹¡£Â¾¤Ë¤â¿§¡¹¤Ê¥¡¼¤ÈÃͤ¬¤¢¤ë¤Î¤Ç¡¢»î¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¤Í¡£
5. Esc¤ò²¡¤·¤ÆÁªÂò¾õÂÖ¤ò²ò½ü¤·¤Þ¤¹¡£Ê̤Υ֥饷¤ò¡¢Àè¤Û¤Éºî¤Ã¤¿¥Ö¥é¥·¤òʤ¤¦¤è¤¦¤Ëºî¤Ã¤Æ¤¯¤À¤µ¤¤¡£¥·¥§¡¼¥À¡¼¤Ë¡¢'common/trigger'¤ò»È¤¤¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¥²¡¼¥àÃæ¤Ç¤Ï¡¢¤³¤Î¥Ö¥é¥·¤ÏÆ©ÌÀ¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤Î¥È¥ê¥¬¡¼¥Ö¥é¥·¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤ËÇúÇ˲Äǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤¬¶á¤¯¤Ë¤¢¤ê¤Þ¤¹¤è¤ÈÃΤ餻¤ë¤Î¤È¡¢¤³¤Î¥Ö¥é¥·Ãæ¤Ë¥À¥¤¥Ê¥Þ¥¤¥È¤òÀßÃÖ¤·¤Ê¤µ¤¤¡¢¤È¤¤¤¦ÈϰϤòÄê¤á¤Þ¤¹¡£
6. ¥È¥ê¥¬¡¼¥Ö¥é¥·¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¾õÂ֤ǡ¢2D¥¦¥£¥ó¥É¥¦¾å¤Ç±¦¥¯¥ê¥Ã¥¯¤ò²¡¤·¡¢'trigger/trigger_objective_info'¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£
7. ¥È¥ê¥¬¡¼¥Ö¥é¥·¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¾õÂ֤ǡ¢N¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£Entity¥¦¥£¥ó¥É¥¦¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¥¡¼ÆþÎÏÍó¤Ë¡¢'track'¤ÈÆþÎϤ·¡¢ÃÍÆþÎÏÍó¤Ë'the Dynamite Tes'¤ÈÆþÎϤ·¡¢Enter¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£º£ÆþÎϤ·¤¿¤â¤Î¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤¬¥È¥ê¥¬¥Ö¥é¥·¤Ë¿¨¤ì¤ë¤Èɽ¼¨¤µ¤ì¤ë¤â¤Î¤Ç¤¹¤Î¤Ç¡¢¼«Ê¬¤Î˾¤à¤â¤Î¤òÀßÄꤷ¤Þ¤·¤ç¤¦¡£¼ÂºÝ¤Ë¤Ï¡ÖYou are near ¡Á¡×¤Èɽ¼¨¤µ¤ì¤Þ¤¹¡£
¤µ¤Æ¡¢¤Þ¤À¤Þ¤ÀÆþÎϤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥¡¼¤ÈÃͤ¬¤¢¤ê¤Þ¤¹¡£¤Þ¤º¡¢¥¡¼¤Ë'shortname'¡¢ÃͤË'Dynamite Tes'¤òÃͤËÆþÎϤ·¤ÆEnter¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤Ï¡¢¥³¥Þ¥ó¥É¥Þ¥Ã¥×¾å¤Ç¥×¥ì¥¤¥ä¡¼¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÎÎÙ¤Ëɽ¼¨¤µ¤ì¤ë¤â¤Î¤Ç¤¹(¤Á¤ç¤Ã¤È¤è¤¯¤ï¤«¤ó¤Ê¤¤¤Ç¤¹¡¢¤´¤á¤ó¤Ê¤µ¤¤ by ika)¡£¼¡¤Ë¡¢¥¡¼¤Ë'objflag'¡¢ÃͤË'4'¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤Ï¡¢¥³¥Þ¥ó¥É¥Þ¥Ã¥×¾å¤Ç¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì½ê¤Ë¥À¥¤¥Ê¥Þ¥¤¥È¤Î¥¢¥¤¥³¥ó¤òɽ¼¨¤µ¤»¡¢¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬¥À¥¤¥Ê¥Þ¥¤¥È¤Ç¤Î¤ßÇ˲õ¤Ç¤¤ë¤È¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£ºÇ¸å¤Ë¡¢¤É¤Á¤é¤Î¥Á¡¼¥à¤¬¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÇ˲õ¤¹¤ë¤Î¤«¤È¤¤¤¦¤³¤È¤òÀßÄꤷ¤Þ¤¹¡£Axis_objective¤òº¸¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÏAxis¤Îʪ¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¡¢Allied¤¬¤³¤ì¤òÇúÇˤ¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£Allied_objective¤òÁª¤Ö¤È¡¢µÕ¤Ë¤Ê¤ê¤Þ¤¹¡£
ikanattoÊ䡧objflag¤Ï1¡Á4¤È¤¢¤ê¡¢4¤Ï´û¤ËÀâÌÀ¤·¤¿¤è¤¦¤Ë¥À¥¤¥Ê¥Þ¥¤¥È¤Ç¤Î¤ßÇ˲õ²Äǽ¤Ç¤¢¤ë¤³¤È¤òɽ¤·¡¢1¤ÏÁ´¤Æ¤ÎÉð´ï¤Ç¥À¥á¡¼¥¸¤òÍ¿¤¨¤é¤ì(Áë¤Ê¤É¤ËÀßÄê)¡¢2¤ÏÇúȯʪ¤Ê¤éÁ´¤Æ¥À¥á¡¼¥¸¤òÍ¿¤¨¤é¤ì(Àï¼Ö¤Ê¤É)¡¢3¤Ï¥À¥¤¥Ê¥Þ¥¤¥È¤«Co¤Î¥ê¥â¡¼¥È¤ÇÇ˲õ²Äǽ¤È¤¤¤¦¤³¤È¤òɽ¤·¤Æ¤¤¤Þ¤¹¡£1¤È2¤Ë¤ÏÊ̤˥ª¥Ö¥¸¥§¥¯¥È¤ÎÇ˲õ¤µ¤ì¤ë¤Þ¤Ç¤ËÍ¿¤¨¤ë¥À¥á¡¼¥¸¤òÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¤¬¡¢¾Ü¤·¤¯¤Ï¾¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£¤¿¤Ö¤ó¤½¤Î¤¦¤ÁÏÂÌõ¤·¤Þ¤¹¡£¤¿¤Ö¤ó¡£
8. ¼¡¤Ë¡¢¥È¥ê¥¬¡¼¥Ö¥é¥·¤òÁªÂò¤·¡¢¤½¤Î¸åÇ˲õ¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¤Þ¤¹¡£¤³¤Î½ç¤É¤ª¤ê¤ËÁªÂò¤·¤¿¤é¡¢Ctrl+K¤ò²¡¤·¤Æ¤³¤ÎÆó¤Ä¤ò¥ê¥ó¥¯¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢Æó¤Ä¤Ë'targetname'¤È¥é¥ó¥À¥à¤Ê¤â¤Î¤¬¥¡¼¤ÈÃͤȤ·¤ÆÀßÄꤵ¤ì¤Þ¤¹¡£¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë´Ö¤Ê¤é¡¢¤¤¤Ä¤Ç¤â¤³¤ÎÆó¤Ä¤ËƱ¤¸¥¡¼¤ÈÃͤ¬ÄɲäǤ¤Þ¤¹¡£
9. ¤¤¤è¤¤¤è¼ÂºÝ¤Ë¥À¥¤¥Ê¥Þ¥¤¥ÈÇúÇˤνèÍý¤ò¤¹¤ë¥¹¥¯¥ê¥×¥È¤òºî¤ê¤Þ¤¹¡£¤¬¡¢¤½¤ÎÁ°¤Ë¡¢¤³¤ì¤«¤éºî¤ë¥¹¥¯¥ê¥×¥È¤¬»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤ÎEntity¤òºî¤é¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó¡£Esc¤ò²¡¤·¤ÆÁªÂò¾õÂÖ¤ò²ò½ü¤·¡¢2D²èÌ̤DZ¦¥¯¥ê¥Ã¥¯¤ò²¡¤·¤Æ¡¢script/script_multiplayer¤òÁª¤Ó¤Þ¤¹¡£¤³¤ì¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¾õÂÖ¤ÇN¤ò²¡¤·¡¢¥¡¼¤Ë'scriptname'¡¢ÃͤË'game_manager'¤ÈÆþÎϤ·¤ÆEnter¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£ºÆ¤ÓEsc¤ò²¡¤·¤ÆÈóÁªÂò¾õÂ֤ˤ·¤Þ¤¹¡£¤³¤ì¤Ç¥¹¥¯¥ê¥×¥È¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£(¤â¤·¡¢´û¤Ë¤³¤ÎEntity¤òºî¤Ã¤Æ¤¤¤ë¤Ê¤é²þ¤á¤Æºî¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£)
10. Radiant¤ò»È¤Ã¤Æ¤ÎÀßÄê¤Ï¤³¤ì¤Ç½ª¤ï¤ê¤Ç¤¹¡£¤Ç¤Ï¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤òºî¤ê¤Þ¤·¤ç¤¦¡£(¤â¤·´û¤Ë¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤òºî¤Ã¤Æ¤¤¤ë¤Î¤Ê¤é¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ë²¼¤Î¤â¤Î¤òÄɲ乤ì¤ÐOK¤Ç¤¹)¡£¿·µ¬¤Î¥×¥ì¥¤¥ó¥Æ¥¥¹¥È¤òºî¤ê¡¢²¼¤Î¤â¤Î¤òÆþÎϤ·¤Æ¤¢¤Ê¤¿¤Î¥Þ¥Ã¥×¤¬Êݸ¤·¤Æ¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¡¢'¤¢¤Ê¤¿¤Îºî¤Ã¤Æ¤¤¤ë¥Þ¥Ã¥×¤Î̾Á°.script'¤ÈÊݸ¤·¤Æ¤¯¤À¤µ¤¤¡£¥¹¥¯¥ê¥×¥ÈÃæ¤Ë¤¢¤ëwm_announce°Ê²¼¤Î¥À¥Ö¥ë¥¯¥ª¡¼¥Æ¡¼¥·¥ç¥ó¤Ç°Ï¤Þ¤ì¤¿Éôʬ¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¤¬¥À¥¤¥Ê¥Þ¥¤¥È¤ÇÇ˲õ¤µ¤ì¤¿»þ¤Ë¥×¥ì¥¤¥ä¡¼¤Ëɽ¼¨¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤Ç¤¹¤Î¤Ç¡¢¤ª¹¥¤¤Ê¤è¤¦¤ËÊѤ¨¤Æ¤¯¤À¤µ¤¤¡£
game_manager
{
spawn
{
}
}
dynamitetest
{
spawn
{
wait 200
constructible_class 3
}
death
{
wm_announce "Allies have blown up the Dynamite Test!"
}
}
¤´¶ìÏ«ÍͤǤ¹¡£¤³¤ì¤ÇÁ´¤Æ¤ÎÀßÄ꤬´°Î»¤·¤Þ¤·¤¿¡£¥²¡¼¥àÃæ¤Ç¤Ï¡¢Ç˲õÌÜɸ¤Ë¶á¤Å¤±¤Ð¥À¥¤¥Ê¥Þ¥¤¥È¤Î¥¢¥¤¥³¥ó¤¬É½¼¨¤µ¤ì¤ë¤Ï¤º¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢¤³¤ì¤¬¥À¥¤¥Ê¥Þ¥¤¥È¤ÇÇ˲õ¤Ç¤¤ë¤È¤¤¤¦¤³¤È¤òɽ¤·¤Æ¤¤¤Þ¤¹¡ª
Åê¹Æ¼Ô ikanatto : 06:46 PM
MG42¤Îºî¤êÊý
ËÝÌõ¸µ¡§http://www.splashdamage.com/forums/viewtopic.php?t=2658
À½ºî¥µ¥¤¥É¤Î¿Í¤Îȯ¸À¤ò¸ÂÄêŪ¤ËÏÂÌõ¡£
ikaÃí¡§
entity¤òºî¤ëºÝ¤Ë¤¯¤É¤¯¸¶ÅÀ¥Ö¥é¥·¤ò´Þ¤à¤è¤¦¤Ë¤È¤¤¤Ã¤Æ¤¤¤ë¤Î¤Ï¡¢ET¤Ë¤Ï´ñ̯¤Ê¥Ð¥°¤È
¤¤¤¦¤«»ÅÍͤΤ褦¤Ê¤â¤Î¤¬¤¢¤ê¡¢¸¶ÅÀ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È°ìÏ¢¤Î¥¹¥¯¥ê¥×¥È¤Î½èÍý¤¬¤¦
¤Þ¤¯¤¤¤«¤Ê¤¤¤½¤¦¤Ç¤¹¡£¤Ç¤¹¤Î¤Ç¡¢ñÙ¤µ¤ì¤¿¤È»×¤Ã¤ÆÀßÄꤷ¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£
¤Þ¤¿¡¢¤³¤³¤Ç¾Ò²ð¤µ¤ì¤Æ¤¤¤ë¥¡¼¤ÈÃͤˤĤ¤¤Æ¤Ç¤¹¤¬¡¢¤³¤ì¤é¤Î¿ôÃͤϼ«Ê¬¤¬ÀßÃÖ¤·¤è¤¦
¤È¤·¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤è¤Ã¤ÆÊѤï¤ê¤¦¤ë¤Î¤ÇÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
°Ê²¼ËÜʸ¡§
A. Radiant¤Ç¤¹¤ë¤³¤È¡£
1. misc_gamemodel¤ÎEntity¤òºî¤ë(¥¤¥ó¥Ý¡¼¥È¤·¤í¤È¤¤¤¦¤³¤È¤Ç¤¹¤Ê)¡£¤³¤ì¤¬ºî¶ÈÈ¢(¹©
»ö¤Î¤È¤¤Ë¥Ú¥ó¥Á¤Ç¤Ä¤Í¤ëÂоÝ)¤Ë¤Ê¤ë¡£ºî¤Ã¤¿¤é°Ê²¼¤Î¥¡¼¤òÆþÎÏ¡£
classname, misc_gamemodel
skin, models/mapobjects/cmarker/allied_crates.skin
model, models/mapobjects/cmarker/cmarker_crates.md3
targetname, construction_materials
2. ¼¡¤Ë¡¢È¢¤Î¤½¤Ð¤ËΩ¤Ä¤É¤Á¤é¤Î¥Á¡¼¥à¤¬·úÀߤǤ¤ë¤Î¤«¤òɽ¤¹´ú¤È¤Ê¤ëEntity¤òºî¤ë¡£
¤½¤ì¤Ë¡¢°Ê²¼¤Î¥¡¼¤òÆþÎÏ¡£
classname, misc_gamemodel
skin, models/mapobjects/cmarker/allied_cflag.skin
model, models/mapobjects/cmarker/cmarker_flag.md3
targetname, construction_materials
angle, 180 (Facing direction)
modescale, 0.4
spawnflags, 2 (Animated)
frames, 190 (Total frames)
3. ·úÀßÈ¢¤È´ú¤Ê¤É¤Î¥»¥Ã¥È¤ò°Ï¤à¡¢¥¯¥ê¥Ã¥Ô¥ó¥°(¤½¤Îentity¤Ø¤Î°ÜÆ°¤òÀ©¸Â)¥Ö¥é¥·¤ò
ºî¤ë¡£ºî¤Ã¤¿¤é¡¢¤½¤ì¤é¤òscript_mover entity¤È¤¹¤ë¡£¤½¤ÎºÝ¤Ë¡¢¸¶ÅÀ¥Ö¥é¥·¤ò´Þ¤à¤³
¤È¤ò˺¤ì¤Ê¤¤¤è¤¦¤Ë¡£Á´¤Æ¤Îscript_mover entity¤Ï¡¢¤½¤ì¤¬»È¤ï¤ì¤ë¤«¤É¤¦¤«¤Ë´Ø·¸¤Ê
¤¯scriptname¤Î¥¡¼¤¬É¬ÍפǤ¢¤ë¡£
classname, script_mover
targetname, construction_materials
scriptname, construction_materials
spawnflags, 2 (This makes the script_mover solid)
4. ·úÀßÈ¢¤Î¤Þ¤ï¤ê¤ËTrigger_objective_info¤Î¥Ö¥é¥·¤òºî¤ë¡£¤³¤ì¤¬¼ÂºÝ¤Ë¥¨¥ó¥¸¥Ë¥¢
¤¬ºî¶È¤ò¹Ô¤Ê¤¨¤ëÈϰϤȤʤ롣¸¶ÅÀ¥Ö¥é¥·¤ò¤ò´Þ¤à¤³¤È¤ò˺¤ì¤º¤Ë¡£
classname, trigger_objective_info
targetname, construction_toi
scriptname, construction_toi
target, construction_target (Points to the func_constructible)
shortname, Construction MG (Command map name)
track, the Construction MG
spawnflags, 1 (This is constructible by Allied)
MG42 Entity¤ò˾¤à¾ì½ê¤Ëºî¤ë¡£
classname, misc_mg42
targetname, construction_mg42 (Needs to be different because of the repairmg42 c
ommand)
track, construction_track (This links all the extra stuff together)
accuracy, 0.5
angle, 90
6. MG42¤ò°Ï¤à¤è¤¦¤Ë¡¢2¤Ä¤ÎÅÚǹ¥â¥Ç¥ë¤òºî¤ë¡£
classname, misc_gamemodel
targetname, construction_extra
track, construction_track (This links all the extra stuff together)
model, models/mapobjects/miltary_trim/sandbag1_45s.md3
angle, 215
classname, misc_gamemodel
targetname, construction_extra
track, construction_track (This links all the extra stuff together)
model, models/mapobjects/miltary_trim/sandbag1_45s.md3
angle, 135
7. ºÇ¸å¤Ë¡¢func_constructible Entity¤òºî¤ë¡£¤³¤ì¤ÏÂçÄñÅÚǹ¤äMG42¤ÎÁ°¤¢¤¿¤ê¤Ëºî¤ê¡¢
¥×¥ì¥¤¥ä¡¼¤ò¥¯¥ê¥Ã¥Ô¥ó¥°¤¹¤ë¤Î¤Ë»È¤¦¡£¸¶ÅÀ¥Ö¥é¥·¤âºî¤ë¤Î¤ò˺¤ì¤º¤Ë¡£
classname, func_constructible
targetname, construction_target
track, construction_track (This links all the extra stuff together)
scriptname, construction_script (The main script routine)
spawnflags, 8 (Allied construction)
³µÍס§
func_constructble¡¢ÅÚǹ¡¢MG42¤ÏƱ¤¸track key¤ò»ý¤Ä¤¿¤á¡¢·úÀߥ¹¥¯¥ê¥×¥È¤Î½èÍý¤ÎºÝ
¤Ë¤³¤ì¤é¤¬°ì¤Ä¤Î¤â¤Î¤È¤·¤Æǧ¼±¤µ¤ì¤Æ¡¢·úÀß´°Î»¤ÎºÝ¤Ë¤Ï°ìÅ٤˽и½¤·¡¢Ç˲õ¤ÎºÝ¤Ë¤Ï
°ìÅ٤˾䨤롣
MG42 Entity¤Ï°ã¤¦targetname¤¬É¬Íפˤʤ롣¤È¤¤¤¦¤Î¤â¡¢MG42¤ò½¤Íý¤¹¤ë¥³¥Þ¥ó¥É¤Ë¤Ï¡¢
¤½¤ÎEntity¤òľÀÜ»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤À¡£¤³¤Î¥³¥Þ¥ó¥É¤¬¤Ê¤¤¤È¡¢MG42¤Ï²õ¤ì¤Ê
¤¯¤Ê¤ë¡£
·úÀßÈ¢¡¢´ú¡¢script_mover¥¯¥ê¥Ã¥Ô¥ó¥°¥Ö¥é¥·¤Ï¡¢¤¹¤Ù¤ÆƱ¤¸targetname¤Ç¤¢¤ëconstruc
tion_materials¤È¤Ê¤Ã¤Æ¤¤¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¥¹¥¯¥ê¥×¥È¤ÏÂоݤ¬construction_materials
¤È¤µ¤ì¤¿»þ¤Ë¤Ï¡¢¤³¤ì¤éÁ´¤Æ¤ò»²¾È¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£
ºÇ¸å¤Ë¡¢Trigger_objective_info Entity¤Ïfunc_constructible¤Ë¥ê¥ó¥¯¤µ¤ì¤ë¡£
¥¹¥¯¥ê¥×¥È¡§
Code:
construction_script
{
spawn
{
wait 200
constructible_class 2
trigger self startup
}
buildstart final
{
}
built final
{
setstate construction_extra default
setstate construction_mg42 default
setstate construction_materials invisible
// Some kind of UI pop-up to alert players
wm_announce "Allied team has built the construction!"
}
decayed final
{
trigger self startup
}
death
{
trigger self startup
// Some kind of UI pop-up to alert players
wm_announce "Axis team has destroyed the construction!"
}
trigger startup
{
setstate construction_extra invisible
setstate construction_mg42 invisible
setstate construction_materials default
repairmg42 construction_mg42
}
}
The code is an alternative way again of creating single staged constructions but
instead of duplicating the same commands over and over again in each of the dif
ferent functions. I use a single trigger function at the bottom of the routine w
hich does the same stuff.
(¡ªÌõÉÔÌÀÎÆ¡§¤³¤Î¥³¡¼¥É¤Ï¡¢°Û¤Ê¤ë¥Õ¥¡¥ó¥¯¥·¥ç¥ó¤´¤È¤Ë²¿Å٤ⲿÅÙ¤âƱ¤¸¥³¥Þ¥ó¥É¤ò
¤»¤º¤Ë°ìÃʳ¬·ú¤ʪ¤Î·ú¤¡¿Ç˲õ¤ò¹Ô¤Ê¤¦¤â¤Î¤Ç¤¹¡£»ä(À½ºî¼Ô)¤ÏƱ¤¸¤è¤¦¤Ê¥·¥ó¥°¥ë¥È
¥ê¥¬¥Õ¥¡¥ó¥¯¥·¥ç¥ó¤ò¥ë¡¼¥Á¥ó¤Î²¼¤ËÃÖ¤¤¤Æ¤¤¤Þ¤¹¡£)
Åê¹Æ¼Ô ikanatto : 06:45 PM
¥¥ã¥Ó¥Í¥Ã¥È¤Ë´Ø¤¹¤ë¼Áµ¿±þÅú¤ÎÏÂÌõ
ËÝÌõ¸µ¡§
http://www.splashdamage.com/forums/viewtopic.php?t=2751
http://dleblanc.dyndns.org/etdocs/cabinets.html
´Ê°×²óÉü¥¥ã¥Ó¥Í¥Ã¥È
(Ãí¡§¤³¤ì¤ÏËÜÅö¤Ë´Ê°×ÈǤǤ¹¡£¸«¤¿ÌܤÏÉáÄ̤Ǥ¹¤¬¡¢¥×¥ì¥¤¥ä¡¼¤Ï¥¥ã¥Ó¥Í¥Ã¥È¤òÄ̤ê¤Ì¤±¤é¤ì¤Þ¤¹¤·¡¢¥¥ã¥Ó¥Í¥Ã¥È¤Î¸«¤¿ÌܤâÊѲ½¤·¤Þ¤»¤ó¡£¾Ü¤·¤¯¤Ï¸å¼Ô¤Î¥ê¥ó¥¯¤ò¤¿¤É¤Ã¤Æ¤¤¤Ã¤Æ¤¯¤À¤µ¤¤¡£)
Ì䤤¡§¥¥ã¥Ó¥Í¥Ã¥ÈÃÖ¤¤¤¿¤ó¤À¤±¤É²óÉü¤·¤Æ¤¯¤ì¤Ê¤¤¤ó¤À¡£¤É¤¦¤¹¤ê¤ã¤¤¤¤¤ó¤À¡©
[BXtreme]¡§
¤Þ¤º¡¢misc_cabinet_health¤Îentity¤òºî¤ë¤Î¤µ¡£(¥â¥Ç¥ë¤ò¥¤¥ó¥Ý¡¼¥È¤·¤í¤Ã¤Æ¤³¤È¤Ç¤¹
¤Ê)
¤½¤¦¤·¤¿¤é¡¢¤½¤ì¤Ë°Ê²¼¤ò²Ã¤¨¤Æ¤¯¤ì¡§(Entity¤ÎÀßÄê¤Ç)
key: scriptname value: healthcabinet
key: targetname value: healthcabinet
¼¡¤Ë¤³¤Î¥¥ã¥Ó¥Í¥Ã¥È¤Î¤Þ¤ï¤ê¤Ë¡¢¥×¥ì¥¤¥ä¡¼¤¬¤³¤ÎÈϰϤËÆþ¤Ã¤¿¤é²óÉü¤µ¤»¤ë¤È¤¤¤¦¥È
¥ê¥¬¡¼¥Ö¥é¥·¤òºî¤Ã¤Æ¤¯¤ì¡£ºî¤Ã¤¿¤é¤½¤¤¤Ä¤Î̾Á°¤Ïtrigger_heal¤Ë¤Ç¤â¤·¤Æ¤ª¤¤¤Æ¤¯¤ì
¤ä¡£½ÐÍ褿¤é¤³¤ì¤Ë¼¡¤ÎÃͤòÀßÄꤷ¤Æ¤¯¤ì¡£
key: healtotal value: 400
key: healrate value: 3
key: target value: healthcabinet
key: scriptname value: hcab_trigger_heal
key: targetname value: hcab_trigger_heal
¤³¤ì¤Ç¤É¤¦¤è¡©
healtotal value¤Ï¤³¤Î¥¥ã¥Ó¥Í¥Ã¥È¤¬ÊÝ»ý¤·¤Æ¤¤¤ë¥Ø¥ë¥¹¥Ñ¥Ã¥¯¤Î¹ç·×²óÉüÎÌ¡¢healrat
e value¤Ï¥×¥ì¥¤¥ä¡¼¤¬ËèÉò¿¥Ø¥ë¥¹²óÉü¤¹¤ë¤«¤Ã¤Æ¤³¤È¤ò·è¤á¤Æ¤ë¤«¤é¡¢¼«Ê¬¤Î¹¥¤¤Ê
¤è¤¦¤ËÀßÄꤷ¤Æ¤¯¤ì¤è¤Ê¡£
¥¢¥â¥¥ã¥Ó¥Í¥Ã¥È¤â¼ê½ç¤Ï¤³¤ì¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¤µ¡£ÀßÄꤹ¤ë»þ¤Ë¥Ø¥ë¥¹¥¥ã¥Ó¥Í¥Ã¥È¤ÈÊÑ
¤ï¤ë¤Î¤Ï¡§
misc_cabinet_health = misc_cabinet_supply
trigger_heal = trigger_ammo
healtotal = ammototal
healrate = ammorate
¤³¤ó¤Ê¤È¤³¤í¤µ¡£
Ì䤤¡§¤ª¤ª¡¢³Î¤«¤Ë²óÉü¤·¤Æ¤¯¤ì¤¿¤¼¡£ŽÀŽÞŽÝŽ¹BXtreme¡ª¤À¤±¤É¡¢¾ÃÈñÎ̤˱þ¤¸¤Æ¥¥ã¥Ó¥Í
¥Ã¥È¤Î¸«¤¿Ìܤ¬ÊѤï¤é¤Ê¤¤¤ó¤À¤±¤É¤É¤¦¤·¤¿¤é¤¤¤¤¤è¡©
¾¤Î¿Í¡§¤¢¤¢¡¢¤½¤ê¤ã¤½¤¦¤À¡£¤Ê¤ó¤»¤³¤ì¤Ï¤¿¤Àñ¤Ë¥¥ã¥Ó¥Í¥Ã¥È¤Î¤Þ¤ï¤ê¤Ë¼«Æ°Åª¤Ë²ó
Éü¤¹¤ë¥¨¥ê¥¢¤òºî¤Ã¤¿¤À¤±¤À¤«¤é¤Ê¡£
¤â¤·¡¢¸«¤¿ÌܤâÊѲ½¤µ¤»¤¿¤¤¤È¤Ê¤ë¤È¤Á¤ç¤Ã¤ÈÌÌÅݤÀ¤¼¡£¾Ü¤·¤¯¤Ïhttp://dleblanc.dynd
ns.org/etdocs/cabinets.html¤ò¸«¤Æ¤¯¤ì¤è¤Ê¡£
// [ikanatto] ¤½¤Ã¤Á¤Ï¤Þ¤ÀÏÂÌõ¤·¤Æ¤Þ¤»¤ó¡£
Åê¹Æ¼Ô ikanatto : 06:43 PM
W:ET¥½¡¼¥¹¥³¡¼¥ÉϯÆɲñ¡¡Ê䣱
Reading the Source Code of W:ET Appendix #1
Èô¹Ôµ¡¤Ï¤É¤³¤Ø¹Ô¤¯
ET¤Ï»°¼¡¸µ¶õ´Ö¤Ç¿¿Í¿ô¤¬Æþ¤êÍð¤ì¤ë¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥à¤Ç¤¹¡£¤³¤ì¤ò¼Â¸½¤¹¤ë¥³¡¼¥É¤Ë¤ÏÅöÁ³¤Ç¤¹¤¬3¼¡¸µ¶õ´Ö¤Î½èÍý¡¢ÄÌ¿®¡¢ÉÁ²è¡¢¤½¤Î¾ÍÍ¡¹¤Ê¤â¤Î¤¬É¬Íפˤʤê¤Þ¤¹¡£
»°¼¡¸µ¶õ´Ö¤Ë¤Ï¹â¤µ¡¢Éý¡¢¤½¤·¤Æ±ü¹Ô¤¤¬¤¢¤ê¤Þ¤¹¤è¤Í¡£¤³¤Î»°¤Ä¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¶õ´Ö¾å¤Î°ÌÃÖ¤ò·è¤á¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¿ô³ØŪ¤Ë¤Ï¡¢»°¼¡¸µÄ¾¸òºÂɸ·Ï¤Ç1ÅÀ¤Î°ÌÃÖ¤ò°ì°Õ¤Ë·è¤á¤ëɬÍ×½½Ê¬¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤¿¤È¤¤¤¨¤Þ¤¹¡£
»°¼¡¸µ¶õ´Ö¤ËÈô¹Ôµ¡¤¬Èô¤ó¤Ç¤¤¤¿¤È¤·¤Þ¤¹¡£Àè½Ò¤·¤¿¤È¤ª¤ê¡¢Èô¹Ôµ¡¤¬¤É¤³¤òÈô¤ó¤Ç¤¤¤ë¤È¤¤¤¦¡Ö°ÌÃ֡פÏ3¤Ä¤Î¾ðÊ󤫤é·èÄê¤Ç¤¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢¤É¤Á¤é¤Ë¸þ¤«¤Ã¤Æ¡¢¤Þ¤Ç¤Ï¤ï¤«¤ê¤Þ¤»¤ó¡£¤Ê¤¼¤Ê¤é¡¢Èô¹Ôµ¡¤Ï¸¶Â§Åª¤ËƬ¤Î¸þ¤¯Êý¸þ¤Ø¿Ê¤à¾è¤êʪ¤Ê¤Î¤Ç¡¢¡Ö¸þ¤¡×¤Ë´Ø¤¹¤ë¾ðÊ󤬤ʤÈÆ°¤¯Êý¸þ¤òȽÃǤǤ¤Ê¤¤¤«¤é¤Ç¤¹¡£
¡Ö¸þ¤¡×¤Ë´Ø¤¹¤ë¾ðÊó¤Þ¤Ç´Þ¤á¤¿ÊªÍý¤Ï¹â¹»¤Ç¤Ï°·¤ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£¤·¤«¤·¡¢À¤¤ÎÃæ¤Î¤¢¤Á¤³¤Á¤Ë¤¢¤ë¡Ö¤â¤Î¡×¤Ï¡¢¤¢¤ëÂ礤µ¤ò»ý¤Ã¤Æ¤ª¤ê¡¢¹â¹»ÊªÍý¤ä¿ô³Ø¤Ç°·¤¦¡ÖÅÀ¡×¤È¤Ï°ã¤¤¤Þ¤¹¡£¤½¤·¤Æ¡Ö¤â¤Î¡×¤Ë¤Ï·Á¤¬¤¢¤ê¡¢¸þ¤¤Ë¤è¤Ã¤Æ¿§¡¹ÊªÀ¤¬ÊѲ½¤¹¤ë¤â¤Î¤Ç¤¹¡£
¤À¤«¤é¤È¤¤¤Ã¤Æ¤ß¤Ê¤µ¤ó¤ËʪÍý¤òÊÙ¶¯¤·¤Æ¤¤Æ¤¯¤À¤µ¤¤¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¡Ö¸þ¤¡×¤âÂç»ö¤Ê¶õ´Ö¾ðÊó¤Ç¤¢¤ë¤³¤È¤òǧ¼±¤·¤Æ¤â¤é¤¨¤ì¤Ð·ë¹½¤Ç¤¹¡£ÅƳѡ¢¥×¥ì¥¤¥ä¡¼¤Î¸þ¤¤¬Éð´ï¤ÎÁÀ¤¤¤½¤Î¤â¤Î¤ËÁêÅö¤¹¤ëFPS¥²¡¼¥à¤Ç¤Ï¾°¹¹¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£
¸þ¤¤òɽ¸½¤¹¤ë
¤³¤³¤«¤éËÜÂê¤ËÆþ¤ê¤Þ¤¹¡£
»°¼¡¸µ¶õ´Ö¾å¤Ç¡¢¤¢¤ë·Á¤ÈÂ礤µ¤ò»ý¤Ã¤¿¤â¤Î¤Î¸þ¤¤ò°ì°Õ¤Ë»ØÄꤷ¤¿¤¤»þ¡¢¤¤¤¯¤Ä¤Î¾ðÊó¤¬É¬Íפˤʤë¤Ç¤·¤ç¤¦¤«¡£¤È¤ê¤¢¤¨¤º¡¢¼«Ê¬¼«¿È¤Ç³Î¤«¤á¤Æ¤ß¤ë¤Î¤¬°ìÈֳμ¤Ǥ·¤ç¤¦¡£
¾å²¼¤Ë¤Ë¼ó¤òÆ°¤«¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£¤¢¤Ê¤¿¤Î¤¢¤¿¤Þ¤Î°ÌÃ֤ϤۤȤó¤ÉÆ°¤«¤º»ëÌî(¸«¤¨¤ëÈÏ°Ï)¤¬º¸±¦¤ËÂ礤¯ÊѤï¤ê¤Þ¤·¤¿¤è¤Í¡£¤³¤ì¤¬¡Ö¸þ¤¡×¤ÎÂç»ö¤µ¤òÂ轤·¤Æ¤¤¤Þ¤¹¡£¤½¤·¤Æ¼ó¤òº¸±¦¤Ë¿¶¤Ã¤Æ¤âƱ¤¸¤¯¸«¤¨¤ëÈϰϤ¬ÊѤï¤ë¤«¤È»×¤¤¤Þ¤¹¡£
³¤¤¤Æ¤¢¤¿¤Þ¤òº¸±¦¤Ë·¹¤±¤Æ¤¯¤À¤µ¤¤¡£¸«¤¨¤ëÈϰϤÏÊѤï¤ê¤Þ¤»¤ó¤¬¡¢¿åÊ¿°ÌÃ֤λþ¤è¤ê¤â·Ê¿§¤¬·¹¤¤¤Æ¸«¤¨¤Þ¤¹¤è¤Í¡£ÅöÁ³¤Ç¤¹¤è¤Í¡£
¤µ¤¢¡¢¤³¤ì¤ÇʪÂΤÎÊý¸þ¤ò·è¤á¤ë3Í×ÁǤò¤¹¤Ù¤Æ¸«¤Æ¤¤Þ¤·¤¿¡£
¾å²¼¡¢º¸±¦¡¢¤½¤·¤Æ²óž¡£¤³¤ì¤¬»°¼¡¸µ¶õ´Ö¾å¤ÎʪÂΤÎÊý¸þ¤ò·è¤á¤ëÁ´Í×ÁǤǤ¹¡£¤è¤ê°ìÈÌŪ¤Ë¤Ï¡¢»ÑÀª³Ñ¤È¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤·¤Æ¾å²¼º¸±¦²óž¤Î³ÑÅ٤ϡ¢¤½¤ì¤¾¤ì¥Ô¥Ã¥Á¡¢¥è¡¼¡¢¥í¡¼¥ë¤È¸Æ¤Ð¤ì¤Þ¤¹¡£¥í¥Ü¥Ã¥È¤äÈô¹Ôµ¡¤¬¹¥¤¤Ê¿Í¤ÏÃΤäƤ¤¤¿¤«¤â¤·¤ì¤Þ¤»¤ó¤Í¡£
¿ô³ØŪ¤Êɽ¸½¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ºÇ½é¤Ë¡¢¤Þ¤Ã¤¹¤°¤ò¸þ¤¤¤Æ¤¤¤ë¾õÂ֤λëÀþÊý¸þ¤òx¼´¡¢¿âľ±¦Êý¸þ¤òy¼´¡¢¾åÊý¸þ¤òz¼´¤È¤·¤¿Ä¾¸òºÂɸ·Ï¤òÀßÄꤷ¤Þ¤¹¡£¤¹¤ë¤È¡¢¤³¤ÎºÂɸ·Ï¤òz¼´Ãæ¿´¤Ë²óž¤¹¤ëÁàºî¤¬¼ó¤òº¸±¦¤Ë¿¶¤ë¤³¤È¤ËÁêÅö¤·¤Þ¤¹¡£¤³¤Î¤È¤¤Î³ÑÅÙ¤¬¥è¡¼¤Ç¤¹¡£Æ±ÍͤËy¼´Ãæ¿´¤Ç¤Ï¥Ô¥Ã¥Á¡¢x¼´Ãæ¿´¤Ê¤é¥í¡¼¥ë¤Ç¤¹¡£
¼ÂÎã
»ä¤è¤ê¤â¾Ü¤·¤¯Åª³Î¤Ë²òÀ⤷¤Æ¤¯¤ì¤Æ¤¤¤ë¤È¤³¤í¤¬¤¢¤ë¤Î¤Ç¤½¤Á¤é¤ò¾Ò²ð¤·¤Þ¤¹¡£
http://www.geocities.jp/gthu1df564/FreeR.html¡¡ºÇ½é¤ÎÉôʬ¤Ë»ÑÀª³Ñ(¥ª¥¤¥é¡¼³Ñ)¤Ë´Ø¤¹¤ëÀâÌÀ¤¬¤¢¤ê¤Þ¤¹¡£
¥Þ¥¤¥¯¥í¥½¥Õ¥ÈMSDN¥é¥¤¥Ö¥é¥ê¡¡¤µ¤¹¤¬OSºî¤Ã¤Æ¤¤¤ë¤È¤³¤í¤Ç¤¹¤Í¡£²òÀ⤫¤é¼ÂÎã¤Þ¤Ç¸«»ö¤Ç¤¹¡£¥µ¥ó¥×¥ë¥³¡¼¥É¤â¤¢¤ê¤Þ¤¹¡£
¶õ´Ö¥Ù¥¯¥È¥ë¤ÈÊ£ÁÇ¿ô¤Ë´Ø¤¹¤ë¤É¤Ã¤«¤ÎÂç³Ø¶µ¼ø¤Îʸ¾Ï¡¡¤â¤Ã¤È¾Ü¤·¤¯ÃΤꤿ¤¤¿Í¤Ï¤³¤Á¤é¤Ø¡£¤³¤Á¤é¤Ï»ä¤ÎǾ¤ß¤½¥ì¥Ù¥ë¤òĶ¤¨¤Æ¤¤¤ë¤¿¤á¥µ¥Ý¡¼¥ÈÂоݳ°¤È¤Ê¤ê¤Þ¤¹¡£
Åê¹Æ¼Ô ikanatto : 06:36 PM | ¥³¥á¥ó¥È (1076)
W:ET¥½¡¼¥¹¥³¡¼¥ÉϯÆɲñ¡¡Âè¸Þ²ó
Reading the Source Code of W:ET #5
º£²ó¤ÎÌÜɸ
Éð´ï¸ÄÊ̤ι¶·âȽÄê¤òÁ°²óÁ°¡¹²ó¤È¸«¤Þ¤·¤¿¡£º£²ó¤Ï¤½¤ó¤ÊÉð´ï¤Ë¤è¤Ã¤Æ½ý¤Ä¤¤¤¿ÂΤòÌþ¤·¤Æ¤¯¤ì¤ë¥Ø¥ë¥¹¥Ñ¥Ã¥¯¤Ë¤Ä¤¤¤Æ¤ß¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£¤Á¤Ê¤ß¤Ë¥½¡¼¥¹¥³¡¼¥ÉŪ¤Ë¤Ï¤³¤Î¥Ø¥ë¥¹¥Ñ¥Ã¥¯¤â°·¤¤Ê¬Îà¤È¤·¤Æ¤Ï¡ÖÉð´ï¡×¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢¥Þ¥·¥ó¥¬¥ó¹½¤¨¤Æ¤¤¤ë¤Î¤â¥Ø¥ë¥¹¥Ñ¥Ã¥¯Êú¤¨¤Æ¤¤¤ë¤Î¤âŨÂй԰٤Ȥߤʤµ¤ì¤Þ¤¹¡£¤ß¤Ê¤µ¤ó¡¢Àï¾ì¤Çµß¸îÈɤˤʤäƤâŨ¤Ï¤¢¤Ê¤¿¤òÁÀ¤Ã¤Æ¤¤Þ¤¹¡£Ãí°Õ¤·¤Þ¤·¤ç¤¦¡£
¥Ø¥ë¥¹¥Ñ¥Ã¥¯¤ò½Ð¤¹
g_weapon.c¤Î184¹Ô°Ê¹ß¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£¥á¥Ç¥£¥Ã¥¯¤¬¥Ø¥ë¥¹¥Ñ¥Ã¥¯¤ò½Ð¤¹½èÍý¤Ë¤Ä¤¤¤Æ¤Î¥³¡¼¥É¤¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£Áᮥ³¡¼¥É¤ò¸«¤Þ¤·¤ç¤¦¡£
void Weapon_Medic( gentity_t *ent ) { gitem_t *item; gentity_t *ent2; vec3_t velocity, offset; vec3_t angles,mins,maxs; vec3_t tosspos, viewpos; trace_t tr;
¤³¤³¤Ï¤¤¤Ä¤âÄ̤ê¤ÎÀë¸À¤È½é´ü²½Éôʬ¤Ç¤¹¤Í¡£¸«´·¤ì¤Ê¤¤¹½Â¤ÂΤˡ¢gitem_t¤È¤¤¤¦¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£ÄêµÁ¤ò¸«¤Æ¤ß¤Þ¤·¤ç¤¦¤«¡£
typedef struct gitem_s { char *classname; // spawning name char *pickup_sound; char *world_model[MAX_ITEM_MODELS]; (¾Êά) int giClipIndex; // which clip this weapon uses. this allows the sniper rifle to use the same clip as the garand, etc. char *precaches; // string of all models and images this item will use char *sounds; // string of all sounds this item will use } gitem_t;
¤É¤¦¤ä¤é¥¢¥¤¥Æ¥à¤Ë´Ø¤¹¤ë¥×¥í¥Ñ¥Æ¥£¤ò´Þ¤à¹½Â¤ÂΤΤ褦¤Ç¤¹¤Í¡£¶ñÂÎŪ¤Ë¤Ï¥¯¥é¥¹Ì¾¡¢É½¼¨¥â¥Ç¥ë¥Ç¡¼¥¿¡¢½¦¤Ã¤¿»þ¤Î²»¤Ê¤É¤Ç¤·¤ç¤¦¤«¡£
ËÜʸ¤Î³¤¤ò¸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
if (level.time - ent->client->ps.classWeaponTime > level.medicChargeTime[ent->client->sess.sessionTeam-1]) { ent->client->ps.classWeaponTime = level.time - level.medicChargeTime[ent->client->sess.sessionTeam-1]; } if( ent->client->sess.skill[SK_FIRST_AID] >= 2 ) { ent->client->ps.classWeaponTime += level.medicChargeTime[ent->client->sess.sessionTeam-1]*0.15; } else { ent->client->ps.classWeaponTime += level.medicChargeTime[ent->client->sess.sessionTeam-1]*0.25; }
Æó¤Ä¤Îif¹½Ê¸¤¬¤¢¤ê¤Þ¤¹¡£ºÇ½é¤Î¾ò·ïÀá¤Ï¡¢¥¯¥é¥¹¤´¤È¤Î¥Á¥ã¡¼¥¸¤¬Ëþ¥¿¥ó°Ê¾å¤Ë¤Ê¤Ã¤Æ¤¤¤¿¾ì¹ç¡¢¥Á¥ã¡¼¥¸¤ò¤Á¤ç¤¦¤ÉËþ¥¿¥ó¤ËÀßÄꤷ¤Ê¤ª¤·¤Æ¤¤¤Þ¤¹¡£¼¡¤Î¾ò·ïÀá¤Ç¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤Î¥á¥Ç¥£¥Ã¥¯¥¹¥¥ë¤¬2°Ê¾å¤Î¾ì¹ç¤Ë¥Á¥ã¡¼¥¸¾ÃÈñÎ̤ò15¡ó¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð25¡ó¤ËÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£
item = BG_FindItemForClassName("item_health"); VectorCopy( ent->client->ps.viewangles, angles ); if ( angles[PITCH] < -30 ) { angles[PITCH] = -30; } else if ( angles[PITCH] > 30 ) { angles[PITCH] = 30; }
ºÇ½é¤Î¹Ô¤Ç¡¢item¤Ë¤Ïitem_health¤ò¥¯¥é¥¹¥Í¡¼¥à¤È¤¹¤ë¥¢¥¤¥Æ¥à¤Î¥Ç¡¼¥¿¤¬ÂåÆþ¤µ¤ì¤Þ¤·¤¿¡£¼¡¤Î¹Ô¤Ë¤Æangles¤Ë¥×¥ì¥¤¥ä¡¼¤Î»ÑÀª³Ñ¤¬¥³¥Ô¡¼¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¸å¤Îif¥Ö¥í¥Ã¥¯¤Ç¤Ï¡¢¥×¥ì¥¤¥ä¡¼»ëÌî³Ñ¤Î¥Ô¥Ã¥Á¡¢¤Ä¤Þ¤ê¾å²¼Êý¸þ¤Î³ÑÅÙ¤ò¤ß¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤¬¡Þ30Åٰʾå¤Î¾ì¹ç¡¢30Å٤⤷¤¯¤Ï-30ÅÙ¤ËÀßÄꤷ¤Ê¤ª¤·¤Þ¤¹¡£
AngleVectors( angles, velocity, NULL, NULL ); VectorScale( velocity, 64, offset); offset[2] += ent->client->ps.viewheight/2; VectorScale( velocity, 75, velocity ); velocity[2] += 50 + crandom() * 25;
¤³¤³¤Ç¤Ï¡¢¼ÂºÝ¤Ë¥Ø¥ë¥¹¥Ñ¥Ã¥¯¤ò¡Öȯ¼Í¡×¤¹¤ë®ÅÙ¤ä¸þ¤¤òÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£angles¤ÎÊý¸þ¤ËÂ礤µ64¤Î¥Ù¥¯¥È¥ë¤¬offset¤ËÂåÆþ¤µ¤ì¡¢¹â¤µÊý¸þ¤Ë¥×¥ì¥¤¥ä¡¼¤Î»ëÅÀ¤Î¹â¤µ¤ÎȾʬ¤¬²Ã»»¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¥Ø¥ë¥¹¥Ñ¥Ã¥¯¤Îȯ¼Í®ÅÙ¤Ïangles¤ÎÊý¸þ¤Ë75¤Î®¤µ¤È¾åÊý¸þ¤Ë50¡Á75¤¬¥×¥é¥¹¤µ¤ì¤¿¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¸«¤Æ¤¤¤ëÊý¸þ¤Ë¤Þ¤Ã¤¹¤°½Ð¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¾¯¤·É⤵¤Ì£¤Ëȯ¼Í¤µ¤ì¤Þ¤¹¡£»ä¤¿¤Á¤¬¼ÂºÝ¥²¡¼¥àÃæ¤Ç¸«¤ë¤Î¤ÈƱ¤¸¾õÂ֤Ǥ¹¤Í¡£
VectorCopy( muzzleEffect, tosspos ); VectorMA( tosspos, 48, forward, tosspos ); VectorCopy( ent->client->ps.origin, viewpos ); VectorSet( mins, -(ITEM_RADIUS + 8), -(ITEM_RADIUS+8), 0 ); VectorSet( maxs, (ITEM_RADIUS + 8), (ITEM_RADIUS+8), 2*(ITEM_RADIUS+8) );
¤³¤³¤Ç¤Ï¥Ø¥ë¥¹¥Ñ¥Ã¥¯¤¬ÂǤÁ½Ð¤µ¤ì¤ë¾ì½ê¤È¥Ø¥ë¥¹¥Ñ¥Ã¥¯¤ÎÂ礤µ¤òÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£
trap_EngineerTrace( &tr, viewpos, mins, maxs, tosspos, ent->s.number, MASK_MISSILESHOT ); if( tr.startsolid ) { VectorCopy( forward, viewpos ); VectorNormalizeFast( viewpos ); VectorMA( ent->r.currentOrigin, -24.f, viewpos, viewpos ); trap_EngineerTrace(&tr, viewpos, mins, maxs, tosspos, ent->s.number, MASK_MISSILESHOT); VectorCopy( tr.endpos, tosspos ); } else if( tr.fraction < 1 ) { // oops, bad launch spot VectorCopy( tr.endpos, tosspos ); SnapVectorTowards( tosspos, viewpos ); }
¤³¤Á¤é¤Ï¼Í½Ð¤¹¤ëºÇ½ª½àÈ÷¤Ç¤¹¡£¤â¤·¡¢¥Ø¥ë¥¹¥Ñ¥Ã¥¯È¯À¸°ÌÃÖ¤¬ÊɤÎÃæ¤Î¾ì¹ç¡¢¥×¥ì¥¤¥ä¡¼¤Î¾¯¤·¸å¤í¤Ë¼Í½Ð°ÌÃÖ¤òÊѹ¹¤·¤Æ¤¤¤Þ¤¹¡£
ent2 = LaunchItem( item, tosspos, velocity, ent->s.number ); ent2->think = MagicSink; ent2->nextthink = level.time + 30000; ent2->parent = ent; // JPW NERVE so we can score properly later }
ºÇ¸å¤Ë¡¢¼ÂºÝ¤Ë¥¢¥¤¥Æ¥à¤ò¼Í½Ð¤¹¤ë´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¡¢ent2¤Ë¥¢¥¤¥Æ¥à¤òÅÐÏ¿¤·¤Æ¤¤¤Þ¤¹¡£¼Í½Ð¤µ¤ì¤Æ¤«¤é30000¥ß¥êÉø塢¤Ä¤Þ¤ê30Éøå¤ËMagicSink´Ø¿ô¤¬¸Æ¤Ð¤ì¤Æ¤³¤Î¥¢¥¤¥Æ¥à¤ÏÄÀ¤ó¤Ç¾Ã¤¨¤ëÀßÄê¤ò¤·¡¢¤³¤Î´Ø¿ô¤ÏÁ´¤Æ¤Î½èÍý¤ò½ª¤¨¤Þ¤¹¡£
¥Ø¥ë¥¹¥Ñ¥Ã¥¯¤ò½¦¤Ã¤¿¤é
¤µ¤Æº£Å٤ϥإ륹¥Ñ¥Ã¥¯¤ò½¦¤Ã¤¿¾ì¹ç¤Ë¤Ä¤¤¤Æ¤ß¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£g_items.c¤Î645¹Ô°Ê¹ß¤ò¤ß¤Æ¤¯¤À¤µ¤¤¡£
int Pickup_Health (gentity_t *ent, gentity_t *other) { int max; int quantity = 0; if( other->client->ps.stats[STAT_PLAYER_CLASS] != PC_MEDIC ) { if( ent->parent && ent->parent->client && other->client->sess.sessionTeam == ent->parent->client->sess.sessionTeam ) { if (!(ent->parent->client->PCSpecialPickedUpCount % MEDIC_SPECIAL_PICKUP_MOD)) { AddScore(ent->parent, WOLF_HEALTH_UP); G_LogPrintf("Health_Pack: %d %d\n", ent->parent - g_entities, other - g_entities); } G_AddSkillPoints( ent->parent, SK_FIRST_AID, 1.f ); G_DebugAddSkillPoints( ent->parent, SK_FIRST_AID, 1.f, "health pack picked up" ); ent->parent->client->PCSpecialPickedUpCount++; } }
ºÇ½é¤ÎÀë¸À¤È½é´ü²½¤Î¤¢¤È¤Ë¿½Åif¤¬¤¢¤ê¤Þ¤¹¡£ºÇ½é¤Î¾ò·ï¤Ï¡¢½¦¤ª¤¦¤È¤·¤Æ¤¤¤ë¿Í¤¬¥á¥Ç¥£¥Ã¥¯°Ê³°¤«¤É¤¦¤«¡¢¼¡¤Ë¥Ñ¥Ã¥¯¤ò½Ð¤·¤¿¤â¤Î¤¬Â¸ºß¤·¡¢¤«¤Ä¥×¥ì¥¤¥ä¡¼¤Ç¡¢¤·¤«¤â¥Ñ¥Ã¥¯¤ò½Ð¤·¤¿¿Í¤È½¦¤ª¤¦¤È¤·¤Æ¤¤¤ë¿Í¤Î¥Á¡¼¥à¤¬Æ±¤¸¤«¤É¤¦¤«¤ò¤ß¤Æ¤¤¤Þ¤¹¡£¤µ¤é¤Ë¼¡¤Îif¤Ç¥Ñ¥Ã¥¯¤ò½¦¤Ã¤¿²ó¿ô¤¬4¤ÎÇÜ¿ô¤«¤É¤¦¤«¤ò¤ß¤Æ¤ª¤ê¡¢¤½¤¦¤Ê¤é¤Ð½Ð¤·¤¿¿Í¤Ë¥¹¥³¥¢¤òÍ¿¤¨¤½¤Î»Ý¥í¥°¤Ë½ÐÎϤ·¤Þ¤¹¡£¤½¤·¤Æ¥Ñ¥Ã¥¯¤ò½Ð¤·¤¿¿Í¤Ë¥á¥Ç¥£¥Ã¥¯¤ÎXP¤ò1Í¿¤¨¤Æ¡¢¥¢¥¤¥Æ¥à¤ò½¦¤Ã¤¿²ó¿ô¤ò1Áý¤ä¤·¤Þ¤¹¡£
max = other->client->ps.stats[STAT_MAX_HEALTH]; if( other->client->sess.playerType == PC_MEDIC ) { max *= 1.12f; } other->health += ent->item->quantity; if (other->health > max ) { other->health = max; } other->client->ps.stats[STAT_HEALTH] = other->health; return -1; }
¤³¤³¤ÎÉôʬ¤Ç½¦¤Ã¤¿¿Í¤ÎÂÎÎϤò²óÉü¤µ¤»¤Æ¤¤¤Þ¤¹¡£¤Þ¤º¤Ïmax¤Øµ¬Äê¤ÎºÇÂçÂÎÎϤòÂåÆþ¤·¤Æ¤¤¤Þ¤¹¡£¥á¥Ç¥£¥Ã¥¯¤Ê¤é¤³¤ì¤ò1.12Çܤ·¤Þ¤¹¡£¤â¤·²óÉü¤·¤¿ÂÎÎϤ¬ºÇÂçÃͤòĶ¤¨¤¿¾ì¹ç¡¢¤³¤ì¤òºÇÂçÃͤغÆÀßÄꤷ¤Þ¤¹¡£
ºÇ¸å¤Ë
º£²ó¤ÏÉð´ï¤Ç¤Ï¤Ê¤¯¡¢¥Ø¥ë¥¹¥Ñ¥Ã¥¯¤È¤¤¤¦¥¢¥¤¥Æ¥à¤ò½Ð¤¹½èÍý¤È½¦¤Ã¤¿»þ¤Î½èÍý¤Ë¤Ä¤¤¤Æ¸«¤Þ¤·¤¿¡£¤³¤³¤Ç¼è¤ê¾å¤²¤¿°Ê³°¤Ë¤â¡¢Íî¤Á¤Æ¤¤¤ë¥Ñ¥Ã¥¯¤ò½¦¤¦½èÍý¡¢¥Ñ¥Ã¥¯¤ò½Ð¤¹¤Î¤Ë¥Á¥ã¡¼¥¸¤¬Â¤ê¤Æ¤¤¤ë¤«¤òȽÃǤ¹¤ë½èÍý¡¢½¦¤Ã¤¿¥Ñ¥Ã¥¯¤ò¾Ã¤¹½èÍý¤Ê¤É¿§¡¹¤¢¤ê¤Þ¤¹¡£À§È󤽤¦¤¤¤Ã¤¿Éôʬ¤â¥Á¥§¥Ã¥¯¤·¤Æ¤ß¤ë¤³¤È¤ò¤ª¤¹¤¹¤á¤·¤Þ¤¹¡£
Åê¹Æ¼Ô ikanatto : 06:32 PM | ¥³¥á¥ó¥È (18)
W:ET¥½¡¼¥¹¥³¡¼¥ÉϯÆɲñ¡¡Âè»Í²ó
Á°²ó¤Î¤ª¤µ¤é¤¤¤Èº£²ó¤Î¤Í¤é¤¤
Âè»°²ó¤Ç¤Ï¶ñÂÎŪ¤Ë¡¢¥²¡¼¥àÃæ¤Ç¤ÎÃÆ´ÝÅö¤¿¤êȽÄê¤Ë¤Ä¤¤¤Æ¤Î½èÍý¤ò¸«¤Þ¤·¤¿¡£¤³¤ì¤Ï¥µ¡¼¥Ð¡¼¥µ¥¤¥É¤Î¥³¡¼¥É¤Ç¤·¤¿¤Í¡£¤½¤Î¤¿¤á¼ÂºÝ¤ËÃƤòȯ¼Í¤·¤¿»þ¤Ë½Æ¸ý¤Ë±ì¤ò½Ð¤·¤¿¤ê¡¢Ãƴݤε°Àס¢ÃåÃÆÅÀ¤Î¥¨¥Õ¥§¥¯¥È¤Ê¤É¡¢¥Ó¥¸¥å¥¢¥ëŪ¤Ê½èÍý¤Ï¤³¤³¤Ç¹Ô¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£
º£²ó¤ÏºÆ¤ÓÉð´ï¤Î°ì¤Ä¤È¤·¤Æ¡¢¥Ê¥¤¥Õ¤Î½èÍý¤ò¸«¤Æ¤¤¤³¤¦¤«¤È»×¤¤¤Þ¤¹¡£¥Ê¥¤¥Õ¤ÏÁÇŨ¤ÊÉð´ï¤Ç¤¹¡£Çظ夫¤éǦ¤Ó´ó¤ë¤³¤È¤¬½ÐÍè¤ì¤Ð¡¢ÃÆÌô¤Î¾ÃÈñ̵¤·¤ËÁê¼ê¤òÅݤ»¤Þ¤¹¡£²¿¤è¤ê¡¢Áê¼ê¤âÅݤµ¤ì¤ë¤È¤Ê¤¼¤«³Ú¤·¤¤Éð´ï¤Ç¤¹¡£¥Ù¥¯¥È¥ë±é»»¤¬·ë¹½Â¿¤¤¤Î¤Ç¡¢¿ô³Ø¤Î»²¹Í½ñ¤¬¤¢¤ë¤È¤¤¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¤Í¡£
¥Ê¥¤¥Õ¤Ç»É¤¹
Áᮥ³¡¼¥É¤ò¸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£g_weapon.c¤Î85¹Ô°Ê¹ß¤¢¤¿¤ê¤¬¥Ê¥¤¥Õ¤ËÁêÅö¤·¤Þ¤¹¡£
#define KNIFE_DIST 48
¤µ¤Æ¡¢ËÁƬ¤ËÄê¿ôÄêµÁ¤¬¤µ¤ì¤Æ¤¤¤Þ¤¹¡£»úÌ̤«¤é¡¢¥Ê¥¤¥Õ¤Î¼ÍÄøµ÷Î¥¤òɽ¤¹¤â¤Î¤ÈͽÁۤǤ¤Þ¤¹¡£48¥¤¥ó¥Á¡¢¤Ä¤Þ¤ê1¥á¡¼¥È¥ë¤¯¤é¤¤¤¬Í¸úÈϰϤȤ¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¤Á¤Ê¤ß¤Ë¤³¤ì¤ò10000¤¯¤é¤¤¤ËÊѹ¹¤¹¤ë¤È¡¢¤«¤Ê¤êÎ¥¤ì¤¿Áê¼ê¤Ë¤â¸«¤¨¤Æ¤¤¤ë¸Â¤ê³Î¼Â¡¦Â¨ºÂ¤Ë¥Ò¥Ã¥È¤¹¤ë¶¯Îõ¤ÊÉð´ï¤Ë¤Ê¤ê¤Þ¤¹¡£¤â¤Á¤í¤ó¡¢Çظå¤ËÅö¤¿¤ì¤Ð¨»à¤Ç¤¹¡£
³¤¤¤Æ´Ø¿ô¤ò¸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
void Weapon_Knife( gentity_t *ent ) { trace_t tr; gentity_t *traceEnt, *tent; int damage, mod; vec3_t pforward, eforward; vec3_t end; mod = MOD_KNIFE;
¾¤Î´Ø¿ô¤ÈƱ¤¸¤Ç¤¹¤Í¡£ÊÑ¿ôÀë¸À¤È½é´üÀßÄê¤ò¤³¤³¤Ç¤·¤Æ¤¤¤Þ¤¹¡£
AngleVectors (ent->client->ps.viewangles, forward, right, up); CalcMuzzlePoint ( ent, ent->s.weapon, forward, right, up, muzzleTrace ); VectorMA (muzzleTrace, KNIFE_DIST, forward, end); trap_Trace (&tr, muzzleTrace, NULL, NULL, end, ent->s.number, MASK_SHOT);
ºÇ½é¤ÎAngleVectors¤«¤é¸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£¤³¤Î´Ø¿ô¤ÎÄêµÁÉôʬ¤Ï¡¢q_math.c¤Ë¤¢¤ê¤Þ¤¹¡£q_math.c¤Ï¾¤Ë¤â¿§¡¹¤Ê±é»»´Ø¿ô¤¬¤ÈÄêµÁ¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢°ìÄ̤긫¤Æ¤ª¤¯¤Èº£¸å¤ÎÍý²ò¤¬¥¹¥à¡¼¥º¤«¤È»×¤¤¤Þ¤¹¡£
void AngleVectors( const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up) { float angle; static float sr, sp, sy, cr, cp, cy; angle = angles[YAW] * (M_PI*2 / 360); sy = sin(angle); cy = cos(angle); (¾Êά) if (forward) { forward[0] = cp*cy; forward[1] = cp*sy; forward[2] = -sp; } (¾Êά) }
¤Þ¤µ¤Ë·×»»¤À¤±¤ò¤¹¤ë´Ø¿ô¤Ç¤¹¡£·ë²ÌŪ¤Ë¥×¥ì¥¤¥ä¡¼¤¬¸«¤Æ¤¤¤ëÊý¸þ¤Ë±þ¤¸¤¿ºÂɸ·Ï¼´¥Ù¥¯¥È¥ë¤òÊÖ¤·¤Þ¤¹¡£°Ê²¼¤Î²òÀâ¤ÏÆɤߤ¿¤¤¿Í¤À¤±¸Æ¤ó¤Ç¤¯¤À¤µ¤¤¡£°ú¿ô¤È¤·¤Æ¡¢³ÑÅ٤ȷë²Ì¤ò³ÊǼ¤¹¤ë¥Ù¥¯¥È¥ë¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£¤³¤Î´Ø¿ô¤Ï¡¢Í¿¤¨¤é¤ì¤¿³ÑÅÙ·Ï(¥è¡¼¡¦¥Ô¥Ã¥Á¡¦¥í¡¼¥ë¤Î»°À®Ê¬)¤«¤é¡¢Ä¾¸òºÂɸ·Ï(xyz)¤Îľ¹Ô´ðÄì¥Ù¥¯¥È¥ë¤ò·×»»¤·¡¢¤½¤ì¤¾¤ì¤Î´ðÄì¥Ù¥¯¥È¥ë¤òforward¡¢right¡¢up¤È¤·¤ÆÊÖ¤·¤Þ¤¹¡£¥Ô¥Ã¥Á¡¢¥è¡¼¡¢¥í¡¼¥ëÁ´¤Æ¤¬0¤Î¾ì¹ç¡¢foward¤Ï(1,0,0)¡¢right¤Ï(0,1,0)¡¢up¤Ï(0,0,1)¤È¤Ê¤Ã¤Æ¡¢É¸½à¤Îľ¸òºÂɸ·Ï¤Ë¤Ê¤ê¤Þ¤¹¡£¾Ü¤·¤¤³ÑÅ٤ȴðÄì¥Ù¥¯¥È¥ë¤ÎÊÑ´¹¤Ë¤Ä¤¤¤Æ¤Ï»²¹Í½ñ¤Ê¤É¤ò¤´Í÷¤¯¤À¤µ¤¤¡£
ÏäòËܶڤËÌᤷ¤Þ¤¹¡£·ë¶É¤³¤Î¹Ô¡§
AngleVectors (ent->client->ps.viewangles, forward, right, up);
¤Ë¤Ä¤¤¤Æ¤Ç¤¹¤¬¡¢³ÑÅٷϤȤ·¤Æent->client->ps.viewangles¤òÅϤ·¤Æ¤¤¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¥Ê¥¤¥Õ¤Ç¹¶·â¤·¤è¤¦¤È¤·¤¿¥×¥ì¥¤¥ä¡¼¤¬¸«¤Æ¤¤¤ëÊý¸þ³Ñ¤Ë¤è¤Ã¤Æ¡¢¤½¤ì¤¾¤ìforward¡¢right¡¢up¤Ë²óž¤·¤¿Ä¾¸òºÂɸ·Ï¤Î¼´¥Ù¥¯¥È¥ë¤òÂåÆþ¤·¤Þ¤¹¡£
³¤¤¤ÆCalcMuzzlePoint¤Ç¤¹¤¬¡¢¤³¤ì¤Ï¥×¥ì¥¤¥ä¡¼¤Î°ÌÃ֤ȸþ¤(Àè¤Û¤ÉÆÀ¤¿ºÂɸ·Ï)¤ÈÉð´ï¤Î¼ïÎà¤Ë±þ¤¸¡¢¹¶·âȽÄ꤬ȯÀ¸¤¹¤ë³«»ÏÅÀºÂɸ¤ò·×»»¤·¤Þ¤¹¡£¤³¤Î·ë²Ì¤¬muzzleTrace¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£
VectorMA´Ø¿ô¤¬¸å¤Ë³¤¤Þ¤¹¤¬¡¢MA¤ÏMutiply & Add¤Î¾Êά¤Ç¤¹¡£¤Ä¤Þ¤ê¤¢¤ë¥Ù¥¯¥È¥ë¤òÄê¿ôÇܤ·¤¿¤â¤Î¤ò¾¤Î¥Ù¥¯¥È¥ë¤Ë²Ã¤¨¤ë·×»»¤ò¤·¤Þ¤¹¡£¤³¤ì°Ê³°¤Ë¤â¥Ù¥¯¥È¥ë¤Î´ðËܱ黻¤¬q_math.c¤Ë¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤ÇÎóµó¤·¤Æ¤ª¤¤Þ¤¹¡£
#define DotProduct(x,y) ((x)[0]*(y)[0]+(x)[1]*(y)[1]+(x)[2]*(y)[2]) #define VectorSubtract(a,b,c) ((c)[0]=(a)[0]-(b)[0],(c)[1]=(a)[1]-(b)[1],(c)[2]=(a)[2]-(b)[2]) #define VectorAdd(a,b,c) ((c)[0]=(a)[0]+(b)[0],(c)[1]=(a)[1]+(b)[1],(c)[2]=(a)[2]+(b)[2]) #define VectorCopy(a,b) ((b)[0]=(a)[0],(b)[1]=(a)[1],(b)[2]=(a)[2]) #define VectorScale(v, s, o) ((o)[0]=(v)[0]*(s),(o)[1]=(v)[1]*(s),(o)[2]=(v)[2]*(s)) #define VectorMA(v, s, b, o) ((o)[0]=(v)[0]+(b)[0]*(s),(o)[1]=(v)[1]+(b)[1]*(s),(o)[2]=(v)[2]+(b)[2]*(s))
¤½¤ì¤¾¤ì¤Î°ÕÌ£¤Ï̾Á°¤ÈÄêµÁ¤ò¸«¤ë¤È¤ï¤«¤ë¤È»×¤¤¤Þ¤¹¡£DotProduct¤ÏÆâÀÑ¡¢VectorSubstract¤Ï°ú¤»»¡¢VectorAdd¤Ï¤·»»¡¢VectorCopy¤Ïñ¤ËÂåÆþ¡¢VectorScale¤ÏÄê¿ôÇܤǤ¹¡£
¤³¤Î·×»»¤Ë¤è¤Ã¤Æ¡¢end = muzzleTrace + KNIFE_DIST * forward¤¬ÂåÆþ¤µ¤ì¤Þ¤·¤¿¡£¤Ä¤Þ¤ê¡¢end¤Ï¹¶·âȽÄê¤Î½ªÃ¼ºÂɸ¤Ë¤Ê¤ê¤Þ¤¹¡£
¤½¤·¤Æ»Í¹ÔÌܤˤƼºݤËÅö¤¿¤êȽÄê¤ò¤·¤Æ¤¤¤Þ¤¹¡£Åö¤¿¤Ã¤¿¾ì¹ç¡¢tr¤Ë¤½¤ÎºÂɸ¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£
¼¡¤Ë¿Ê¤ß¤Þ¤·¤ç¤¦¡£
if ( tr.surfaceFlags & SURF_NOIMPACT ) return; // no contact if(tr.fraction == 1.0f) return;
¤³¤ÎÉôʬ¤ÏÅö¤¿¤êȽÄê¤Î·ë²Ì¤ò¸«¤Æ¡¢²¿¤Ë¤âÅö¤¿¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤³¤³¤Ç½ªÎ»¤¹¤ë½èÍý¤ò¤·¤Þ¤¹¡£
if(tr.entityNum >= MAX_CLIENTS) { // world brush or non-player entity (no blood) tent = G_TempEntity( tr.endpos, EV_MISSILE_MISS ); } else { // other player tent = G_TempEntity( tr.endpos, EV_MISSILE_HIT ); }
¤³¤³¤Ï¥Ê¥¤¥Õ¤ÎÅö¤¿¤Ã¤¿¤â¤Î¤¬¥×¥ì¥¤¥ä¡¼¤Ê¤Î¤«¤½¤ì°Ê³°¤Î¤â¤Î¤«¤òȽÃǤ·¤Æ¤¤¤Þ¤¹¡£
tent->s.otherEntityNum = tr.entityNum; tent->s.eventParm = DirToByte( tr.plane.normal ); tent->s.weapon = ent->s.weapon; tent->s.clientNum = ent->r.ownerNum; if(tr.entityNum == ENTITYNUM_WORLD) // don't worry about doing any damage return;
¤³¤ÎÉôʬ¤Ïtent¤ËÂФ·¤Æ¤ÎÂåÆþÁàºî¤¬Ãæ¿´¤Ç¤¹¡£2¹ÔÌܤËDirToByte¤È¤¤¤¦ÊѤʴؿô¤¬¤¢¤ê¤Þ¤¹¤Í¡£¤³¤ì¤Ï¡¢ÄÌ¿®¥Ç¡¼¥¿Î̺︺¤Î¤¿¤á¤Î¤â¤Î¤Ç¡¢162¤Î¤¢¤é¤«¤¸¤á·èÄꤵ¤ì¤Æ¤¤¤ëÂåɽŪ¤Ê¥Ù¥¯¥È¥ë¤Ë¤â¤Ã¤È¤â¶á¤¤¤â¤Î¤òõ¤·¡¢²¿ÈÖÌܤ¬ºÇŬ¤«¤òÌá¤êÃͤȤ·¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢3¤Ä¤Îfloat¤«¤é¤Ê¤ë¥Ù¥¯¥È¥ë¤ò1¤Ä¤Îchar¤Ë¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹(ÀºÌ©¤µ¤Ï·ç¤¤Þ¤¹¤¬)¡£
ºÇ¸å¤Îif¤Ï¡¢Åö¤¿¤Ã¤¿¤â¤Î¤¬WORLD¡¢¤Ä¤Þ¤ê¥Þ¥Ã¥×¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë¤«¤é²¿¤Ë¤â¥À¥á¡¼¥¸Í¿¤¨¤é¤ì¤Ê¤«¤Ã¤¿¤è¡¢¤È¤¤¤¦¤³¤È¤Ç¤³¤³¤Ç½èÍý¤ò½ª¤ï¤ê¤Þ¤¹¡£¼ÂºÝ¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¤Ï¥×¥ì¥¤¥ä¡¼¤Ç¤Ê¤¯¤È¤âÊɤʤɤËÅö¤¿¤ì¤Ð¥·¥ã¥¥·¥ã¥²»¤¬¤·¤Þ¤¹¤¬¡¢¥µ¡¼¥Ð¡¼Â¦¤Ç¤Ï¤³¤Î¤è¤¦¤Ê½èÍý¤Ï°ìÀÚ¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤¬¤³¤³¤Ç¤ï¤«¤ê¤Þ¤¹¤Í¡£
traceEnt = &g_entities[ tr.entityNum ]; if(!(traceEnt->takedamage)) return;
¤³¤³¤Ç¤ÏÅö¤¿¤Ã¤¿¤â¤Î¤¬¥À¥á¡¼¥¸¤ò¼õ¤±¤¦¤ë¤â¤Î¤«¤É¤¦¤«¤òȽÄꤷ¤Æ¤¤¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¤Ê¤é¤³¤³¤Ç½èÍý¤ò½ª¤ï¤ê¤Þ¤¹¡£
damage = G_GetWeaponDamage(ent->s.weapon); // JPW // default knife damage for frontal attacks if( ent->client->sess.playerType == PC_COVERTOPS ) damage *= 2; // Watch it - you could hurt someone with that thing!
̵»ö¥Ê¥¤¥Õ¤¬¥À¥á¡¼¥¸¤ò¼õ¤±¤¦¤ë¤â¤Î¤ËÅö¤¿¤Ã¤¿¤ÈȽÄꤵ¤ì¤ë¤È¡¢¤¤¤è¤¤¤è¥À¥á¡¼¥¸Î̤η׻»¤Ë¤Ê¤ê¤Þ¤¹¡£ºÇ½é¤Î¹Ô¤ËG_GetWeaponDamage¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î´Ø¿ô¤ÏÁ°¡¹²ó¤Ë¤Æ¼è¤ê¾å¤²¤Æ¡¢Éð´ï¤Î¼ïÎà¤Ë±þ¤¸¤Æ¥À¥á¡¼¥¸ÃͤòÊÖ¤¹´Ø¿ô¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤·¤¿¡£¤Ç¤¹¤«¤édamage¤Ë¤Ï¥Ê¥¤¥Õ¤Îɸ½à¥À¥á¡¼¥¸¤Ç¤¢¤ë10¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£
¼¡¤Îif¤Î¾ò·ï¤¬¡¢¹¶·â¼Ô¤¬CVOPS¤Ç¤¢¤ë¤«¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£¤â¤·¤½¤¦¤Ê¤é¡¢¥À¥á¡¼¥¸¤¬ÆóÇܤˤ¹¤ë½èÍý¤ò¤·¤Æ¤¤¤Þ¤¹¡£¤Ä¤Þ¤êCVOPS¤Î¥Ê¥¤¥Õ¤Ï20¥À¥á¡¼¥¸¤Ç¤¹¡£
if(traceEnt->client) { AngleVectors (ent->client->ps.viewangles, pforward, NULL, NULL); AngleVectors (traceEnt->client->ps.viewangles, eforward, NULL, NULL); if( DotProduct( eforward, pforward ) > 0.6f ) // from behind(-ish) { damage = 100; // enough to drop a 'normal' (100 health) human with one jab mod = MOD_KNIFE; if ( ent->client->sess.skill[SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS] >= 4 ) damage = traceEnt->health; } } G_Damage( traceEnt, ent, ent, vec3_origin, tr.endpos, (damage + rand()%5), 0, mod); }
ºÇ¸å¤ÎÉôʬ¤ò¸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£¤³¤³¤¬°ìÈÖÌÌÇò¤¤¤È¤³¤í¤Ç¤¹¡£¤Þ¤º»Ï¤á¤Îif¤Ç¡¢Åö¤¿¤Ã¤¿Áê¼ê¤¬¥×¥ì¥¤¥ä¡¼(¿Í)¤Ç¤¢¤ë¤«¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£¤â¤·¤½¤¦¤Ê¤é¡¢¼«Ê¬¤ÈÁê¼ê¤Î»ëÀþÊý¸þ³Ñ¤ò¥Ù¥¯¥È¥ë²½¤·¡¢ÆâÀѤò¸«¤Þ¤¹¡£¥Ù¥¯¥È¥ëÆâÀѤÎÃͤϡ¢¥Ù¥¯¥È¥ë¤Î¸þ¤¤¬¶á¤¤¤Û¤ÉÂ礤ÊÀµ¡¢¤Þ¤¿Ä¾³Ñ¤Î»þ¤Ï0¡¢È¿Âиþ¤¤Ç¤ÏÉé¤Ë¤Ê¤ê¤Þ¤¹¡£º£ÆâÀѤò¼è¤Ã¤¿2¥Ù¥¯¥È¥ë¤ÏÀµµ¬²½¥Ù¥¯¥È¥ë¤Ç¤¹¤«¤é¡¢Â礤µ¤Ï1¤Ê¤Î¤Ç¤³¤ÎÆâÀѤÎÃÍ°è¤Ï-1¡Á1¤È¤Ê¤ê¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢ÆâÀѤ¬1¤Ë¶á¤¤¤Û¤É¸þ¤¤¬Â·¤Ã¤Æ¤¤¤ë¡¢¤Ä¤Þ¤ê¤Ï¹¶·â¼Ô¤¬Áê¼ê¤ÎÇظ夫¤é¹¶·â¤·¤Æ¤¤¤ë¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ê¤Þ¤¹¡£
ÆâÀѤ¬0.6°Ê¾å(³ÑÅ٤ˤ·¤ÆÌó¡Þ30ÅÙ°ÊÆâ)¤Î¾ì¹ç¡¢°Ê²¼¤Î½èÍý¤ò¤·¤Æ¤¤¤Þ¤¹¡£¤Þ¤º¥À¥á¡¼¥¸¤¬Àè¤Û¤É¤Î10¤Ê¤¤¤·20¤«¤é¡¢100¤ËÀßÄꤷľ¤µ¤ì¤Þ¤¹¡£¤Û¤Ü¨»à¤Ç¤¹¡£¤µ¤é¤Ë¥×¥ì¥¤¥ä¡¼¤ÎCVOPS¥¹¥¥ë¤¬4°Ê¾å¤Î»þ¡¢¥À¥á¡¼¥¸¤¬Áê¼ê¤Î¥Ø¥ë¥¹¤½¤Î¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£¤½¤¦¤Ç¤¹¡¢¤É¤ó¤ÊÁê¼ê¤Ç¤â¨»à¤Ç¤¹¡£
ºÇ¸å¤Ëentity¤Ø¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¥Ê¥¤¥Õ¹¶·â½èÍý¤Ï½ª¤ï¤ê¤Þ¤¹¡£
¤Þ¤È¤á
º£²ó¤Ï¥Ê¥¤¥Õ¤Î¹¶·â½èÍý¤ò¸«¤Þ¤·¤¿¡£¤½¤·¤Æ¥Ù¥¯¥È¥ë¤Î´ðËÜŪ¤Ê·×»»¤È°·¤¤Êý¡¢¤Þ¤¿ÆâÀѤÎÀ¼Á¤Ê¤É¤â³Îǧ¤·¤Þ¤·¤¿¡£¤ß¤Ê¤µ¤óÃæ³Ø¡¦¹â¹»¤Ê¤É¤Ç¿ô³Ø¤ò³Ø¤Ó¡¢¡Ö°ìÂΤ³¤ó¤Ê¤Î¤É¤³¤Ç»È¤¦¤ó¤À¡×¤Èµ¿Ìä¤Ë»×¤ï¤ì¤Æ¤¤¤ëÊý¤â¤¤¤é¤Ã¤·¤ã¤Ã¤¿¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤·¤«¤·¡¢¿ô³Ø¤È¤Ï¤³¤ìñÂΤǤϰÕÌ£¤Î¤Ê¤¤¤â¤Î¤Ç¤¹¡£¥É¥é¥¤¥Ð¡¼¤ä¤«¤Ê¤Å¤Á¤È¤¤¤Ã¤¿¤â¤Î¤ÈƱ¤¸¤Ç¡¢¤³¤ì¤òºîÍѤµ¤»¤ÆÊØÍø¤Ê¤â¤Î¤ò¤Ä¤¯¤ëÆ»¶ñ¤Ë²á¤®¤Þ¤»¤ó¡£
¤È¤¤¤¦¤³¤È¤Ç¡¢¤³¤ì¤«¤éMODºî¤ê¤ò¹Í¤¨¤Æ¤¤¤ëÊý¤Ï¡¢À§Èó¿ô³Ø(¹â¹»À¸¤¢¤¿¤ê¤Î»°³Ñ´Ø¿ô¤ä¥Ù¥¯¥È¥ë¤òÃæ¿´¤Ë)¤ÎÉü½¬¤ò¤·¤Æ¤ß¤Æ¤Ï¤¤¤«¤¬¤Ç¤·¤ç¤¦¤«¡©
Åê¹Æ¼Ô ikanatto : 06:28 PM | ¥³¥á¥ó¥È (27232)
W:ET¥½¡¼¥¹¥³¡¼¥ÉϯÆɲñ¡¡Âè»°²ó
Á°²ó¤Î¤ª¤µ¤é¤¤¤Èº£²ó¤Î¤Í¤é¤¤
ÂèÆó²ó¤Ç¤ÏÉð´ïÀǽ¤Ç¤¢¤ë¥À¥á¡¼¥¸¤È»¶ÃÆÀ¤Î¥Ç¡¼¥¿ÄêµÁ¤ò¸«¤Þ¤·¤¿¡£¥½¡¼¥¹¥³¡¼¥ÉÃæ¤Ë¤Ï¤³¤Î¤è¤¦¤ËÄê¿ô¥Ç¡¼¥¿¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤Ç¤¤Þ¤·¤¿¡£º£²ó¤ÏÄê¿ôÄêµÁ¤Ç¤Ï¤Ê¤¯¡¢¼ÂºÝ¤Ë¤¢¤ë¹ÔÆ°¤¬¼è¤é¤ì¤¿¤È¤¤É¤Î¤è¤¦¤Ê½èÍý¤ò¤µ¤ì¤ë¤«¡¢¤È¤¤¤Ã¤¿¥Õ¥í¡¼¤Î°ì¤Ä¤ò¸«¤Æ¤¤¤¤Þ¤¹¡£¤«¤Ê¤êËܳÊŪ¤Ê¥³¡¼¥É¤Ç¤¹¤Î¤Ç¡¢C¤Ë´·¤ì¤Æ¤¤¤Ê¤¤Êý¤ÏC¸À¸ì¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¤ò¼ê¸µ¤Ë¤ª¤¤¤Æ¤ª¤¯¤ÈÍý²ò¤¬¥¹¥à¡¼¥º¤À¤È»×¤¤¤Þ¤¹¡£
Ŵˤ¶Ì¤Îµ¤»ý¤Á
Ê̤˥«¥Á¹þ¤ß¥ä¥¯¥¶¤Îµ¤»ý¤Á¤ò¿ä¤·Î̤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£½Æ¸ý¤«¤éȯ¼Í¤µ¤ì¤¿±ôÃƤ¬¡¢¤É¤Î¤è¤¦¤Ë½èÍý¤µ¤ìÊɤʤê¿Í¤Ê¤ê¤ËÌ¿Ã椹¤ë¤Î¤«¡¢¤Ë¤Ä¤¤¤Æ¸«¤Æ¤¤¤¤Þ¤¹¡£¤³¤ì¤òÍý²ò¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¸úΨŪ¤Ê¥Þ¥·¥ó¥¬¥ó¥é¥¤¥Õ¤ò¥¨¥ó¥¸¥ç¥¤¤¹¤ë¤Î¤¬ÌÜŪ¤Ç¤¹¡£
¤³¤Î½èÍý¤Ë´Ø¤¹¤ëµ½Ò¤Ï¡¢Æ±¤¸¤¯g_weapon.c¤Ë¤¢¤ê¤Þ¤¹¡£3090¹Ô°Ê¹ß¤Ç¤¹¡£¤³¤ÎÃæ¤Ë¤ÏÉð´ï°ìÈ̤νèÍý¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¾Ò²ð¤·¤¿¤â¤Î°Ê³°¤Ë¤â¿§¡¹¤Èȯ¸«¤Ç¤¤ë¤Ç¤·¤ç¤¦¡£À§Èó¥Ö¥é¥¦¥¸¥ó¥°¤·¤Æ¤¯¤À¤µ¤¤¡£¤Ç¤ÏÁ᮸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
qboolean Bullet_Fire_Extended(gentity_t *source, gentity_t *attacker, vec3_t start, vec3_t end, float spread, int damage, qboolean distance_falloff) {´Ø¿ôÄêµÁÉôʬ¤Ç¤¹¡£Ìá¤êÃͤÏtrue(1)¤«false(0)¤Ç¤¹¤Í¡£²¿¤¬°ú¿ô¤È¤·¤ÆÍ׵ᤵ¤ì¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«¡£gentity_t¤È¤ÏŽ¥Ž¥Ž¥¾Ü¤·¤¤ÀâÌÀ¤Ï¾Êά¤·¤Þ¤¹¤¬¡¢¡Ö¥²¡¼¥àÃæ¤Î¤¢¤é¤æ¤ë¤â¤Î¡×¤òÄêµÁ¤¹¤ë¹½Â¤ÂΤǤ¹¡£¤³¤ì¤òÄêµÁ¤µ¤ì¤ë¤È¡¢¡Ö¥²¡¼¥àÃæ¤Î¤â¤Î¡×¤È¤·¤ÆÍÍ¡¹¤Ê¥Ç¡¼¥¿¤ò»ý¤Ä¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£source¤È¤Ï¤Ê¤ó¤Ç¤·¤ç¤¦¤«¤Í¡£ÃƤòȯÀ¸¤µ¤»¤¿¤â¤Î¤È¹Í¤¨¤ë¤Î¤¬¼«Á³¤Ç¤·¤ç¤¦¤«¡£attacker¤Ï¹¶·â¼Ô¤½¤Î¤â¤Î¤Ç¤¹¤Í¡£start¤Ï¥Ù¥¯¥È¥ë¤Ç¤¹¡£¶²¤é¤¯ÃƤ¬È¯¼Í¤µ¤ì¤¿°ÌÃ֤Ǥ·¤ç¤¦¡£end¤ÏÃƤ¬»ß¤Þ¤ë°ÌÃÖ¡¢spread¤Ï»¶ÃÆÀ¡¢damage¤¬¥À¥á¡¼¥¸¡¢distance_falloff¤Ïµ÷Î¥¤Ë¤è¤Ã¤Æ¥À¥á¡¼¥¸¤¬¸º¾¯¤¹¤ë¤«¤É¤¦¤«¤Ë¤Ä¤¤¤Æ¤Î¥Õ¥é¥°¤Ç¤·¤ç¤¦¡£
¤µ¡¼¤Ã¤ÈÆɤó¤Ç¤¤¤¯¤È¡¢¤ï¤±¤Î¤ï¤«¤é¤Ê¤¤´Ø¿ô¤¬¤¤¤í¤¤¤í¤È¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤¾¤ì¤Î°ÕÌ£¤ò¤µ¤°¤Ã¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
G_HistoricalTrace(source, &tr, start, NULL, NULL, end, source->s.number, MASK_SHOT); // bullet debugging using Q3A's railtrail if(g_debugBullets.integer & 1) { tent = G_TempEntity( start, EV_RAILTRAIL ); VectorCopy(tr.endpos, tent->s.origin2); tent->s.otherEntityNum2 = attacker->s.number; } RubbleFlagCheck (attacker, tr);
¤Þ¤º¡¢G_HistoricalTrace¤Ë¤Ä¤¤¤Æ¡£Historical¤Ï¼½ñŪ¤Ê°ÕÌ£¤Ï¡ÖÎò»ËŪ¤Ê¡×¡¢¸å¤Ë³¤¯Trace¡ÖÄÉÀספǡÖÎò»ËŪÄÉÀסס©°ìÂΤʤó¤Ê¤Î¤Ç¤·¤ç¤¦¤«¤Í¡£¤³¤¦¤¤¤¦¾ì¹ç¤ÏÄêµÁÉôʬ¤ò¸«¤ë¤Ë¸Â¤ê¤Þ¤¹¡£¤³¤³¤Ç¤Ï¾ÜºÙ¤ò¾Êά¤·¤Þ¤¹¤¬¡¢¥×¥ì¥¤¥ä¡¼¤È¥µ¡¼¥Ð¡¼´Ö¤Ç¤Î¥Ç¡¼¥¿¤ä¤ê¼è¤ê¤ÎºÝ¤ËÀ¸¤¸¤ë»þ´ÖŪ¤º¤ì¡½¤Ä¤Þ¤ê¥¿¥¤¥à¥é¥°¤ò¹Íθ¤·¤¿¾å¤Ç¹Ô¤¦¾×ÆÍȽÃÇ´Ø¿ô¤Ç¤¹¡£¤Ï¤ä¤¤Ï䬳«»ÏºÂɸ¤È½ªÅÀºÂɸ¤ò»ØÄꤷ¤Æ¡¢¤½¤Î´Ö¤Ë¤Ö¤Ä¤«¤Ã¤¿¾ã³²Êª¤Î°ÌÃÖtr¤Ë³ÊǼ¤¹¤ë´Ø¿ô¤Ç¤¹¡£¥¢¥ó¥Á¥é¥°µ¡Ç½¤Ï¤³¤Î¤¢¤¿¤ê¤Ë¸ú¤¤¤Æ¤¤Þ¤¹¡£µ¤¤Ë¤Ê¤ëÊý¤Ï¡¢g_antilag.c¤Î202¹Ô°Ê¹ß¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£
¼¡¤ËRubbleFlagCheck¤Ç¤¹¤¬¡¢¤³¤ì¤Ï2935¹Ô°Ê¹ß¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤Á¤ç¤Ã¤È¸«¤Æ¤ß¤Þ¤·¤ç¤¦¡£
void RubbleFlagCheck (gentity_t *ent, trace_t tr) { qboolean is_valid = qfalse; int type = 0; // (SA) moving client-side return;
°ìÉôÊѹ¹¤·¤Æ¤¢¤ê¤Þ¤¹¡£¤È¤³¤í¤Ç´Ø¿ôÄêµÁ4¹ÔÌܤˤ·¤Æ¤¤¤¤Ê¤êreturn¤·¤Æ¤¤¤Þ¤¹¡£¤Ç¤¹¤«¤é¼Â¼ÁŪ¤Ë¤³¤Î´Ø¿ô¤Ï²¿¤â¤·¤Æ¤¤¤Þ¤»¤ó¤¬¡¢¼¡¤Î¥³¥á¥ó¥È¤Ë¡¢¡Öcgame¤Ë°Ü¤·¤¿¤è¡×¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤Ê¤¼¤Ç¤·¤ç¤¦¤«¡£¤½¤ì¤Ï¸å¤ò¸«¤ë¤È¤ï¤«¤ê¤Þ¤¹¡£
if (tr.surfaceFlags & SURF_RUBBLE || tr.surfaceFlags & SURF_GRAVEL) { is_valid = qtrue; type = 4; } else if (tr.surfaceFlags & SURF_METAL) { // type = 2; } else if (tr.surfaceFlags & SURF_WOOD) { is_valid = qtrue; type = 1; } if (is_valid && ent->client && ( ent->client->ps.persistant[PERS_HWEAPON_USE] ) ) { if (rand()%100 > 75) { gentity_t *sfx; vec3_t start; vec3_t dir; sfx = G_Spawn (); sfx->s.density = type; VectorCopy (tr.endpos, start); VectorCopy (muzzleTrace, dir); VectorNegate (dir, dir); G_SetOrigin (sfx, start); G_SetAngle (sfx, dir); G_AddEvent( sfx, EV_SHARD, DirToByte( dir )); sfx->think = G_FreeEntity; sfx->nextthink = level.time + 1000; sfx->s.frame = 3 + (rand()%3) ; trap_LinkEntity (sfx); } } }
¤µ¡¼¤Ã¤Èį¤á¤Þ¤¹¤È¡¢¤Ê¤Ë¤ä¤éifʸ¤¬¤¿¤¯¤µ¤ó¤¢¤Ã¤Æ¡¢¤½¤ì¤¾¤ì¤Î¾ò·ï¤¬surfaceFlags¤ÈÄê¿ô¤ÎÈæ³Ó¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢ÃƤÎÅö¤¿¤Ã¤¿Éôʬ¤Îºà¼Á¤òÄ´¤Ù¤Æ¡¢¤½¤ì¤Ë±þ¤¸¤Æº½±ì¤ò¾å¤²¤¿¤ê¡¢¿å¤·¤Ö¤¤ò½Ð¤·¤¿¤ê¤¹¤ë´Ø¿ô¤Î¤è¤¦¤Ç¤¹¡£¸«¤¿Ìܤò½èÍý¤·¤Ê¤¤¥µ¡¼¥Ð¡¼¥µ¥¤¥É¤Ë¤³¤Î¤è¤¦¤Ê½èÍý¤ÏɬÍפʤ¤¤Ç¤¹¤è¤Í¡£¤À¤«¤éÉéô·Ú¸º²½¤Î°Ù¤Ëcgame¤Ø°Ü¤µ¤ì¤¿¤Î¤Ç¤·¤ç¤¦¡£
Ïäò¸µ¤ËÌᤷ¤Þ¤¹¡£
traceEnt = &g_entities[ tr.entityNum ]; EmitterCheck(traceEnt, attacker, &tr); // snap the endpos to integers, but nudged towards the line SnapVectorTowards( tr.endpos, start );
EmitterCheck¤âƱ¤¸¤¯º½Ô¼È¯À¸¤Ê¤É¤Î½èÍý¤ò¤·¤Æ¤¤¤ë¤â¤Î¤È»×¤¤¤Þ¤¹¡£
¤µ¤ÆÃíÌܤÆÍߤ·¤¤¤Î¤¬¼¡¤Îif¹½Ê¸¤Ç¤¹¡£
if( distance_falloff ) { vec_t dist; vec3_t shotvec; //VectorSubtract( tr.endpos, start, shotvec ); VectorSubtract( tr.endpos, muzzleTrace, shotvec ); dist = VectorLengthSquared( shotvec ); if( dist > Square(1500.f) ) { reducedDamage = qtrue; if( dist > Square(2500.f) ) { damage *= 0.5f; } else { float scale = 1.f - 0.5f * (Square(1000.f) / (dist - Square(1000.f))); damage *= scale; } } }
if¤Î¾ò·ï¤¬distance_falloff¤Ç¤¹¤«¤é¡¢µ÷Î¥¤Ë¤è¤ë¥À¥á¡¼¥¸¸º¾¯¤ò¤³¤³¤Ç½èÍý¤·¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£¶ñÂÎŪ¤Ë¥À¥á¡¼¥¸¤¬¸º¾¯¤¹¤ë¤Î¤Ï¡¢Ä¾Àþµ÷Î¥¤Ë¤·¤Æ1500°Ê¾å¤Ç¤¹¡£¿Í´Ö¤Î¹â¤µ¤¬Ìó80¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¤«¤é¡¢¤³¤Î¿ôÃͤÎñ°Ì¤Ï¥¤¥ó¥Á¤È¸«¤ë¤Î¤¬Å¬Åö¤Ç¤·¤ç¤¦¡£¤È¤¹¤ë¤È¡¢1500¤Ï¤ª¤è¤½35¥á¡¼¥È¥ë¤Û¤É¤ËÁêÅö¤·¤Þ¤¹¡£2500°Ê¾åÎ¥¤ì¤ë¤È¡¢¥À¥á¡¼¥¸¤Ï´°Á´¤ËȾʬ¤Ë¤Ê¤ê¤Þ¤¹¡£1500¡Á2500¤Î´Ö¤Ç¤Ï¡¢Ì¯¤Ê·×»»¤¬¹Ô¤ï¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ë±è¤¦¤È¡¢1550¤è¤ê¤â2450¤Î¥À¥á¡¼¥¸¤ÎÊý¤¬Â礤¤¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£Ì¯¤Ç¤¹¡£ET¤ÎÆæ¤Ç¤¹¡£
³¤¤¤Æ¸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
// send bullet impact if ( traceEnt->takedamage && traceEnt->client /*&& !(traceEnt->flags & FL_DEFENSE_GUARD)*/ ) { tent = G_TempEntity( tr.endpos, EV_BULLET_HIT_FLESH ); tent->s.eventParm = traceEnt->s.number; if(AccuracyHit( traceEnt, attacker )) { hitClient = qtrue; } } else { trace_t tr2; // Ridah, bullet impact should reflect off surface vec3_t reflect; float dot; tent = G_TempEntity( tr.endpos, EV_BULLET_HIT_WALL ); G_HistoricalTrace(source, &tr2, start, NULL, NULL, end, source->s.number, MASK_WATER | MASK_SHOT); if((tr.entityNum != tr2.entityNum && tr2.fraction != 1)) { vec3_t v; VectorSubtract( tr.endpos, start, v ); tent->s.origin2[0] = (8192 * tr2.fraction) / VectorLength( v ); } else { tent->s.origin2[0] = 0; } dot = DotProduct( forward, tr.plane.normal ); VectorMA( forward, -2*dot, tr.plane.normal, reflect ); VectorNormalize( reflect ); tent->s.eventParm = DirToByte( reflect ); tent->s.otherEntityNum2 = ENTITYNUM_NONE; }
¥Ç¥Ð¥Ã¥¯Éôʬ¤Ï¾Êά¤·¤Þ¤·¤¿¡£ºÇ½é¤Îifʸ¤Ï²¿¤ò¤ß¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«¡£traceEnt¤È¤ÏÃƤΤ֤Ĥ«¤Ã¤¿¤â¤Î¤ò»Ø¤·¤Æ¤¤¤Æ¡¢¤³¤ì¤¬¥À¥á¡¼¥¸¤ò¼õ¤±¤ë¤â¤Î¤«¤Ä¥¯¥é¥¤¥¢¥ó¥È(¤Ä¤Þ¤ê¥×¥ì¥¤¥ä¡¼)¤Ç¤¢¤ë¤«¤ò¸«¤Æ¤¤¤Þ¤¹¡£ÁᤤÏ䬿ͤËÅö¤¿¤Ã¤¿¤«¤É¤¦¤«¤Ç¤¹¡£Åö¤¿¤Ã¤Æ¤¤¤¿¾ì¹ç¡¢AccuracyHit¤Ë¤è¤Ã¤ÆËÜÅö¤Ë¥¯¥é¥¢¥ó¥È¤ËÅö¤¿¤Ã¤¿¤Î¤«¤É¤¦¤«¡¢¹¶·â¼Ô¤Ï¸ºß¤¹¤ë¤Î¤«¤É¤¦¤«¤Ë¤Ä¤¤¤ÆÀµ³Î¤Ë¥Á¥§¥Ã¥¯¤·¡¢¤³¤ì¤¬OK¤Ê¤é¤Ð¥¯¥é¥¤¥¢¥ó¥È¥Ò¥Ã¥È¥Õ¥é¥°¤¬À®Î©¤·¤Þ¤¹(hitClient = qtrue)¡£
¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤Ä¤Þ¤ê¥¯¥é¥¤¥¢¥ó¥È°Ê³°¤ÎÊɤä¿åÌ̤ʤɤËÅö¤¿¤Ã¤¿¾ì¹ç¤Ë¤Ä¤¤¤Æ¸«¤ë¤È¡¢ºÆ¤Ó¾×ÆÍ°ÌÃÖ¤òõ¤·¤Æ¤¤¤Þ¤¹¡£¤¿¤À¤·ºÇ½é¤È°ã¤¦¤Î¤Ï¡¢¿åÌ̤ËÅö¤¿¤Ã¤Æ¤â¤½¤³¤ò¾×ÆÍÅÀ¤È¤·¤Ê¤¤¾ò·ï²¼¤Ç¤¹¡£¤½¤·¤ÆÁ°²ó¤Èº£¤Î¾×ÆÍÅÀ¤òÈæ³Ó¤·¤Æ¡¢Æ±¤¸¤è¤¦¤Ê¤é´ÓÄ̤⤷¤¯¤ÏÈ¿¼Í¤È¤¤¤¦°·¤¤¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£È¿¼Í¸å¤ÎÈôµ÷Î¥¤Ê¤É¤ÏË໤ÎϤÈÈô¹Ôµ÷Î¥¤Ê¤É¤Ë°Í¸¤·¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£
¤Ç¤ÏºÇ¸å¤ÎÉôʬ¤ò¸«¤Æ¸«¤Þ¤·¤ç¤¦¡£
if ( traceEnt->takedamage ) { G_Damage( traceEnt, attacker, attacker, forward, tr.endpos, damage, ( distance_falloff ? DAMAGE_DISTANCEFALLOFF : 0 ), GetAmmoTableData(attacker->s.weapon)->mod ); // allow bullets to "pass through" func_explosives if they break by taking another simultanious shot if( traceEnt->s.eType == ET_EXPLOSIVE ) { if(traceEnt->health <= damage) { // start new bullet at position this hit the bmodel and continue to the end position (ignoring shot-through bmodel in next trace) // spread = 0 as this is an extension of an already spread shot return Bullet_Fire_Extended(traceEnt, attacker, tr.endpos, end, 0, damage, distance_falloff); } } } return hitClient; }
ºÇ½é¤Îif¾ò·ï¤¬traceEnt->takedamage¤Ç¤¹¤«¤é¡¢¥À¥á¡¼¥¸¤ò¼õ¤±¤ë¤â¤Î¤ËÅö¤¿¤Ã¤¿¾ì¹ç¤Î½èÍý¤Ç¤¹¡£Ä¾¸å¤ÎG_Damage´Ø¿ô¤Ç¼ÂºÝ¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤Ø¥À¥á¡¼¥¸¤òÍ¿¤¨¤Æ¤¤¤Þ¤¹¡£
¼¡¤Îif¤¬¤Ê¤«¤Ê¤«ÌÌÇò¤¤¤Ç¤¹¡£Åö¤Æ¤¿¤â¤Î¤¬Ç˲õ¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ç¡¢¤«¤Ä¤½¤Î¥Ø¥ë¥¹¤¬¥À¥á¡¼¥¸¤ò²¼²ó¤Ã¤¿¡¢¤Ä¤Þ¤êÇ˲õ¤µ¤ì¤¿¤È¤¡¢ºÆ¤ÓBullet_Fire_Extended¤¬¥³¡¼¥ë¤µ¤ì¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢Áë¤Ê¤É¤òÇ˲õ¤·¤¿ÃƴݤϴÓÄ̤·¤ÆÇظå¤ÎŨ¤ò½±¤¦¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£Éݤ¤¤Ç¤¹¤Í¡£
ºÇ¸å¤ÎºÇ¸å¤Ç¥¯¥é¥¢¥ó¥È¤Ë¥Ò¥Ã¥È¤·¤¿¤«¤É¤¦¤«¤òÌá¤êÃͤȤ·¤Æ¥ê¥¿¡¼¥ó¤·¡¢¤³¤Î´Ø¿ô¤Ï½ªÎ»¤Ç¤¹¡£
¤Þ¤È¤á
Èè¤ì¤Þ¤·¤¿¡£¤¨¤¨¡¢»ä¤¬¤Ç¤¹¡£¤È¤Æ¤âŤ¤¤Ç¤¹¤è¤Í¡¢¥½¡¼¥¹¥³¡¼¥É¤Ã¤Æ¡£¤·¤«¤â¤³¤Î¤è¤¦¤Ê¤â¤Î¤¬²¿Ëü¹Ô¤â¤¢¤ë¤È»×¤¦¤È¡¢¥×¥í¥°¥é¥Þ¡¼¤È¤¤¤¦¤Î¤ÏÀ¨¤Þ¤¸¤¤¿¦¶È¤Ê¤Î¤À¤Ê¤¡¤È²þ¤á¤Æ´¶¿´¤·¤Þ¤¹¡£
º£²ó¤Ï¥³¡¼¥É¤òÆɤà¤À¤±¤Ç¤·¤¿¤¬¡¢¤ß¤Ê¤µ¤ó¤Ï¤½¤í¤½¤í¡Ö¤¢¤Î¿ôÃͤòÊѤ¨¤¿¤é¤¹¤´¤¤¤³¤È¤Ë¤Ê¤ê¤½¤¦¤À¡×¤È¤«¡Ö¤¢¤½¤³¤Ç¤³¤Î´Ø¿ôÆþ¤ì¤¿¤é¤É¤¦¤Ê¤ë¤ó¤À¡×¤È¤«¡¢¤½¤í¤½¤í»×¤¤»Ï¤á¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£¤½¤¦¤Ç¤¹¡¢¤½¤Î¡Ö»×¤¤¤Ä¤¡×¤³¤½¤¬MODºî¤ê¤Î»Ï¤Þ¤ê¤Ç¤¹¡£Ã¯¤â¤¬Æ±¤¸»Ï¤Þ¤ê¤Ç¤¹¡£»ä¤Î¾ì¹ç¡¢¥½¡¼¥¹¥³¡¼¥É¤¬»Ï¤Þ¤ê¤Ç¤Ï¤Ê¤¯¥â¥Ç¥ê¥ó¥°¤«¤é¤Ç¤·¤¿¤¬¡¢¡Ö¤³¤¦¤À¤Ã¤¿¤é¤â¤Ã¤ÈÌÌÇò¤¤¤Î¤Ë¡×¤È»×¤¦µ¤»ý¤Á¤ÏƱ¤¸¤Ç¤¹¡£¤¢¤È¤Ï¡¢¼ÂºÝ¤Ë¤ä¤ë¤«¤É¤¦¤«¡¢¤³¤Î°ìÅÀ¤Ë¿Ô¤¤Þ¤¹¡£ÆüËܿͤϳ¤³°¤Î¿Í¤ËÈæ¤Ù¤Æ¤«¤Ê¤ê¾Ã¶ËŪÉôʬ¤¬¶¯¤¤¤Èǧ¤á¤¶¤ë¤òÆÀ¤Þ¤»¤ó¡£¤·¤«¤·¡¢°ìÅÙËܵ¤¤ò½Ð¤¹¤È»ý¤ÁÁ°¤Î¶ÐÊÙ¤µ¤È»Å»ö¤ÎºÙ¤ä¤«¤µ¤Ë¤ª¤¤¤Æ¾¹ṉ̃¤ÎÄÉ¿ï¤òµö¤µ¤Ê¤¤Äø¤ÎǽÎϤò»ý¤Ã¤Æ¤¤¤ë¤È»ä¤Ï³Î¿®¤·¤Æ¤¤¤Þ¤¹¡£¤Ç¤¹¤«¤é¡¢³§¤µ¤ó¤ËÀ§ÈóËܹøÆþ¤ì¤ÆMODºî¤ê¤ò¤·¤Æ¤â¤é¤¤¤¿¤¤¤Î¤Ç¡¢Æ³Æþ¤È¤·¤Æº£¤³¤Î¾Ò²ð¤ò¹Ô¤Ã¤Æ¤¤¤ë¼¡Âè¤Ç¤¹¡£¤É¤¦¤«¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£
Åê¹Æ¼Ô ikanatto : 06:16 PM | ¥³¥á¥ó¥È (53)
W:ET¥½¡¼¥¹¥³¡¼¥ÉϯÆɲñ¡¡ÂèÆó²ó
Reading the Source Code of W:ET #2
Á°²ó¤Î¤ª¤µ¤é¤¤¤Èº£²ó¤Î¤Í¤é¤¤
Á°²ó¤Þ¤Ç¤Ç¥½¡¼¥¹¥³¡¼¥É¤ò¡ÖÆɤà¡×½àÈ÷¤¬½ÐÍè¤Þ¤·¤¿¡£²¿¤ò¼ÂºÝ¤ËÆɤफ¤Ï¡¢µ¤Ê¬¤È¥³¡¼¥É¤Î²ÄÆÉÀ¼¡Âè¤Ç¤¹¤¬¡¢º£²ó¤ÏÉð´ï¥Ç¡¼¥¿¤òÃæ¿´¤Ë¼ÂºÝ¸«¤Æ¤¤¤³¤¦¤È¤¤¤¦¤ªÏäǤ¹¡£Éð´ï¤Ê¤ó¤«¶½Ì£¤Ê¤¤¤Ã¡¢¤È¤¤¤¦¤ªÊý¤Ïº£²ó¤Î¤ªÏäϤ¹¤ÃÈô¤Ð¤·¤Æ¤¯¤À¤µ¤¤¡£
Éð´ï¥À¥á¡¼¥¸
¤È¤ê¤¢¤¨¤º¡¢³§¤µ¤ó¤¬¶½Ì£¤¢¤ëÉôʬ¤È¤¤¤Ã¤¿¤é¤³¤¦¤¤¤¦¤È¤³¤í¤Ê¤ó¤Ç¤·¤ç¤¦¤«¡£Á᮸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£¤Ç¤â¤É¤³¤ò¸«¤ì¤Ð¤è¤¤¤Î¤«¡½¡£ºÇ½é¤Ï¤Þ¤º¤³¤ÎÌäÂê¤ò²ò·è¤·¤Æ¤¤¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
¥½¡¼¥¹¥³¡¼¥É¤ò¸«¤ë¾å¤Ç°ìÈֺǽé¤Î¡¢¤«¤ÄÆñ²ò¤ÊÌäÂ꤬¡¢¡Ö¤É¤³¤Ë¤É¤ó¤Êµ¡Ç½¤ò»ý¤Ã¤¿¥³¡¼¥É¤¬½ñ¤«¤ì¤Æ¤¤¤ë¤«¤òõ¤·½Ð¤¹¡×¤³¤È¤Ç¤¹¡£¤¿¤À¤Ü¡¼¤Ã¤È¥³¡¼¥É¤òį¤á¤Æ¤¤¤ë¤À¤±¤Ç¤Ï»Ï¤Þ¤ê¤Þ¤»¤ó¡£¹¬¤¤¡¢¥³¡¼¥É¤ÏÌò³ä¤Ë¤è¤Ã¤Æ¥Õ¥¡¥¤¥ë¤ä¥Õ¥©¥ë¥À¤´¤È¤Ë¶èÀÚ¤é¤ì¤Æ¤¤¤Þ¤¹¡£ºÇ½é¤Ï¤³¤Î¥Õ¥¡¥¤¥ë̾¤ò¼ê³Ý¤«¤ê¤Ë³«¤¤¤Æ¸¡º÷¤¹¤ë¤³¤È¤¬Í¸ú¤Ç¤¹¡£
¤Ç¤ÏÉð´ï´Ø·¸¤Î¾ðÊó¤Ï¤É¤³¤Ë½ñ¤¤¤Æ¤¢¤ë¤«Ä´¤Ù¤Þ¤·¤ç¤¦¡£´ðËÜŪ¤Ë»ä¤¿¤Á¤¬°·¤¦¤Î¤Ï¡¢game¥Õ¥©¥ë¥À¤Î¤â¤Î¤Ç¤¹¡£¤Ê¤¼¤«¤Ï¸å¡¹ÀâÌÀ¤·¤Þ¤¹¤¬¡¢¥²¡¼¥à¤Î´ðËÜŪ¤Ê½èÍý¤Ï¤³¤³¤Ç¹Ô¤ï¤ì¤ë¤¿¤á¡¢¤È¹Í¤¨¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¥Õ¥©¥ë¥À¤ò³«¤¤¤Æ¡¢Éð´ï¤Ã¤Ý¤¤¥Õ¥¡¥¤¥ë¤òõ¤·¤Æ¤¯¤À¤µ¤¤Ž¥Ž¥Ž¥¡£¤É¤¦¤Ç¤¹¤«¡©g_weapon.c¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó¤«¡©¤Ê¤ó¤À¤«¤³¤ì¤Ã¤Ý¤¤¤Ë¤ª¤¤¤¬¥×¥ó¥×¥ó¤·¤Þ¤¹¤Í¡£Á᮳«¤¤¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¤È¤Æ¤âŤ¤¥Æ¥¥¹¥È¤¬³«¤«¤ì¤¿¤È»×¤¤¤Þ¤¹¡£¤Ç¤Ï¡¢·Ú¤¯Á´ÂΤòį¤á¤Æ¤¯¤À¤µ¤¤¡£ÆɤàɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¤ï¤±¤Î¤ï¤«¤é¤Ê¤¤Ê¸»ú¤¬°ìÇÕʤó¤Ç¤ë¤Ê¡¼ÄøÅ٤Ƿ빽¤Ç¤¹¡£¤µ¤Æ¡¢¤½¤ì¤Ç¤ÏÌäÂê¤ÎÉð´ï¤ÎÀǽ¤Ë¤Ä¤¤¤Æ¸ÀµÚ¤·¤Æ¤¤¤ëÉôʬ¤òõ¤·¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£±Ô¤¤¿Í¤Ï¤â¤¦µ¤¤¬¤Ä¤¤¤Æ¤¤¤ë¤«¤È»×¤¤¤Þ¤¹¤¬¡¢2784¹Ô°Ê¹ß¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£G_GetWeaponDamage¤È¤¤¤¦´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£´Ø¿ô̾¤ò¸«¤ë¤È¡¢ Get Weapon Damage¡¢¤Ä¤Þ¤êÉð´ï¤Î¥À¥á¡¼¥¸¤Ë´Ø¤¹¤ë´Ø¿ô¤Ç¤¢¤ê¡¢Ãæ¿È¤ò¸«¤ì¤ÐÉð´ï¤´¤È¤Î¥À¥á¡¼¥¸¤òÌá¤êÃͤȤ¹¤ë¤â¤Î¤ÈͽÁÛ¤¬¤Ä¤¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢Éð´ï¤Î¥À¥á¡¼¥¸¤Ï¤³¤³¤Î¿ô»ú¤Ë¤è¤Ã¤Æ·è¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¡£Á᮸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
Line 2884 in g_weapon.c: int G_GetWeaponDamage( int weapon ) { switch (weapon) { default: return 1; case WP_KNIFE: return 10; case WP_STEN: return 14; case WP_CARBINE: case WP_GARAND: case WP_KAR98: case WP_K43: return 34; case WP_FG42: return 15; case WP_LUGER: case WP_SILENCER: case WP_AKIMBO_LUGER: case WP_AKIMBO_SILENCEDLUGER: case WP_COLT: case WP_SILENCED_COLT: case WP_AKIMBO_COLT: case WP_AKIMBO_SILENCEDCOLT: case WP_THOMPSON: case WP_MP40: case WP_MOBILE_MG42: case WP_MOBILE_MG42_SET: return 18; case WP_FG42SCOPE: return 30; case WP_GARAND_SCOPE: case WP_K43_SCOPE: return 50; case WP_SMOKE_MARKER: return 140; // just enough to kill somebody standing on it case WP_MAPMORTAR: case WP_GRENADE_LAUNCHER: case WP_GRENADE_PINEAPPLE: case WP_GPG40: case WP_M7: case WP_LANDMINE: case WP_SATCHEL: return 250; case WP_TRIPMINE: return 300; case WP_PANZERFAUST: case WP_MORTAR_SET: case WP_DYNAMITE: return 400; } }
¥³¡¼¥É¼«ÂΤÏswitch¹½Ê¸¤Ç¹½À®¤µ¤ì¤¿Ã±½ã¤Ê¤â¤Î¤Ç¤¹¡£°ú¿ô¤È¤·¤ÆÅϤµ¤ì¤¿Éð´ïID¤Ë±þ¤¸¤Æ¥À¥á¡¼¥¸¤òÊÖ¤¹¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£¤Á¤Ê¤ß¤Ë¤³¤³¤Ç»È¤ï¤ì¤Æ¤¤¤ëÉð´ïID¤ÏÊØÍø¤Ç¤¹¡£¤É¤¦ÊØÍø¤Ê¤Î¤«¤Ï¸å¤Ç¾Ò²ð¤·¤Þ¤¹¡£
¤µ¤Æ¡¢¤³¤Î´Ø¿ô¤ò¸«¤ë¤È¥À¥á¡¼¥¸¤¬°ìÌÜÎÆÁ³¤Ç¤¹¡£¥Ê¥¤¥Õ¤Ï10¤Ç¤¹¤«Ž¥Ž¥Ž¥¡¢¤â¤¦¤Á¤ç¤Ã¤È¤¢¤Ã¤Æ¤â¤¤¤¤¤Î¤Ç¤Ï¡£Â¾¥¹¥Æ¥ó¤¬14¡¢¥é¥¤¥Õ¥ë34¡¢SMG¤È¥Ô¥¹¥È¥ë18¤Ê¤É¤ä¡¢¶õÇú´Ì140¡¢¼êÜØÃÆ250¡¢¥Ñ¥ó¥Ä¥¡¡¼400¤Ê¤É¤Ç¤¹¤Í¡£¤Á¤Ê¤ß¤ËÇúȯʪ¤Ï¡Öľ·â¡×¤·¤¿¾ì¹ç¤Î¥À¥á¡¼¥¸¤Ç¤¹¡£¡Öľ·â¡×¤È¤Ï¡¢¥¤¥ó¥Ñ¥¯¥È¤Î½Ö´Ö¤Ëµ÷Î¥¤¬0¤Î¾õÂÖ¤ò»Ø¤·¤Þ¤¹¡£¤³¤ÎÃæ¤Ë¥È¥ê¥Ã¥×¥Þ¥¤¥ó¤È¤¤¤¦¤â¤Î¤¬¤¢¤ê¤Þ¤¹¤¬¡¢°ìÂΤʤó¤Ç¤·¤ç¤¦¤Í¡©µ¤¤Ë¤Ê¤ê¤Þ¤»¤ó¤«¡£
ÃƤ붤é¤Ð¤ê¶ñ¹ç
¤Á¤Ê¤ß¤Ë¤³¤Î´Ø¿ô¤Î¼¡¤Ë¤³¤ó¤Ê´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
Line 2837 in g_weapon.c: float G_GetWeaponSpread( int weapon ) { switch (weapon) { case WP_LUGER: case WP_SILENCER: case WP_AKIMBO_LUGER: case WP_AKIMBO_SILENCEDLUGER: return 600; case WP_COLT: case WP_SILENCED_COLT: case WP_AKIMBO_COLT: case WP_AKIMBO_SILENCEDCOLT: return 600; case WP_MP40: case WP_THOMPSON: return 400; case WP_STEN: return 200; case WP_FG42SCOPE: return 200; case WP_FG42: return 500; case WP_GARAND: case WP_CARBINE: case WP_KAR98: case WP_K43: return 250; case WP_GARAND_SCOPE: case WP_K43_SCOPE: return 700; case WP_MOBILE_MG42: case WP_MOBILE_MG42_SET: return 2500; } G_Printf( "shouldn't ever get here (weapon %d)\n", weapon ); // jpw return 0; // shouldn't get here }
¹½Ê¸¤ÏÀèÄø¤Î´Ø¿ô¤È¤Û¤È¤ó¤ÉƱ¤¸¤Ç¤¹¤¬¡¢¤³¤Á¤é¤Ï²¿¤òÄêµÁ¤·¤Æ¤ë¤Î¤Ç¤·¤ç¤¦¤«¡£´Ø¿ô̾¤ò¸«¤ë¤È¡¢Get Weapon Spread(¹¤¬¤ê)¡¢ÃƤ붤é¤Ð¤ê¶ñ¹ç¤òÄêµÁ¤·¤Æ¤¤¤ë¤â¤Î¤È»×¤ï¤ì¤Þ¤¹¡£¶ñÂÎŪ¤Ë¸«¤ë¤È¡¢¥¹¥Æ¥ó¤¬200¤ÇºÇ¾®¤Ç¤¹¤«¤é¡¢¾®¤µ¤¤Êý¤¬»¶¤é¤Ð¤ê¤Ï¾¯¤Ê¤¤¤â¤Î¤È¹Í¤¨¤é¤ì¤Þ¤¹¡£¤½¤¦¤¹¤ë¤È¡¢¥¹¥Æ¥ó¡ã¥é¥¤¥Õ¥ë¡ãSMG¡ãFG42¡ã¥Ô¥¹¥È¥ë¡ãÁÀ·â½Æ(ÁÀ·â¥â¡¼¥É¤Ç¤Ê¤¤)¡ãΩ¤ÁMG¤Î½ç¤Ç»¶ÃÆÀ¤¬Îɤ¤¤è¤¦¤Ç¤¹¡£°Õ³°¤Ê¤Î¤Ï¥é¥¤¥Õ¥ë¤ÎÀǽ¡¢¤«¤Ê¤êÎɤ¤¤È¤¤¤¦¤³¤È¤Ç¤¹¡£¤½¤ì¤Ç¤âÅö¤¿¤é¤Ê¤¤¤Èò¤¯¤¢¤Ê¤¿¤È»ä¡¢¾È½à¤ò¹ç¤ï¤»¤ë·±Îý¤ò´èÄ¥¤ê¤Þ¤·¤ç¤¦¡£
¤Þ¤È¤á
º£²ó¤Ï¡¢¹½Ê¸Åª¤Ë¤âÆâÍÆŪ¤Ë¤âÈó¾ï¤Ë¤Ê¤¸¤ß¤ä¤¹¤¤Éôʬ¤ò¾Ò²ð¤·¤Æ¤ß¤Þ¤·¤¿¡£Â¾¤Ë¤â¥À¥á¡¼¥¸¤Î¤è¤¦¤ËÄê¿ô¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ï¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¡£°Üư®ÅÙ¡¢½ÅÎÏ¡¢²Ð±êÊü¼Í´ï¤Î¼ÍÄøµ÷Î¥¡¢ÃÏÍë¤Î¿ô¤Ê¤É¤Ê¤É¡£¤½¤ì¤é¤ò¸«¤Ä¤±½Ð¤·¤Æ¤Ë¤ä¤ê¤È¤¹¤ë¤Î¤â°ì¤Ä¤Î³Ú¤·¤ß¤«¤È»×¤¤¤Þ¤¹¡£
Åê¹Æ¼Ô ikanatto : 06:13 PM | ¥³¥á¥ó¥È (1486)
W:ET¥½¡¼¥¹¥³¡¼¥ÉϯÆɲñ¡¡Âè°ì²ó
Reading the Source Code of W:ET #1
º£²ó¤Î¤Í¤é¤¤
¥¬¥¤¥À¥ó¥¹¤ÎƳÆþÉô¤Ë¤è¤ê°ì±þ¥½¡¼¥¹¥³¡¼¥É¤ò¡Ö¸«¤ë¡×½àÈ÷¤¬½ÐÍè¤Þ¤·¤¿¡£Áᮥ½¡¼¥¹¥³¡¼¥É¤ò¸«¤Æ¤¤¤¤¿¤¤¤È¤³¤í¤Ç¤¹¤¬¡¢¾¯¤·¤ªÂÔ¤Á¤ò¡£º£²ó¤Ï¥×¥í¥°¥é¥ß¥ó¥°¤½¤Î¤â¤Î¤Ë·Ð¸³¤¬¤Ê¤¤¿Í¸þ¤±¤Ë¡¢¥×¥í¥°¥é¥à¤òÆɤà¾å¤ÇɬÍפˤʤëÃ챤ò¾Ò²ð¤·¡¢¥¹¥à¡¼¥º¤ÊÍý²ò¤Î½õ¤±¤È¤Ê¤ì¤Ð¤È»×¤¤¤Þ¤¹¡£¤Ç¤¹¤«¤é¥×¥í¥°¥é¥ß¥ó¥°·Ð¸³¤Î¤¢¤ëÊý¤Ïº£²ó¤ÎÏäϤʤ«¤Ã¤¿¤³¤È¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¤´Â¸ÃΤ«¤ÎÄ̤êET¤ÏQuake3¥¨¥ó¥¸¥ó¥Ù¡¼¥¹¤Ç¤¹¡£¤³¤Î¤¿¤áʪÍý±é»»¤ä¥Ç¡¼¥¿¤Î¹½Â¤ÂΤʤɡ¢Quake3¤Ç¤âÍѤ¤¤é¤ì¤ë¥¢¥ë¥´¥ê¥º¥à¤¬»¶¸«¤µ¤ì¤Þ¤¹¡£¤Ç¤¹¤«¤éET¥½¡¼¥¹¥³¡¼¥ÉÍý²ò¤Î°Ù¤Ë¡¢¤Þ¤º¤ÏQuake3¤Ç¤ÎʪÍý±é»»¤Ê¤É¤Î³Æ¼ï½èÍý¡¢¤½¤·¤ÆÍѤ¤¤é¤ì¤ë¥Ç¡¼¥¿¹½Â¤¤Ê¤É¤Î´ðËÜŪÍý²ò¤ò¤¹¤ë¤³¤È¤¬¤È¤Æ¤âÂçÀڤˤʤäƤ¤Þ¤¹¡£
Ãí°Õ¤·¤ÆÍߤ·¤¤¤³¤È¤Ë¡¢ÀìÌç²È¥¯¥é¥¹¤Ë¤Þ¤ÇÀºÄ̤¹¤ëɬÍפϤʤ¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£¤â¤Á¤í¤óÀºÄ̤¹¤ë¤³¤È¤ÇMODºîÀ®¤ÎÂ礤ʽõ¤±¤Ë¤Ê¤ê¤Þ¤¹¡£¤·¤«¤·¡¢º£²ó¤Î¤è¤¦¤Ë¤¿¤À¥³¡¼¥É¤òÆɤà¤À¤±¤Ê¤é´Ø¿ô¤ä¹½Â¤ÂΤ¬²¿¤ò°ÕÌ£¤¹¤ë¤â¤Î¤«¡¢¤ÈÇùÁ³¤È¤·¤¿Íý²ò¤Ç½½Ê¬¤Ç¤¹¡£ ¤Ç¤¹¤«¤éµ¤³Ú¤Ë¹½¤¨¤Æ¤¯¤À¤µ¤¤¤Í¡£
C¸À¸ì
¤³¤³¤Ï¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Ë¡Ö¤Þ¤Ã¤¿¤¯¡×¤Ê¤¸¤ß¤Î¤Ê¤¤Êý¸þ¤±¤Î¥»¥¯¥·¥ç¥ó¤Ç¤¹¡£·Ð¸³¤Î¤¢¤ëÊý¤Ï¤¹¤ÃÈô¤Ð¤·¤Æ¤¯¤À¤µ¤¤¡£
Á°²ó¿½¤·¤¿¤È¤ª¤ê¡¢ET¤Î¥½¡¼¥¹¥³¡¼¥É¤ÏC¸À¸ì¤Ç¤¹¡£¥×¥í¥°¥é¥à¸À¸ì¤È¤·¤Æ¤Ï¤´¤¯°ìÈÌŪ¤Ç¤¹¤¬¡¢Æü¾ï²ñÏäÇC¤òÏ乿ͤϤ¤¤Þ¤»¤ó¡£C¸À¸ì¤Ï¥³¥ó¥Ñ¥¤¥é¡¼¤ËÂФ·¤Æ¤Î¤ß°ÕÌ£¤Î¤¢¤ë¸À¸ì¤À¤«¤é¤Ç¤¹¡£¤½¤Î¤¿¤á¡¢½é¤á¤ÆC¤ò¸«¤ë¿Í¤Ë¤ÏC¤Î¥½¡¼¥¹¥³¡¼¥É¤ò¸«¤Æ¤â¡¢º£¤Þ¤Ç¸«¤¿¤³¤È¤âÄ°¤¤¤¿¤³¤È¤â¤Ê¤¤¸ÀÍÕ¤ÇÏä·¤«¤±¤é¤ì¤ë¤Î¤ÈƱ¤¸¤ÇÍý²ò¤Ç¤¤Þ¤»¤ó¡£
¤½¤³¤ÇÆüËܸì¤È¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Î´Ö¤ò·Ò¤¤¤Ç¤¯¤ì¤ë¼½ñ¤¬¤¢¤ê¤Þ¤¹¡£¥ê¥Õ¥¡¥ì¥ó¥¹¤È¤¤¤ï¤ì¤ë¤â¤Î¤Ç¤¹¡£¹¬¤¤Web¾å¤Ë¥ê¥Õ¥¡¥ì¥ó¥¹¤òºÜ¤»¤Æ¤¤¤ë¥µ¥¤¥È¤¬¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¡£¤â¤Î¤Ë¤è¤Ã¤Æ¤Ï¡¢ÃúÇ«¤Ê²òÀâ¤äÎ㤬ºÜ¤Ã¤Æ¤¤¤Þ¤¹¡£
º£°ìÅÙ¿½¤·¤Þ¤¹¡£»ä¤¿¤Á¤Ï¡¢¡ÖÀºÄ̡פ¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£Ê¸¤òÆɤó¤Ç¤Ê¤ó¤È¤Ê¤¯°ÕÌ£¤¬¤ï¤«¤ì¤Ð¤¤¤¤¤Î¤Ç¤¹¡£¤Ç¤¹¤«¤é¡¢¥ê¥Õ¥¡¥ì¥ó¥¹´Ý°Åµ¤ÎɬÍפϤʤ¯¡¢¤ï¤«¤é¤Ê¤¯¤Ê¤Ã¤¿ÅÔÅ٤˻²¾È¤¹¤ì¤Ð¤¤¤¤¤Î¤Ç¤¹¡£
¤È¤Ï¤¤¤Ã¤¿¤â¤Î¤Î¡¢¤¤¤¤Ê¤ê¤Þ¤Ã¤¿¤¯¤Î½é¿´¼Ô¤¬¼½ñ¤À¤±¤Ç±Ñʸ¤òÆɤळ¤È¤Ï¤Ê¤«¤Ê¤«¤Ëº¤Æñ¤Ç¤¹¡£¤È¤¤¤¦¤Î¤â¡¢Ê¸¤Ë¤Ïʸˡ¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£¤³¤ì¤Ï¥×¥í¥°¥é¥à¸À¸ì¤Ç¤â¤Þ¤Ã¤¿¤¯Æ±¤¸¤³¤È¤Ç¤¹¡£Ã±¸ìñ¸ì¤Î°ÕÌ£¤È¡¢¤³¤ì¤é¤ÎʤӤ䵬§¤Ë¤è¤Ã¤Æ°ÕÌ£¤¬·è¤Þ¤ê¤Þ¤¹¡£
¼ÂÎã¤òÁ°½Ò¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»²¾È¤¹¤ë¤Ê¤É¤·¤Æ¸«¤Æ¤ß¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£¤³¤³¤Ê¤É¡¢Îã¤È²òÀ⤬ÃúÇ«¤Ë¤Ê¤µ¤ì¤Æ¤¤¤ë¤È¤³¤í¤Ï¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¡£¼«Ê¬¤Ë¤¢¤Ã¤¿¤È¤³¤í¤ò¸«¤Ä¤±¤Æ¡¢¥Ö¥Ã¥¯¥Þ¡¼¥¯¤·¤Æ¤ª¤¯¤È¤¤¤¤¤È»×¤¤¤Þ¤¹¡£
¼¡²ó°Ê¹ß¤ÎËÜÊԤ˿ʤà¤Þ¤Ç¤Ë¡¢ÊÑ¿ôÀë¸À¡¢¥Ý¥¤¥ó¥¿¡¼¡¢¹½Â¤ÂΡ¢¿ôÃͱ黻¡¢´Ø¿ô¤ÈÌá¤êÃͤʤɤδðÁäò¤Ê¤ó¤È¤Ê¡¼¤¯Íý²ò¤·¤Æ¤¯¤ì¤ì¤Ð½½Ê¬¤Ç¤¹¡£
¿ô³Ø¡¡¤¢¤ë¤È¡¡¤¤¤¤¤Ê
¿ô³Ø¡½¡£¤ß¤Ê¤µ¤ó¤Ï¤É¤ó¤Ê»×¤¤½Ð¤¬¤¢¤ë¤Ç¤·¤ç¤¦¤«¡£³ØÀ¸¤Î³§¤µ¤ó¤Ë¤È¤Ã¤Æ¤Ï¸½ºß¿Ê¹Ô·Á¤Ç³Ø½¬¤·¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¤«¡£
¤³¤Î¥½¡¼¥¹¥³¡¼¥ÉÃæ¤Ç»È¤ï¤ì¤Æ¤¤¤ë¿ô³ØŪ¤ÊÍ×ÁǤǰìÈÖº¤¤Ã¤¿¤Á¤ã¤ó¤È»×¤ï¤ì¤ë¤Î¤¬¡¢¥Ù¥¯¥È¥ë¤Ç¤¹¡£¤·¤«¤â¤¢¤Ã¤Á¤³¤Ã¤Á¤Ç½Ð¤Æ¤¤Þ¤¹¡£¤È¤¤¤¦¤Î¤â¡¢ET¤Ï¸À¤ï¤º¤â¤¬¤Ê¡¢3D¤Ç¤¹¡£¥Ý¥ê¥Ý¥ê¥Ý¥ê¥´¥óËþºÜ¤Ç¤¹¡£3D¤Ï¤´Â¸ÃΤÎÄ̤ꡢºÂɸ¤òɽ¤¹¤¿¤á¤Ëxyz¤Î3¤Ä¤¬É¬Íפˤʤê¤Þ¤¹¡£¤³¤Î3¤Ä¤ò°ì¤Ä¤Î¤â¤Î¤È¤·¤Æɽ¸½¤·¤¿¤â¤Î¤¬¥Ù¥¯¥È¥ë¤Ç¤¹¡£
¥Ù¥¯¥È¥ë¤âÉáÄ̤οô»ú¤ÈƱ¤¸¤è¤¦¤Ë¡¢Â¤·»»°ú¤»»¡¢³Ý¤±»»(ÆâÀѳ°ÀÑ)¤¬¤¢¤ê¤Þ¤¹¡£¼ÂºÝ¤Ë¤É¤ó¤Ê·×»»¤ò¤¹¤ë¤Î¤«Ëº¤ì¤Á¤ã¤Ã¤¿¿Í¤Ï¡¢ÀΤζµ²Ê½ñ¤ò°ú¤ÃÄ¥¤ê½Ð¤·¤Æ¤¯¤ë¤«Web¤ò¸¡º÷¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¤Í¡£
¥Ù¥¯¥È¥ë¤Ë¤¢¤Ã¤ÆÉáÄ̤οô»ú¤Ë¤Ê¤¤Í×ÁǤˡ¢Êý¸þ¤¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡£2¤Ä¤Î¥Ù¥¯¥È¥ë±é»»¤Î·ë²Ì¤Ï¡¢±ý¡¹¤Ë¤·¤Æ2¥Ù¥¯¥È¥ë¤ÎÊý¸þ¤Î·¤¤¶ñ¹ç¤Ë¤è¤Ã¤ÆÂ礤¯ÊѤï¤ê¤Þ¤¹¡£ET¤Ç¤â¤³¤ÎÀ¼Á¤òÍøÍѤ·¤Æ¡¢¥Ê¥¤¥Õ¤Ç¤Î¥Ð¥Ã¥¯¥¹¥¿¥ÖȽÄê¡¢MG¤Î¼Í³¦À©¸Â¤Ë»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
¥Ù¥¯¥È¥ë°Ê³°¤Ë¡¢ÏÀÍý±é»»¤Ë¤Ä¤¤¤Æ¤âÃΤäƤ¤¤ë¤È²¿¤«¤ÈÍÍø¤Ç¤¹¡£ÏÀÍý±é»»¤È¤Ï¡¢´Êñ¤Ë¸À¤¨¤Ð0¤«1¤«¡¢±³¤«¿¿¤«¤È¤¤¤¦¤³¤È¤òȽÄꤹ¤ë·×»»¤À¤È»×¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¤½¤·¤Æ¥Ó¥Ã¥È·×»»(Æó¿Ê¿ô·×»»)¤â¤Á¤ç¤Ã¤È»È¤ï¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¸«´·¤ì¤Ê¤¤·×»»¤¬½Ð¤Æ¤¤¿¤é¤³¤ì¤â¸¡º÷¥¡¼¥ï¡¼¥É¤Ë¤·¤Æ¤ß¤ë¤È¤¤¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
Éѽй½Â¤ÂÎ
»ä¤ÏC¤Î¥³¡¼¥ÉÍý²ò¤Ï¥Ç¡¼¥¿¹½Â¤¤ÎÍý²ò¤«¤é»Ï¤Þ¤ë¤â¤Î¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£¤½¤³¤Ç¡¢ŽºŽ°ŽÄŽÞÃæ¤Ç»È¤ï¤ì¤Æ¤ª¤ê¡¢¤³¤ì¤À¤±¤ÏÃΤäƤ¤¤ÆÍߤ·¤¤¹½Â¤ÂΤˤĤ¤¤Æ¾Ò²ð¤·¤Þ¤¹¡£
gentity_t¡¡¤³¤ì¤Ç¤â¤«¤È¤¤¤¦¤¯¤é¤¤¡¢¥½¡¼¥¹¥³¡¼¥É³Æ½ê¤Ë½Ð¸½¤·¤Þ¤¹¡£¤³¤ÎÀë¸À¤Ïg_local.h¤Ç¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¼ÂºÝ¤³¤ì¤Ï¤É¤ó¤Ê¥Ç¡¼¥¿¤«¤È¤¤¤¦¤È¡¢¥²¡¼¥àÃæ¤Ç°·¤¦ÍÍ¡¹¤Ê¥ª¥Ö¥¸¥§¥¯¥È(±Ñ¸ì¤Çentity)Á´È̤Ǥ¹¡£¥ª¥Ö¥¸¥§¥¯¥È¤Î¼ïÎऴ¤È¡¢Î㤨¤ÐÉð´ï¡¦¥×¥ì¥¤¥ä¡¼¡¦ÃÆ¡¦¥Þ¥Ã¥×Ãæ¤ÎʪÂΤʤɤʤɤˤ½¤ì¤¾¤ìʬ¤±¤ÆÄêµÁ¤·¤Æ¤¤¤¿¤Î¤Ç¤ÏÌÌÅݤǤ¹¤·¡¢¤Ê¤Ë¤è¤ê³ÈÄ¥À¤ÈÈÆÍÑÀ¤ËÌäÂ꤬½Ð¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤½¤³¤Ç¡Ö¤â¤Î¡×¤È¤·¤Æ¹¤¯ÄêµÁ¤µ¤ì¡¢ÍÍ¡¹¤Ê¥×¥í¥Ñ¥Æ¥£¤òÀßÄê¤Ç¤¤ë¤è¤¦¤Ë¤µ¤ì¤Æ¤¤¤ë¹½Â¤ÂΤ¬gentity_t¤Ç¤¹¡£¥½¡¼¥¹¥³¡¼¥ÉÃæ¤Ç¤³¤ÎÀë¸À¤ò¸«¤¿¤é¡¢²¿¤«°ÕÌ£¤Î¤¢¤ë¤â¤Î¤Ê¤ó¤À¤Ê¡¢ÄøÅ٤˹ͤ¨¤Æ¤¯¤À¤µ¤¤¡£
vec3_t¡¡¿ô³Ø¤Î¥»¥¯¥·¥ç¥ó¤Ç¿½¤·¤Þ¤·¤¿¤è¤¦¤Ë¡¢ET¤Ï3¼¡¸µ¶õ´Ö¤Ç°ÌÃ֤䱿ư¤ò·×»»¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Î°·¤¤¤Î¤¿¤á¤Ë¤Ï¥Ù¥¯¥È¥ë¤¬ÊØÍø¤Ç¤¹¡£¤³¤Î¥Ù¥¯¥È¥ë¤ò¹½Â¤ÂΤȤ·¤ÆÄêµÁ¤·¤Æ¤¤¤ë¤Î¤¬vec3_t¤Ç¤¹¡£Ãæ¿È¤Ïñ¤Ëfloat¤¬3¤Ä¤Ç¤¹¡£¤½¤ì¤¾¤ì¡¢xyz¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£
qboolean¡¡ÏÀÍý±é»»¤Î¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£¤Ä¤Þ¤ê¿¿¤«µ¶¤«¤ò¤½¤ì¤¾¤ìqtrue¤â¤·¤¯¤Ïqfalse¤È¤·¤Æ³ÊǼ¤·¤Þ¤¹¡£¤Ï¤Ã¤Á¤ã¤±0¤«1¤«¤Ç¤¹¡£
¤³¤ì°Ê³°¤Ë¤â¤è¤¯½Ð¤Æ¤¯¤ë¹½Â¤ÂΤϤ¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¤¬¡¢Á´¤Æ¾Ò²ð¤¹¤ë¤ï¤±¤Ë¤Ï¤¤¤¤Þ¤»¤ó¡£¤½¤³¤Ç¡¢ÉÔÌÀ¤Ê¹½Â¤ÂΤ˽вñ¤Ã¤¿¤é¡¢À§ÈóÄêµÁ²Õ½ê¤ò¸¡º÷¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£¥Æ¥¥¹¥È¥¨¥Ç¥£¥¿¡¼¤Ç¥½¡¼¥¹¥³¡¼¥É¤ò¸«¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¡¢grep¤Ê¤É¤Î¸¡º÷¥½¥Õ¥È¤ò»È¤¨¤Ð¥³¡¼¥É¥Õ¥¡¥¤¥ë·²¤«¤éõ¤·½Ð¤¹¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤Þ¤È¤á
Íý²ò¤Î½õ¤±¤È¤Ê¤ëÃμ±¤Î¾Ò²ð¤À¤±¤·¤Þ¤·¤¿¡£¶ñÂÎŪ¤Ê¤³¤È¤Ï²¿¤Ò¤È¤Ä¤·¤Þ¤»¤ó¡£¼¡²ó¤«¤é¼ÂºÝ¤Î¥³¡¼¥É¤ò¸«¤Æ¤¤¤¤Þ¤¹¡£
¤³¤³¤Ç¾Ò²ð¤·¤¿¤³¤È¤¬¡¢¥½¡¼¥¹¥³¡¼¥É¤òÆɤó¤Ç¤¤¤Æ¤ï¤±¤Î¤ï¤é¤Ê¤¤Éôʬ¤Ë½Ð¤¯¤ï¤·¤¿»þ¡¢¤É¤¦¤¹¤ì¤Ð¤è¤¤¤«¤Î»Ø¿Ë¤È¤Ê¤ì¤Ð¹¬¤¤¤Ç¤¹¡£
Åê¹Æ¼Ô ikanatto : 06:10 PM | ¥³¥á¥ó¥È (1567)
W:ET¥½¡¼¥¹¥³¡¼¥ÉϯÆɲñ¡¡¥¬¥¤¥À¥ó¥¹
Reading the Source Code of W:ET :Guidance
¤Ï¤¸¤á¤Ë What would we discuss?
³§Íͤ³¤ó¤Ë¤Á¤Ï¡£¥Í¥¿¤Ëµç¤¹¤ë;¤ê¤³¤ó¤ÊÆóÈÖ¡¢»°ÈÖÀù¤¸°Ê¾å¤Ë»È¤¤¸Å¤µ¤ì¤¿¥Í¥¿¤Ç¶²½Ì¤Ç¤¹¡£¤³¤³¤Ï¥½¡¼¥¹¥³¡¼¥É¤òÆɤळ¤È¤ÇÆ°ºî¸¶Íý¤òÃΤꡢ¥×¥ì¥¤¤Î½õ¤±¤ä²þ¤¤Î°ìÊâ¤È¤Ê¤ë¤è¤¦¤Ê¤â¤Î¤òȯ¸«¤·¤Æ¤¤¤³¤¦¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£¤³¤ó¤Ê¥Í¥¿Google¤Ê¤ó¤«¤Ç¸¡º÷¤¹¤ë¤È¡¢¤½¤ì¤³¤½À±¤Î¿ô¤Û¤É½Ð¤Æ¤¤Þ¤¹¤¬¡¢²¿¤è¤ê»ä¼«¿È¤Î¶½Ì£Ë̤ܰΤ¿¤á¤Î´ë²è¤Ê¤Î¤Ç¡¢¤É¤¦¤«¤´ÍƼϤò¡£°ì±þ»äÆüËܿͤΤĤâ¤ê¤Ç¤¹¤¬ÆüËܸì¤ò¸í¤ë¾ì¹ç¤â¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢ËÜʸÃæÊѤÊɽ¸½¤Ë½Ð¤¯¤ï¤·¤Æ¤â¶Ã¤«¤º¡¢Íî¤ÁÃ夤¤ÆÈòÆñ·ÐÏ©¤ò³Îǧ¤·¤Æ®¤ä¤«¤Ë»à¤ó¤À¤Õ¤ê¤ò¤·¤Æ¤Í¤®¤ò¤ª¤·¤ê¤«¤éÁÞÆþ¤·¤Æ¤¯¤À¤µ¤¤¡£
¥½¡¼¥¹¥³¡¼¥ÉÆþ¼ê Getting the Source Code
»ä¼«¿È¡¢¿¦¶È¥×¥í¥°¥é¥Þ¡¼¤Ç¤â²¿¤Ç¤â¤Ê¤¤Ã±¤Ê¤ë¥²¡¼¥Þ¡¼¤Ç¤¹¤«¤é¡¢¥½¡¼¥¹¥³¡¼¥É¤ÎÀµ³Î¤Ê°ÕÌ£¤Ï¡©¤Èʹ¤«¤ì¤¿¤éÊÖÅú¤Ëº¤¤ê¤Þ¤¹¡£»ä¤¬¤³¤³¤Ç¼è¤ê¾å¤²¤ë¤â¤Î¤Ï¡¢Splash Damage(°Ê²¼SD)¤È¤«id software¤¬¥ê¥ê¡¼¥¹¤·¤¿Wolfenstein:Enemy Territory(°Ê²¼ET)¤È¤¤¤¦¥²¡¼¥à¤Ç¤¹¡£¤³¤ì¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤ò¹½À®¤¹¤ë¥×¥í¥°¥é¥à¡¢¤¤¤ï¤æ¤ë¥½¡¼¥¹¥³¡¼¥É¤òÃæ¿´¤Ë¸«¤Æ¤¤¤¤Þ¤¹¡£¤³¤Î¥½¡¼¥¹¥³¡¼¥É¤ÏSD¤Î¥µ¥¤¥È¤Ë¤Æ¸ø³«¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¼ÂºÝ¤Î¤â¤Î¤ò¸«¤Æ¤ß¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢À§Èó¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£¤Á¤Ê¤ß¤Ë¤³¤³¤Ç¸ø³«¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¥²¡¼¥àÉôʬ¤Î¤ß¤Ç¤¢¤ê¡¢²èÌ̤ÎÉÁ¼Ì¤äÄÌ¿®¤Ê¤É¤Î¥¨¥ó¥¸¥óÉôʬ¤Ï̤¤À¤Ë¸ø³«¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¤³¤Á¤é¤Ïid¤Î¥é¥¤¥»¥ó¥¹ÈÎÇäÉôʬ¤Ê¤Î¤Ç¡¢»þ´ü¤¬Íè¤ì¤Ð¸ø³«¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£³Ú¤·¤ß¤Ç¤¹¡£
¥½¡¼¥¹¥³¡¼¥É¤ò°·¤¦ Browsing and Compling the Source Code
ºÆ»°¿½¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢»ä¤Ï¥×¥í¥°¥é¥Þ¡¼¤Ç¤âSE¤Ç¤â²¿¤Ç¤â¤¢¤ê¤Þ¤»¤ó¡£Ã±¤Ê¤ë¥²¡¼¥Þ¡¼¤Ç¤¹¡£¤³¤ì¤«¤é¾Ò²ð¤¹¤ë¤Î¤Ï¥½¡¼¥¹¥³¡¼¥É¤òÆɤó¤À¤ê¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤ê¤¹¤ë´Ä¶¤Ë¤Ä¤¤¤Æ¤Ç¤¹¤¬¡¢¤³¤ì°Ê³°¤Ç¤â¤´¼«¿È¤¬»È¤¤¤ä¤¹¤¤¤È´¶¤¸¤ë¤â¤Î¤òÀ§Èó»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤·¤Æ»È¤¤¾¡¼ê¤Ê¤É¤Ë¤Ä¤¤¤ÆÀ§È󶵤¨¤Æ¤¯¤À¤µ¤¤¡£
¥×¥í¥°¥é¥à¥³¡¼¥É¤Ï¡¢ËàëÅÉԻ׵ĤÊʸ»ú¤äµ¹æ¤¬¤Ò¤¿¤¹¤é¤ËÍåÎó¤·¤¿¤â¤Î¤Ç¤¹¤¬¡¢½êÁ§¤Ï¥Æ¥¥¹¥È¤Ç¤¹¡£¤³¤ì¤òÆɤà¤À¤±¤Ê¤éNotepad¤Ê¤É¤Î¥Æ¥¥¹¥È¥¨¥Ç¥£¥¿¡¼¤¬¤¢¤ì¤Ð½½Ê¬¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¤·¤«¤·¡¢»ä¤É¤â¤Ï¥³¡¼¥É¤ò¼öʸ¤Î¤è¤¦¤Ë¾§¤¨¤ë¤À¤±¤ÇÉÔ½½Ê¬¤Ç¡¢¤³¤Î°ÕÌ£¤òÍý²ò¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤½¤·¤Æ¥½¡¼¥¹¥³¡¼¥É¤Ï²¿Ëü¹Ô¤Ë¤âÅϤê¤Þ¤¹¤Î¤Ç¡¢¸úΨŪ¤Ë¤³¤ì¤òÁàºî¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
»ý¤Ã¤Æ¤¤¤ëÊý¤Ï·ë¹½¤Ê¤Î¤Ç¤¹¤¬¡¢¤¤¤¤Ê¤ê³§ÍͤËVisual Studio¤È¤¤¤Ã¤¿¹â²Á¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òÇã¤Ã¤Æ¤¯¤À¤µ¤¤¤È¤¤¤¦¤ï¤±¤Ë¤Ï¤¤¤¤Þ¤»¤ó¡£¤Ò¤È¤Þ¤ºterapad¤ä½¨´Ý¤È¤¤¤Ã¤¿¥Õ¥ê¡¼¤â¤·¤¯¤Ï¥·¥§¥¢¤Î¿µ¡Ç½¥Æ¥¥¹¥È¥¨¥Ç¥£¥¿¡¼¤ò¼ê¤ËÆþ¤ì¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£¤½¤·¤Æ¥×¥í¥°¥é¥à¥³¡¼¥É¤Ï¤³¤Î¥Æ¥¥¹¥È¤Î¤Þ¤Þ¤Ç¤Ï¼Â¹Ô¤Ç¤¤Þ¤»¤ó¤«¤é¡¢¤³¤ì¤ò¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ë¤·¤Æ¤¯¤ì¤ë¥³¥ó¥Ñ¥¤¥é¡¼¤¬É¬Íפˤʤê¤Þ¤¹¡£ET¤Î¥½¡¼¥¹¥³¡¼¥É¤ÏC¸À¸ì¤Ç¤¹¡£C++¤Ç¤âVisual C¤Ç¤âC#¤Ç¤â¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤³¤ì¤é¾å°Ì¸À¸ì¤ÏÂçÄñC¤òÆâÊñ¤·¤Þ¤¹¤Î¤Ç¡¢¤³¤ì¤é¤¤¤º¤ì¤«¤Î¥³¥ó¥Ñ¥¤¥é¡¼¤ò¼ê¤ËÆþ¤ì¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£¤Á¤Ê¤ß¤ËMicrosoft¤ÏVisual Studio¤Î¹ü³ÊÉôʬ¡¢.NET framework SDK¤ò̵½þÇÛÉÛ¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ÎÃæ¤ËC++¤¬¤¢¤ê¤Þ¤¹¤«¤é¡¢¥³¥ó¥Ñ¥¤¥ë¤Î¤ß¤Ê¤é¤Ð¤³¤ì¤Ç²Äǽ¤é¤·¤¤¤Ç¤¹¤¬¡¢»ä¤ÏÊýË¡¤¬¤ï¤«¤ê¤«¤Í¤Þ¤¹¡£¤ª´«¤á¤ÏVisual studio¤òÇã¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤Ç¤¹¡£
¤·¤«¤·ET¤ÏÀÞ³Ñ̵ÎÁ¤Î¤â¤Î¤Ç¤¹¤«¤é¡¢¥³¥ó¥Ñ¥¤¥é¡¼¤â̵ÎÁ¤ÇºÑ¤Þ¤»¤¿¤¤¤¢¤Ê¤¿¤ËBorland C++ Compiler¤ò¤ª´«¤á¤·¤Þ¤¹¡£¤³¤Á¤é̵½þÄ󶡤µ¤ì¤Æ¤¤¤ë¤Ë¤â¤«¤«¤ï¤é¤ºÈó¾ï¤Ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¦¥³¥ó¥Ñ¥¤¥é¡¼¤È¤·¤ÆÍ¥¤ì¤Æ¤¤¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢ET¤Î¥½¡¼¥¹¥³¡¼¥É¤ò¤½¤Î¤Þ¤Þ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¿¾¯¤Î¥¨¥é¡¼¤¬½Ð¤ë¤½¤¦¤Ç¤¹¡£¤³¤Á¤é¤Ê¤É¤ò»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£SD¤Î¥Õ¥©¡¼¥é¥à¤Ï¾ðÊóËþºÜ¤Ê¤Î¤Ç¡¢¤ï¤«¤é¤Ê¤¤¤³¤È¤äº¤¤Ã¤¿¤³¤È¤¬¤¢¤Ã¤¿¤éÀ§È󸡺÷¤·¤Æ¤¯¤À¤µ¤¤¤Í¡£Åú¤¨¤¬¤Ê¤¯¤È¤â¡¢Æ±¤¸¤è¤¦¤Ëº¤¤Ã¤Æ¤¤¤ë¿ÍƱ»Î¤Ç²ò·èºö¤òˤ®¤À¤¹¤³¤È¤â¤Ç¤¤Þ¤¹¤·¡£
¥½¡¼¥¹¥³¡¼¥É¤Î¹½À® Structure of the Source Code
¤³¤³¤«¤é¤Ï¥½¡¼¥¹¥³¡¼¥É¤ò°·¤¦´Ä¶¤¬¤¢¤ë¤³¤È¤òÁ°Äó¤Ë¤·¤Æ¤¤¤¤Þ¤¹¤¬¡¢¶ËÎϥƥ¥¹¥È¥¨¥Ç¥£¥¿¡¼¤À¤±¤Ç¤â½½Ê¬¤Ê¤è¤¦¤ËÇÛθ¤·¤Æ¤¤¤¤Þ¤¹¡£
¥½¡¼¥¹¥³¡¼¥É¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¡¢Å¸³«¤·¤¿¥Õ¥©¥ë¥À¤ÎÃæ¤Ë2¤Ä¤Î¥Õ¥©¥ë¥À¤Èlicense.rtf¤ÈReadme.txt¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¡£¥é¥¤¥»¥ó¥¹¤ÎÊý¤Ï¼ÂºÝ¤Ë¥³¡¼¥É¤ò²þÊѤ·¤Æ²¿¤«¤·¤è¤¦¤È¹Í¤¨¤ë¿Í¤Ïį¤á¤Æ¤¯¤À¤µ¤¤¡£Æó¼¡ÇÛÉÛ¤äÃøºî¸¢¤Ë´Ø¤¹¤ë½ÅÍ×¹àÌܤ¬¤¢¤ê¤Þ¤¹¡£Readme.txt¤ÏÁ´°÷¸«¤Þ¤·¤ç¤¦¡£¥µ¥Ý¡¼¥È¤äVC¤Ê¤É¤Ë¤Ä¤¤¤Æ¸ÀµÚ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤µ¤Æ¡¢Áá®src¤ò³«¤¤¤Æ¤ß¤Þ¤·¤ç¤¦¡£¤¤¤¯¤Ä¤«¤Î¥Õ¥©¥ë¥À¤È¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹¡£¤Þ¤º¤Ï¤³¤ì¤é¤ÎÀâÌÀ¤ò¤·¤Þ¤¹¡£
botai(¥Õ¥©¥ë¥À)¡§BOT AI¡£BOT¤Î¹ÔÆ°¤Ë´Ø¤¹¤ë¥³¡¼¥É·²¤¬¼ý¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£BOT¤Ï¥·¥ó¥°¥ë»þ¤Ç¤ÎŨ¤â´Þ¤Þ¤ì¤Þ¤¹¡£ET¤Ï¥Þ¥ë¥Á¥×¥ì¥¤ÀìÍѤʤΤǤ³¤ÎÉôʬ¤Ï¼Â¼Áµ¡Ç½¤·¤Þ¤»¤ó¡£¤è¤Ã¤Æ¥³¡¼¥É¤È¤·¤Æ´°À®¤·¤Æ¤¤¤Þ¤»¤ó¤Î¤Ç¡¢Ä¾ÀÜÍøÍѤ¬ÉÔ²Äǽ¤Ç¤¹¡£»ÄÇ°¡£
cgame(¥Õ¥©¥ë¥À)¡§Client Game¡£¥¯¥é¥¢¥ó¥È¦¤¬½èÍý¤¹¤ëÉôʬ¤Î¥³¡¼¥É·²¡£¥¯¥é¥¤¥¢¥ó¥È¦¤Ï¥µ¡¼¥Ð¡¼¤«¤éÁ÷¤é¤ì¤Æ¤¤¿¾ðÊó¤ò¸µ¤Ë¥²¡¼¥à¾õ¶·¤ò¹½ÃÛ¤·¡¢¥æ¡¼¥¶¡¼¤«¤éÆþÎϤµ¤ì¤¿¾ðÊó¤ò¥µ¡¼¥Ð¡¼¤ËÁ÷¤ê¤Þ¤¹¡£¤½¤Î½èÍý¤Ê¤É¤Ç¤¹¡£
extractfuncs(¥Õ¥©¥ë¥À)¡§Extranct Functions¡£¥½¡¼¥¹¥³¡¼¥É¤ËľÀÜ´Ø·¸¤·¤Þ¤»¤ó¡£¥³¡¼¥É¤ò´Ø¿ô¤´¤È¤ËÀÚ¤ê½Ð¤¹¥×¥í¥°¥é¥à¤È¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¡£
game(¥Õ¥©¥ë¥À)¡§Game¡£¥²¡¼¥à¤Î¥³¥¢¤È¤Ê¤ëÉôʬ¤Î¥³¡¼¥É·²¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¡£²þ¤¤¹¤ë»þ¤Ï¼ç¤Ë¤³¤³¤ò¤¤¤¸¤¯¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
ui(¥Õ¥©¥ë¥À)¡§User Interface¡£¥æ¡¼¥¶¡¼¤È¥×¥í¥°¥é¥à¤Î²Í¤±¶¶Éôʬ¡¢Æþ½ÐÎϤ䥤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë´Ø¤ï¤ë¥³¡¼¥É·²¤Ç¤¹¡£
wolf.dsw(¥Õ¥¡¥¤¥ë)¡§Visual C++¤äVisual Studio¤ò»ý¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢¤³¤ì¤òÆɤ߹þ¤à¤³¤È¤Ç¨ºÂ¤Ë¤³¤ì¤é¥½¡¼¥¹¥³¡¼¥É¤òÅý³ç¤·¤¿´Ä¶¤Ë¤Ê¤ê¤Þ¤¹¡£VC++¤ò¿ä¾©¤¹¤ëÍýͳ¤Ï¤³¤Î¤¿¤á¤Ç¤¹¡£
º£²ó¤Î¤Þ¤È¤á Summary
¤Þ¤È¤á¤ë¤Û¤É¡¢²¿¤«¤ä¤Ã¤Æ¤¤¤Þ¤»¤ó¡£º£²ó¤Ï½àÈ÷¤Ç¤¹¡£¼¡²ó¤ÏÃΤäƤ¤¤ë¤È²¿¤«¤ÈÊØÍø¤ÊÃμ±¤Î¾Ò²ð¤ò¤·¤Þ¤¹¡£
Åê¹Æ¼Ô ikanatto : 06:01 PM | ¥³¥á¥ó¥È (725)
¥ê¥ó¥¯
Link
¤¢¤Þ¤ê¥¢¥ó¥Æ¥Ê½ä¤é¤»¤Æ¤Ê¤¤¤Î¤Ç¥ê¥ó¥¯¤â¾¯¤Ê¤¤¤Ç¤¹¡£¥ê¥ó¥¯Å½¤Ã¤Æ¤â¤³¤³¤«¤éÈô¤Ö¿Í¤â¤Û¤È¤ó¤É¤¤¤Ê¤¤¤Ç¤·¤ç¤¦¤«¤é¡¢ÌµÃÇ¥ê¥ó¥¯¤´ÍƼϤ¯¤À¤µ¤¤¡ä¡ã;;
ET´ØÏ¢²ñ¼Ò
ºî¤Ã¤¿¤â¤·¤¯¤ÏÈÎÇ䤷¤Æ¤¤¤ë²ñ¼Ò¤Ç¤¹¡£
id software
º£¹¹ÀâÌÀ¤âÍפê¤Þ¤»¤ó¤è¤Í¡£
Activision
À¤³¦ºÇÂ祲¡¼¥à¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥¿¡¼¤Ç¤¹¡£À¨¤Þ¤¸¤¤µ¬ÌϤǤ¹¡£
Splash Damage
ET¤òÃ濴Ū¤Ëºî¤Ã¤¿²ñ¼Ò¤Ç¤¹¡£
Graymatter Studio
RtCW¤Î¥Þ¥ë¥Á¥×¥ì¥¤Éôʬ¤òºî¤Ã¤¿²ñ¼Ò¡£¤¹¤´¤¤¡£¤Ç¤â¥µ¥¤¥È¤¬¼ã´³¥µ¥¤¥³Æþ¤Ã¤Æ¤¤¤ëµ¤¤¬¤¹¤ëŽ¥Ž¥Ž¥¡£
Even Balance
Punk Busterºî¤Ã¤Æ¤¤¤ë²ñ¼Ò¤Ç¤¹¡£
³¤³°ET´ØÏ¢¥µ¥¤¥È
ET¤ÏÆüËܤϤâ¤Á¤í¤ó¤Î¤³¤È³¤³°¤Ç¤âÍ·¤Ð¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢ÅöÁ³³¤³°¤Ë¤âÍÍѤʥµ¥¤¥È¤¬¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¡£
Wolfenstein: Enemy Territory International Resource Site
³¤³°¤Ç¤ÏET¤Ï²¤ÊƤè¤ê¤â¤à¤·¤íÅ첤·Ï¤Î¹ñ¡¹¤ÇÈó¾ï¤ËÀ¹¤ó¤ËÍ·¤Ð¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ó¤Ê¹ñ¤Î°ì¤Ä¡¢¥É¥¤¥Ä¤Î¤³¤Á¤é¾ðÊó¥µ¥¤¥È¤ÏÎ̤⥹¥Ô¡¼¥É¤âËܲȤòο¤°¤Û¤É¡£¥¯¥é¥¤¥¢¥ó¥È¤â¥À¥¦¥ó¥í¡¼¥É¤Ç¤¤Þ¤¹¤·¡¢¥Þ¥Ã¥×¤Ê¤É¤â¤¿¤¯¤µ¤ó¤¢¤ë¤Î¤Çõ¤·Êª¤ò¤¹¤ë»þ¤Ï¤³¤³¤¬ÊØÍø¤Ç¤¹¡£
Planet Wolfenstein
Game spy·ÏÎó¤Î¥µ¥¤¥È¤Ç¤¹¡£¤½¤³¤½¤³À¹¤ê¾å¤¬¤Ã¤Æ¤¤¤Þ¤¹¡£
¹ñÆâET¾ðÊó¥µ¥¤¥È
¹ñÆâ¤ÎET¤ò°·¤¦¥µ¥¤¥È¤Ç¤¹¡£¥ê¥ó¥¯¤Ï°ìÊýŪ¤ËŽ¤Ã¤Æ¤¤¤Þ¤¹¡£
Oops! RtCW
¤³¤³¤µ¤¨¸«¤ì¤ÐET¤¹¤ë¤Î¤Ëº¤¤é¤Ê¤¤¤¯¤é¤¤¾ðÊó¤¬ËþºÜ¤Ç¤¹¡£¤·¤«¤â°ì¤Ä°ì¤Ä¤Î㤬¤·¤Ã¤«¤ê¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢°Â¿´¤·¤ÆÆɤळ¤È¤¬¤Ç¤¤Þ¤¹¡£¤¼¤Ò¸«¤Þ¤·¤ç¤¦¡£
ÒÄ Enemy Territory ÒÄ
½é¿´¼Ô¤¬É¬¤º¤ª»²¤ê¤¹¤ëÒĤǤ¹¡£½é¤á¤Æ¤Î¿Í¤Ï¤¼¤Ò¸«¤Æ¤¯¤À¤µ¤¤¡£
¹ñÆ⥯¥é¥ó
¹ñÆâ¤ÎET¤Ç³èÆ°¤ò¤·¤Æ¤¤¤ë¥¯¥é¥ó¤Ç¤¹¡£
S.W
²æ¤é¤¬¥¯¥é¥óS.W¡£³èÆ°´ü´Ö¤ÏET¤¬À¤¤Ë½Ð¤Æ¤«¤é¤È¤Û¤ÜƱ¤¸¡£¤·¤«¤·±ÆÇö¤¤¡£MAD¤µ¤ó¤¬¥µ¡¼¥Ð¡¼Î©¤Æ¤Æ¤¯¤ì¤Æ¤¤¤Þ¤¹¡£ÆâÍƤÏÉÔÄê´ü¤ËÊѤï¤ê¤Þ¤¹¤¬¡£
N
S.W¤È±ï¿¼¤¯¤ªÉÕ¤¹ç¤¤¤Î¤¢¤ë¥¯¥é¥óN¡£plapla¤µ¤ó¤¬Himatsubushi¥µ¡¼¥Ð¡¼¤òΩ¤Æ¤Æ¤¯¤ì¤Æ¤¤¤Þ¤¹¡£¤È¤Æ¤â¿Íµ¤¤Î¤¢¤ë¥µ¡¼¥Ð¡¼¤Ç¤¹¡£
¥µ¡¼¥Ð¡¼
Åŵ¤Âå¤È¥Í¥Ã¥È¥ï¡¼¥¯»ÈÍÑÎÁ¡¢¥Ï¡¼¥É¥¦¥§¥¢Âå¶â¤ÈÀßÄê»þ´Ö¤Ê¤É¤Ê¤É¿§¡¹µ¾À·¤òʧ¤Ã¤Æ¤¯¤ì¤Æ¤Þ¤Ç¥µ¡¼¥Ð¡¼¤òΩ¤Æ¤Æ¤¯¤ì¤Æ¤¤¤ë´ÉÍý¼Ô¤Ë¤Ï¤¿¤À¤¿¤ÀƬ¤¬²¼¤¬¤ë¤Ð¤«¤ê¤Ç¤¹¡£¥¢¥ê¥¬¥È¥¦¥´¥¶¥Þ¥¹¡£
TEIOU SEKKAI
ET½é´ü¤«¤é¸½ºß¤Þ¤Ç¸ºß¤·Â³¤±¡¢½é¿´¼Ô¤«¤é¾åµé¼Ô¤Þ¤Ç¹¤¯¼õ¤±Æþ¤Æ¤¯¤ì¤ë²û¤Î¹¤µ¤Ë¤Ï´¶Éþ¤Ç¤¹¡£»ä¤Ï¤º¡¼¤Ã¤È¤³¤Î¥µ¡¼¥Ð¡¼¤Ë¤ªÀ¤Ïäˤʤê¤Ã¤Ñ¤Ê¤·¤Ç¡¢¤³¤Á¤é¤Ë¤ò¸þ¤±¤Æ̲¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£
Himatsubushi server
̾Á°¤Ë¤¢¤ë¤è¤¦¤Ë¡¢³Ú¤·¤¯²Ë¤ò¤Ä¤Ö¤¹¤³¤È¤òÌÜŪ¤Ë¤·¤¿¥µ¡¼¥Ð¡¼¤Ç¤¹¡£¤¬¡¢¤Ê¤«¤Ê¤«¥¹¥Ñ¥ë¥¿¥ó¤ÊÀßÄê¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢Æä˽ŲдïÀ©¸Â¤ÈÁÀ·â¤¬¤¤Ä¤¤¤Ç¤¹¡£Ãæµé¼Ö°Ê¾å¤òÂоݤȤ·¤¿¥µ¡¼¥Ð¡¼¤Ç¤·¤ç¤¦¤«¤Í¡£
Raspberry
µã¤¯»Ò¤âÌÛ¤ë¾åµé¼Ô¸æÍÑ㥵¡¼¥Ð¡¼¡£¸í¤Ã¤Æ½é¿´¼Ô¤¬Æþ¤ë¤È¤Þ¤Ã¤¿¤¯°ã¤¦¥²¡¼¥àŸ³«¤Ëº¤ÏǤȾ׷â¤ò³Ð¤¨¤ë¤³¤ÈÀÁ¤±¹ç¤¤¡£¤Ê¤Î¤Ç»ä¤Ï¤Û¤Ã¤È¤ó¤É¹Ô¤¤Þ¤»¤ó(^^;;;;;
¤ªÌòΩ¤Á¥µ¥¤¥È
¤½¤Î¾¤«¤æ¤¤¤È¤³¤í¤Ë¼ê¤¬ÆϤ¯¥µ¥¤¥È¤Ç¤¹¡£
Quake2¤Î¥á¥Ã¥·¥å¥Õ¥¡¥¤¥ëmd2¤Î¹½Â¤¤Ë¤Ä¤¤¤Æ¡£
Q3¥¨¥ó¥¸¥ó·Ï¤Ç»ÈÍѲÄǽ¤Ê¥×¥í¥°¥é¥Þ¥Ö¥ë¥·¥§¡¼¥À¡¼¥ê¥Õ¥¡¥ì¥ó¥¹¡£
RtCW·Ï¥Þ¥Ã¥×¤ÎºîÀ®¥Á¥å¡¼¥È¥ê¥¢¥ë¡£
Q3A MODºîÀ®¥Á¥å¡¼¥È¥ê¥¢¥ë¡Ê¼ç¤Ë¥³¡¼¥Ç¥£¥ó¥°¡Ë¡£
MD3¹½Â¤¡£
Milkshape¤Ç¥â¥Ç¥ê¥ó¥°µÚ¤ÓMD3¤òºî¤ë¥Á¥å¡¼¥È¥ê¥¢¥ë¡£
UT·Ï¥×¥ì¥¤¥ä¡¼¥â¥Ç¥ëºîÀ®¥Á¥å¡¼¥È¥ê¥¢¥ë¡£
SplashDamage¤ÎForum ¤¿¤¤¤Æ¤¤¤Îµ¿Ìä¤Ï¤³¤³¤Ç¸¡º÷¤¹¤ë¤È¥Ò¥Ã¥È¤·¤Þ¤¹¡£
ET MOD List by nullSkillz. ¥á¥¸¥ã¡¼¤É¤³¤í¤«¤é¥Þ¥¤¥Ê¡¼¤Ê¤â¤Î¤Þ¤ÇÌÖÍå¡£
(A HREF="http://www.cycloserver.com/index.htm">cyclserver
UNIX¤Ç¤Î¥µ¡¼¥Ð¡¼¤ÎΩ¤ÆÊý¡ÊET¤Ç¤Ï¤Ê¤¤¤Ç¤¹¤¬¡Ë¤È¥²¡¼¥à¤Ë´Ø¤¹¤ëÌÌÇò¤¤Ï䬤¢¤ê¤Þ¤¹¡£
Åê¹Æ¼Ô ikanatto : 05:59 PM | ¥³¥á¥ó¥È (0)
ºî¤Ã¤¿¿Í
ºî¤Ã¤¿¿Í¤Ïikanatto¤Ç¤¹¡£
Ï¢ÍíÀè:mak@s13.xrea.com
±Ñ¸ì¥µ¥¤¥È:http://mak.s13.xrea.com/ET/
(Moved)
ET¤Ï¥Þ¥ë¥Á¥×¥ì¥¤¥ä¡¼Éôʬ¤¬Ìµ½þÄ󶡤µ¤ì¤Æ¤«¤é¤º¡¼¤Ã¤ÈÍ·¤ó¤Ç¤Þ¤¹¡£
22»þ¤¯¤é¤¤¤ËTEIOU SEKKAI¤µ¤ó¤äHimatsubushi¤µ¤ó¤ÇÍ·¤Ð¤»¤Æ¤â¤é¤Ã¤Æ¤¤¤Þ¤¹¡£
ÆäËTEIOU SEKKAI¤µ¤ó¤Ï¤Ò¤¸¤ç¡¼¤Ë¤è¤¯Í·¤Ð¤»¤Æ¤â¤é¤Ã¤Æ¤Þ¤¹¡£¤¤¤Ä¤â¤¹¤¤¤Þ¤»¤ó¡£
RtCW¤Ï¤ä¤Ã¤Æ¤Þ¤»¤ó¡£
¤¤¤Á¤ª¤¦SW¤È¤¤¤¦¥¯¥é¥ó¤Ê¤Î¤«¥Á¡¼¥à¤Ê¤Î¤«´ó¤ê¹ç¤¤¤Ê¤Î¤«¤Ë½ê°¤·¤Æ¤¤¤Þ¤¹¡£
http://et_sw.at.infoseek.co.jp/
¤Ç¤¹¤¬Èó¾ï¤Ë»ÄÇ°¤Ê¤¬¤é¥¯¥é¥ó¤È¤·¤Æ¤Î³èÆ°¤ÏºÇ¶á¤Ê¤«¤Ê¤«¤¢¤ê¤Þ¤»¤ó¡£
¤½¤¦¤¤¤¦¤ï¤±¤Ç¤â¤Ã¤Ñ¤é¥Ñ¥Ö¥ê¥Ã¥¯¥µ¡¼¥Ð¡¼¤Ç°ìÈ̥ץ쥤¥ä¡¼¤È¤·¤ÆÍ·¤ó¤Ç¤¤¤Þ¤¹¡£
¹¥¤¤Ê¥¯¥é¥¹¤ÏCo¤Ç¤¹¡£
¹¥¤¤ÊÉð´ï¤Ï¥Ê¥¤¥Õ¤Ç¤¹¡£
FPS¤Ï¾¤Ë³Æ¼ïMOD´Þ¤áQ2¤ÈQ3A¤ò¤è¤¯¤ä¤Ã¤Æ¤¤¤Þ¤·¤¿¡£
½éFPS¤ÏDoom2¤Ç¤¹¡£ÅÅÏòóÀþ¤ÇÂÐÀ路¤Æ¤¤¤¿¤È¤Ïº£¤È¤Ê¤Ã¤Æ¤Ï¹Í¤¨¤Ë¤¯¤¤¤â¤Î¤Ç¤¹¡£
Q3A¤ÎUrban Terror¤Ï¤ªµ¤¤ËÆþ¤ê¤Ç¡¢¤Þ¤ÀÍ·¤ó¤Ç¤¤¤Þ¤¹¡£¤³¤Á¤é¤Ç¤Ïmak¤Ã¤Æ̾Á°¤ÇÍ·¤ó¤Ç¤¤¤Þ¤¹¡£
¾¤Ë¤âÏÃÂê¤Ë¤Ê¤Ã¤¿¥²¡¼¥à¤ÏÂçÄñ¤ä¤Ã¤Æ¤Þ¤¹¡£¥·¥ê¥¢¥¹¥µ¥à¤Ê¤ó¤«¤¤¤¤¤Ç¤¹¤Í¡£¥ê¥¢¥ë·Ï¤Ç¤¹¤ÈRainbow¡¡six¤«OFP¤¬¤Ê¤«¤Ê¤«¤è¤¤¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£
¾¤Ë¤âRTS¡¢RPG¡¢SLG¤È¥¸¥ã¥ó¥ëÌä¤ï¤ºÍ·¤ó¤Ç¤¤¤Þ¤¹¡£Blizzard¼Ò¤Î¥²¡¼¥à¤Ï¤É¤ì¤âÈó¾ï¤Ë¤ä¤ê¤³¤ó¤Ç¤¤¤Þ¤¹¡£¤È¤Æ¤â¼Á¤¬¹â¤¯¥¢¥Õ¥¿¡¼¥±¥¢¤â¤è¤¤¡¢²¤ÊƤˤ·¤Æ¤ÏÈó¾ï¤ËÄÁ¤·¤¤¥Ù¥ó¥À¡¼¤Ç¤¢¤ê¥Ç¥Ù¥í¥Ã¥Ñ¡¼¤Ç¤¹¤è¤Í¡£º£¸½ºß¤ÏWC3¤ò̤¤À¤Ë¤Á¤ç¤Ã¤ÈÍ·¤ó¤Ç¤¤¤¿¤ê¤·¤Þ¤¹¡£
ºÇ¶á¤Î¥²¡¼¥à¤òÇ㤦¤È¡¢·ë¹½¤Ê³ÎΩ¤Ç¥æ¡¼¥¶¡¼Â¦¤Ç¿·¤¿¤Ë¥²¡¼¥à¤ÎÍ×ÁǤò²þÊÑ¡¢¤â¤·¤¯¤ÏÄɲäǤ¤ë¥Ä¡¼¥ë¤¬Áý¤¨¤Æ¤¤¿¤è¤¦¤Ë»×¤¤¤Þ¤¹¡£¤³¤ó¤Ê¥Á¥ã¥ó¥¹¤ÏºÇÂç¸Â¤ËÀ¸¤«¤·¤¿¤¤¤Ç¤¹¤è¤Í¡£
Åê¹Æ¼Ô ikanatto : 05:53 PM
¤³¤Î¥µ¥¤¥È¤Ë¤Ä¤¤¤Æ
¡¡¤³¤Î¥µ¥¤¥È¤ÏWolfenstein:Enemy Territory¤òÃæ¿´¤Ë¡¢ÉáÄ̤Υץ쥤¥ä¡¼¤Ë¤È¤É¤Þ¤é¤º°ìÊâƧ¤ß¹þ¤ó¤Ç¥²¡¼¥à¤Î»ÅÁȤߤò¸«¤¿¤êÄ´¤Ù¤¿¤êºî¤Ã¤¿¤ê¤·¤Æ¤ß¤è¤¦¡¼¡¢¤È¹Í¤¨¤Æºî¤ê¤Þ¤·¤¿¡£´ðËÜŪ¤Ë¤Ï»ä¤¬¤ä¤Ã¤Æ¤ß¤¿¤³¤È¡¢Ä´¤Ù¤Æ¤ß¤¿¤³¤È¤Ê¤É¤ò¥³¥ó¥Æ¥ó¥Ä²½¤·¤ÆÃÖ¤¤¤Æ¤ª¤¯¤À¤±¤Ç¤¹¤¬¡¢¤³¤³¤ò¸«¤Æ¤¯¤ì¤¿¿Í¤«¤é²¿¤é¤«¤Î¥ê¥¯¥¨¥¹¥È¤¬¤¢¤ì¤ÐÀѶËŪ¤Ë±þ¤¨¤Æ¤¤¤¤¿¤¤¤Ç¤¹¡£
¡¡¥á¥¤¥ó¤ÏET¤Î¥¹¥¥ó¤ä¥µ¥¦¥ó¥É¤Ê¤É¤ÎÃÖ¤´¹¤¨¡¢¤â¤¦¤Á¤ç¤Ã¤È¼ê¤ò¿¤Ð¤·¤Æ¥³¡¼¥ÉÊѹ¹¤Ê¤É¤ò¾Ò²ð¤Ç¤¤ì¤Ð¤È»×¤¤¤Þ¤¹¡£
¡¡»ä¸Ä¿Í¤Ï¼ç¤Ë¥³¡¼¥É¤ò¸«¤¿¤ê½ñ¤¤¤¿¤ê¡¢¥ª¥ê¥¸¥Ê¥ë¥¹¥¥ó¤òºî¤Ã¤¿¤ê¤·¤Æ¤Þ¤¹¡£³¤³°¤ÎMOD¥Á¡¼¥à¤Ç¥â¥Ç¥é¡¼¤È¥¹¥¥Ê¡¼¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¥¯¥ì¥¸¥Ã¥È¥í¡¼¥ë¤Ë»ä¤Î̾Á°¤¬½Ð¤ëÆü¤¬Íè¤ë¤«¤â¡ª¡©
¡¡¥²¡¼¥à¼«ÂΤβòÀâ¤ä¥×¥ì¥¤¥Æ¥¯¥Ë¥Ã¥¯¤Ê¤É¤Ë¤Ä¤¤¤Æ¤Ï¡¢oops!RtCW¤µ¤ó¤¬¤È¤Ã¤Æ¤â¾Ü¤·¤¯¥³¥¢¤ËÀâÌÀ¤·¤Æ¤¯¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ò¤´»²¾È¤¯¤À¤µ¤¤¤Í¡£¤Þ¤¿²òÀâ°Ê³°¤Ë¤âºÇ¿·¥Ë¥å¡¼¥¹¤ä¥¤¥ó¥µ¥¤¥À¡¼¾ðÊó¤âºÜ¤»¤Æ¤¤¤é¤Ã¤·¤ã¤¤¤Þ¤¹¤Î¤Ç¡¢À§ÈóÀ§Èó°ìÅÙ¤´Í÷¤¯¤À¤µ¤¤¡£
¡¡Wolfenstein:Enemy Territory¤Ë¤³¤ì¤«¤éÄ©¤à½é¿´¼Ô¤ÎÊý¤Ï¡¢¤³¤Á¤é¤«¤³¤Á¤é¤Ë¤ÆÁàºîÊýË¡¤ò¤Ä¤«¤ó¤Ç¤¯¤À¤µ¤¤¤Í¡£
¡¡º£¤Þ¤Ç¤ÏÊ¿°×¤Êhtml¤òľÀÜÂǤÁ¹þ¤ó¤Ç¥³¥ó¥Æ¥ó¥Ä¤òºî¤Ã¤Æ¤¤¤Þ¤·¤¿¤¬¡¢¤³¤Î¤¿¤ÓMovable Type¤òƳÆþ¤·¤Þ¤·¤¿¡£¤È¤Æ¤â´Êñ¤Ë¤¤ì¤¤¤Êʸ½ñ¤¬ºî¤ì¤ë¤Î¤Ç´¶Æ°¤·¤Æ¤¤¤Þ¤¹¡£¤¿¤À¡¢¶áº¢¤Îή¹Ô¤Ê¤Î¤«¾®¤µ¤Ê¥Õ¥©¥ó¥È¤Èø¤á¤ÎÇÛ¿§¤¬µ¤¤ËÆþ¤é¤Ê¤¤¤Î¤Ç¡¢»ëǧÀ¤ò¹â¤á¤ë¤¿¤á¤ËÇطʤò°Å¤¯¡¢Ê¸»ú¤ÏÌÀ¤ë¤¯Â礤¯¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ó¤Ê¤Ë¸«¤Ë¤¯¤¤¥Ç¥¶¥¤¥ó¤ò¹¥¤à¤È¤Ï¡¢³°¿Í¤µ¤ó¤ÏÌܤ¬¤è¤Û¤É¤¤¤¤¤Î¤Ç¤·¤ç¤¦¤«¤Í¡©
Åê¹Æ¼Ô ikanatto : 05:44 PM