[Bug/SRV 0.3.7] Actor does not rotated
#1

SetActorFacingAngle(actorid, Float:ang); // It is working with an error

PHP код:
/**
 * GAMEMODE
 **/
#define GAMEMODE_NAME "game (lite version)"
#include <a_samp>
#include <a_actor>
#define MAX_MSG_SIZE (256)
#define COLOR_DEFAULT (0xAAAAAAFF)
main()
{
    print(
"\n----------------------------------");
    
printf(" Gamemode '%s' loaded",GAMEMODE_NAME);
    print(
"----------------------------------\n");
}
public 
OnGameModeInit()
{
    
// Don't use these lines if it's a filterscript
    
SetGameModeText("Blank Script");
    
AddPlayerClass(01958.37831343.157215.3746269.1425000000);
    return 
1;
}
public 
OnGameModeExit()
{
    return 
1;
}
public 
OnPlayerRequestClass(playeridclassid)
{
    
SetPlayerPos(playerid1958.37831343.157215.3746);
    
SetPlayerCameraPos(playerid1958.37831343.157215.3746);
    
SetPlayerCameraLookAt(playerid1958.37831343.157215.3746);
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    return 
1;
}
public 
OnPlayerSpawn(playerid)
{
    return 
1;
}
public 
OnPlayerDeath(playeridkilleridreason)
{
    return 
1;
}
public 
OnVehicleSpawn(vehicleid)
{
    return 
1;
}
public 
OnVehicleDeath(vehicleidkillerid)
{
    return 
1;
}
public 
OnPlayerText(playeridtext[])
{
    return 
1;
}
new 
botid[MAX_ACTORS];
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if (
strcmp("/mbot"cmdtexttrue10) == 0)
    {
    
        new 
Float:xFloat:yFloat:zFloat:a;
        
GetPlayerPos(playeridx,y,z);
        
GetPlayerFacingAngle(playerida);
    
        for(new 
iMAX_ACTORSi++) {
            if(!
IsValidActor(i)) {
                
CreateActor(random(299), x,y,za);
                
SetActorHealth(i100.0);
                
//ApplyActorAnimation(botid[i], "PED", "WALK_drunk", 4.1, 1, 1, 1, 1, 0);
                //ApplyActorAnimation(botid[i], "CHAINSAW", "CSAW_1", 4.1, 1, 1, 1, 1, 0);
                //SetActorInvulnerable(botid[i], true);
                
break;
            }
        }
        return 
1;
    }
    
    if (
strcmp("/dbot"cmdtexttrue10) == 0)
    {
        for(new 
iMAX_ACTORSi++) {
            if(
IsValidActor(i)) DestroyActor(i);
        }
        return 
1;
    }
    if (
strcmp("/hbot"cmdtexttrue10) == 0)
    {
        for(new 
iMAX_ACTORSi++) {
            if(
IsValidActor(i)) SetActorHealth(i0.0);
        }
        return 
1;
    }
    if (
strcmp("/h2bot"cmdtexttrue10) == 0)
    {
        for(new 
iMAX_ACTORSi++) {
            
SetActorHealth(i100.0);
        }
        return 
1;
    }
    if (
strcmp("/abot"cmdtexttrue10) == 0)
    {
        for(new 
iMAX_ACTORSi++) {
            if(
IsValidActor(i)) {
                new 
msg[MAX_MSG_SIZE];
                new 
Float:a;
                
                
GetActorFacingAngle(ia);
                
format(msgMAX_MSG_SIZE"GetActorFacingAngle actor %d current_angle %.1f"ia);
                
SendClientMessage(playeridCOLOR_DEFAULTmsg);
                
                
SetActorFacingAngle(i180.0);
                
                
GetActorFacingAngle(ia);
                
format(msgMAX_MSG_SIZE"SetActorFacingAngle actor %d set 180.0 current_angle %.1f"ia);
                
SendClientMessage(playeridCOLOR_DEFAULTmsg);
            }
        }
                return 
1;
    }
    
    return 
0;
}
public 
OnPlayerGiveDamageActor(playeriddamaged_actoridFloat:amountweaponidbodypart) {
    if(
IsValidActor(damaged_actorid)) {
        new 
msg[MAX_MSG_SIZE];
        new 
Float:hp;
        
GetActorHealth(damaged_actoridhp);
        
format(msgMAX_MSG_SIZE"OnGiveDMG player %d <weaponid %d dmg %.1f> actor %d hp %.1f"playeridweaponidamountdamaged_actoridhp);
        
SendClientMessage(playeridCOLOR_DEFAULTmsg);
    }
    return 
1;

Reply
#2

You have no return in this command

pawn Код:
if (strcmp("/abot", cmdtext, true, 10) == 0)
{
    if(IsValidActor(0)) {

        new msg[MAX_MSG_SIZE];
        new Float:a;
                 
        GetActorFacingAngle(0, a);
        format(msg, MAX_MSG_SIZE, "GetActorFacingAngle actor %d current_angle %.1f", 0, a);
        SendClientMessage(playerid, COLOR_DEFAULT, msg);
                 
        SetActorFacingAngle(0, 180.0);
                 
        GetActorFacingAngle(0, a);
        format(msg, MAX_MSG_SIZE, "SetActorFacingAngle actor %d set 180.0 current_angle %.1f", 0, a);
        SendClientMessage(playerid, COLOR_DEFAULT, msg);
    }
    return 1;
}
Reply
#3

Quote:
Originally Posted by papedo
Посмотреть сообщение
You have no return in this command

pawn Код:
if (strcmp("/abot", cmdtext, true, 10) == 0)
{
    if(IsValidActor(0)) {

        new msg[MAX_MSG_SIZE];
        new Float:a;
                 
        GetActorFacingAngle(0, a);
        format(msg, MAX_MSG_SIZE, "GetActorFacingAngle actor %d current_angle %.1f", 0, a);
        SendClientMessage(playerid, COLOR_DEFAULT, msg);
                 
        SetActorFacingAngle(0, 180.0);
                 
        GetActorFacingAngle(0, a);
        format(msg, MAX_MSG_SIZE, "SetActorFacingAngle actor %d set 180.0 current_angle %.1f", 0, a);
        SendClientMessage(playerid, COLOR_DEFAULT, msg);
    }
    return 1;
}
It does not fix the error in SetActorFacingAngle();
Reply
#4

f**k! try it
pawn Код:
/**
 * GAMEMODE
 **/

#define GAMEMODE_NAME "game (lite version)"

#include <a_samp>
#include <a_actor>

#define MAX_MSG_SIZE (256)
#define COLOR_DEFAULT (0xAAAAAAFF)

new pactor[MAX_PLAYERS];

main()
{
    print("\n----------------------------------");
    printf(" Gamemode '%s' loaded",GAMEMODE_NAME);
    print("----------------------------------\n");
}

public OnGameModeInit()
{
    // Don't use these lines if it's a filterscript
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
}

public OnPlayerConnect(playerid)
{
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

new botid[MAX_ACTORS];
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/mbot", cmdtext, true, 10) == 0)
    {      
        new Float:x, Float:y, Float:z, Float:a;
        GetPlayerPos(playerid, x,y,z);
        GetPlayerFacingAngle(playerid, a);              
        pactor[playerid]=CreateActor(random(299), x,y,z, a);
         SetActorHealth(pactor[playerid], 100.0);                
     return 1;
    }
     
    if (strcmp("/dbot", cmdtext, true, 10) == 0)
    {
       
            if(IsValidActor(pactor[playerid])) DestroyActor(pactor[playerid]);
       
        return 1;
    }

    if (strcmp("/hbot", cmdtext, true, 10) == 0)
    {
       
            if(IsValidActor(pactor[playerid])) SetActorHealth(pactor[playerid], 0.0);  
        return 1;
    }

    if (strcmp("/h2bot", cmdtext, true, 10) == 0)
    {        
           if(IsValidActor(pactor[playerid])) SetActorHealth(pactor[playerid], 100.0);        
        return 1;
    }

    if (strcmp("/abot", cmdtext, true, 10) == 0)
    {  
            if(IsValidActor(pactor[playerid])) {

                new msg[MAX_MSG_SIZE];
                new Float:a;
                 
                GetActorFacingAngle(pactor[playerid], a);
                format(msg, MAX_MSG_SIZE, "GetActorFacingAngle actor %d current_angle %.1f", i, a);
                SendClientMessage(playerid, COLOR_DEFAULT, msg);
                 
                SetActorFacingAngle(pactor[playerid], 180.0);
                 
                GetActorFacingAngle(pactor[playerid], a);
                format(msg, MAX_MSG_SIZE, "SetActorFacingAngle actor %d set 180.0 current_angle %.1f", i, a);
                SendClientMessage(playerid, COLOR_DEFAULT, msg);            
        }
return 1;
    }
     
    return 0;
}

public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float:amount, weaponid, bodypart) {

    if(IsValidActor(damaged_actorid)) {
        new msg[MAX_MSG_SIZE];
        new Float:hp;
        GetActorHealth(damaged_actorid, hp);
        format(msg, MAX_MSG_SIZE, "OnGiveDMG player %d <weaponid %d dmg %.1f> actor %d hp %.1f", playerid, weaponid, amount, damaged_actorid, hp);
        SendClientMessage(playerid, COLOR_DEFAULT, msg);
    }
    return 1;
}
Reply
#5

It's a known bug, I have it too.
Reply
#6

Quote:
Originally Posted by PaulDinam
Посмотреть сообщение
It's a known bug, I have it too.
Did you stream out and restream? Does the new rotation apply?
Reply
#7

No I simply rotated the actor and the actor stayed at his original rotation pos when created.
Reply
#8

Try destroying it and then creating it with the new facing angle.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)