Jump to content

[PLUGIN] Drift Counter by Gamer_Z - In het Nederlands uitgelegd


grasmanek94

Recommended Posts

Aller eerst wil ik de mensen bedanken dankzij wie deze plugin 'mogelijk' was (als ik iemand ben vergeten laat het mij weten):

Pghpunkid

Incognito

Kyosaur

RyDeR`

Zeex

Rock_Ro

Nero_3D

Speciale dank aan deze mensen (voor hulp etc..):

Kyosaur

RyDeR`

Oke, je zit dus waarschijnlijk met de vraag: "Wat doet deze plugin?".

Bekijk deze video eens:

http://www.youtube.com/watch?v=f9AtUwlNOFk

Dit is 'Drifting' (en dit is ook een van mijn lievelings games).

En deze video representeerd mijn plugin:

En nu: Waarom niet in PAWN/ een Filterscript? -

Dat leg ik graag uit:

PAWN is een scripting taal die bedoeld is voor kleine scripts (Niet zulke grote gamemodes, maar PAWN kan het wel makkelijk aan :) )

en als je veel berekeningen maakt op ongeveer 500 spelers maximaal, is het geen probleem - Alle berekeningen zullen worden gedaan... In een bepaalde tijd, en deze drift berekeningen zijn zwaar en zouden heel lang duren! Wanneer PAWN een functie uitvoert, word heel de script 'gepauzeert' totdat de functie klaar is.

Dus wat deze plugin doet: Alle berekeningen worden 'achter de schermen' gedaan en zullen toch geen 'impact' moeten hebben op de rest van de server, en op bepaalde momenten voert de plugin callbacks uit wanneer: 1) Iemand met een drift start, 2) aan het driften is 3) een drift beendigd.

Okey, waar kan ik deze plugin downloaden?

De nieuwste source code, plugin (SO+DLL) en includes en alle toebehoren kunnen worden gedownload vanaf:

http://code.google.com/p/sa-mp-drift/

Bekende problemen/bugs:

- Het checken van het voertuig type is geimplementeerd, maar standaart uitgeschakeld, dus in teorie kun je driften met een vliegtuig of boot, maar om dit in te schakelen kun je de source code zelf recomilen met de definitie

#define USE_VEHICLE_MODEL_CHECK

Uitleg van de functies:


als je *_Set* ziet stelt het een waarde in die jij op geeft
als je *_Get* ziet returnt/neemt het een waarde op

//-1 betekend voor alle spelers.
native DriftSet_UpdateDelay(delay);
native DriftGet_UpdateDelay();

Waarde van het aantal TICKS tussen de updates van alles (TICK! niet seconden of miliseconden)

native DriftSet_MinimalSpeed(Float:MinimalSpeed,playerid = (-1));
native DriftGet_MinimalSpeed(&Float:MinimalSpeed,playerid = (0));

Waarde van de minimale snelheid om iets een 'drift' te laten zijn in km/h.

native DriftSet_MinimalAngle(Float:MinimalAngle,playerid = (-1));
native DriftGet_MinimalAngle(&Float:MinimalAngle,playerid = (0));

Waarde van de minimale hoek tijdens het driften om een drift toe te kennen

//native DriftSet_MaximalSpeed(Float:MaximalSpeed,playerid = (-1));
//native DriftGet_MaximalSpeed(&Float:MaximalSpeed,playerid = (0));

//native DriftSet_MaximalAngle(Float:MaximalAngle,playerid = (-1));
//native DriftGet_MaximalAngle(&Float:MaximalAngle,playerid = (0));

Deze zijn uitgeschakelt, je kunt ze zelf aanzetten in de source code en zelf compileren.

native DriftSet_StartEndDelay(delay,playerid = (-1));
native DriftGet_StartEndDelay(playerid = (0));

De waarde die de timer tussen de start van de drift heeft en het eind. Als de speler neit binnen deze tijd weer begint te driften dan zal de drift beendigd worden. Dit is ook in TICKS.

native DriftSet_Divider(divider,playerid = (-1));
native DriftGet_Divider(playerid = (0));

De waarde van de 'divider', voorkomt grote getallen bij de Drift Points. Standaart waarde: 350.

native DriftSet_DamageCheck(enable = 1,playerid = (-1));//default = disabled (0), enabled = 1
native DriftGet_DamageCheck(playerid = (0));

Zet aan/uit van het checken of de voertuig schade heeft opgelopen, indien wel dan zal de drift beendigd worden met als 'reason' (reden) dat het voertuig beschadigd was.

native IsPlayerDrifting(playerid);

Checkt of de speler een drift heeft gestart of niet.

forward OnPlayerDriftStart(playerid);

Deze public word uitgevoert wanneer iemand met een drift begint.

forward OnPlayerDriftUpdate(playerid,value,combo,flagid,Float:distance);//!!!!!

Deze plugin word uitgevoert wanneer iemand aan het driften is, dus heel veel keer per seconde.

flagid returnt de dichtsbijzijnde flag binnen 10 meter terwijl iemand aan het driften is.

value is het aantal drift points, combo spreekt voor zichzelf. distance is de afstand to de dichtbijzijnde flag - dus hoe kleiner, hoe dichter bij de flag de speler is!

#define DRIFT_REASON_TIME_EXPIRE (0)
#define DRIFT_REASON_CAR_DAMAGED (1)

forward OnPlayerDriftEnd(playerid,value,combo,reason);

Deze public word uitgevoert wanneer een speler een drift beendigd, er zijn 2 mogelijke redenen:

DRIFT_REASON_TIME_EXPIRE - de tijd om de drift hervatten is om

DRIFT_REASON_CAR_DAMAGED - het voertuig heeft schade opgelopen

native IsPlayerDrifting_precise(playerid);

Check of de speler op het moment drift.

native Drift_AddFLAG(Float:X,Float:Y,Float:Z);//returns flagid

Maakt een flag op X Y Z aan (geen objects! het is onzichtbaar), en returnt het flagid dat is aangemaakt.

native Drift_DisableFLAG(flagid);

Zet een flag uit.

native Drift_DeleteFLAG(flagid);

Verwijdert een flag, het is mogelijk om die weer te herstellen met EnableFLAG indien je niet de functie AddFLAG hebt gebruikt.

native Drift_EnableFLAG(flagid);

Zet een flag weer aan.

native Drift_MoveFLAG(flagid,Float:X,Float:Y,Float:Z);

Stelt de nieuwe coordinaten X Y Z in van een flag

native Drift_SetCheckForFlags(enabled = 1,playerid =(-1));
native Drift_GetCheckForFlags(playerid = 0);

Zet aan/uit - het checken van de spelers of die vlakbij een vlag zijn.

______________________

Is het ook voor linux beschikbaar?

de linux versie kun je downloaden van sa-mp-drift.googlecode.com.

Als je het zelf wilt compileren heb je hier de 'makefile':

# Dit is een demonstratie van hoe je DriftPointsCounter project meot compileren op Linux.
#
# Om DriftPointsCounter te compileren gebruik je het commando:
#
# make DriftPointsCounter
#

GPP = g++
GCC = gcc
DriftPointsCounter_OUTFILE = "plugins/DriftPointsCounter.so"

COMPILE_FLAGS = -m32 -fPIC -c -O3 -w -D LINUX -D PROJECT_NAME=\"DriftPointsCounter\" -I ./SDK/amx/

DriftPointsCounter = -D DriftPointsCounter $(COMPILE_FLAGS)

all: DriftPointsCounter

clean:
-rm -f *~ *.o *.so

DriftPointsCounter: clean
$(GPP) $(DriftPointsCounter) ./SDK/amx/*.c
$(GPP) $(DriftPointsCounter) ./SDK/*.cpp
$(GPP) $(DriftPointsCounter) *.cpp
$(GPP) -m32 -O2 -fshort-wchar -shared -o $(DriftPointsCounter_OUTFILE) *.o

'Have fun', nog vragen? schrijf hier!

een voorbeeld filterscript kun je vinden op sa-mp-drift.googlecode.com.

de nieuwste updates kunnen worden gevolgt via:

http://forum.sa-mp.com/showthread.php?t=267677

Bewerkt: door grasmanek94
Link to comment
Delen op andere websites

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...