Normalerweise sollte es auch funktionieren, wenn du den ersten Index bei der Deklaration, also die 60 bzw 70 einfach weg lässt. Oder du zahlst einfach die Datensätze.
Beiträge von Sry4pwn
-
-
War keine Kritik an dir jetzt, sondern an jeffrey, der dir lieber alles macht anstatt dir Tipps zu geben wie du es selber löst und es das nächste mal selbst schaffst.
-
Wenn er sich das angesehen hätte, dann wüsste er, dass strfind nicht 1 sondern -1 zurückgibt, wenn der substring gefunden wurde.
Klar hatte ich ihm das jetzt auch so hinschreiben können, aber vielleicht sieht er ja nächstes mal erst im wiki nach.... -
So... Und jetz schaust du dir mal im wiki an, was strfind zurückgibt.
-
Es gibt auch noch ne ähnliche Möglichkeit, dass man die Positionen direkt aus der Datei ausliest. Vor allem wenn man die Funktion nicht all zu oft braucht ist das sinnvoll, weils ganz einfach weniger RAM verbraucht und man nicht extra das Plugin laden muss.
Dazu brauchst du dann nur eben die riesen SAfull.hmap datei und diese Funktion:Code
Alles anzeigenstock Float: GetPointZPos(const Float: fX, const Float: fY, &Float: fZ = 0.0) { if(!((-3000.0 < fX < 3000.0) && (-3000.0 < fY < 3000.0))) { return 0.0; } static File: s_hMap ; if(!s_hMap) { s_hMap = fopen("SAfull.hmap", io_read); if(!s_hMap) { return 0.0; } } new afZ[1] ; fseek(s_hMap, ((6000 * (-floatround(fY, floatround_tozero) + 3000) + (floatround(fX, floatround_tozero) + 3000)) << 1)); fblockread(s_hMap, afZ); return (fZ = ((afZ[0] >>> 16) * 0.01)); }
-
Eine Warteschlange? Wie willstn das umsetzen? Du kannst ihn ja ned wirklich warten lassen.
-
Du gehst mt ner schleife alle.npcs durch und schaust welcher in der Nähe des Spielers steht.
-
Ich glaub schon, dass das geht, wenn man mit rcon exec ne neue Server.cfg lädt.
Oder auch mit irgend nem andren rcon Befehl -
Viele objekte haben noch zweite Objekte in schlechterer Qualität, damit man diese schon VOB weiter Entfernung streamen kann.
Wenn du die Objekte mit den samp map Editor entfernst, sollten da pro Objekt mehrere Zeilen stehen, sofern es mehrere zu entfernen gibt. -
Man kann das unter anderem auch mit toggleplayerspectating usw machen.
-
Undwas willst du damit bezwecken?
Dass wenn man Mut ner sniper in der Hand die leertaste drückt alle Spieler die weiter als 10m entfernt sind n textlabel mit ihrem Namen drauf über Kopf haben?
-
Vielleicht das Script mal als andere datei gespeichert ?
-
Mit getplayertargetlplayer geht das nicht. Das geht nur, wenn über dem Spieler dieses gelbe Dreieck ist. Es gibt eine Möglichkeit das mit dem cameravektor auszurechnen. Wenn du nicht weist wie man damit rechnet kannste allerhöchstens mal danach suchen.
-
Da gibts nen extra Thread fürs ressourcensparen, schau dir das am besten mal an. Sonst kann man eigentlich sagen, dass man an Schleifen, Timern und variablen bzw arrays sparen sollte. Natürlich machen auch sinnlose Abfragen oder Methodenaufrufe viel aus.
Filterscripts haben den Vorteil, dass man sie ohne den Server neu zu starten wieder neu laden kann. Außerdem ist das bisschen übersichtlicher. Ich nutze das vor allem zur Entwicklung von neuen Features. Danach baue ich sie dann trotzdem in den gamemode ein.
Viele nutzen filterscripts aber auch um externe Inhalte einzubinden(zB der aufzug in ls), oder wenn man mal kurz etwas braucht (zB flymode, npc_record, attachments, ...) -
ja, ich damit gemeint, dass man für eine objectid nicht extra einen thread erstellen soll. Im Sammelthread kann man schon fragen, ja...
-
Heißt es nicht, dass man ned nach objectid's fragen soll?
19419, 19420 -
oh, ja kann sein...
-
naja,
man könnte natürlich einen Bot spawnen und ihm mit SetPlayerAttachedObject ein vergrößertes Objekt dran häften. kA ob das besonders sinnvoll ist, wäre aber schon ne möglichkeit. -
Yo,
wenn das ne globale Variable ist, könnte das sein, dass du die Inizialisierung nicht extra machen darfst. Ne inizialisierung könnte man in diesem Fall auch mit nem Methodenaufruf vergleichen. Du könntest ja an so einer Stelle auch keine Methode aufrufen. Ne Inizialisierung bei der Deklaration sollte dagegen funktionieren.
Ich denk mal, dass es daran liegt, bin mir aber nicht sicher.
Mach das dann einfach so: -
Schon alle Haubenvoll, oder?
Das funktioniert so nicht wie ich das jetz hingeschrieben habe, aber es weist auf dein problem hinCode
Alles anzeigenfor(new i=0; i<sizeof(badWords); i++) { if(!strfind(text,gBadWords[i],true)) { new string1[2000]; format(string1,sizeof(string1),"{FF9600}Dein Name:{FFFFFF} %s\nDu wurdest vom Server gekickt,weil du ein anderen Mitspieler beleidigt hast.\n",SpielerName(playerid),text); strcat(string1, "{0FFF00}Deine Beleidigung war: {FF1E00}%s\n"); strcat(string1, "{FFFFFF}\nWir dulden auf unseren Server Respekt und Gehorsamkeit,deswegen lassen Sie ihre beleidigungen sein.\n"); strcat(string1, "{FFFFFF}Sollte es noch einmal vorkommen,dass Sie beleidigent werden,müssen wir sie {FF1E00}BANNEN.\n"); strcat(string1, "{FFFFFF}Wir wünschen Ihnen noch viel Spaß auf unsern Server.\n"); strcat(string1, "{FFFFFF}\n\nMit freundlichen Grüßen\n"); strcat(string1, "Das Administatoren Team"); ShowPlayerDialog(playerid,DIALOG_BELEIDIGUNG,DIALOG_STYLE_MSGBOX,"Beleidigung",string1,"Okey",""); SetTimerEx("KickBad",3000,0,"d",playerid); }}