[FilterScript] AE - Actors Everywhere
#1

Bom, depois de ter lanзado no fуrum oficial, vou postar aqui tambйm na nossa board.

Eu fiz esse filterscript com intuito de vocк poder adicionar Actors facilmente, apenas salvando a posiзгo na array, junto com animaзхes e skins. Vocк pode usar o FS de 2 modos:
  • 0 - Vocк define as posiзхes padrгo, animaзгo padrгo e skin padrгo e o actor й criado somente naquela posiзгo, e ele fica pra sempre na mesma posiзгo, atй o server ser desligado ou se vocк descarregar o FS, dai eles sгo deletados.
  • Nesse modo, vocк pode salvar posiзхes pro NPC passar o dia, tarde, noite e madrugada, com animaзхes diferentes, skins diferentes. Exemplo: Do horбrio 07:00 аs 13:00, vocк pode setar pra uma skin estar na praia, e quando o horбrio for mudado (seja por comando, ou RPG) pra exemplo: 14:00 (que se inicia o periodo da tarde), o FS deleta o actor da posiзгo da praia e cria onde vocк definiu pra ele passar a tarde. Compreendeu?
DEFINES
AE_MAX_ACTORS - Quantidade de actors que tiver na array
AE_MAX_OBJECTS - Quantidade de objetos que tiver na array
AE_ACTORS_CREATE_TYPE - Modo em que os actors sгo criados (0 = posiзхes padrгo / 1 = posiзхes dinвmicas)
AE_USE_GIVE_ACTOR_DMG - 1 se vai usar OnGiveDamageActor, 0 se nгo.
AE_USE_RESPAWN_ACTOR - 1 se o actor tomar tiro, vai respawnar depois, 0 se vai permanecer na mesma posiзгo.
AE_TIME_RESPAWN_ACTOR - Se AE_USE_RESPAWN_ACTOR == 1, tempo que o actor vai respawnar em ms.

COMO ADICIONAR MAIS ACTORS
Vб atй a array ACTORS_INFO, e na ъltima linha, adicione o seu actor de acordo com o script de exemplo abaixo:
Код:
{
    "NOME_DO_ACTOR",    // Aqui vocк pode dar um nome pro actor, mas й inъtil no momento.
    {X, Y, Z, ROTAЗГO},   // Aqui й a posiзгo padrгo, a que й usada se o modo de criaзгo dos actors for igual a 0
    {X, Y, Z, ROTAЗГO},   // Aqui й a posiзгo em que o actor й criado no DIA.
    {X, Y, Z, ROTAЗГO},   // Aqui й a posiзгo em que o actor й criado na TARDE.
    {X, Y, Z, ROTAЗГO},   // Aqui й a posiзгo em que o actor й criado na NOITE.
    {X, Y, Z, ROTAЗГO},   // Aqui й a posiзгo em que o actor й criado na MADRUGADA.
    0,    0,    0,    0,    0,  // Skins ID, segue a ordem: padrгo, dia, tarde, noite e madrugada
    "NONE",    "NONE", 1, // Animaзгo padrгo do actor, na ordem: anim_lib, anim_name e anim_loop
    "NONE",    "NONE", 1, // Animaзгo DIA do actor, na ordem: anim_lib, anim_name e anim_loop
    "NONE",    "NONE", 1, // Animaзгo TARDE do actor, na ordem: anim_lib, anim_name e anim_loop
    "NONE",    "NONE", 1, // Animaзгo NOITE do actor, na ordem: anim_lib, anim_name e anim_loop
    "NONE",    "NONE", 1, // Animaзгo MADRUGADA do actor, na ordem: anim_lib, anim_name e anim_loop
    true                         // Se o quer invulnerбvel ou nгo (true se sim, false se nгo)
}
*Notas importantes:
Se vocк por exemplo, quiser que o actor seja criado apenas de DIA e NOITE, apenas defina as posiзхes na array referente o DIA e da NOITE, e claro, coloque a animaзгo pro DIA e pra NOITE, e a Skins tambйm. Nas outras posiзхes, como vocк nгo quer criar, deixe a posiзгo X em 0.0, que assim, quando o horбrio do servidor for TARDE ou MADRUGADA, aquele actor nгo serб criado.

E mais uma coisa: se vocк colocar -1 pra skin, vai ser criado uma skin aleatуria para aquela posiзгo que vocк definiu.

CallRemoteFunction
Bom, caso vocк for optar por criar os actors em modo dinвmicos, vocк tem que criar uma funзгo dentro do seu gamemode, retornando qual horбrio o servidor estб no momento. Exemplo, no meu gamemode eu tenho uma funзгo chamada ServerTime, e nela eu armazeno o horбrio atual do servidor, e no final do meu gamemode, eu tenho essa funзгo:
Код:
forward ReturnServerTime(time);
public ReturnServerTime(time)
    return ServerTime;
Depois de ter feito a sua funзгo retornando o horбrio do servidor, vocк terб que ir no FS, e procurar por essa linha:
Код:
AE_HOUR = CallRemoteFunction("PUBLIC_NAME_RETUNING_HOUR", "d", 1);
Onde estб escrito PUBLIC_NAME_RETUNING_HOUR, vocк substitui pelo nome da sua funзгo que vocк criou no gamemode. No meu caso, eu substitui o PUBLIC_NAME_RETUNING_HOUR pelo nome da minha funзгo: ReturnServerTime. Й sу isso que vocк tem que fazer.

VНDEO
Eu fiz um vнdeo demonstrando um pouco, mas tб em inglкs, depois irei fazer um em portuguкs melhor. No exemplo do vнdeo, sгo os exemplos que estгo dentro do FS, que eu criei 4 actors no cemitйrio, eles estгo chorando pela morte de alguйm (no caso, a mгe do CJ), e criei mendigos embaixo do viaduto perto da delegacia LSPD. Nos 4 primeiros actors, eles sу sгo criados durante o dia, e os mendigos sу sгo usados de madrugada. Veja abaixo:
https://www.youtube.com/watch?v=JuHf5PtFaMg (Ativem o HD)

DOWNLOAD
Pastebin

Bom pessoal, eu sei que parece estar confuso o tуpico, mas qualquer dъvida, pode me chamar. Quem for mais experiente, sу de olhar o FS jб vai entender o funcionamento dele todo
Reply
#2

bem legal cara vou testar ele
Reply
#3

Interessante.. Pode ajudar bastante quem for trabalhar com Actors.
Reply
#4

Achei realmente muito interessante a sua ideia.

Quando vi pelo nome pensei que era ligado a algo do pedestres do single player.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)