SA-MP Forums Archive
[Include] views.inc - Frog, Bird, First Person and Free camera view - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Filterscripts (https://sampforum.blast.hk/forumdisplay.php?fid=17)
+---- Forum: Includes (https://sampforum.blast.hk/forumdisplay.php?fid=83)
+---- Thread: [Include] views.inc - Frog, Bird, First Person and Free camera view (/showthread.php?tid=306387)

Pages: 1 2


views.inc - Frog, Bird, First Person and Free camera view - fiki574 - 26.12.2011

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


Respuesta: views.inc - Frog, Bird, First Person and Free camera view - [DOG]irinel1996 - 26.12.2011

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


Re: views.inc - Frog, Bird, First Person and Free camera view - Kwarde - 26.12.2011

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.


Re: views.inc - Frog, Bird, First Person and Free camera view - System64 - 26.12.2011

wow, very great idea


Re: views.inc - Frog, Bird, First Person and Free camera view - Kar - 26.12.2011

Pastebin please?


Re: views.inc - Frog, Bird, First Person and Free camera view - fiki574 - 26.12.2011

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!


Re: views.inc - Frog, Bird, First Person and Free camera view - Moras - 26.12.2011

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


Re: views.inc - Frog, Bird, First Person and Free camera view - TheArcher - 26.12.2011

Nice script. CAn you upload it on pastebin?


Re: views.inc - Frog, Bird, First Person and Free camera view - fiki574 - 26.12.2011

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


Re: views.inc - Frog, Bird, First Person and Free camera view - CyNiC - 26.12.2011

Good job.

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


Re: views.inc - Frog, Bird, First Person and Free camera view - fiki574 - 26.12.2011

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!


Re: views.inc - Frog, Bird, First Person and Free camera view - Lorenc_ - 27.12.2011

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...


Re: views.inc - Frog, Bird, First Person and Free camera view - Scenario - 27.12.2011

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.


Re: views.inc - Frog, Bird, First Person and Free camera view - Niko_boy - 27.12.2011

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


Re: views.inc - Frog, Bird, First Person and Free camera view - _DownLoaD_ - 27.12.2011

Thx for the script.
i already using it



Re: views.inc - Frog, Bird, First Person and Free camera view - fiki574 - 27.12.2011

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!


Re: views.inc - Frog, Bird, First Person and Free camera view - Kyle - 27.12.2011

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.


Re: views.inc - Frog, Bird, First Person and Free camera view - §с†¶e®РµРe - 27.12.2011

n1 fiki..


Re: views.inc - Frog, Bird, First Person and Free camera view - SourceCode - 27.12.2011

cREATIVE


Re: views.inc - Frog, Bird, First Person and Free camera view - fiki574 - 27.12.2011

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