Welcome, Guest |
You have to register before you can post on our site.
|
Online Users |
There are currently 273 online users. » 1 Member(s) | 269 Guest(s) Bing, Google, Yandex, Gabc
|
Latest Threads |
[Request] Linko Gaming Ro...
Forum: General Discussions
Last Post: JamesC
Yesterday, 07:34 PM
» Replies: 0
» Views: 17
|
RevolutionX DM/Stunt/Race...
Forum: Advertisements
Last Post: DerekZ905
2025-06-18, 03:12 PM
» Replies: 0
» Views: 50
|
samp-cef
Forum: Questions and Suggestions
Last Post: jamespssamp
2025-06-18, 11:36 AM
» Replies: 0
» Views: 32
|
SA-MP Crash
Forum: General Discussions
Last Post: davidfreeman
2025-06-11, 04:58 AM
» Replies: 0
» Views: 171
|
Offering Pawn Scripting S...
Forum: Pawn Scripting
Last Post: Mido
2025-06-07, 01:30 PM
» Replies: 0
» Views: 262
|
How to make your GTA SA:M...
Forum: Tutorials
Last Post: NoxxeR
2025-06-07, 06:48 AM
» Replies: 3
» Views: 1,208
|
discord ban
Forum: Support
Last Post: NickS
2025-06-07, 06:23 AM
» Replies: 2
» Views: 490
|
Sons of silence Motorcycl...
Forum: Advertisements
Last Post: thongek.wpm
2025-06-03, 02:24 PM
» Replies: 0
» Views: 355
|
Empire Freeroam Roleplay ...
Forum: Advertisements
Last Post: krishgamer1964
2025-06-03, 11:25 AM
» Replies: 0
» Views: 414
|
Script[gamemodes/gamemode...
Forum: Pawn Scripting
Last Post: jeppe9821
2025-06-01, 09:27 AM
» Replies: 0
» Views: 395
|
|
|
[SERVER-WEB]-[BUG] Reputation |
Posted by: Mugsy - 2019-04-14, 03:51 PM - Forum: Support
- Replies (9)
|
 |
Good community, I wanted to report that there is an error in the WEB service, you can not give reputation in the forum, or at least in my account that I already have more than 80 messages published, thank you and inform if it is a bug or a limitation.
- Google translator
|
|
|
C?mo aprendieron Pawn? |
Posted by: G0NZ4L0 - 2019-04-14, 03:51 PM - Forum: Programaci?n
- Replies (27)
|
 |
Hola chicos, publiquen por ac? que fue los que les llevo a aprender Pawn y porque.
La m?a fue muy curiosa porque solamente lo aprend? por ayudar a un amigo porque ten?a problemas con un servidor (el cual yo administraba) y despu?s de eso me fui interesando m?s en el lenguaje y en crear cosas ?nicas.
|
|
|
Welkom op het Nederlandse forum |
Posted by: dignity - 2019-04-14, 03:05 PM - Forum: Dutch/Nederlands
- Replies (3)
|
 |
Welkom in het Nederlandse gedeelte van het forum, al is dit forum?maar tijdelijk.
Iedereen die Nederlands spreekt is welkom! Zodra de offici?le open.mp forums openen zullen we onze sectie uiteraard migreren maar dit kan nog een tijdje duren.
Algemene Regels:
1. Gedraag je / don't be a dick. Shitposten en trollen is altijd leuk maar hou het tot een minimum.
2. Volg alle open.mp / burgershot.gg regels. Dit is vanzelfsprekend.
3. Deze sectie is er voor een reden. Hou nederlandstalige gesprekken a.u.b. in deze sectie.
4. Beperk politieke / religieuze onderwerpen a.u.b. Korte gesprekken zijn geen probleem maar grote discussies en gerelateerde threads wel.
Voor het moment is er nog niet echt veel structuur op het forum dus ik zou zeggen ga gwn lekker je gang maar probeer het spammen van threads te beperken.
|
|
|
Simplex Noise - Noise Generation in PAWN |
Posted by: Crayder - 2019-04-14, 02:52 PM - Forum: Libraries
- Replies (1)
|
 |
Simplex Noise Generator!
____________________________________________________________________________________________________
Description:
This library basically adds a bunch of noise functions that you can use for various things.
So far I've converted the following functions from C to PAWN: Code: // Returns a 1D simplex noise
Float:noise1D(Float:x);
// Returns a 2D simplex noise
Float:noise2D(Float:x, Float:y);
// Returns a 3D simplex noise
Float:noise3D(Float:x, Float:y, Float:z);
// Returns a 4D simplex noise
Float:noise4D(Float:x, Float:y, Float:z, Float:w);
// Returns a 1D simplex ridged noise
Float:ridgedNoise1D(Float:x);
// Returns a 2D simplex ridged noise
Float:ridgedNoise2D(Float:x, Float:y);
// Returns a 3D simplex ridged noise
Float:ridgedNoise3D(Float:x, Float:y, Float:z);
// Returns a 4D simplex ridged noise
Float:ridgedNoise4D(Float:x, Float:y, Float:z, Float:w);
// Returns a 1D simplex noise with analytical derivative.
dnoise1D(Float:x, &Float:rx, &Float:ry)
// Returns a 2D simplex noise with analytical derivatives.
dnoise2D(Float:x, Float:y, &Float:rx, &Float:ry, &Float:rz)
// Returns a 3D simplex noise with analytical derivatives.
dnoise3D(Float:x, Float:y, Float:z, &Float:rx, &Float:ry, &Float:rz, &Float:rw)
// Returns a 2D simplex cellular/worley noise
Float:worleyNoise2D(Float:x, Float:y)
// Returns a 3D simplex cellular/worley noise
Float:worleyNoise3D(Float:x, Float:y, Float:z)
// Returns a 2D simplex smooth cellular/worley noise
Float:worleyNoise2D_F(Float:x, Float:y, Float:falloff)
// Returns a 3D simplex smooth cellular/worley noise
Float:worleyNoise3D_F(Float:x, Float:y, Float:z, Float:falloff)
![[Image: NoiseGallery.jpg]](https://github.com/Crayder/SimplexNoise/raw/master/NoiseGallery.jpg)
I used parts of this for my forest generator.?I generated multiple forests over a 3000 unit radius, so it covers all of SA. It has random clearings, camp areas, and rubbish areas. It also has various trees in their own areas (kind of like biomes), bushes, and rocks;
![[Image: plants.bmp]](https://github.com/Crayder/SimplexNoise/raw/master/plants.bmp)
____________________________________________________________________________________________________
Examples:
Code: main() {
? ? printf("noise1D: %f", noise1D(-45.1231));
? ? printf("noise2D: %f", noise2D(-45.1231, 10.9453));
? ? printf("noise3D: %f", noise3D(-45.1231, 10.9453, 32.3621));
? ? printf("noise4D: %f", noise4D(-45.1231, 10.9453, 32.3621, 100.6343));
? ??
? ? printf("ridgedNoise1D: %f", ridgedNoise1D(-45.1231));
? ? printf("ridgedNoise2D: %f", ridgedNoise2D(-45.1231, 10.9453));
? ? printf("ridgedNoise3D: %f", ridgedNoise3D(-45.1231, 10.9453, 32.3621));
? ? printf("ridgedNoise4D: %f", ridgedNoise4D(-45.1231, 10.9453, 32.3621, 100.6343));
? ??
? ? new Float:rx, Float:ry, Float:rz, Float:rw;
? ? dnoise1D(100.5, rx, ry);
? ? printf("dnoise1D: %f, %f", rx, ry);
? ? dnoise2D(110.53, -20.5, rx, ry, rz);
? ? printf("dnoise2D: %f, %f, %f", rx, ry, rz);
? ? dnoise3D(110.53, -20.85, 9.12, rx, ry, rz, rw);
? ? printf("dnoise3D: %f, %f, %f, %f", rx, ry, rz, rw);
? ??
? ? printf("worleyNoise2D: %f", worleyNoise2D(13.0, -34.1));
? ? printf("worleyNoise3D: %f", worleyNoise3D(13.52321, -34.1, -34.4));
? ? printf("worleyNoise2D_F: %f", worleyNoise2D_F(13.0, -34.1, 10.0));
? ? printf("worleyNoise3D_F: %f", worleyNoise3D_F(13.52321, -34.1, -34.4, 10.0));
}
Output:Quote:noise1D: 0.117055
noise2D: -0.613689
noise3D: 0.060025
noise4D: -0.237536
ridgedNoise1D: 0.882944
ridgedNoise2D: 0.386310
ridgedNoise3D: 0.939974
ridgedNoise4D: 0.762463
dnoise1D: -0.875976, 9.531250
dnoise2D: 0.325981, -2.015559, -1.042779
dnoise3D: -0.662052, 1.085515, 0.660695, 1.227718
worleyNoise2D: 0.640313
worleyNoise3D: 0.412964
worleyNoise2D_F: 0.238459
worleyNoise3D_F: 0.173266
____________________________________________________________________________________________________
Credits:
simongeilfus for the original library in C : https://github.com/simongeilfus/SimplexNoise
____________________________________________________________________________________________________?
Downloads:
https://github.com/Crayder/SimplexNoise
|
|
|
Model Sizes Plus - Object Model Size Database |
Posted by: Crayder - 2019-04-14, 02:45 PM - Forum: Libraries
- No Replies
|
 |
Model Sizes Plus!
Basically said, this is just the better version of the old one.
____________________________________________________________________________________________________
Major Points:
- Contains SA-MP objects.
- Extreme precision (see picture below for comparison).
- Exact offsets.
- Easy to update with new versions of SA-MP (new objects).
- Adds exact bounding boxes.
- Adds exact dimensions.
- Database version has major speed improvement!
____________________________________________________________________________________________________
Note:
Don't use this if you already have ColAndreas! Just simply implement the following:Code: stock Float:GetColSphereRadius(objectmodel)
{
new Float:tmp, rad;
if(0 <= objectmodel <= 19999)
{
CA_GetModelBoundingSphere(objectmodel, tmp, tmp, tmp, rad);
return rad;
}
return 0.0;
}
stock GetColSphereOffset(objectmodel, &Float:x, &Float:y, &Float:z)
{
new Float:tmp;
if(0 <= objectmodel <= 19999)
{
CA_GetModelBoundingSphere(objectmodel, x, y, z, tmp);
return 1;
}
return 0;
}
Precision difference - Object Model 3511:
![[Image: VRB9NNb.png?1]](http://i.imgur.com/VRB9NNb.png?1)
Many (most) other objects are affected also. Many even have differences over 100, A couple have differences over 200! Kalcor can't be blamed for these faults though, he extracted the data directly form the game files.
____________________________________________________________________________________________________
Functions:
Code: GetColSphereRadius(objectmodel);[/pacoden]This gets the radius of the collision spheres for all the GTA objects used in SA (including the SA:MP objects); except skins, vehicles, and weapons. The collision sphere entirely encompases the object (for example to set the view distance accordingly). Returns 0.0 on invalid models.
[code]GetColSphereOffset(objectmodel, &Float:x, &Float:y, &Float:z);
This gets the offsets of the collision sphere for all objects. This information is kept in a separate array as it is generally less useful than the sphere radius. It indicates where the centre of the collision sphere is relative to the centre of the object, a position set to minimise the size of the sphere relative to the object. Note that you can't accurately calculate the exact center of the collision sphere without the quaternion rotation of the object, that is why this is a separate "stock" array - so it isn't included in the compiled code if not used.
Code: GetModelBoundingBox(objectmodel, &Float:MinX, &Float:MinY, &Float:MinZ, &Float:MaxX, &Float:MaxY, &Float:MaxZ)
This gets the minimum and maximum points of all objects' collision boxes.
Code: GetModelColDimensions(objectmodel, &Float:l, &Float:w, &Float:h)
This gets the dimensions of all objects.
Gets the total number of models for which collision data is stored.
Usage is VERY simple. For model IDs up to 19999, simply use that number as an index in to the data, any other IDs don't exist (but return 0.0):Code: for (new i, c = GetColCount(); i != c; )
{
printf("%f", GetColSphereRadius(i));
new Float:x, Float:y, Float:z;
GetColSphereOffset(i, x, y, z);
printf("%f %f %f", x, y, z);
}
____________________________________________________________________________________________________
Credits:
Thanks to Y-Less and Kalcor for the original release. It got us by for years!
Thanks to Pottus, Chris, and Slice for ColAndreas. Bullet phyiscs' getBoundingSphere function makes this new version possible.
____________________________________________________________________________________________________
Downloads and Links:
For database mode go here! (RECOMMENDED FOR SPEED)
For regular, advanced version go here!
Table of extreme range differences (only above 1).
|
|
|
ColAndreas - Collision Detection and Raytracing |
Posted by: Crayder - 2019-04-14, 02:38 PM - Forum: Plugins
- Replies (8)
|
 |
![[Image: in7FgoQ.gif]](http://i.imgur.com/in7FgoQ.gif)
____________________________________________________________________________________________________
Developers:
Initial Developers:
[uL]Slice
[uL]Chris420
[uL]Pottus
Latest Developers:
uint32 (new developer ?) (Where'd ya go?) - This guy fixed some major shit, including the initial SA-MP object thing.
Crayder
Codectile
____________________________________________________________________________________________________
Download today!
____________________________________________________________________________________________________
Installation Instructions:
- Navigate to the github repository's release section (link above) and download the latest version.
- If you don't need the source just download the wizard, the plugin, and include.
- Run the binary builder application. This will generate a binary in which ColAndreas load data from.
- Create a folder in your scriptfiles called "colandreas" and place the binary file there.
- Add ColAndreas to your server.cfg.
____________________________________________________________________________________________________
Current Functions:
Code: CA_ContactTest(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
CA_CreateDynamicObject_DC(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, vw = -1, interior = -1, playerid = -1, Float:streamdist = 300.0, Float:drawdist = 300.0)
CA_CreateDynamicObject_SC(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, vw = -1, interior = -1, playerid = -1, Float:streamdist = 300.0, Float:drawdist = 300.0)
CA_CreateDynamicObjectEx_DC(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:drawdistance = 0.0, Float:streamdistance = 200.0, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players)
CA_CreateDynamicObjectEx_SC(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:drawdistance = 0.0, Float:streamdistance = 200.0, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players)
CA_CreateObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, bool:add = false)
CA_CreateObject_DC(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:drawdistance = 300.0)
CA_CreateObject_SC(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:drawdistance = 300.0)
CA_DestroyAllObjects_DC()
CA_DestroyObject(index)
CA_DestroyObject_DC(index)
CA_EulerToQuat(Float:rx, Float:ry, Float:rz, &Float:x, &Float:y, &Float:z, &Float:w)
CA_FindZ_For2DCoord(Float:x, Float:y, &Float:z)
CA_GetModelBoundingBox(modelid, &Float:minx, &Float:miny, &Float:minz, &Float:maxx, &Float:maxy, &Float:maxz)
CA_GetModelBoundingSphere(modelid, &Float:offx, &Float:offy, &Float:offz, &Float:radius)
CA_GetObjectExtraID(index, type)
CA_Init()
CA_IsPlayerBlocked(playerid, Float:dist=1.5, Float:height=0.5)
CA_IsPlayerInWater(playerid, &Float:depth, &Float:playerdepth)
CA_IsPlayerNearWater(playerid, Float:dist=3.0, Float:height=3.0)
CA_IsPlayerOnSurface(playerid, Float:tolerance=1.5)
CA_QuatToEuler(Float:x, Float:y, Float:z, Float:w, &Float:rx, &Float:ry, &Float:rz)
CA_RayCastLine(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z)
CA_RayCastLineAngle(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z, &Float:rx, &Float:ry, &Float:rz)
CA_RayCastLineAngleEx(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z, &Float:rx, &Float:ry, &Float:rz, &Float:ocx, &Float:ocy, &Float:ocz, &Float:orx, &Float:ory, &Float:orz)
CA_RayCastLineExtraID(type, Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z)
CA_RayCastLineEx(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z, &Float:rx, &Float:ry, &Float:rz, &Float:rw, &Float:cx, &Float:cy, &Float:cz)
CA_RayCastLineID(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z)
CA_RayCastLineNormal(Float:startx, Float:starty, Float:startz, Float:endx, Float:endy, Float:endz, &Float:x, &Float:y, &Float:z, &Float:nx, &Float:ny, &Float:nz)
CA_RayCastMultiLine(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, Float:retx[], Float:rety[], Float:retz[], Float:retdist[], ModelIDs[], size = sizeof(retx))
CA_RayCastReflectionVector(Float:startx, Float:starty, Float:startz, Float:endx, Float:endy, Float:endz, &Float:x, &Float:y, &Float:z, &Float:nx, &Float:ny, &Float:nz)
CA_RemoveBarriers()
CA_RemoveBreakableBuildings()
CA_RemoveBuilding(modelid, Float:x, Float:y, Float:z, Float:radius)
CA_SetObjectExtraID(index, type, data)
CA_SetObjectPos(index, Float:x, Float:y, Float:z)
CA_SetObjectPos_DC(index, Float:x, Float:y, Float:z)
CA_SetObjectRot(index, Float:rx, Float:ry, Float:rz)
CA_SetObjectRot_DC(index, Float:rx, Float:ry, Float:rz)
Float:CA_GetRoomHeight(Float:x, Float:y, Float:z)
____________________________________________________________________________________________________
Loading ColAndreas:
We recommend using a filterscript to help organize your objects. There is a specific order of operations required to load successfully.
Code: public OnFilterScriptInit()
{
// Add any remove buildings (This only works once)
CA_RemoveBuilding();
// Initialize the collision world (This creates San Andreas, the entire map, excluding removed buildings)
CA_Init();
// Create objects
CA_CreateDynamicObject_SC();
return 1;
}
____________________________________________________________________________________________________
Capability Demo:
[Video: http://www.youtube.com/watch?v=aSabQWqQBkI]
____________________________________________________________________________________________________
Known Issues:
- There is no virtual world / interior support (there may never be).
|
|
|
|