grasmanek94 Geplaatst: 13 juli 2011 Rapport Geplaatst: 13 juli 2011 (bewerkt) 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: 13 juli 2011 door grasmanek94 Reageren
Big Boss Geplaatst: 13 juli 2011 Rapport Geplaatst: 13 juli 2011 Kopietje van SA-MP Forum? Desondanks toegevoegd aan release lijst. Reageren
grasmanek94 Geplaatst: 13 juli 2011 Auteur Rapport Geplaatst: 13 juli 2011 (bewerkt) Kopietje van SA-MP Forum? Desondanks toegevoegd aan release lijst. Ik ben Gamer_Z :] en ja kopietje maar vertaald Bewerkt: 13 juli 2011 door grasmanek94 Reageren
Recommended Posts
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.