ahja, Danke
dann ist eigentlich egal was ich unter SetSpawnInfo bei OnPlayerRequestClass stehen habe egal oder?
Weil man ja jedes mal wenn der Spieler spawnt die Skinid neu setzt.
ahja, Danke
dann ist eigentlich egal was ich unter SetSpawnInfo bei OnPlayerRequestClass stehen habe egal oder?
Weil man ja jedes mal wenn der Spieler spawnt die Skinid neu setzt.
Das ist in dem Fall, dass du es bei OnPlayerSpawn explizit angibst, egal, ja.
Mache gerade die Fraktionsspawns, irgendwie funktioniert das SetPlayerFacingAngle nicht..
SetPlayerPos(playerid,fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]);
SetPlayerFacingAngle(playerid,fInfo[fID][f_r]);
Er spawnt an der richtigen Stelle, aber sieht um ca.160 Grad in eine andere Richtung als abgespeichert..
Weiss jmd an was das liegen könnte?
Wie lädst du die Facing Angle denn aus der Datenbank?
die speicher ich in einer Globalen Variable im enum
enum fraktenum
{
f_name[128],
Float:f_x,
Float:f_y,
Float:f_z,
Float:f_r,
f_inter,
f_world
}
new fInfo[][fraktenum] =
{
{"Zivilist",0.0,0.0,0.0,0.0,0,0},
{"LSPD",2108.3289,1386.0986,10.8203,182.4039,0,0},
{"Medic",0.0,0.0,0.0,0.0,0,0}
};
Ich nehme dann mal an du bist in der LSPD Fraktion.
Ändert es etwas, wenn du die 182 zu, zum Beispiel 270, änderst?
http://www.pic-upload.de/view-26399860/sa-mp-008.png.html
http://www.pic-upload.de/view-26399864/sa-mp-009.png.html
Das wird geändert.
Das Problem ist er sieht immer in die selbe Richtung
Ach du meinst den Kopf?
SetCameraBehindPlayer(playerid);
Wie kann ich ein Auto auf einem "Truck" freezen???
Attachen geht aber es rutsch kann ich es freezen?
Hi, habe hier eine Funktion von Jeffry die aber nicht richtig funktioniert.
Es geht um Rangnamen definieren mit einem Stock, der Fraktionsname Funktioniert nur die Ränge nicht.
Es kommt immer Du bist "Polizei" mit dem Rang "Polizei" obwohl ja dann der Rangname kommen sollte.
stock GetRangName(team, rang)
{
new name[32];
switch(team)
{
case 0:
{
switch(rang)
{
case 0: name = "Unbekannt";
case 1: name = "Unbekannt";
default: name = "Unbekannt";
}
}
case 1:
{
switch(rang)
{
case 0: name = "Praktikant";
case 1: name = "Polizeimeister";
case 2: name = "Polizeiobermeister";
case 3: name = "Polizeihauptmeister";
case 4: name = "Polizeiratsanwärter";
case 5: name = "Polizeirat";
case 6: name = "Polizeidirektor";
default: name = "Unbekannt";
}
}
case 2:
{
switch(rang)
{
case 0: name = "Anfänger";
case 1: name = "Pro";
default: name = "Unbekannt";
}
}
case 3:
{
switch(rang)
{
case 0: name = "Streife";
case 1: name = "Officer";
default: name = "Unbekannt";
}
}
case 4:
{
switch(rang)
{
case 0: name = "Anfänger";
case 1: name = "Pro";
default: name = "Unbekannt";
}
}
case 5:
{
switch(rang)
{
case 0: name = "Streife";
case 1: name = "Officer";
default: name = "Unbekannt";
}
}
case 6:
{
switch(rang)
{
case 0: name = "Streife";
case 1: name = "Officer";
default: name = "Unbekannt";
}
}
default: name = "Unbekannt";
}
return 1;
}
format(string, sizeof(string), "Ich bin in Fraktion %s und habe den Rang %s.", GetFraktionsName(SpielerInfo[playerid][pTeam]), GetRangName(SpielerInfo[playerid][pTeam],SpielerInfo[playerid][pRank]));
SendClientMessage(playerid, 0xFF0000FF, string);
Ugh, tatsächlich. Habe den Fehler in dem Thread wo du es her hast ausgebessert. ![]()
return 1;
zu:
return name;
@FerienFreak: Das geht leider nicht. Man müsste immer wieder die Position setzen, aber das funktioniert nicht richtig, sobald man eine kleine Steigung hat.
Ugh, tatsächlich. Habe den Fehler in dem Thread wo du es her hast ausgebessert.
Ahh danke ![]()
Mit freundlichen Grüßen
TVPikachu ![]()
Hallo,
Wie macht man ein Skript z.B. Wenn man /auf macht geht das Auto auf und bei /zu Das Auto zu.
-----------------------------
Wie macht man, wenn ein Spieler die Taste '' N'' Drückt geht das Motor an und wenn man Wieder auf die Taste '' N'' drückt geht das Motor wieder aus.
Danke schonmal im Vorraus.
MFg
SST
Wie macht man ein Skript z.B. Wenn man /auf macht geht das Auto auf und bei /zu Das Auto zu.
Wie macht man, wenn ein Spieler die Taste '' N'' Drückt geht das Motor an und wenn man Wieder auf die Taste '' N'' drückt geht das Motor wieder aus.
http://wiki.sa-mp.com/wiki/SetVehicleParamsEx_DE
Unten ist ein Beispiel anhand des Alarms, kannst du aber auch auf deine Probleme anwenden. Ist im Prinzip das Selbe.
Das Ganze dann mit einem Command Prozessor (bspw. ocmd) oder unter OnPlayerCommandText() und unter OnPlayerKeyStateChange (zum Abfragen der Taste N).
http://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange
Einen Befehl würdest du z.B. so erstellen.
mit ocmd:
ocmd:auf(playerid, params[]){
//Code, der bei /auf ausgeführt werden soll
}
mit dem Callback OnPlayerCommandText():
if(!strcmp(cmd, "/auf")){ //Prüft, ob der in der Chat eingegebene Befehl /auf ist
//Code, der bei /auf ausgeführt werden soll
}
Abfragen der Taste N (Code unter OnPlayerKeyStateChange()):
if(newkeys & KEY_NO){
//Code, der bei Tastendruck "N" ausgeführt werden soll
}
Hallo, dafür gibt es eigentlich eine menge Tutorials, aber hier schau mal:
Ganz oben im Script:
new bool:Motor[MAX_VEHICLES]=false;
OnGameModeInit:
ManualVehicleEngineAndLights();
for (new i=0; i< MAX_VEHICLES; i++)
{
GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
Motor[i] = false;
}
OnPlayerKeyStateChange:
OnVehicleSpawn:
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
Motor[vehicleid] = false;
Ist jetzt aus meinem Script, habs dir aber kurz angepasst.
Sollten Errors/Warnings kommen, so melde dich bei mir per PN!
WICHTIG: Vergiss nicht die Farben anzupassen(SendClientMessage)
Dann so:
ocmd:smokeweed2(playerid, params[])
{
if(PlayerInfo[playerid][sWeed] > 0)
{
new Float:pArmour;
GetPlayerArmour(playerid, pArmour);
if(pArmour == 100.0) return SendClientMessage(playerid, COLOR_WHITE, "* Du brauchst kein Weed mehr.");
if(pArmour > 100.0) return SendClientMessage(playerid, COLOR_WHITE, "* Du bist ein Cheater.");
if(pArmour + 25.0 <= 100) SetPlayerArmour(playerid, pArmour+25.0);
else SetPlayerArmour(playerid, 100.0);
PlayerInfo[playerid][sWeed] -= 2;
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
GiveNameSpace(sendername);
SaveDrugs(playerid);
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "* Du hast kein Weed mehr.");
}
return 1;
}
Hi, ich hänge gerade bei den Fraktionsspawns.
Ich frage bei OnPlayerSpawn ab ob der Spieler in einer Frak ist und dann lasse ich ihn da spawnen.
Bei OnPlayerRequestClass habe ich SetSpawnInfo gemacht, dort werden die Zivis gespawnt.
Jedoch wird man jetzt jedes mal wenn man an einer Fraktion gespawnt wird ganz kurz davor am Zivispawn gespawnt,
kann man das umgehen?
Hast du bei SetSpawnInfo auch die Informationen (außer halt die Spawnposition) für die Fraktionsmember oder nur die, der Zivis? Wenn zweiteres, mach einfach eine Abfrage:
if(playerInfo[playerid][pMember] == 0) { SetSpawnInfo..