Datei im Anhang in dein Verzeichnis von deinem Editor.
Neu kompilieren -> Server neustarten -> Log posten.
L.G.
Datei im Anhang in dein Verzeichnis von deinem Editor.
Neu kompilieren -> Server neustarten -> Log posten.
L.G.
ocmd:acar(playerid,params[])
{
new vID;
static vehicle[MAX_PLAYERS], bool:acarexist[MAX_PLAYERS];
new Text3D:VehicleAdminName[MAX_PLAYERS];
if(sInfo[playerid][alevel] < 2) return SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
if(sInfo[playerid][aduty]==0) return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
if(acarexist[playerid] == true)
{
DestroyVehicle(vehicle[playerid]);
acarexist[playerid] = false;
return SendClientMessage(playerid,CL_HGRÜN,"Admin-Car gelöscht");
}
if(sscanf(params,"i",vID))return SendClientMessage(playerid,CL_KNALLROT,"Aussage: /acar Fahrzeug--->[ID]"); //Ich würde dir empfehlen die Funktion "IsNumeric" zu nutzen. (Mal googeln)
//new Float:X,Float:Y,Float:Z,Float:ROTA; ---> Ergibt keinen Sinn diese zu erstellen.
//GetVehiclePos(vID,X,Y,Z);
new str[128];
format(str,sizeof(str),"%s Car von %s",a_rang[sInfo[playerid][alevel]]); //Wie schon erwähnt noch eins hinzufügen
VehicleAdminName[playerid] = Create3DTextLabel(str,CL_HGRÜN,GetPlayerPos(playerid,X,Y,Z),ROTA,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
Attach3DTextLabelToVehicle(VehicleAdminName[playerid],vID,0.0,0.0,2.0); //Hier lag der Fehler * Erklärung unten.
return 1;
}
Also zum mitschreiben:
Du machst einen Befehl, wo du die ID eines Vehicles auf dem Server angeben sollst und daran dann der 3dText gesetzt wird.
Nun jetzt ist die Frage, wieso erstellst du danach ein Auto?
Habe das erstmal entfernt und deinen Code schöner gemacht.
*Erklärung zum Fehler (siehe Code)
Du musst die x,y,z, Achso von der Mitte des Autos aus angeben.
Deswegen ergibt es hier keinen Sinn die Position des Spielers zu verwenden.
Bei Fragen melden
L.G.
Schöne Anfrage, schöne Videos ;).
Viel Glück bei der Suche! (Kannst dich ja mal bei mir melden)
L.G.
gibt es bei dem Streamer von Icognoto eine Funktion, mit der man "Dynamic" Objekte an einen Spieler attachen kann?
Soweit ich weiß nicht, da das 'stream system' ja auf PlayerObjects basiert und hierfür keine Funktion vorhanden ist.
Daher solltest du hierfür die Globalen Objekte verwenden.
L.G.
Es werden wieder Leute gesucht!
Du bist interessiert? - Melde dich jetzt!
Habe gerade mal nachgedacht...
Das bezieht sich auf dieses Include
Hier ist mal ne Funktion:
stock IsPlayerFly(playerid)
{
new Float:pos[3];
GetPlayerPos(playerid,pos[0].pos[1],pos[2])
if(floatround(pos[2],floatround_floor) == floatround(GetPointZPos(pos[0],pos[1]),floatround_floor)) return 0;
return 1;
}
//ungetestet.
Würde mich mal Interessieren obs geht
/e1: Jeffry war schneller
Ich finde einfach das sowas nicht unbedingt so dringend benötigt wird.
Das ist ja auch dein gutes Recht.
Ich denke aber, dass sich wer dafür finden würde...
Mich würde Interessieren wieso das unnötig findest?
L.G.
Könnte mir das bei einer Servervorstellung vorstellen. Wenn der Ersteller keine Antworten will -> schließen. Allerdings kann man da auch nen Admin anschreiben.
Wie gesagt, um die Details des Systems kann man sich noch Gedanken machen...
Man könnte es dort so Regeln: Die Beiträge müssen dort auch von einem Moderator freigeschaltet werden.
Also könnte man für diesen Bereich diese Funktion deaktivieren.
L.G.
@Mr.Reese: Wenn er dieses meint, sollte er es auch schreiben.
Also ich habe davon noch nichts gehört.
Vielleicht könnte sich darüber ein Moderator äußern.
Aber rein theoretisch ergibt es ja wenig Sinn dieses zu schließen.
-> Wäre viel zu aufwendig...
L.G.
Dadurch werden Moderative Handlungen zu nichte gemacht daher bin ich dagegen.
Deswegen habe ich auch extra 2 Möglichkeiten angegeben.
Wobei drüber nachzudenken ist, ob man nicht vielleicht so eine Funktion einbaut,
wenn ein Moderator ein Thema schließt, dieses dann nicht mehr geöffnet werden kann.
Man kann Themen als erledigt markieren --> werden soweit ich weiß geschlossen.
Nicht wirklich... Wobei diese Funktion von den meisten Leuten übersehen wird.
Mir ist in letzter Zeit aufgefallen,
dass viele Leute " MoD: close bitte" o.ä. schreiben.
Andernfalls kann man dieses auch nutzen,
um einer unnötigen Diskussion aus dem Weg zu gehen.
Deswegen bin ich dafür, dass man die Möglichkeit haben sollte seine eigenen Themen schließen zu können. (1. Möglichkeit)
Falls man noch eine Frage hat, könnte es auch die Funktion geben, dies wieder zu öffnen. (2. Möglichkeit)
Ich möchte gerne eure Meinung dazu wissen, solange diese in einem angemessenen Rahmen bleibt.
Mit freundlichen Grüßen
heyho
ähnlich dem Schulsystem
So wie ich das verstanden habe, müsste es dann auch Leute geben, die diese Sitzungen halten.
Wie sollte man sich denn dafür qualifizieren können? Würde mich mal Interessieren, wie das dann ablaufen würde.
Vielleicht habe ich das auch nur falsch verstanden.
L.G.
Mapper, welche sich gemeldet hatten, entsprachen nicht unseren Vorstellungen.
Vielleicht kannst du uns ja überzeugen?
Melde dich jetzt auf unserem Teamspeak!
Mit freundlichen Grüßen
heyho
if(sscanf(params,"s[20]",statuu))return SendClientMessage(playerid,info,"[Benutze]:{FFFFFF} /aveh [Erstellen | Löschen]");
Noch ne kleine Anmerkung:
Du brauchst nicht zu splitten, wenn du nur 1 Parameter hast.
if(!params[0]) return SendClientMessage(playerid,info,"[Benutze]:{FFFFFF} /aveh [Erstellen | Löschen]");
Du musst, sobald du Änderungen am Textdraw vornimmst ihn 'reloaden'.
Du brauchst keinen Timer und ich verstehe auch nicht, was dein Problem damit ist. :p
Hier haste noch nen Makro:
#define UpdateTD(%0,%1) PlayerTextDrawHide(%0,%1),PlayerTextDrawShow(%0,%1)
//benutzung
UpdateTD(playerid,PlayerText:text);
L.G.
public OnPlayerEnterCheckpoint(playerid)
{
PlayerPlaySound(playerid, 1139, 0, 0, 0);
new pos[3];
GetPlayerPos(NPCS[2], pos[0], pos[1], pos[2]);
if(IsPlayerInRangeOfPoint(playerid, 5, pos[0], pos[1], pos[2]) && PInfo[playerid][intutorial] == 1)//Spawn NPC
{
new part[250], text[750], ages[8];
if(PInfo[playerid][age] > 30) format(ages, 20, "über 30");
else format(ages, 20, "%i", PInfo[playerid][age]);
format(part, 255, "{FF0000}Toni:\r\n{FFFFFF}Hallo %s!\r\n\r\nEs tut gut dich endlich mal wieder zu sehen.\r\nDu bist mittlerweile schon %s oder?\r\nHoffentlich bist du nach dem langen Flug nicht zu müde,", PName(playerid), ages);
strcat(text, part);
strcat(text, " denn es gibt viel zu tun!\r\nIch will dich auch gar nicht länger aufhalten.\r\nDu solltest dir schnell in der Stadthalle einen Personalausweis holen.\r\nIch werde dir die Stadthalle auf deiner Karte einzeichnen.");
strcat(text, "\r\nWenn du nicht laufen willst, stehen hinter dir Fahrräder.\r\n\r\nUnd... Willkommen im Land der unbegrenzten Möglichkeiten, mein Freund!");
ShowDialog(playerid, DIA_NPCS, DIALOG_STYLE_MSGBOX, "Ein alter Freund...", text, "OK!", "");
ShowPlayerDialog(playerid, DIA_NPCS, DIALOG_STYLE_MSGBOX, "Ein alter Freund...", text, "OK", "");
DisablePlayerCheckpoint(playerid);
return 1;
}else if(IsPlayerInRangeOfPoint(playerid, 5, 2347.7839, 1442.5172, 10.8234) && PInfo[playerid][dsteststep] > 1) return imsg(playerid, "> Bitte setz dich nun in ein Fahrschulauto.");
return 1;
}
Erstmal so...
Fang mal an zu printen.
L.G.
Wenns Probleme gibt oder Systeme gemacht werden müssen
(aus zeitlichen Gründen nur kleine Systeme), könnter euch bei mir melden ;).
L.G.
Wie erstellt man eigene Objekte ?
Das ist nur mit einer Modifikation möglich...
Du kannst aber vorhandene Objekte texturieren und dir so gestalten, wie du möchtest.
Samp Textures
SetObjectMaterialText bzw. SetPlayerObjectMaterialText und SetPlayerObjectMaterial
Ansonsten einfach nochmal Googeln
L.G.
Weiß nicht so was du meinst.
Aber Position des Anhängers, wenn du im Truck sitzt:
new Float:pos[3];
GetVehiclePos(GetGetVehicleTrailer(GetPlayerVehicleID(playerid)), pos[0],pos[1],pos[2]);
L.G.
Stimme dir zu, nur es steckt trotzdem viel Arbeit drin.
Es sieht schon mal nicht schlecht aus...
5/10
L.G.