Jump to content

sa-mp?


gerwin1

Recommended Posts

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: door gerwin1
Link to comment
Delen op andere websites

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: door gerwin1
Link to comment
Delen op andere websites

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.

post-42377-1220125078.png

Bewerkt: door jovu123
Link to comment
Delen op andere websites

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: door gerwin1
Link to comment
Delen op andere websites

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! :Y

EDIT: Ohh, je kan de admin area er weer uit halen, want die hoord niet bij de checkopint..

Bewerkt: door jovu123
Link to comment
Delen op andere websites

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

Link to comment
Delen op andere websites

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

Link to comment
Delen op andere websites

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: door Big Boss
Link to comment
Delen op andere websites

  • 1 year later...

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 :eten:

maar ik zie net staan dat je maar 1 checkpoint kan? maarja ik zie wel

Bewerkt: door zwartebanaan
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...