Das hängt mit der Rechenleistung deines PCs zusammen. Vermutlich ist dieser gerade anderweitig ausgelastet und es kommt zur Verzögerung.
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Hallo ich habe ein Script mit 40.000 Zeilen wenn ich das Compile dann dauert es immer nur so 1-2 Minuten, jetzt dauert es noch länger überhaupt ich keine Systeme oder so eingefügt habe es ist alles gleich weiß einer warum?
Je mehr globale und lokale Variablen du deklarierst, und je mehr Code du an sich hast, kann der Vorgang einige Zeit in Anspruch nehmen. Vor allem größere Arrays, die im Code verwendet werden, tragen zu sehr langen Laufzeiten bei.
Je stärker die Systemleistung (CPU, RAM, Festplatte), desto schneller geht es. -
Warum startet mein Server nicht im Script?
[19:13:47]bind 148.251.233.201 Server Plugins
[19:13:47]bind 148.251.233.201 --------------
[19:13:47]bind 148.251.233.201 Loading plugin: streamer
[19:13:47]bind 148.251.233.201 Failed (plugins/streamer: cannot open shared object file: No such file or directory)
[19:13:47]bind 148.251.233.201 Loaded 0 plugins.Wenn ich localhost server starte genau selbes Plugin funktioniert alles aber wenn ich aufs Server draufsetze dann nicht? Weiß jemand warum?
-
Wahrscheinlich, weil auf deinem Server Linux läuft und da musst du in der server.cfg bei den Plugins streamer.so schreiben

-
Danke Problem gelöst

-
Habe mir Tutorials angeguckt wie man sich ein individuelles PayDay System erstellt, habe momentan das Problem das alle Daten auf 0 sind also irgendwie funktioniert etwas nicht hier alles was ich habe, vlt habe ich was übersehen.
Das wird nach dem Login gemacht ( Zeile 6. )
Codeforward LoadAccount(playerid); public LoadAccount(playerid) { SetCameraBehindPlayer(playerid); SetPlayerScore(playerid,(pInfo[playerid][pLevel])); payday[playerid]=SetTimerEx("PayDay",1000*60,true,"i",playerid); return 1; }Der Timer wird auch beim Disconnect gekillt.
Code
Alles anzeigenforward PayDay(playerid); public PayDay(playerid) { if(pInfo[playerid][pPayDay]>=60) { //Wenn er PayDay hAT if(pInfo[playerid][pXP]>=pInfo[playerid][pXPMax]) { SetPlayerScore(playerid,(pInfo[playerid][pLevel]+1)); pInfo[playerid][pXP]=0; pInfo[playerid][pXPMax]+=6; GameTextForPlayer(playerid, "~y~ ~u~Levelup~y~ ~u~", 1000, 3); } if(pInfo[playerid][pLevel]==3) { SendClientMessage(playerid,-1,"{009BFF}Da du jetzt Level 3 bist kannst du dir den Waffenschein A erwerben."); } SendClientMessage(playerid,-1,"{009BFF}PayDay"); pInfo[playerid][pPayDay]=0; SpielerSpeichern(playerid); return 1; } else { pInfo[playerid][pPayDay]+=1; SpielerSpeichern(playerid); } return 1; }Code
Alles anzeigenocmd:stats(playerid,params[]) { new string[250]; format(string, sizeof(string), "•Level: %d \n•Respektpunkte:%d/%d\n•Payday: %d/60", string, pInfo[playerid][pLevel],pInfo[playerid][pXP],pInfo[playerid][pXPMax],pInfo[playerid][pPayDay]); new string1[250]; format(string1,sizeof(string1),"{FFFFFF}Stats von %s",Spielername(playerid)); ShowPlayerDialog(playerid,DIALOG_STATS1,DIALOG_STYLE_MSGBOX,string1,string,"Schließen",""); return 1; }Also ich möchte ja das man auch sehen kann das nach jeder Minute sich pPayDay sich auf +1 erhöht aber ich kann 10 Minuten warten da passiert nichts. Also bei dem %d/60, wenn ich einen neuen Command erstelle der mir das auf +60 setzt steht da immer noch 0
-
format(string, sizeof(string), "•Level: %d \n•Respektpunkte:%d/%d\n•Payday: %d/60", string, pInfo[playerid][pLevel],pInfo[playerid][pXP],pInfo[playerid][pXPMax],pInfo[playerid][pPayDay]);
zu:
format(string, sizeof(string), "•Level: %d \n•Respektpunkte:%d/%d\n•Payday: %d/60", pInfo[playerid][pLevel],pInfo[playerid][pXP],pInfo[playerid][pXPMax],pInfo[playerid][pPayDay]); -
Hallo sind hier zufällig Scipter anwesend die mir ein paar Fragen zum GTA V Scripting beantworten können?
-
Stell einfach deine Fragen.
-
Damit ist doch SAMP gemeint oder? Glaube unter der GTA 5 Scriptingbase gibt es eine Ecke wo du deine Frage stellen kannst.
-
Alles anzeigen
Hay,
Undzwar habe ich eine Frage...
Beim VRL-Script kann man ein Gangfight nur in der Nähe von einer Flagge starten.... Ich wollte aber das Gangfight System ohne Flaggen nutzen und nur auf Kills basieren sowie, dass man ein Gangfight starten kann, sobald man in der Zone ist.
Würde mir jemand helfen wie ich das einrichten kann?
Code zu /gangfight ist ebenfalls angehangen.
CMD:gangfight(playerid)
{
new string[128], gwzone = GetPlayerGangzone(playerid), gangs = 0;
if(!IsGang(Spieler[playerid][pFraktion]))return SendClientMessage(playerid, COLOR_GREY, "Du gehörst keiner Gang/Mafia an.");
if(Spieler[playerid][pRank] < 5)return SendClientMessage(playerid, COLOR_GREY, "Gangfights können erst ab Rang 5 gestartet werden.");
if(IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "Du darfst dich in keinem Fahrzeug befinden.");
if(gwzone == -1)return SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keiner Gangfight Zone.");
if(GangFight[gwzone][warOwner] == Spieler[playerid][pFraktion])return SendClientMessage(playerid, COLOR_GREY, "Dieses Gebiet gehört bereits deiner Fraktion.");
if(GangFight[gwzone][warAttacker] == Spieler[playerid][pFraktion])return SendClientMessage(playerid, COLOR_GREY, "Deine Fraktion greift dieses Gebiet bereits an.");
if(GangFight[gwzone][warTime] != 0 || GangFight[gwzone][warAttacker] != 0 ||GangFight[gwzone][warStarted] != 0)return SendClientMessage(playerid, COLOR_GREY, "Dieses Gebiet wird bereits umkämpft.");
if(IsPlayerInRangeOfPoint(playerid, 5.0, GangFight[gwzone][warFlagX1], GangFight[gwzone][warFlagY1], GangFight[gwzone][warFlagZ1]) ||
IsPlayerInRangeOfPoint(playerid, 5.0, GangFight[gwzone][warFlagX2], GangFight[gwzone][warFlagY2], GangFight[gwzone][warFlagZ2]))
{
if(GWisStarted4Fraktion[Spieler[playerid][pFraktion]] == 1)return SendClientMessage(playerid, COLOR_GREY, "Deine Fraktion bekämpft bereits ein Gebiet.");
if(GWisStarted4Fraktion[GangFight[gwzone][warOwner]] == 1)return SendClientMessage(playerid, COLOR_GREY, "Der Besitzer ist bereits in einem Gangfight.");
if(GangFight[gwzone][warOwner] == 0)
{
for(new i=0;i<GetMaxPlayers();i++)
{
if(IsLoggedIn(i))
{
if(Spieler[i][pFraktion] == Spieler[playerid][pFraktion])
{
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][0]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][1]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][2]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][3]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][4]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][5]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][6]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][7]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][8]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][9]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][10]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][11]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][12]);
TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][13]);
GameTextForPlayer(i,"~g~GEBIET EINGENOMMEN",4000,5);
}
GangFight[gwzone][warOwner] = Spieler[playerid][pFraktion];
GangFight[gwzone][warAttacker] = 0;
GangFight[gwzone][warAttackerScore] = 0;
GangFight[gwzone][warOwnerScore] = 0;
GangFight[gwzone][warStarted] = 0;
GangZoneShowForAll(GangFight[gwzone][warZoneID], GetZoneColor(Spieler[playerid][pFraktion]));
return 1;
}
}
}
for(new a=0;a<GetMaxPlayers();a++)
{
if(IsLoggedIn(a))
{
if(Spieler[a][pFraktion] == GangFight[gwzone][warOwner])
{
gangs++;
}
}
}
if(gangs < 1)return SendClientMessage(playerid, COLOR_GREY, "Es müssen mindestens 1 Gegner online sein.");
if(GangFight[gwzone][warReady] > 0)
{
format(string, sizeof(string), "Dieses Gebiet hat noch eine Sperre von %d Minuten.", (GangFight[gwzone][warReady]/60));
SendClientMessage(playerid, COLOR_GREY, string);
return 1;
}
format(string, sizeof(string), "Ein Gangfight von %s gegen %s (%s) wurde gestartet.", GetFraktionName(Spieler[playerid][pFraktion]), GetFraktionName(GangFight[gwzone][warOwner]), GangFight[gwzone][warZoneName]);
for(new a=0;a<GetMaxPlayers();a++)
{
if(IsLoggedIn(a))
{
if(Spieler[a][pFraktion] == 3 || Spieler[a][pFraktion] == 5 || Spieler[a][pFraktion] == 8 || Spieler[a][pFraktion] == 9)
{
SendClientMessage(a, COLOR_ORANGE, string);
}
}
}
format(string, sizeof(string), "%s hat ein Gangfight (%s) gegen euch gestartet.", GetFraktionName(Spieler[playerid][pFraktion]), GangFight[gwzone][warZoneName]);
SendFraktionMessage(GangFight[gwzone][warOwner], COLOR_ORANGE, string);
format(string, sizeof(string), "Ein Gangfight gegen %s (%s) wurde von %s gestartet.", GetFraktionName(GangFight[gwzone][warOwner]), GangFight[gwzone][warZoneName], GetName(playerid));
SendFraktionMessage(Spieler[playerid][pFraktion], COLOR_ORANGE, string);
GangFight[gwzone][warAttacker] = Spieler[playerid][pFraktion];
GWisStarted4Fraktion[GangFight[gwzone][warOwner]] = 1;
GWisStarted4Fraktion[GangFight[gwzone][warAttacker]] = 1;
GangFight[gwzone][warAttackerScore] = 0;
GangFight[gwzone][warOwnerScore] = 0;
GangFight[gwzone][warCapturedFlags][0] = 0;
GangFight[gwzone][warCapturedFlags][1] = 0;
GangFight[gwzone][warCapturedBy][0] = 0;
GangFight[gwzone][warCapturedBy][1] = 0;
GangFight[gwzone][warCaptureTime][0] = 0;
GangFight[gwzone][warCaptureTime][1] = 0;
GangFight[gwzone][warTime] = 60;
GangFight[gwzone][warStarted] = 1;
format(string, sizeof(string), "~b~%s:~w~ %d/%d Punkte", GetFrakName(GangFight[gwzone][warOwner]), 0, MAX_GANGFIGHTSCORE);
TextDrawSetString(GangFight[gwzone][warDraw][3], string);
format(string, sizeof(string), "~b~%s:~w~ %d/%d Punkte", GetFrakName(GangFight[gwzone][warAttacker]), 0, MAX_GANGFIGHTSCORE);
TextDrawSetString(GangFight[gwzone][warDraw][4], string);
format(string, sizeof(string), "~y~verbl. Zeit: %d Min", GangFight[gwzone][warTime]);
TextDrawSetString(GangFight[gwzone][warDraw][5], string);
GangZoneFlashForAll(GangFight[gwzone][warZoneID], GetZoneColor(Spieler[playerid][pFraktion]));
if(IsPlayerInRangeOfPoint(playerid, 20.0, GangFight[gwzone][warFlagX1], GangFight[gwzone][warFlagY1], GangFight[gwzone][warFlagZ1]))
{
GangFight[gwzone][warCapturedFlags][0] = Spieler[playerid][pFraktion];
format(string, sizeof(string), "Flagge A wurde von %s erobert.", GetName(playerid));
SendFraktionMessage(Spieler[playerid][pFraktion], COLOR_ORANGE, string);
}
else if(IsPlayerInRangeOfPoint(playerid, 20.0, GangFight[gwzone][warFlagX2], GangFight[gwzone][warFlagY2], GangFight[gwzone][warFlagZ2]))
{
GangFight[gwzone][warCapturedFlags][1] = Spieler[playerid][pFraktion];
format(string, sizeof(string), "Flagge B wurde von %s erobert.", GetName(playerid));
SendFraktionMessage(Spieler[playerid][pFraktion], COLOR_ORANGE, string);
}
for(new i=0;i<GetMaxPlayers();i++)
{
if(IsLoggedIn(i))
{
if(Spieler[i][pFraktion] == GangFight[gwzone][warOwner])
{
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][0]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][1]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][2]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][3]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][4]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][5]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][6]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][7]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][8]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][9]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][10]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][11]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][12]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][13]);
}
if(Spieler[i][pFraktion] == Spieler[playerid][pFraktion])
{
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][0]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][1]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][2]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][3]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][4]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][5]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][6]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][7]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][8]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][9]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][10]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][11]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][12]);
TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][13]);
}
}
}
}
return 1;
}Kann mir jemand helfen?

-
Kann mir jemand helfen?

Einfach oben das warFlag.. rausnehmen, bin auf'm Handy.
-
Code
Alles anzeigenelse { if(IsPlayerInRangeOfPoint(i,10,1633.10706, -1737.88904, 12.547)) { if(pInfo[i][pZuletztGeblitzt] < time) { speed = getPlayerSpeed(i); if(speed > 55) { GameTextForPlayer(i, "~r~!Du wurdest geblitzt!", 700, 3); extrageldstrafe = floatround((speed - 50) * 200); pInfo[i][pZuletztGeblitzt] = gettime(); uebertretung = floatround(speed - 50); pInfo[i][pGeld] = -geldstrafe; GivePlayerMoney(i, -geldstrafe); new string[145]; format(string, sizeof(string), "{c45461}Du bist %dKm/h gefahren (%dKm/h zu viel). Du musst ein extra Bußgeld bezahlen, Bußgeld in höhe von $%d.", floatround(speed), uebertretung, punkte, extrageldstrafe); SendClientMessage(i,-1, string); } } } } } } } return true; }Er zeigt mir im String immer 0$ an aber zieht mir das richtige ab ( Stringlänge passt ) woran liegt es habe einiges getestet.
-
format(string, sizeof(string), "{c45461}Du bist %dKm/h gefahren (%dKm/h zu viel). Du musst ein extra Bußgeld bezahlen, Bußgeld in höhe von $%d.", floatround(speed), uebertretung, punkte, extrageldstrafe);zu
format(string, sizeof(string), "{c45461}Du bist %dKm/h gefahren (%dKm/h zu viel). Du musst ein extra Bußgeld bezahlen, Bußgeld in höhe von $%d.", floatround(speed), uebertretung, extrageldstrafe); -
Danke dir!♥
CodeAutohausauto1[ 1 ] = CreateVehicle(502, 771.72266, -1381.50586, 13.64, 340, 79, 62, 600); //vehicle (Hotring Racer 3) (1) Autohausauto1[ 2 ] = CreateVehicle(503, 767.22302, -1381.26501, 13.631, 340, 98, 83, 600); //vehicle (Hotring Racer 2) (1) Autohausauto1[ 3 ] = CreateVehicle(494, 762.409, -1381.12805, 13.632, 340, 54, 36, 600); //vehicle (Hotring Racer) (1)Code
Alles anzeigenif(newstate == PLAYER_STATE_DRIVER && pInfo[playerid][pAutoschein] ==1) { new vid = GetPlayerVehicleID(playerid); for(new i = 0; i < sizeof(Autohausauto1); i++) { if(vid == Autohausauto1[i]) { ShowPlayerDialog(playerid, DIALOG_AUTOHAUS1, DIALOG_STYLE_LIST, "{FFFFFF}Los Santos exquisit Autohaus", "Auto koscht 1000$", "Kaufen", "Abbrechen"); return RemovePlayerFromVehicle(playerid); } } } else { SendClientMessage(playerid,-1,"{c45461}Du brauchst einen •Autoschein um dir ein Fahrzeug zu kaufen."); return RemovePlayerFromVehicle(playerid); }Bin dabei ein Autohaus System zu machen aber wie frage ich ab oder besser gesagt was passiert wenn er im Autohausauto1[1] und was passiert wenn er im 2. Ist weil die haben ja alle ganz andere Preise usw. hmm
-
Am besten über eine zweite Variable (oder ein enum-Array).
Autohausauto1_preis[ 0 ] = 10000;
Autohausauto1_preis[ 1 ] = 10;
Autohausauto1_preis[ 2 ] = 9876;
Autohausauto1_preis[ 3 ] = 454545;format(string, sizeof(string), "Auto koscht $%d", Autohausauto1_preis[i]);
ShowPlayerDialog(playerid, DIALOG_AUTOHAUS1, DIALOG_STYLE_LIST, "{FFFFFF}Los Santos exquisit Autohaus", string, "Kaufen", "Abbrechen"); -
Ja wie sage ich dem jetzt das Autohausauto1_preis[ 0 ] = 10000; zu dem ersten Auto gehört, kann ich das nicht anders machen was dann auch bisschen länger Script ist?
-
Die Nummer im Array beim Preis muss die gleiche Nummer sein, wie bei CreateVehicle im Array. Sprich die 1 dort entspricht dem Preis von 1.
Über das i in der Schleife passt das dann automatisch. -
Code
Alles anzeigenif(newstate == PLAYER_STATE_DRIVER && pInfo[playerid][pAutoschein] ==1) { new vid = GetPlayerVehicleID(playerid); for(new i = 0; i < sizeof(Autohausauto1); i++) { if(vid == Autohausauto1[i]) { ShowPlayerDialog(playerid, DIALOG_AUTOHAUS1, DIALOG_STYLE_LIST, "{FFFFFF}Los Santos exquisit Autohaus", "Auto koscht 1000$", "Kaufen", "Abbrechen"); RemovePlayerFromVehicle(playerid); } } } else { SendClientMessage(playerid,-1,"{c45461}Du brauchst einen •Autoschein um dir ein Fahrzeug zu kaufen."); RemovePlayerFromVehicle(playerid); }Wenn ich zum Server connecte sagt er mir ich brauch ein Autoschein also das ist dieser Code, warum?
-
else
Zu
else if(newstate == PLAYER_STATE_DRIVER && pInfo[playerid][pAutoschein] != 1)Oder die if-Bedingung teilen, und nur bei der Autoschein Abfrage dann den else Part nehmen.

