OKStyle
| Дата: Вторник, 09/06/2015, 23:36 | Сообщение # 1 |
Analgésico
Регистрация: 17/01/2009 |
Клан: | [ACF] |
Статус: | |
| Урок был написан ещё до появления координат поворота при движении объекта. В начало:
Код new CurrentObject; new AxisOfRotation; new iteration;
В OnGameModeInit:
Код CurrentObject = CreateObject(....); // создаём объект
В OnPlayerCommandText:
Код if(!strcmp(cmd,"/rox+",true)) { new tmp[30]; tmp = strtok(cmdtext,idx); AxisOfRotation = 1; new angle = strval(tmp); iteration = angle/0.5; SetTimerEx("ObjectRotateTimer",100,iteration); return 1; } if(!strcmp(cmd,"/roy+",true)) { new tmp[30]; tmp = strtok(cmdtext,idx); AxisOfRotation = 2; new angle = strval(tmp); iteration = angle/0.5; SetTimerEx("ObjectRotateTimer",100,iteration); return 1; } if(!strcmp(cmd,"/roz+",true)) { new tmp[30]; tmp = strtok(cmdtext,idx); AxisOfRotation = 3; new angle = strval(tmp); iteration = angle/0.5; SetTimerEx("ObjectRotateTimer",100,iteration); return 1; } if(!strcmp(cmd,"/rox-",true)) { new tmp[30]; tmp = strtok(cmdtext,idx); AxisOfRotation = 4; new angle = strval(tmp); iteration = angle/0.5; SetTimerEx("ObjectRotateTimer",100,iteration); return 1; } if(!strcmp(cmd,"/roy-",true)) { new tmp[30]; tmp = strtok(cmdtext,idx); AxisOfRotation = 5; new angle = strval(tmp); iteration = angle/0.5; SetTimerEx("ObjectRotateTimer",100,iteration); return 1; } if(!strcmp(cmd,"/roz-",true)) { new tmp[30]; tmp = strtok(cmdtext,idx); AxisOfRotation = 6; new angle = strval(tmp); iteration = angle/0.5; SetTimerEx("ObjectRotateTimer",100,iteration); return 1; }
В низ мода:
Код forward ObjectRotateTimer(angle); public ObjectRotateTimer(angle) { if(iteration > 0) { if(AxisOfRotation == 1) { new Float:x,Float:y,Float:z; GetObjectRot(CurrentObject,x,y,z); SetObjectRot(CurrentObject,x+0.5,y,z); } else if(AxisOfRotation == 2) { new Float:x,Float:y,Float:z; GetObjectRot(CurrentObject,x,y,z); SetObjectRot(CurrentObject,x,y+0.5,z); } else if(AxisOfRotation == 3) { new Float:x,Float:y,Float:z; GetObjectRot(CurrentObject,x,y,z); SetObjectRot(CurrentObject,x,y,z+0.5); } else if(AxisOfRotation == 4) { new Float:x,Float:y,Float:z; GetObjectRot(CurrentObject,x,y,z); SetObjectRot(CurrentObject,x-0.5,y,z); } else if(AxisOfRotation == 5) { new Float:x,Float:y,Float:z; GetObjectRot(CurrentObject,x,y,z); SetObjectRot(CurrentObject,x,y-0.5,z); } else if(AxisOfRotation == 6) { new Float:x,Float:y,Float:z; GetObjectRot(CurrentObject,x,y,z); SetObjectRot(CurrentObject,x,y,z-0.5); } iteration--; } }
|
|
| |