ZitatAlles anzeigenFolgender Tutorial Inhalt:
Eingang/Ausgang erstellung ohne Command
Mehrer Eingänge/Ausgänge mit einem Timer ohne Command
3D TextLabels erstellen mit Text/Farbe und Radius einstellung
Beschreibung der einzelheiten
Wie man die Koordinaten/Positionen rausfindet
Informationen:
Godfather Tauglich
Mein erstes Tutorial
Erstmal nur ein einfacher ein/ausgang zum Beispiel mit einem "i" als Pickup:
Damit alle alten Eingänge/Ausgänge die von SA:MP dasind entfernt werden oben ins Script:
DisableInteriorEnterExits();
Oben bei den forwards fügst du folgendes ein:
forward UserEingangAusgang(playerid);
Oben bei den new's fügst du folgendes ein:
new UserEingangAusgangTimer;
Bei den OnGameModeInit fügst du folgendes ein:
CreatePickup(X,Y,Z,H); //Eingangs Pickup draußen vor der Tür
CreatePickup(X,Y,Z,H); //Ausgangs Pickup drine an der Tür
Bei den OnGameModeExit fügst du folgendes ein:
KillTimer(UserEingangAusgangTimer);
Und ganz nach unten im Script:
public UserEingangAusgang(playerid)
{
if (PlayerToPoint(1, playerid, X,Y,Z,H)) //Eingang - Wenn der Spieler da ist passiert folgendes...
{
SetPlayerInterior(playerid, INTERIORID); //Interior ID wird auf ID X gesetzt
SetPlayerPos(playerid, X,Y,Z,H); //Koordinaten wohin sich der Spieler begibt wenn er drine ist.
SetPlayerFacingAngle(playerid, 0.0); //Blickrichtung wohin er guckt sobald er drine ist
}
else if (PlayerToPoint(1, playerid, X,Y,Z,H)) //Ausgang
{
SetPlayerInterior(playerid, 0); //Interior ID wird auf ID 0 gesetzt (Free World)
SetPlayerPos(playerid, X,Y,Z,H); //Koordinaten wohin sich der Spieler begibt wenn er draußen ist.
SetPlayerFacingAngle(playerid, 0.0); //Blickrichtung wohin er guckt sobald er draußen ist
}
return 1;
}
Wenn du mehrer Eingänge ausgänge machen willst einfach:
z.B Zivispawn Eingang und Police Department Eingang.
public UserEingangAusgang(playerid)
{
//Los Santos Police Department Ein/Ausgang
if (PlayerToPoint(1, playerid, 1555.1205, -1675.6710, 16.1953)) // PD Eingang
{
SetPlayerInterior(playerid, 6);//Interior umstellen damit er im Interior was sieht in der Normalen Welt auf 0
SetPlayerPos(playerid, 246.7840, 63.9002, 1003.6406); //Dort hin wer er geportet beim reingehen
SetPlayerFacingAngle(playerid, 0.0);//Damit er in die richtige Richtung guckt
}
else if (PlayerToPoint(1, playerid, 246.7282, 62.7136, 1003.6406)) // PD Ausgang
{
SetPlayerInterior(playerid, 0);//Interior umstellen damit er im Interior was sieht in der Normalen Welt auf 0
SetPlayerPos(playerid, 1552.4490, -1674.9897, 16.1953);//Dort hin wer er geportet beim reingehen
SetPlayerFacingAngle(playerid, 90.0);//Damit er in die richtige Richtung guckt
}
//Los Santos Zivispawn Ein/Ausgang
else
if (PlayerToPoint(1, playerid, 1111.0206,-1796.9290,16.5938)) // Zivispawn Eingang
{ //Wenn du ein Text beim betreten willst einfach die Folgende Zeile hinzufügen:
SendClientMessage(playerid,COLOR_WHITE,"Willkommen in der Zivispawn Halle");
SetPlayerInterior(playerid,18);//Interior umstellen damit er im Interior was sieht in der Normalen Welt auf 0
SetPlayerPos(playerid,1289.1001,-50.0995,1002.4922);//Dort hin wer er geportet beim reingehen
SetPlayerFacingAngle(playerid,0.0);//Damit er in die richtige Richtung guckt
}
else if (PlayerToPoint(1, playerid, 1307.5702,-55.9294,1002.4971)) // Zivispawn Ausgang
{//Wenn du ein Text beim verlassen willst einfach die Folgende Zeile hinzufügen:
SendClientMessage(playerid,COLOR_WHITE,"Willkommen vor der Zivispawn Halle in Los Santos!");
SetPlayerInterior(playerid,0);//Interior umstellen damit er im Interior was sieht in der Normalen Welt auf 0
SetPlayerPos(playerid,1108.6257,-1796.3427,16.5938);//Dort hin wer er geportet beim reingehen
SetPlayerFacingAngle(playerid,90.0); //Damit er in die richtige Richtung guckt
}
return 1;
}
Dazu die passenden PickUps:
CreatePickup(1239, 23, 1111.0206,-1796.9290,16.5938); // Zivispawn Eingang
CreatePickup(1239, 23, 1307.5702,-55.9294,1002.4971); // Zivispawn Ausgang
CreatePickup(1239, 23, 1555.1205, -1675.6710, 16.1953); // PD Eingang
CreatePickup(1239, 23, 246.7282, 62.7136, 1003.6406); // PD Ausgang
Nun soll auch ein 3D TextLabel beim PickUp mit bestimmtem Text sein:
Erstmal die Farbe Weiß Definieren oben im Script bei den #defines:
#define COLOR_WHITE 0xFFFFFFAA
Nehmen wir mal die alten Koordinaten vom LSPD Ein/Ausgang und Zivispawn Ein/Ausgang
Die Pickups waren diese:
CreatePickup(1239, 23, 1111.0206,-1796.9290,16.5938); // Zivispawn Eingang
CreatePickup(1239, 23, 1307.5702,-55.9294,1002.4971); // Zivispawn Ausgang
CreatePickup(1239, 23, 1555.1205, -1675.6710, 16.1953); // PD Eingang
CreatePickup(1239, 23, 246.7282, 62.7136, 1003.6406); // PD Ausgang
Dazu einfach auch unter OnGameModeInit unter die PickUps oder über direkt:
Create3DTextLabel("Los Santos Zivispawn Eingang", COLOR_WHITE,1111.0206,-1796.9290,16.5938, 15, 0, 1);
Create3DTextLabel("Los Santos Zivispawn Ausgang", COLOR_WHITE,1307.5702,-55.9294,1002.4971, 15, 0, 1);
Create3DTextLabel("Los Santos Police Department Eingang", COLOR_WHITE,1555.1205, -1675.6710, 16.1953, 15, 0, 1);
Create3DTextLabel("Los Santos Police Department Ausgang", COLOR_WHITE,246.7282, 62.7136, 1003.6406, 15, 0, 1);
Erklärung zu den 3D TextLabeln:
Create3DTextLabel("Los Santos Zivispawn Eingang", COLOR_WHITE,1111.0206,-1796.9290,16.5938, 15, 0, 1);
Create3DTextLabel //- Erstellt das Label
Los Santos Zivispawn Ausgang //- Text auf dem Label
COLOR_WHITE //- Farbe (Muss definiert sein per #define)
1307.5702// - xRoute/Position auf der Karte
-55.9294// - yRoute/Position auf der Karte
1002.4971// - zRoute/Position auf der Karte
15 //- Radius von wie weit der Text sichbar sein soll
0 //- Unbekannt
1 //- Unbekannt
Wie bekommt man die Positionen raus?
Du gehst einfach Ingame an die gewünschte Position wo du z.B das PickUp haben willst und gibts einfach brauchst kein Filterscript/Script etc. dafür geht von SA:MP aus auf jedem Server /save NAME ein um die Position/Die Koordinaten zu speichern. Zum Beispiel: Du fährst zum BSN willst dort ein Pickup vor dem BSN eingang und gibst dort einfach ein /save BSN Eingang dann gehst du in den GTA San Andreas Ordner und dort ist die Datei "Savepositions" diese Datei öffnest du einfach mit WordPad oder mit nem Editor und dort drine steht etwas wie (im Beispiel LSPD Eingang:)
AddPlayerClass(272,1554.6833,-1675.6157,16.1953,90.7358,0,0,0,0,0,0); // LSPD Eingang
Das kommt weil ich Ingame am LSPD Eingang "/save LSPD Eingang" eingetippt habe. Nun die erklärung was was ist von den vielen zahlen:
(272,1554.6833,-1675.6157,16.1953,90.7358,0,0,0,0,0,0)
272 = Skin ID vom Spieler den du Ingame anhattest.
1554.6833 = xRoute/Position auf der Karte
-1675.6157 = yRoute/Position auf der Karte
16.1953 = zRoute/Position auf der Karte
90.7358= hRoute/Position auf der Karte
0,0,0,0,0,0 = Welche Waffen der Spieler mit wieviel Munition hat
((Waffe1, Munition1, Waffe2, Munition2, Waffe3, Munition3))