Hast du auch alle news oben im Script angepasst, die müssten jetzt so aussehen:
new Float:zX[MAX_PLAYERS], Float:zY[MAX_PLAYERS], Float:zZ[MAX_PLAYERS], zID[MAX_PLAYERS];
//achso und bei OnPlayerConnect
zID[playerid] = -1;
mfg. ![]()
Hast du auch alle news oben im Script angepasst, die müssten jetzt so aussehen:
new Float:zX[MAX_PLAYERS], Float:zY[MAX_PLAYERS], Float:zZ[MAX_PLAYERS], zID[MAX_PLAYERS];
//achso und bei OnPlayerConnect
zID[playerid] = -1;
mfg. ![]()
SetPlayerCheckpoint(playerid, Float:zX[zID], Float:zY[zID[i]], Float:zZ[zID[i]], 5.0);
Nein, nicht so !!!
So wie ich es gemacht habe, der Compiler weiß doch bereits, dass zX ein Float ist, da wir es so deklariert haben ![]()
zID = playerid;
So:
zID[playerid] = playerid;//sieht zwar etwas komisch aus, ist aber richtig
mfg. ![]()
/Save sind ganz anders.
Das kann nicht sein, es sei denn du stehst an einer anderen Position ![]()
mfg. ![]()
Liegt an dem Hoster pc.
Zu schlechte Upload rate
So ein Quatsch ![]()
Du solltest das nicht alles unter OnPlayerUpdate packen !
Erstelle einfach einen Timer oder packe die einzelnen Funktionen in die dafür angefertigten Callbacks !
PS: Nicht der Server laggt sondern die Spieler ![]()
mfg. ![]()
Es gibt eine property.cfg dort müssen die Haus Daten eingetragen werden.
Das ist so aufgebaut:
-2639.734375,168.677398,7.195300,1.200000,-3.400000,999.400024,0,0,0,0,0,0,Zu Verkaufen,Trailer,200000,0,0,2,1,0,0,50,1,2045,542,-1,-1,114,3
Schau doch mal hier: [ SCRIPTING ] [GODFATHER] sbizz/bizz/property.cfg
mfg. ![]()
Ja, das ist noch nicht korrekt ![]()
So muss das ausschauen:
if(!strcmp(ops, "medic", true))
{
if(pInfo[playerid][pFrak] == FRAK_MEDIC)
{
if(BereitsNotruf[playerid] == 0)
{
for(new i; i < MAX_PLAYERS; i++)
{
if(zID[i] != -1)
{
SetPlayerCheckpoint(playerid, zX[zID[i]], zY[zID[i]], zZ[zID[i]], 5.0);
new zName[24],
zstr[125];
GetPlayerName(zID[i], zName, 24);
format(str, sizeof(str), "Du hast den Notruf von %s angenommen", zName);
SendClientMessage(playerid, COLOR_LIGHTBLUE, str);
GetPlayerName(playerid, name, sizeof(name));
format(zstr, sizeof(zstr), "%s hat deinen Notruf angenommen. Warte an deiner jetzigen Position bis er eintrift.", name);
SendClientMessage(zID[i], COLOR_LIGHTBLUE, zstr);
BereitsNotruf[i] = 1;
zID[i] = -1;
break;
}
}
}
}
}
mfg. ![]()
Unfähig selber zu suchen ?
2sek: [ SCRIPTING ] MySQL (Installation, Zugriff, Einstellungen, Login & Register Beispiel)
mfg. ![]()
Wenn wir schon mal dabei sind habe ich direkt noch ein paar Tipps ![]()
Um ein bisschen Ressourcen zu sparen kann man Variablen anstatt so:
new SkinAuswahl[MAX_PLAYERS];
new Adminlogin[MAX_PLAYERS];
new Float:Gotox[MAX_PLAYERS];
new Float:Gotoy[MAX_PLAYERS];
new Float:Gotoz[MAX_PLAYERS];
besser so deklarieren:
new SkinAuswahl[MAX_PLAYERS],
Adminlogin[MAX_PLAYERS],
Float:Gotox[MAX_PLAYERS],
Float:Gotoy[MAX_PLAYERS],
Float:Gotoz[MAX_PLAYERS];
Leere Callbacks am besten einfach rausschmeißen...
Sachen wie sowas:
if(Adminlogin[playerid] == 0)
{
SendClientMessage(playerid,Rot,"Du bist nicht als Administrator Eingeloggt!");
return 1;
}
Kann man auf sowas kürzen:
if(Adminlogin[playerid] == 0) return SendClientMessage(playerid,Rot,"Du bist nicht als Administrator Eingeloggt!");
Aber ansonsten sieht das Script eigentlich ganz gut aus, 8.5/10 ! ![]()
mfg. ![]()
//Edit: Rechtschreibung
Würde mich über weitere Feedbacks zum System (nicht über den Ort wo ich die Cars jetzt hingestellt habe) freuen ![]()
mfg. ![]()
Hätte da ein paar Verbesserungsvorschläge:
Anstatt sowas:
dcmd_cleartext(playerid,params[])
{
#pragma unused params
new String[128];
if(PlayerInfo[playerid][pAdministrator] >= 2)
{
if(Adminlogin[playerid] == 0)
{
SendClientMessage(playerid,Rot,"Du bist nicht als Administrator Eingeloggt!");
return 1;
}
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
SendClientMessageToAll(Weiß," ");
format(String,sizeof(String),"((Administrator: %s hat den Chatlog gecleart))",SpielerName(playerid));
SendClientMessageToAll(Rot,String);
return 1;
}
else
{
SendClientMessage(playerid,Rot,"Du bist kein Administrator!");
}
return 1;
}
einfach sowas:
dcmd_cleartext(playerid,params[])
{
#pragma unused params
new String[128];
if(PlayerInfo[playerid][pAdministrator] >= 2)
{
if(Adminlogin[playerid] == 0)
{
SendClientMessage(playerid,Rot,"Du bist nicht als Administrator Eingeloggt!");
return 1;
}
for(new i; i<24; i++) SendClientMessageToAll(Weiß, " ");
format(String,sizeof(String),"((Administrator: %s hat den Chatlog gecleart))",SpielerName(playerid));
SendClientMessageToAll(Rot,String);
return 1;
}
else
{
SendClientMessage(playerid,Rot,"Du bist kein Administrator!");
}
return 1;
}
und Quini, die mysql_query Systeme von Maddin sind nicht die besten, da er jede Variable einzeln in die Datenbank einträgt...das geht mit einer längeren query viel besser ![]()
mfg. ![]()
Dann liegt da dein Fehler ![]()
mfg. ![]()
Du liest meine Posts nicht genau:
Hast du soetwas im Script wo die Variable (FrakCar[car][FraktionID]) einen Wert bekommt, der nicht aus einer .txt oder .ini Datei stammt ![]()
Na, so:
for(new i; i<MAX_PLAYERS; i++)
{
if(zID[i] != -1)
{
//Dieser Spieler (zID[i]) benötigt einen Medic
break;
}
}
mfg. ![]()
Da nutzt du auch einfach den Array, also so: zID[playerid] ![]()
Brauchst halt noch eine for-Schleife in dem Accept Befehl, aber wenn ich mich nicht täusche, konntest du doch mal besser scripten oder ![]()
mfg. ![]()
.txt oder .ini ist im Prinzip das selbe, also mir würden jetzt keine sonderlichen Unterschiede einfallen ![]()
und nein, diesen Code meinte ich nicht, ich will sowas zum Beispiel mal sehen:
FrakCar[car][FrakID] = PlayerInfo[playerid][pMember];
mfg. ![]()
Naja so:
//beispiel
GetPlayerPos(playerid, zX[playerid], zY[playerid], zZ[playerid]);
mfg. ![]()
Sei mir nicht böse Quini, wenn man keine Zeit sowie das nötige Wissen dazu hat sich einen Server einzurichten und sich ein Script zurecht zu schreiben, sollte man es bleiben lassen. Es bringt doch nichts wenn man von der Materie nichts versteht, aber alles haben will.
MfG noobs Meinung ...
Okay, das ist eine Meinung, aber nehmen wir mal an, dass der Scripter noch ein Anfänger ist und dann kann Quini ihm unter die Arme greifen, indem er ein Grundgerüst für sie/ihn erstellt ![]()
In diesem Sinne, viel Erfolg Quini ![]()
mfg. ![]()
Ok. Habe mir schon sowas gedacht :). Ich muss doch nur ne Ich glaube Variable hinzufügen das es funktioniert oder? Und wegen dem Code:
SetPlayerCheckpoint(playerid, zX, zY, zZ, 5);
Das ist die Errorzeile.
Also der Code da ist absolut richtig ![]()
Nein, im Prinzip brauchst du keine weitere Variable aber einen Array *hust*[MAX_PLAYERS]*hust* ![]()
mfg. ![]()
Ups, ja sorry hatte mich verlesen ![]()
Zum Code, nein das meine ich nicht...es muss doch irgenteinen Code geben wo die ganzen Variablen einen Wert bekommen, der nicht aus einer .ini Datei ausgelesen wird...
mfg. ![]()