Meinst ungefähr so wüsste sonst den weg nicht weiter das Business befindet sich da und wen er in den umkreis ist kann er ja kaufen?
Zum Beispiel so ![]()
Musst nur schauen, dass in diesem 50m Radius, nicht zufällig noch ein anderes Autohaus liegt ![]()
Meinst ungefähr so wüsste sonst den weg nicht weiter das Business befindet sich da und wen er in den umkreis ist kann er ja kaufen?
Zum Beispiel so ![]()
Musst nur schauen, dass in diesem 50m Radius, nicht zufällig noch ein anderes Autohaus liegt ![]()
Du weißt ja, an welchem Biz er sich das Auto gekauft hat, als er es sich kauft...
Du hast also 2 Möglichkeiten...
Entweder du speicherst das in einem PVar und fügst das da einfach ein..
oooder du prüfst die Positionen von dem Biz und checkst, an welchem er sich befindet..und hast so die ID.
Wie kann ich am besten ein Erfahrungslevel System erstellen, wo die User Erfahrungspunkte bekommen und dadurch das Level steigt ?
Das kommt darauf an, wie sie diese Erfahrungspunkte erhalten sollen.
Aber üblicherweise passiert das ja über dein "PayDay".
Du kannst also einfach eine Spieler-Variable wie das Level machen, die nennst du dann z.b. pExp.
//Damit gibst du an, dass der Spieler Pro Level 4 XP braucht
//Also um auf Level 2 zu kommen 4
//Um auf level 3 zu kommen 8
//Um auf Level 4 zu kommen 16
//Kannst den Faktor natürlich beliebig Variieren
stock GetXPNeeded(playerid)
{
return 4*SpielerInfo[playerid][pLevel];
}
Dann gibst du dem Spieler pro PayDay einfach immer einen Xp..
Also meinst du einfach nur abfragen ob das Auto in die Richtung fährt über die Z Rotation ?
Jaa...das ist doch das, was du wissen wolltest ![]()
Darüber kannst du prüfen, ob das Auto auf den Blitzer zu fährt...oder eben nicht ![]()
Den Widerspruch hört man schon raus
Da ist kein Widerspruch, du benutzt es nicht.
Du hast die Variablen deklariert und gibst ihnen einen Wert.
Aber du fragst den Wert ja nirgends ab, also benutzt du die Variable nicht, du weist ihnen nur einen Wert zu ![]()
Irgendwie wird die Kilometer Anzeige "über dem Weißen angezeigt"
Du musst das TextDraw als letztes erstellen mit dem Blitzer, dann wird es auch über allen angezeigt ![]()
Habe eine andere frage wie mache ich das dass der Blitzer den Spieler angucken muss ?
Wäre es nicht einfacher....den Blitzer Trigger point nur auf der einen Spur zu halten, wo er auch in die Richtung fährt? ![]()
Ansonsten kannst du das anhand der [wiki]GetVehicleZAngle[/wiki] ja einfach prüfen, in welche Richtung das Auto zeigen sollte, damit der Blitzer reagiert ![]()
https://dev.prineside.com/en/g…_model_id/search/?q=light
Schau dich durch ![]()
Da gibt es von Punkt Lichtern, wie 19285, alles bis hin zu ganzen Flutlichtern, wie 18656 ![]()
Tatsächlich wüsste ich auch nicht welche Bugs hier so gefährlich sind
Mal als Beispiel gibt es noch den G-Bug.
Da ist ein Auto zum Beispiel abgeschlossen, dann kannst du trotzdem sneaky G drücken und hinter dem Auto herlaufen und wirst dann reingeportet, obwohl es halt abgeschlossen ist.
Nette Idee, finde die Vorstellung ganz gut ![]()
Fall 7: Time Bug
Vielleicht hierzu noch etwas.
Das ist ein komplexes Phänomen, was durchaus seinen Ursprung auch beim Server haben kann.
Mal ein klassisches Beispiel, jemand ist im Auto und man spawnt diesen.
Das verursacht einen Time-Bug, weil diese Person sich dann in einem undefinierten State befindet.
Viele kennen das vermutlich, da steht man an der Grove Street mit Zigarette oder ner Flasche ![]()
Dieses Phänomen, kann durch viele Dinge hervorgerufen werden.
Gerade wenn es um Spawn-Funktionen geht, die mit TogglePlayerSpectating in Zusammenhang stehen oder Fahrzeugen.
Wenn man nicht genau aufpasst, kann man diese invaliden States hervorrufen.
Fall 8: Leeres Interior
Das ist wirklich ein verrücktes Phänomen, kann aber auch ohne Hacks auftreten.
Gerade die 24/7 Läden sind davon sehr betroffen und das liegt an GTA (also clientseitig).
Es gibt aber durchaus noch mehr Bugs
Sogar welche, womit man bestimmte Funktionen aushebeln kann.
Finde es aber eigentlich gar nicht so gut alle aufzulisten, weil sie dann vermutlich alle missbraucht werden ![]()
Wie kann man den Bildschirm weiß machen ?
Über ein Textdraw oder wäre es auch anders Möglich ?
Hatte mal so ein System geschrieben gehabt:
static PlayerText:blitz[MAX_PLAYERS];
stock Blitzer_Init(playerid) //z.B. bei OnPlayerConnect aufrufen
{
blitz[playerid] = CreatePlayerTextDraw(playerid,650.000000, 0.000000, !"Neues Textdraw");
PlayerTextDrawBackgroundColor(playerid,blitz[playerid], 255);
PlayerTextDrawFont(playerid,blitz[playerid], 1);
PlayerTextDrawLetterSize(playerid,blitz[playerid], 0.500000, 25.000000);
PlayerTextDrawColor(playerid,blitz[playerid], -1);
PlayerTextDrawSetOutline(playerid,blitz[playerid], 0);
PlayerTextDrawSetProportional(playerid,blitz[playerid], 1);
PlayerTextDrawSetShadow(playerid,blitz[playerid], 1);
PlayerTextDrawUseBox(playerid,blitz[playerid], 1);
PlayerTextDrawBoxColor(playerid,blitz[playerid], -120);
PlayerTextDrawTextSize(playerid,blitz[playerid], -10.000000, 0.000000);
return 1;
}
stock Blitz_Player(playerid) //Wenn der Spieler geblitzt wurde
{
PlayerTextDrawShow(playerid,blitz[playerid]);
GameTextForPlayer(playerid,!"~r~Geblitzt!",5000,5);
PlayerPlaySound(playerid, 1132, 0.0, 0.0, 0.0); //Süßer sound
SetTimerEx(!"@remove",1500,0,!"i",playerid);
}
static @remove(i);@remove(i) return PlayerTextDrawHide(i,blitz[i]);
Alles anzeigen
Mir würde auch kein anderer vernünftiger Weg einfallen das ohne TextDraw zu lösen...wüsste aber auch nicht wieso
Ein Array (https://en.wikipedia.org/wiki/Array_data_structure) ist nur eine Daten-Struktur in diesem Fall deine Variable enterexits.
Bei dem Eintrag illegales Wettbüro vor dem Kommentar, ganz hinten fehlt, wie im Beitrag zuvor schon erwähnt ein Komma , ![]()
(Zeile 21 ganz hinten)
Dann sollte der Fehler verschwinden ![]()
Kannst du das ganze Array posten? ![]()
Vermutlich hast du nur am Ende ein Komma oder so vergessen ![]()
new enterexits[MAX_ENTEREXITSdef][EnterExits_info] =
Schreib das mal so:
stock const enterexits[][EnterExits_info] =
Der Fehler liegt vermutlich an dem define.
Also ich bekomme da keine Fehler.
Wie sieht denn dein define aus?
Prinzipiell brauchst du da auch kein define ![]()
Nutze einfach sizeof(enterexits), dann musst du nicht so eine schläde Zahl anpassen, sondern der Compiler sucht sich das alles dynamisch raus ![]()
Wie sieht dein enum dazu aus? ![]()
Ist zumindest toller als eine for Schleife.
Du kannst das zwar machen, aber es ist schlechter als eine for-Schleife.
Das liegt daran, wie der Code verarbeitet wird vom Compiler.
for-Schleifen wurden genau für so einen Zweck gemacht, also solltest du sie auch für diesen Zweck nutzen ![]()
Im Endeffekt ist das nur der -- Operator.
Und das untere ist (-x) --
Also..was heißt Sinnvoll, kannst es halt verwenden ![]()
Schreib es so:
CMD:setlevel(playerid,params[])
{
if(!PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid, 0x00FF00, "[ ! ] Du besitzt keine Rechte um diesen Befehl zu nutzen!");
new string[128], pID, level, name[MAX_PLAYER_NAME];// 'level' ist eine neue Variable für [pLevel]
if(sscanf(params,"ui",pID,level)) return SendClientMessage(playerid, 0x00FF00,"[Info] /setlevel [playerid][level]");
GetPlayerName(playerid, string, MAX_PLAYER_NAME);
GetPlayerName(pID,name,MAX_PLAYER_NAME);
PlayerInfo[pID][pLevel] = level;
format(string,sizeof(string),"Admin %s hat den Rang von Spieler: %s zu %s geändert",string,name,GetLevelRank(pID));
SendClientMessage(playerid, -1, string);
format(string,sizeof(string),"Spieler ist Levelrank: %s",GetLevelRank(pID));
SendClientMessage(playerid, -1, string);
mysql_format(handle, string, sizeof(string), "UPDATE `users` SET `level` = '%d' WHERE `id` = '%d'", level, PlayerInfo[pID][p_id]);
mysql_pquery(handle, string);
return 1;
}
Alles anzeigen
Das war nicht negativ gemeint, ich wollte nur wissen, was das Konzept ist, was euren Server einzigartig macht.
Konzept wird dann natürlich entworfen
Achso, damit hat sich meine Frage dann natürlich beantwortet.
CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0, Float:drawdistance = 0.0);
Wurde doch schon bereits geschrieben...
Drück mal F5, eventuell hast du immernoch zuviele Objekte.
Oder du spielst da mal ein wenig mit der Stream/Drawdistance.
Aber einen einzigartigen.
Wow, das klingt beeindruckend, hat glaube ich vor dir noch niemand im Sinn gehabt! ![]()
Wärst du so freundlich uns einzuweihen, was genau deine Ideen sind?
(Falls du Angst hast wegen dirty Copy&Paste...wenn dein Server on geht, würde das spätestens da eh gemacht werden) ![]()