Bei wie vielen Actors fängt das Laggen und Crashen an?
Schwer zu sagen. Das hängt von vielen Faktoren ab.
Probiere es einfach aus, leider kann ich nicht viel mehr dazu sagen.
Bei wie vielen Actors fängt das Laggen und Crashen an?
Schwer zu sagen. Das hängt von vielen Faktoren ab.
Probiere es einfach aus, leider kann ich nicht viel mehr dazu sagen.
Ist den dein script zu bekommen bzw wolltest du es mal zu verfügung stellen ?
Jaa, okay, was soll der Geiz.
Ich sag mal, das ist eh 5 Jahre alt.
Könnt ihr mit spielen: https://pastebin.com/tW5EZcvv
Einfach als Filterscript laden und in Los Santos um das PD bewegen sich dann die Leute ![]()
PS: Aber halt Vorsicht, wenn man AFK geht, kann man crashen und wenn ü 20 Leute online sind, kann es laggen.
Ja, seit 0.3.7 R3 wurde die FacingAngle gefixxt, das bedeutet, dass man die jetzt instant drehen und rennen lassen kann.
Das Problem ist, dass die Synchronisierung kacke ist. Da gab es einige Probleme...wenn man beispielsweise afk geht, und dann wieder on kommt...wird man da mit Packages zur Aktualisierung zugespammt und crasht meistens xD
Ergo, ist das nur im ganz kleinen Anwendbar. Das waren ja damals so nur ein paar Tests.
Um wirklich GTA:SA belebter zu machen, dass das mit vielen Leuten gut funktioniert, muss man Bots nutzen. Leider wurde FCNPC etc nicht mehr wirklich weiterentwickelt oder mal nativ implementiert.
Warum zum teufel wird das destroyen aufgerufen und gleichzeitig auch die Fehlermessage dass ich in keinem FrakVeh bin?
Weil du da ein else in der Schleife hast.
Kannst so Funktionen auch wunderbar auslagern:
ocmd:fdelveh(playerid, params[])
{
if(!pInfo[playerid][pLoggedIn]) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Du bist nicht eingeloggt.");
if(pInfo[playerid][pTeam] == 0) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Du bist kein Teammitglied.");
if(pInfo[playerid][pTeam] < 5) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Dein Teammitglied Rang ist zu niedrig.");
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Du bist nicht in einem Vehicle als Fahrer.");
new i = GetFrakCarIndex(playerid);
if(i == -1) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Du bist in keinem Fraktionsvehicle.");
new msg[248];
DestroyVehicle(fVehInfo[i][fvehID]);
fVehInfo[i][fvehInUse] = false;
mysql_format(Handle, msg, sizeof(msg), "DELETE FROM `fraktion_vehicle` WHERE `VehID` = '%d'", i);
mysql_pquery(Handle, msg);
format(msg, sizeof(msg), "* Fehler"HTML_WEISS": Du hast ein Fraktionsvehicle der Fraktion %s gelöscht.", fInfo[fVehInfo[i][fvehFraktion]-1][fName]);
SendClientMessage(playerid, COLOR_GELB, msg);
return 1;
}
stock GetFrakCarIndex(playerid)
{
for(new i,v=GetPlayerVehicleID(playerid); i<MAX_FRAK_VEHICLE; i++)
{
if(v == fVehInfo[i][fvehID]) return i;
}
return -1;
}
Alles anzeigen
Kann mir das in SAMP irgendwie nur schwer vorstellen.
Wäre cool, wenn du irgendwie präziser werden könntest, und mal ein grobes Szenario schilderst. (Also wie der Ablauf sein könnte...was jeder User sieht und was so passiert)
Magst ein wenig erläutern, was du dir so darunter vorstellst?
Hast du einen Crashreport für uns?
Passiert das auf allen Servern?
Falls ja, evtl den Kompatibilitätsmodus von samp ändern und sicherstellen, dass die gta_sa.exe die richtige ist.
In Zeile 10 muss das playerid und nicht pID sein.
Zum Anderen musst evtl mal print-Debuggen, welchen Wert AccountInfo[playerid][account_Admin] hat und welchen Wert der dazugehörige AdminInfo-AdminRang hat.
Ach, alles gut, versteh ich voll und ganz.
Früher wollte ich hier immer in diese VIP Gruppe
Nie verstanden, wieso man dafür ehemaliger Mod sein musste ![]()
Danke für deine Expert-ise
![]()
Kaliber welches Gewinnspiel? War in Breadfish Urlaub
Typisch Rentner, wollen nur Ruhe (¬‿¬)
True
bist eben abgehoben seitdem du Experte bist;D
Wieso riecht es hier nach der Eifersucht des Pöbels. Da muss die Elite nochmal ausdünnen ![]()
Wann war der Smalltalk während der letzten 3 Jahre denn produktiv und sinnvoll xD?
Naja, sagen wir, früher war er leiser xD
Ich weiß warum es nicht funktioniert
Ahhh, das Mindesthaltbarkeitsdatum der Website ist überschritten. Vorsichtig!!! ![]()
Nix für ungut, aber ich bezweifle, dass du ein Skript finden wirst, dass 1:1 deinen Wünschen entsprechen wird...
Du solltest deine Wünsche evtl in 3 Kategorien zusammenfassen:
Glaube dann könnte man dir evtl noch Angebote machen oder dir möglicherweise GF-Skripte vorschlagen.
Aber von der Idee, dass du in 2 Wochen so ein Skript für 100€ findest - mit diesen Kriterien - ist ja irgendwie Irrsinn...und auch wenn das Spiel alt ist, macht es die Erstellung solcher Funktionen/Skripte nicht weniger aufwändig.
Für dich:
RemoveBuildingForPlayer(playerid, 6463, 389.7734, -2028.4688, 19.8047, 50);
RemoveBuildingForPlayer(playerid, 3751, 389.8750, -2028.5000, 32.2266, 50);
RemoveBuildingForPlayer(playerid, 6298, 389.7734, -2028.4688, 19.8047, 50);
RemoveBuildingForPlayer(playerid, 6461, 389.7734, -2028.5000, 20.1094, 50);
RemoveBuildingForPlayer(playerid, 3752, 389.8750, -2035.3828, 29.9531, 50);
Kannst sowas leicht mit dem SAMP Construction Map Editor machen.
Was bedeutet dass wenn dieser Code ins Script implementiert wird, wird der Spieler, der den Befehl ausführt, direkt vom ACS weggehauen.
Deswegen will ich das mit SetPlayerCameraPos etc. machen.
Wie ist denn das Anti-Cheat aufgebaut? Theoretisch kannst ja einfach prüfen, ob diese PVar existiert und ob der Spieler auch diesen Spieler beobachten darf.
Ist denke ich deutlich schöner gelöst, als bestimmte Funktionen gänzlich auszuschließen. Schließlich bietet der Spectate Modus auch die Möglichkeit sich umzusehen etc. Es ist halt deutlich angenehmer als eine Fixxe Position auf das Fahrzeug, wenn man nicht mal sieht, was drum herum passiert.
Also kommt halt darauf an, was du mit dem Befehl erreichen magst. Kannst natürlich auch nur die Position von dem Fahrzeug abfragen und dem Spieler anzeigen lassen oder sonst was xD
Erstmal heute wieder ein Burberry Shirt in Empfang nehmen
Bitte GTA konform reden, es heißt Blueberry Shirt ![]()
Du solltest das hier nutzen:
ocmd:vcam(playerid,params[])
{
if(GetPVarType(playerid,!"spectate_person") != PLAYER_VARTYPE_NONE) {
//Löscht diese Zwischenvariable
DeletePVar(playerid,!"spectate_person");
//Das lässt den Spieler aus dem spectate Modus (er wird dadurch respawnt)
TooglePlayerSpectating(playerid, 0);
return 1;
}
new pID;
if(sscanf(params,"u",pID)) return SendClientMessage(playerid,COLOR_GREY,"/vcam [playerid]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist nicht online!");
if(!IsPlayerInAnyVehicle(pID)) return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler befindet sich in keinem Auto!");
//Sorgt dafür, dass playerid in die Welt von pID kommt, damit er ihn sehen kann
SetPlayerInterior(playerid, GetPlayerInterior(pID));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(pID)),
//Versetzt playerid in den Spectate Modus und beobachtet pID kontinuierlich!
TooglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, GetPlayerVehicleID(pID));
//Wichtig, damit bei erneutem eingeben von /vcam der Spectate Modus aufgehoben wird
SetPVarInt(playerid,!"spectate_person",pID);
return 1;
}
Alles anzeigen
Das aktualisiert sich von selbst, da musst du kein OnPlayerUpdate o.ä. nutzen.
PS: Er respawnt jetzt, wenn er den Befehl noch einmal eingibt, wenn er wieder dahin gelangen soll, wo er war, müsstest du seine Position, Interior & VW zwischenspeichern und dann wieder setzen.
Im falle eines Linux Servers müsste ich es dann mit screen dann starten, die instanz, oder?
Also ich nutze da lieber immer nohup (nohup node server.js &).
Aber screen geht natürlich auch.
Hier mal paar Pro-Cons: https://unix.stackexchange.com…ons/24658/nohup-vs-screen