gerwin1 Geplaatst: 28 augustus 2008 Rapport Geplaatst: 28 augustus 2008 (bewerkt) eey hoe maakt je een telepoort ik bedoel niet dit, dat je /berg moet type om op een berg te komen. maar gewoon bijvoorbeel bij ls politie burea in de garage bij de lift een rood rontje en als je erin staat dat je dan in het politie bureau zelf ben,, ik hoop dat juli het snapen en dat julli weten hoe je dit maakt alvast bedankt ps. ik heb al op sa-mp.com en dat forum gekeken maar daar vond ik niet zo veel Bewerkt: 28 augustus 2008 door gerwin1 Reageren
Ophion Geplaatst: 29 augustus 2008 Rapport Geplaatst: 29 augustus 2008 Dat rood rondje, is een checkpoint! Alles hierover leer je in de tutorial van Sandra. >>KLIK<< Met SetPlayerPos(playerid, X,Y,Z); kun je iemand teleporteren. (X,Y,Z zelf invullen..) Reageren
gerwin1 Geplaatst: 30 augustus 2008 Auteur Rapport Geplaatst: 30 augustus 2008 (bewerkt) Dat rood rondje, is een checkpoint!Alles hierover leer je in de tutorial van Sandra. >>KLIK<< Met SetPlayerPos(playerid, X,Y,Z); kun je iemand teleporteren. (X,Y,Z zelf invullen..) ik weet niet zeker of dit is wat ik bedoel maar als dat wel zo is dan wil ik wete hoe je dit vind het gebiedt waarin je checpoint zichtbaar is. dat is deze regel uit de totorial, Vervolgens moeten we de gebieden aangeven waarin de checkpoints zichbaar zijn. Het is {x_min, y_min, x_max, y_max}. wel hoe je dit vind als je de coordinaten zelf moet bepalen gewoon in je server en dan /save en dan {x, y, z} en dan wil ik ook wete waar ik {x_min, y_min, x_max, y_max}. en {x, y, z} moet plaatsen Bewerkt: 30 augustus 2008 door gerwin1 Reageren
Ophion Geplaatst: 30 augustus 2008 Rapport Geplaatst: 30 augustus 2008 Weet je nu wel of niet hoe je de xmin xmax ymin ymax verkrijgt? Reageren
gerwin1 Geplaatst: 30 augustus 2008 Auteur Rapport Geplaatst: 30 augustus 2008 Weet je nu wel of niet hoe je de xmin xmax ymin ymax verkrijgt? nee ik weet nog nie hoe ik xmin xmax ymin ymax verkrijg mischien een beetje dom van me Reageren
Ophion Geplaatst: 30 augustus 2008 Rapport Geplaatst: 30 augustus 2008 (bewerkt) Tuurlijk is het niet dom, ik had het zelfde probleem. Zo doe ik het altijd. !!!!!!! Zie plaatje in bijlage !!!!!!!!!!!!!!! u = de X Y Z van de positie waar de checkpoint moet komen Ymax betekend eigenlijk, de Y coordinaat (onderin) van het gebied waar je de checkpoint kan zien. Dus je doet /save bij de xmin ymax xmax ymin, en ze in deze volgorde zet: Xmin Ymin Xmax Ymax , dan heb je de correcte coordinaten. Bewerkt: 31 augustus 2008 door jovu123 Reageren
gerwin1 Geplaatst: 31 augustus 2008 Auteur Rapport Geplaatst: 31 augustus 2008 (bewerkt) Tuurlijk is het niet dom, ik had het zelfde probleem.Zo doe ik het altijd. !!!!!!! Zie plaatje in bijlage !!!!!!!!!!!!!!! u = de X Y Z van de positie waar de checkpoint moet komen Ymax betekend eigenlijk, de Y coordinaat (onderin) van het gebied waar je de checkpoint kan zien. Dus je doet /save bij de xmin ymax xmax ymin, en ze in deze volgorde zet: Xmin Ymin Xmax Ymax , dan heb je de correcte coordinaten. ik heb het geprobeert volgens de totorail alleen zit ik met 3 errors hier de errors D:\Program Files\Rockstar Games\ls deatmach\gamemodes\lvdm.pwn(39) : error 018: initialization data exceeds declared size D:\Program Files\Rockstar Games\ls deatmach\gamemodes\lvdm.pwn(45) : error 018: initialization data exceeds declared size D:\Program Files\Rockstar Games\ls deatmach\gamemodes\lvdm.pwn(928) : error 047: array sizes do not match, or destination array is too small in lijn 39 heb ik dit, {242.6623,272.7008,66.3696,1003.6406}, //Policeoffice in lijn 45 heb ik dit, {242.6623,66.3696,1003.6406,272.7008}, //Policeoffice en in lijn 928 heb ik dit, if(isPlayerInArea(i, checkCoords[j])) { als je em iets uitgebreider wil moet je het zegen Bewerkt: 31 augustus 2008 door gerwin1 Reageren
Ophion Geplaatst: 31 augustus 2008 Rapport Geplaatst: 31 augustus 2008 (bewerkt) Dan heb je bijvoorbeeld bij #define MAX_POINTS 4 staan, terwijl je 6 lijnen bij: new Float:checkCoords[MAX_POINTS][4] = { } hebt staan. Even een voorbeeld van een correcte checkpoint toevoegen: #define MAX_POINTS 1 #define CP_WANGCARS 0 // de eerste CP begint altijd bij 0, de volgende 1 new Float:checkCoords[MAX_POINTS][4] = { {-1965.8220, 287.0235, -1950.4179, 305.1774} //WangCars }; new Float:checkpoints[MAX_POINTS][3] = { {-1953.9638, 293.8115, 35.4687}//WangCars }; new checkpointType[MAX_POINTS] = { CP_WANGCARS }; Wil je nou NOG een toevoegen, verander je MAX_POINTS 2 , voeg je een #define CP_NAME 1 toe Zet je achter de laatste coordinaten een , dus het word dan: new Float:checkCoords[MAX_POINTS][4] = { {-1965.8220, 287.0235, -1950.4179, 305.1774}, //WangCars {je volgende coordinaten} // bij de laatste coordinaten geen "," }; Hetzelfde doe je bij Float:checkpoint[MAX_POINTS][3] = { (met die "," enzo..) En dan checkpointType even veranderen new checkpointType[MAX_POINTS] = { CP_WANGCARS, CP_NAME }; Het ziet er een beetje ingewikkeld uit, maar hé, het is bij mij ook geluk! EDIT: Ohh, je kan de admin area er weer uit halen, want die hoord niet bij de checkopint.. Bewerkt: 31 augustus 2008 door jovu123 Reageren
gerwin1 Geplaatst: 31 augustus 2008 Auteur Rapport Geplaatst: 31 augustus 2008 et lukt me nog steeds nie en ik heb wel de errors eruit gekregen het ziet er zo uit bij mij (begint bovenaan me script) #include <a_samp> #include <core> #include <float> forward getCheckpointType(playerID); forward isPlayerInArea(playerID, Float:data[4]); forward checkpointUpdate(); new playerCheckpoint[MAX_PLAYERS]; #pragma tabsize 0 #define MAX_POINTS 2 #define COLOR_BLUE 0x0000FFAA #define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xAA3333AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_WHITE 0xFFFFFFAA #define PocketMoney 3000 // Amount player recieves on spawn. #define INACTIVE_PLAYER_ID 255 #define GIVECASH_DELAY 3000 // Time in ms between /givecash commands. #define CP_POLICEOFFICE 0 #define CP_POLICEGARAGE 1 #define NUMVALUES 4 forward MoneyGrubScoreUpdate(); forward Givecashdelaytimer(playerid); forward SetPlayerRandomSpawn(playerid); forward SetupPlayerForClassSelection(playerid); forward GameModeExitFunc(); forward SendPlayerFormattedText(playerid, const str[], define); forward public SendAllFormattedText(playerid, const str[], define); new Float:checkCoords[MAX_POINTS][4] = { {244.7733,66.5343,1003.6406,269.4692}, //Policeoffice {242.2490,66.3347,1003.6406,88.9875} //PoliceGarage }; new Float:checkpoints[MAX_POINTS][6] = { {242.2490,66.3347,1003.6406,88.9875}, //Policeoffice {1568.6149,-1689.9760,6.2188,358.5603} //PoliceGarage }; new checkpointType[MAX_POINTS] = { CP_POLICEOFFICE, CP_POLICEGARAGE }; en dan staat dit dus onderaan me script public getCheckpointType(playerID) { return checkpointType[playerCheckpoint[playerID]]; } public isPlayerInArea(playerID, Float:data[4]) { new Float:X, Float:Y, Float:Z; GetPlayerPos(playerID, X, Y, Z); if(X >= data[0] && X <= data[2] && Y >= data[1] && Y <= data[3]) { return 1; } return 0; } public checkpointUpdate() { for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { for(new j=0; j < MAX_POINTS; j++) { if(isPlayerInArea(i, checkCoords[j])) { if(playerCheckpoint!=j) { DisablePlayerCheckpoint(i); SetPlayerCheckpoint(i, checkpoints[j][0],checkpoints[j][1],checkpoints[j][2],2); playerCheckpoint = j; } } else { if(playerCheckpoint==j) { DisablePlayerCheckpoint(i); playerCheckpoint = 999; } } } } } } en dit bij OneGameModeInit SetTimer("checkpointUpdate", 500, 1); net zoals in de totorail alleen dan met mijn telepoorts. maar als ik mijn server start zie ik geen checpoints Reageren
Ophion Geplaatst: 31 augustus 2008 Rapport Geplaatst: 31 augustus 2008 Je moet bij: new Float:checkpoints[MAX_POINTS][6] = { {242.2490,66.3347,1003.6406,88.9875}, //Policeoffice {1568.6149,-1689.9760,6.2188,358.5603} //PoliceGarage }; Alleen de X Y Z invullen. Niet xmin xmax ymin ymax Reageren
gerwin1 Geplaatst: 31 augustus 2008 Auteur Rapport Geplaatst: 31 augustus 2008 Je moet bij:new Float:checkpoints[MAX_POINTS][6] = { {242.2490,66.3347,1003.6406,88.9875}, //Policeoffice {1568.6149,-1689.9760,6.2188,358.5603} //PoliceGarage }; Alleen de X Y Z invullen. Niet xmin xmax ymin ymax het lukt me nog steeds niet wat doe ik verkeert mischien is er een makelijkere totorial of mischien kan jij et iets beter uitlegen als je tijd heb?? Reageren
Big Boss Geplaatst: 31 augustus 2008 Rapport Geplaatst: 31 augustus 2008 (bewerkt) Ik vind het veel makkelijker om voor dit soort dingen Pickups te gebruiken. Aangezien je zo'n 400 pickups kunt plaatsen en maar 1 checkpoint (als je geen streamer gebruikt). // OnGameModeInit SFPD_ENTER = CreatePickup(1239, 23, -1605.6858, 711.7867, 13.8672); // OnPlayerPickUpPickup public OnPlayerPickUpPickup(playerid, pickupid) { if(pickupid == SFPD_ENTER) { GameTextForPlayer(playerid, "~w~San Fierro~n~~b~SFPD", 3000, 1); SetPlayerPos(playerid, 246.3760, 109.2460, 1003.2188); SetPlayerInterior(playerid, 10); SetPlayerFacingAngle(playerid, 270.0); SetCameraBehindPlayer(playerid); } return 1; } Bewerkt: 31 augustus 2008 door Big Boss Reageren
Ophion Geplaatst: 31 augustus 2008 Rapport Geplaatst: 31 augustus 2008 Je kan idd makkelijker objects gebruiken. Maar als je een roleplay server wil beginnen, is een checkpoint voor velen toch iets mooier. Reageren
zwartebanaan Geplaatst: 15 september 2009 Rapport Geplaatst: 15 september 2009 (bewerkt) nu heb ik een vraagje, ik heb dit: #include <a_samp> main() { print("\n----------------------------------"); print(" Blank Gamemode by your name here"); print("----------------------------------\n"); } #define CP_ADMINHUISUIT 0 #define CP_ADMINHUISIN 1 forward getCheckpointType(playerID); forward isPlayerInArea(playerID, Float:data[4]); forward checkpointUpdate(); forward AdminArea(playerid); forward IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy); new playerCheckpoint[MAX_PLAYERS]; #define MAX_POINTS 2 new Float:checkCoords[MAX_POINTS][4] = { {2479.4077,2386.9219,2499.4077,2406.9219}, {-784.806396,487.738037,-804.806396,507.738037} }; new Float:checkpoints[MAX_POINTS][3] = { {2489.4077,2396.9219,4.2109}, {-794.806396,497.738037,1376.195312} }; new checkpointType[MAX_POINTS] = { CP_ADMINHUISIN, CP_ADMINHUISUIT, }; public OnGameModeInit() { AddPlayerClass(93, 2000.3132,1541.6012,13.5859, 0, 0, 0, 0, 0, 0, 0); SetTimer("checkpointUpdate", 500, 1); SetTimer("AdminArea", 400, 1); return 1; } public OnGameModeExit() { return 1; } public OnPlayerRequestClass(playerid, classid) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnPlayerConnect(playerid) { return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/teleport", cmdtext, true, 10) == 0) { if(IsPlayerInCheckpoint(playerid) && getCheckpointType(playerid) == CP_ADMINHUISIN) { SetPlayerPos(playerid, -804.806396,497.738037,1376.195312); SendClientMessage(playerid, 0x00FF00, "You have been teleported to Mount Chiliad!"); SetPlayerInterior(playerid,1); } else { SendClientMessage(playerid, 0xFF0000AA, "Je moet in de checkpoint van het PiratenSchip staan!"); } return 1; } if (strcmp("/teleport1", cmdtext, true, 10) == 0) { if(IsPlayerInCheckpoint(playerid) && getCheckpointType(playerid) == CP_ADMINHUISUIT) { SetPlayerPos(playerid, 2489.4077,2396.9219,4.2109); SendClientMessage(playerid, 0x00FF00, "Je bent geteleporteerd naar adminhuis!"); SetPlayerInterior(playerid,0); } else { SendClientMessage(playerid, 0xFF0000AA, "JE moet in de checkpoint staan!"); } return 1; } return 0; } public OnPlayerEnterCheckpoint(playerid) { if(getCheckpointType(playerid) == CP_ADMINHUISIN) { SetPlayerPos(playerid, -804.806396,497.738037,1376.195312); SendClientMessage(playerid, 0x00FF00, "je bent naar adminhuis geteleporteerd!"); SetPlayerInterior(playerid,1); return 1; } if(getCheckpointType(playerid) == CP_ADMINHUISUIT) { SetPlayerPos(playerid, 2489.4077,2396.9219,4.2109); SendClientMessage(playerid, 0x00FF00, "je bent uit het adminhuis getaleporteerd!"); SetPlayerInterior(playerid,0); return 1; } return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public getCheckpointType(playerID) { return checkpointType[playerCheckpoint[playerID]]; } public isPlayerInArea(playerID, Float:data[4]) { new Float:X, Float:Y, Float:Z; GetPlayerPos(playerID, X, Y, Z); if(X >= data[0] && X <= data[2] && Y >= data[1] && Y <= data[3]) { return 1; } return 0; } public checkpointUpdate() { for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { for(new j=0; j < MAX_POINTS; j++) { if(isPlayerInArea(i, checkCoords[j])) { if(playerCheckpoint[i]!=j) { DisablePlayerCheckpoint(i); SetPlayerCheckpoint(i, checkpoints[j][0],checkpoints[j][1],checkpoints[j][2],2); playerCheckpoint[i] = j; } } else { if(playerCheckpoint[i]==j) { DisablePlayerCheckpoint(i); playerCheckpoint[i] = 999; } } } } } } IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if (x > minx && x < maxx && y > miny && y < maxy) return 1; return 0; } public AdminArea(playerid) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if (IsPlayerInArea(i,97.5436, 285.1614, 1798.8602, 1940.8845) == 1) { if (!IsPlayerAdmin(i)) { GameTextForPlayer(i, "~r~ You are not allowed to enter the AdminArea!", 7000, 3); SetPlayerPos(i, 77.7069,1920.8846,17.6406); SetPlayerFacingAngle(i, 270); } } } } return 1; } maar nu heb ik dus een checkpoint in een interior en die laat hij nu niet zien kan iemand dat even fixen of vertellen hoe je dan een checkpoint in een interior zet? met de versie van sandera maar ik zie net staan dat je maar 1 checkpoint kan? maarja ik zie wel Bewerkt: 15 september 2009 door zwartebanaan Reageren
Doggi Geplaatst: 15 september 2009 Rapport Geplaatst: 15 september 2009 (bewerkt) Klein vraagje als je /save hebt gedaan,waar vind je die posities dan? Edit laat maar heb het gevonden Bewerkt: 15 september 2009 door boostboy 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.