Musst SetSpawnInfo oder AddPlayerClass nutzen ![]()
Beiträge von Kaliber
-
-
Eher Unwissenheit, darüber das es dieses Projekt gibt das auch neue Features implementiert wie bspw. 4 Dimensionale Arrays.
...wenn ich dieses Projekt nicht kennen würde...hätte ich es ja wohl kaum angesprochen...#Logic
Verstehe jetzt diesen Aggro-Front auch gar nicht.
Ich habe es nicht verlinkt, weil 1x suchen ja genügt, aber finde es ja gut, dass du es verlinkt hast.
Ja es gibt viele Leute, besonders Neulinge, die jetzt vielleicht nicht den neusten und coolsten Shit haben wollen, sondern nur ihr Zeug zum Laufen bekommen wollen.
Für diese Leute ist das gedacht.
Jeder der das ganze Zeug nutzt, hat ja auch erst gar nicht diese Probleme und kommt auf diesen Thread...
Schalte mal einen Gang runter, das war nur ein nett gemeintes Tutorial.
-
In dem man einen Compiler nutzt, der das Problem nicht hat.
...hatte ich ja angesprochen:
Das ist ein Compiler Bug, es gibt einen Compiler Fix, aber man kann dies natürlich auch skript-technisch lösen.
Viele wollen halt keinen anderen Compiler verwenden.
Deshalb nochmal die Erklärung wie man es alternativ löst. -
Hallo ihr Lieben,
ja das Thema ist eigentlich relativ alt, dennoch haben viele Menschen Probleme damit und es gibt immer wieder falsche Lösungsansätze.
Also schauen wir uns das ganze doch mal ein wenig an.
Was ist das Problem?
Wenn man eine zu lange Zeile in Pawno erstellt und diese compilt, dann kann es passieren, dass keine Fehlermeldung ausgegeben wird und der Compiler einfach crasht.
Das ist ein Compiler Bug, es gibt einen Compiler Fix, aber man kann dies natürlich auch skript-technisch lösen.Das Problem tritt auf, wenn 512 Zeichen in einer Zeile überschritten werden.
Wie kann man das Problem lösen?
Meistens hat man einen langen Text in dieser Zeile, zum Beispiel:ShowPlayerDialog(playerid,0,DIALOG_STYLE_TEST,"Hallo","Dies ist ein sehr sehr sehr sehr langer Text!","Ok","");
Viele denken nun, man kann folgendes tun:
ShowPlayerDialog(playerid,0,DIALOG_STYLE_TEST,"Hallo","Dies ist ein sehr sehr \
sehr sehr langer Text!","Ok","");Das ist FALSCH!
Für den Compiler ist das immer noch eine Zeile. (Alles was zwischen den " steht, gilt für den Compiler als EINS.)
Man könnte folgendes tun:
ShowPlayerDialog(playerid,0,DIALOG_STYLE_TEST,"Hallo","Dies ist ein sehr sehr sehr sehr langer Text!","Ok","");
Das wären für den Compiler jetzt 3 Zeilen und nicht mehr eine.
Sieht aber halt kacke aus, ist unübersichtlich und meistens immer noch zu lang xDDeshalb gilt Funktionen zu nutzen, die den String zusammenführen:
new string[64];
strcat(string, "Dies ist ein sehr sehr ");
strcat(string, "sehr sehr langer Text!");
ShowPlayerDialog(playerid,0,DIALOG_STYLE_TEST,"Hallo",string,"Ok","");//Edit:
Ja, wenn man nun format nutzt, kann man das auch einfach aufteilen:
new string[256];
format(string,sizeof(string),"Dies ist der erste Teil mit ein Paar (%s) Variablen (%f).",x,y);
format(string,sizeof(string),"%s Nun hängen wir noch was hinten dran! (%s)",string,z);
Kurze Erklärung:
In der 3. Zeile steht man Anfang ein %s dies ist wichtig, da gesagt wird, dass der String aus dem vorherigen format nun davor gehangen wird.
(Deshalb steht auch hinten vor dem z nochmal das string).Schlusswort
Ja, vielen ist das Problem bekannt und ein alter Hut, aber wollte nur kurz für alle Anfänger was dazu schreiben.Viel Spaß noch beim Skripten!

-
Seite ist down warum?? Wollte es ausprobieren.
Jaaaaa, weil ich ein Idiot bin hahaha xD
Ich hab gefailt n Backup zu ziehen, dann lief die Domain aus...uuund hatte die Seite auf einem anderen PC gespeichert...bababa
und weg war sie

Tjaaa aktuell hab ich nicht so Lust die nochmal neu zu machen, mal schauen, ob ich die wieder aufsetze xD
//Edit:
So, mir war mal wieder langweilig und ich habe die Seite neu aufgesetzt.
Gab ein kleines Update, hoffe es funktioniert weiterhin alles, viel Spaß
-
Schreib es einfach:
new stock g_Object[245];
//und
new stock g_Vehicle[1];Aber ich glaube der Fehler entsteht durch eine Falsche Nutzung von Makros im Filterskript.
Da du vermutlich das Standard-Skript nutzt.
Kannst es mir ja mal per PN schicken, dann korrigiere ich dir das (damit du die Map nicht preisgeben musst. Der Fehler liegt aber für alle, vermutlich an den #defines)
-
Sicher, dass du meinen Post richtig gelesen hast und bInfo[b][biztextfarbe] geprintet hast?
Denn hier verwendest du ja: BizTextFarbe[bInfo[b][biztextfarbe]]
Wie willst du denn einen String als Index verwenden?
Bekommst du da keine Fehler? wtf
-
BizTextFarbe[bInfo[b][biztextfarbe]]
Printe dir halt mal, was der Wert von bInfo[b][biztextfarbe] so ist

-
Sagt denn crashdetect etwas?

-
new zufall = random(1000);
if(zufall < 10) Fahrzeug = 0;
else if(zufall <= 10 && zufall < 20) Fahrzeug = 1;
else if(zufall >= 21) Fahrzeug = random(7) + 2;Mach mal nur:
Cnew zufall = random(100); if(zufall < 10) Fahrzeug = 0; //10% Wahrscheinlich else if(zufall < 20) Fahrzeug = 1; //10% Wahrscheinlich else Fahrzeug = random(7) + 2; //80% Wahrscheinlich> bedeutet eben echt größer.
6 > 5 = 6 ist größer als 5...richtig
6 > 6 = 6 ist größer als 6...falsch6 => 5 = 6 ist größer gleich 5...richtig
6 => 6 = 6 ist größer gleich 6...richtigAlso >= ist größer oder gleich
-
Dort verliert man eher die Übersicht
Worüber?
und man muss für jedes Objekt/Auto/Textdraw etc. diese dauernd neu und entladen.
dauernd? 1x laden und 1x entladen...
Das spart halt aber den gmx...
wenn man eine Sache irgendwie vergessen hat zu löschen.
Wie sollte das denn passieren?
Wenn es genau N Variablen gibt, muss man doch nur durch N Variablen gehen mit einer Schleife und eben löschen...Naja..wie jeder meint, ich find es äußerst praktisch xD
-
Bisher habe ich das ziemlich doof geloest indem ich halt fuer jeden Mode ein eigenes Script habe, was vermutlich einfacher ist.
Problem ist: Das Random aussuchen geht schwer, und der gmx ist ja auch nervig.Nutze doch Includes

Für jeden Mode, ein Include

Und baust halt in jedes Include auch eine Reset Funktion ein, was alle Objekte + Fahrzeuge etc zerstört und eben alles zurücksetzt

Dann brauchst du keinen gmx, setzt das einfach alles zurück und startest einfach den neuen Mode mit einer Init Funktion

Dann hast du auch alles separat, aber ohne gmx oder anderen Schnick-Schnack. (arbeite schön mit static, dann kommt sich da nichts in die Quere Modularer Skripten).
Wenn ich diesen Befehle eingebe kommt das ich bitte die /help öffnen soll.
Wie die /help...was meinst du? Davon steht doch gar nichts im Befehl?
Aber ich würde es an deiner Stelle so schreiben:
C
Alles anzeigen//Falls du eins der Makros nicht hast: #define SCM SendClientMessage #define SCME(%0,%1,%2,%3) format(string,sizeof(string),%2,%3),SCM(%0,%1,string) #define IsNull(%0) (%0[0] == '\0' || %0[0] == '\1') //Und dann so der Code: CMD:accept(playerid,params[]) { if(!Spieler[playerid][pLoggedIn]) return 1; if(IsNull(params)) { SCM(playerid,Grau,"|__________________ Accept __________________|"); SCM(playerid,Weiss,"Verwendung: /accept [Name]"); SCM(playerid,Weiss,"Verfügbare Namen: Stats"); SCM(playerid,Grau,"|____________________________________________|"); return 1; } if(!strcmp(params,"Stats",true)) { if(AcceptStats[playerid] == -255) return SCM(playerid,Grau,"Niemand hat dir das Angebot gemacht, sich Statistiken anzuschauen."); AcceptStats[playerid] = -255; ShowStats(AcceptStats[playerid],playerid); new string[64]; SCME(AcceptStats[playerid],Hellblau,"* %s schaut sich deine Statistik an.",Spieler[playerid][pName]); } return 1; }Finde du solltest Makros nutzen...weiiil macht den Code übersichtlicher und du kannst wesentlich schneller skripten, aber jeder wie er mag.
Kannst natürlich auch alles ausschreiben...
Falls du etwas mehr lesen magst: https://breadfish.de/index.php…-strukturierter-skripten/
Gibt viele Infos darüber

Aber ist natürlich jedem selbst überlassen

-
15k ist auch etwas extrem, setze es mal auf 5k...
Der Op-Code sagt aus, dass ein Objekt geladen wird, welches nicht existiert.
Falls du eins von den folgenden Objekt-Modellen verwendest: 19387,19382,19374
Lösche sie...bzw versuche sie in der Map zu ersetzen und verwende sie nicht

-
Hatte da mal n Include geschrieben gehabt, was dir den ganzen Quatsch abnimmt.
Vllt hilft es dir ja:
-
Okay, dann liegt es an zu großen oder zu vielen Objekten.
Komisch, da davon nichts im Crash steht, aber da du weißt, dass du sowas tust, erwähne es doch

Trotzdem gibt es Fehler mit dem Auto-System, abgesehen davon, dass das auf einer komplett veralteten MySQL Version basiert.
Akslimit runtergemacht
Kommen denn dann Warnings im Server-Log?
Auf welchen Wert ist denn das Ackslimit nun?
Kannst du mir evtl das Filterskript zur Verfügung stellen?
Dann schau ich es mir mal an.
-
aber immer nur den Index
Du kannst doch das rückwärts machen:
C
Alles anzeigenstock GetUserByVehicle(vehicleid) { for(new i=GetPlayerPoolSize(),idx; i!=-1; i--) { if(!IsPlayerConnected(i)) continue; idx = JobFahrzeug[i]; if(idx == -1) continue; //ungültiger Index (Wert evtl abändern) if(vehicleid == Job1Fahrzeug[idx]) return i; } return INVALID_PLAYER_ID; }Und dann bekommst du die playerid von dem Spieler, dem das Fahrzeug mit dem dazugehörigen index gehört

-
Ich will nämlich herausfinden bzw. abfragen wem das Job-Fahrzeug gehört
Das kannst du doch über die vehicleid herausfinden.
Musst nur durch die Job-Fahrzeuge loopen und schauen, auf wen die Vehicleid zutrifft

-
Es geht ja nicht um dein Fahrzeug...sondern um ein generelles Fahrzeug und das muss nicht getunt sein, sondern da werden ungültige Tunings geladen.
Etwas muss ja da sein xD
Entweder wurde sowas wie ein pay n spray removt oder so...oooder da steht n komisches auto
(Objekte werden keine in deiner Nähe geladen) -
Kann mir jemand helfen ein Blinker System mit Q (links) & E (rechts) in mein Script zu erstellen? Am besten sollte dann ein roter/orangenes Licht Objekt auftauchen.
Gibts dafür nicht schon genug Systeme?
https://breadfish.de/index.php?thread/71537-blinker-system/
https://forum.sa-mp.com/showthread.php?t=72210
https://forum.sa-mp.com/showthread.php?t=94122Einfach mal googeln?

-
Autohausladen ()
Magst du uns den public mal zeigen?

Der Fehler liegt übrigens an ungültigen Vehicle-Tunings

Using an invalid component ID crashes the player's game. There are no internal checks for this.