[Include] views.inc - Frog, Bird, First Person and Free camera view
#1

VERSION 1.1
Released on 26/2/2012


INTRO:

Hello!

This is small include with 4 new camera views:
- Frog view (below ground and player)
- Bird view (over ground and player ---> GTA 1 and 2 style camera)
- First Person (well, name says it)
- Free view (follows player from static position)

Version 1.1:
- From five functions made just - one
- Added command /view (view-id) - you can change your view (this command is located inside the include, its ZCMD, so you will need ZCMD from Zeex; also, if you dont want it, simply open include and delete the command)
- Added _ALS_ hooking so it doesnt give you an error(s) while using this in other FS/GM

[ame]http://www.youtube.com/watch?v=B9Mb_utF2hw[/ame]

__________________________________________________ _______________________________________________

NATIVES & FUNCTIONS:

Only a single function!
pawn Код:
native SetPlayerView(playerid, cam_view);

//Change "cam_view" with following IDs of views:
0 - normal view
1 - bird view
2 - frog view
3 - first person
4 - free camera view
__________________________________________________ _______________________________________________

DOWNLOAD:

Mediafire v1.0 (outdated)
Mediafire v1.1 (newest, recommended)

__________________________________________________ _______________________________________________

BUG REPORT:

Please, report any bugs!

__________________________________________________ _______________________________________________

PROBLEM(S):

Few problems with these cameras:
1. They "lag"
2. First Person does not rotates camera

__________________________________________________ _______________________________________________

CREDITS:

ZeeX - ZCMD
aRoach - suggestion for making only a single function
fiki574_CRO - made this
Reply
#2

Hehe, good job.
It's really, amm, funny. Frog's view makes me crazy!
Reply
#3

Hmm, nice made. Only the FPS should be a little bit higher: When I walk, I see my hands lower, not as good as in front of me (unless when I walk with my arms as high as possible and then lower my hands :P).
+rep for the nice and easy script (just looked inside the code).

BTW,
You should use the define/undefine stuff: If someone is using 'OnPlayerUpdate' and when you include this, you will get errors - So you should either use the 'ALS_OnPlayerUpdate' stuff, or tell people to place this inside their gamemode/filterscript.
Reply
#4

wow, very great idea
Reply
#5

Pastebin please?
Reply
#6

Quote:
Originally Posted by irinel1996
Посмотреть сообщение
Hehe, good job.
It's really, amm, funny. Frog's view makes me crazy!
Thanks!

Quote:
Originally Posted by Kwarde
Посмотреть сообщение
Hmm, nice made. Only the FPS should be a little bit higher: When I walk, I see my hands lower, not as good as in front of me (unless when I walk with my arms as high as possible and then lower my hands :P).
+rep for the nice and easy script (just looked inside the code).

BTW,
You should use the define/undefine stuff: If someone is using 'OnPlayerUpdate' and when you include this, you will get errors - So you should either use the 'ALS_OnPlayerUpdate' stuff, or tell people to place this inside their gamemode/filterscript.
Forgot that, lol! Will use it in new version! Tnx!

Quote:
Originally Posted by System64
Посмотреть сообщение
wow, very great idea
Yep!
Reply
#7

What kind of music? You can find out the name? Cool script
Reply
#8

Nice script. CAn you upload it on pastebin?
Reply
#9

Quote:
Originally Posted by Kar
Посмотреть сообщение
Pastebin please?
Tomorrow!

Quote:
Originally Posted by Moras
Посмотреть сообщение
What kind of music? You can find out the name? Cool script
Tnx!

Song is "Shake It" by "Train"

Quote:
Originally Posted by TheArcher
Посмотреть сообщение
Nice script. CAn you upload it on pastebin?
I can, tomorrow! :P
Reply
#10

Good job.

You could add some key for the Free Camera View update from the player position.
Reply
#11

Quote:
Originally Posted by CyNiC
Посмотреть сообщение
Good job.

You could add some key for the Free Camera View update from the player position.
You mean, I add ability to move camera?

Thanks!
Reply
#12

Edit your FPS view with my one, it's much better.

Well, some parts might not work since I've last edited however, borrow the calculation for it, it's nice.

pawn Код:
/*
    *
    *
    *
    *
    *
    *
    *
    *
*/



#include <a_samp>
#include <zcmd>

public OnFilterScriptInit()
{
    return 1;
}

public OnFilterScriptExit() return 1;


public OnPlayerConnect(playerid)
{
    return 1;
}

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

public OnPlayerSpawn(playerid)
{
    SetTimerEx("fps_Update", 5, true, "d", playerid);
    return 1;
}

CMD:w(playerid, params[])
{
    GivePlayerWeapon(playerid, strval(params), 6000000);
    return 1;
}

forward fps_Update(playerid);
public fps_Update(playerid)
{
    static
        Float: Angle,
       
        Float: nX, Float: nY, Float: pX, Float: pY, Float: pZ
    ;
    GetPlayerFacingAngle(playerid, Angle);
    GetPlayerPos(playerid, pX, pY, pZ);
    pZ += 0.7; // HEAD

    SetPlayerCameraPos(playerid, pX + (1.8 * floatsin(-Angle, degrees)), pY + (1.8 * floatcos(-Angle, degrees)), pZ);
   
    GetPlayerCameraFrontVector(playerid, pX, pY, pZ);
    nX = pX - ( 4 * floatsin(-Angle, degrees) );
    nY = pY - ( 4 * floatcos(-Angle, degrees) );

    SetPlayerCameraLookAt(playerid, nX, nX, pZ);
    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;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
        // Do something here
        return 1;
    }
    return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}
EDIT:

If it doesn't work, my bad, I've edited and forgot to fix it. However, nice job anyway...
Reply
#13

Quote:
Originally Posted by Kwarde
Посмотреть сообщение
Hmm, nice made. Only the FPS should be a little bit higher: When I walk, I see my hands lower, not as good as in front of me (unless when I walk with my arms as high as possible and then lower my hands :P).
+rep for the nice and easy script (just looked inside the code).

BTW,
You should use the define/undefine stuff: If someone is using 'OnPlayerUpdate' and when you include this, you will get errors - So you should either use the 'ALS_OnPlayerUpdate' stuff, or tell people to place this inside their gamemode/filterscript.
Just use the new y_hooks syntax and it's really simple. Go into the include, include y_hooks and then replace "public OnPlayerUpdate" with "hook OnPlayerUpdate".

Anyways, it's very nice.
Reply
#14

ahahah great job..
just a comment if there a way to fix such lags :P , i thnk increase in fps can fix
NvM cheers +1 rep :d
Reply
#15

Thx for the script.
i already using it
Reply
#16

Quote:
Originally Posted by Lorenc_
Посмотреть сообщение
Edit your FPS view with my one, it's much better.

Well, some parts might not work since I've last edited however, borrow the calculation for it, it's nice.

pawn Код:
/*
    *
    *
    *
    *
    *
    *
    *
    *
*/



#include <a_samp>
#include <zcmd>

public OnFilterScriptInit()
{
    return 1;
}

public OnFilterScriptExit() return 1;


public OnPlayerConnect(playerid)
{
    return 1;
}

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

public OnPlayerSpawn(playerid)
{
    SetTimerEx("fps_Update", 5, true, "d", playerid);
    return 1;
}

CMD:w(playerid, params[])
{
    GivePlayerWeapon(playerid, strval(params), 6000000);
    return 1;
}

forward fps_Update(playerid);
public fps_Update(playerid)
{
    static
        Float: Angle,
       
        Float: nX, Float: nY, Float: pX, Float: pY, Float: pZ
    ;
    GetPlayerFacingAngle(playerid, Angle);
    GetPlayerPos(playerid, pX, pY, pZ);
    pZ += 0.7; // HEAD

    SetPlayerCameraPos(playerid, pX + (1.8 * floatsin(-Angle, degrees)), pY + (1.8 * floatcos(-Angle, degrees)), pZ);
   
    GetPlayerCameraFrontVector(playerid, pX, pY, pZ);
    nX = pX - ( 4 * floatsin(-Angle, degrees) );
    nY = pY - ( 4 * floatcos(-Angle, degrees) );

    SetPlayerCameraLookAt(playerid, nX, nX, pZ);
    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;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
        // Do something here
        return 1;
    }
    return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}
EDIT:

If it doesn't work, my bad, I've edited and forgot to fix it. However, nice job anyway...
Will try it, tnx!

Quote:
Originally Posted by RealCop228
Посмотреть сообщение
Just use the new y_hooks syntax and it's really simple. Go into the include, include y_hooks and then replace "public OnPlayerUpdate" with "hook OnPlayerUpdate".

Anyways, it's very nice.
Quote:
Originally Posted by Jagat
Посмотреть сообщение
ahahah great job..
just a comment if there a way to fix such lags :P , i thnk increase in fps can fix
NvM cheers +1 rep :d
Quote:
Originally Posted by _DownLoaD_
Посмотреть сообщение
Thx for the script.
i already using it
Thanks guys!
Reply
#17

This is really good, well done on this mate. Although for the first person you could try increasing the z angle above so the camera is near the head and maybe also move it a bit forward.
Reply
#18

n1 fiki..
Reply
#19

cREATIVE
Reply
#20

Quote:
Originally Posted by KyleSmith
Посмотреть сообщение
This is really good, well done on this mate. Although for the first person you could try increasing the z angle above so the camera is near the head and maybe also move it a bit forward.
In next version!

Quote:
Originally Posted by §с†¶e®РµРe
Посмотреть сообщение
n1 fiki..
<3
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)