Ganz unten in dem Befehl:
return 1;
zu:
else return SendClientMessage(playerid,grau,"Syntax: /server [Restart|Stop|Reload]");
return 1;
Beiträge von Jeffry
-
-
Weiß du was, schick mir doch einfach mal deine TeamViewer Daten per PN wenn du eh grade da bist, dann schau ich es kurz an. Das wäre geschickter, vor allem weil du, wie ich sehe, nicht den benötigten Code gepostet hast.
EDIT1:
Wir sind dran. Es liegt, Stand jetzt, an dem doch etwas komischen Aufbau des gesamten Codes. Morgen geht's weiter.EDIT2:
Erledigt.
Der Fehler war, dass mehrmals SetPlayerPos vor TogglePlayerSpectating(playerid, false) verwendet wurde. -
Kein Problem. Was genau verstehst du an dem Code nicht?
Zwecks den Klicks mit dem Feuerlöscher: Nutze dafür http://wiki.sa-mp.com/wiki/OnPlayerWeaponShot mit der ID des Feuerlöschers. Du kannst dann mit IsPlayerInDynamicCP abfragen, ob der Spieler im Checkpoint ist. Wenn ja, entfernst du das Objekt mit DestroyObject(feuerobj); (das habe ich dir oben noch als Variable hinzugefügt.
-
Vl könnt ihr mir jetzt weiter helfen

Da ich ja knapp zwei Wochen fort war frage ich erst nach, bevor ich mir die Mühe mache deinen Code zu studieren:
Besteht das Problem noch, oder konntest du es bereits lösen? -
new feuerch;
new feuerobj;
public FeuerRandom()
{
new string[145];
new rand = random(sizeof(FeuerPos));
feuerobj = CreateObject(18691, FeuerPos[rand][0],FeuerPos[rand][1],FeuerPos[rand][2],0,0,0,100.0);
//SendClientMessage(playerid, 0x00CDFFFF, "Du hast ein Zufallsfeuer erstellt!");
format(string,sizeof(string),"HQ: An alle Einheiten ein Feuer ist ausgebrochen!...");
SendFamilyMessage(13,COLOR_RED,string);
feuerch = CreateDynamicCP(FeuerPos[rand][0],FeuerPos[rand][1],FeuerPos[rand][2],10.0,-1,-1,-1,40.0);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(Spieler[i][Team] == 13)
{
TogglePlayerDynamicCP(i,feuerch,1);
}
}
return 1;
}public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
if(checkpointid == feuerch)
{
GameTextForPlayer(playerid, "~g~FEUER IN SICHT!!", 5000, 2);
}
return 1;
}
Für das Löschen kommt es darauf an, wie du das machen willst. Per Befehl, per Klick, ... .Für löschbares Feuer könntest du auch sowas hier verwenden: http://forum.sa-mp.com/showthread.php?t=226953
Generell kannst du ja auch von dem Code abgucken, wie es dort gemacht ist, oder du erstellst das Feuer einfach damit. -
Deshalb habe ich in der o.g. Pastebin mal ein Teil meines Scriptes gezeigt, wo ich vermute, dass da eine Andminabfrage enthalten ist.
Dort ist keine Admin-Abfrage vorhanden.
Poste am besten einen deiner Admin-Befehle, den kompletten Befehl. Sowas wie /ban oder so, dort befindet sich eine solche Abfrage dann. -
Am besten du verwendest erst mal das Streamer Plugin für deine Checkpoints, da du sonst nur einen Checkpoint pro Spieler im Code gespeichert haben kannst:
http://forum.sa-mp.com/showthread.php?t=102865Dann erstellst du den Checkpoint mit CreateDynamicCP und zeigst ihn den Spielern mit TogglePlayerDynamicCP an.
Und dann kannst du einfach in OnPlayerEnterDynamicCP abfragen, ob der Spieler den Checkpoint betreten hat.
Probiere das mal aus, und wenn du nicht weiterkommen solltest, poste nochmal den Code wie du ihn dann hast.
-
Willkommen auf Breadfish!
Gewöhne dir bitte in Zukunft an, den Code richtig zu postenm und nicht alles in einer Zeile. Falls du es nicht hinbekommst, kannst du alternativ http://www.pastebin.com nutzen.
ZitatEinzige warnung in der serverlog [13:37:45] [MySQL] Error (0): Failed to exeute query. Field 'level' doesn't have a default value.
Heißt:Das Feld "level" in der Datenbank hat keinen Standard-Wert. Gehe in deine Datenbank und setzen den DEFAULT-Wert von level zu 0, dann sollte der Fehler weg sein.
-
-
Pascal.: Du hast die Überprüfung der Stufe vergessen.
public OnPlayerEnterRaceCheckpoint(playerid)
{
if(GetPVarInt(playerid,"Prufung") == 1)
{
if(GetPVarInt(playerid,"Stufe") != 1)
{
new cID = GetPVarInt(playerid, "fCP");
new Float:range;
if(cID == sizeof(fsCP)-1) range = 20.0;
else range = 10.0;
if(IsPlayerInRangeOfPoint(playerid, range, fsCP[cID][fx], fsCP[cID][fy], fsCP[cID][fz]))
{
cID++;
if(cID >= sizeof(fsCP))
{
new string[150];
DestroyVehicle(GetPVarInt(playerid,"Flugzeug"));
new vID = CreateVehicle(487,419.8472,2503.8560,17.8609,89.4706,1,1,-1);
SetPVarInt(playerid,"Flugzeug",vID);
SetPVarInt(playerid,"fCP",0); //Setzen Checkpoint 0 (es wird ab 0 angefangen zu zählen)
SetPlayerRaceCheckpoint(playerid, 3,fsCP[0][fx],fsCP[0][fy],fsCP[0][fz], fsCP[1][fx],fsCP[1][fy],fsCP[1][fz], 10); //Hier wird der Checkpoint erstellt & der 2 Checkpoint auch
TextDrawShowForPlayer(playerid, usebox3);
TextDrawShowForPlayer(playerid, arz);
TextDrawShowForPlayer(playerid, info1);
format(string,150,"Fliege mit dem Maverick~n~erneut den Rundflug.");
TextDrawSetString(info1,string);
SetVehicleVirtualWorld(GetPVarInt(playerid,"Flugzeug"),GetPlayerVirtualWorld(playerid));
PutPlayerInVehicle(playerid,vID,0);
SetPVarInt(playerid,"Stufe",1);
}
SetPVarInt(playerid, "fCP", cID);
if(cID < sizeof(fsCP)-1) SetPlayerRaceCheckpoint(playerid, 3, fsCP[cID][fx], fsCP[cID][fy],fsCP[cID][fz], fsCP[cID+1][fx], fsCP[cID+1][fy],fsCP[cID+1][fz], 10);
else SetPlayerRaceCheckpoint(playerid, 4, fsCP[cID][fx], fsCP[cID][fy],fsCP[cID][fz], fsCP[cID][fx], fsCP[cID][fy],fsCP[cID][fz], 10);
}
return 1;
}
}
if(GetPVarInt(playerid,"Prufung") == 1)
{
if(GetPVarInt(playerid,"Stufe") == 1)
{
new cID = GetPVarInt(playerid, "fCP");
new Float:range;
if(cID == sizeof(fsCP)-1) range = 20.0;
else range = 10.0;
if(IsPlayerInRangeOfPoint(playerid, range, fsCP[cID][fx], fsCP[cID][fy], fsCP[cID][fz]))
{
cID++;
if(cID >= sizeof(fsCP))
{
SetPVarInt(playerid, "fCP", 0);
new string[128];
format(string,128,"{C8C8C8}Du hast den Flugschein erfolgreich {41FF00}bestanden.");
SCM(playerid,COLOR_GRAU,string);
DestroyVehicle(GetPVarInt(playerid,"Flugzeug"));
SetPlayerPos(playerid,415.1635,2535.5076,19.1484);
SetPlayerVirtualWorld(playerid,0);
SetPVarInt(playerid,"Prufung",0);
SetPVarInt(playerid,"Flugschein",1);
DisablePlayerRaceCheckpoint(playerid);
SavePlayer(playerid);
SetPVarInt(playerid,"Stufe",0);
}
SetPVarInt(playerid, "fCP", cID);
if(cID < sizeof(fsCP)-1) SetPlayerRaceCheckpoint(playerid, 3, fsCP[cID][fx], fsCP[cID][fy],fsCP[cID][fz], fsCP[cID+1][fx], fsCP[cID+1][fy],fsCP[cID+1][fz], 10);
else SetPlayerRaceCheckpoint(playerid, 4, fsCP[cID][fx], fsCP[cID][fy],fsCP[cID][fz], fsCP[cID][fx], fsCP[cID][fy],fsCP[cID][fz], 10);
}
return 1;
}
return 1;
}
DisablePlayerRaceCheckpoint(playerid);
return 1;
} -
jetzt sind die sekunden im +
Kannst du bitte nochmal deinen Code posten, so wie er momentan ist, und das, was als Ausgabe erscheint? -
Ich möchte jetzt ein Dialog mit y_Dialog erstellen, kannst mir sagen was ich dazu alles benötige?Was muss ich runterladen, wenn überhaupt..
Ich war ein paar Tage abwesend, hast du ja sicher bemerkt.
Da du ja noch keine, bzw. keine weitere Hilfe, bekommen hast:Du musst dir die YSI Library herunterladen, dort befinden sich die Funktionen für die y_dialogs.
http://forum.sa-mp.com/showthread.php?t=321092 -
Immernoch zu groß, wie ein Basketballfeld so groß sollte es sein

Dann das hier: 8661
Ist zwar nicht ganz so groß wie ein Feld, denke ich, aber du kannst ja zwei davon nehmen.Oder 8417, das hat schon die Markierungen.
-
-
Habe nicht gesehen, dass es am Ende einer Zeile noch stand, aus Versehen weg gemacht. Mein Fehler.
Habe den Code oben bearbeitet. -
Ich suche ein rechteckiges flaches Objekt, was eine schon etwas größere Fläche hat (Von der Größe wie ein Basketballfeld vllt. etwas größer)
Objekt ID: 4241 -
COMMAND:arepairtzelle(playerid,params[])
{
#pragma unused params
if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot.");
if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,GRAU,"Du bist kein "#SERVERTAG" Teammitglied./Du hast nicht den jeweiligen Adminrang.");
if(Spieler[playerid][pAdminOnduty] == false)return SendClientMessage(playerid,GRAU,"Du bist nicht im Admindienst.");
new string[145];
format(string,sizeof(string),"** %s repariert alle Telefonzellen **",SpielerName(playerid));
PlayerTalkPublic(playerid,MEFARBE,string,10);
for(new i=0; i<sizeof(TeleZelleInfo); i++)
{
if(TeleZelleInfo[i][EGmBhRubbishObject] != -1)
{
TeleZelleInfo[i][EGmBhTstamp] = gettime() + ((random(10) + 10)*60);
new oldtzellenhp = TeleZelleInfo[i][EGmBhHp];
TeleZelleInfo[i][EGmBhHp] = 100;
format(string,sizeof(string),"%s (ID:%i) hat eine Telefonzelle repariert. | Die Fraktion erhält %i$ vom Staat.",SpielerName(playerid),playerid,TeleZelleInfo[i][EGmBhHp]-oldtzellenhp); //Beachte, dass diese Nachricht noch nicht gesendet wird, es folgt kein SendClientMessage, oder ähnliches.
DestroyDynamicObject(TeleZelleInfo[i][EGmBhRubbishObject]);
TeleZelleInfo[i][EGmBhRubbishObject] = -1;
}
}
return 1;
}Je nach dem wie du dein System aufgebaut hast klappt das. Wenn nicht, poste bitte die "ReturnTelefonzellenID" Funktion.
-
Steht das unter OnPlayerDeath?
Wenn ja:if(PlayerInfo[playerid][pHeadValue] > 0)
{
SendClientMessage(playerid,COLOR_YELLOW,"Du bist nun für 5 Minuten auf dem Friedhof weil ein Contract auf dich ausgesetzt war!");
}Du solltest auch prüfen, ob du nicht zuvor die pHeadValue auf 0 gesetzt hast.
-
Alle auf einmal oder dass die ID angegeben werden muss?
-
Anscheinend schon, sonst würde der Fehler ja nicht kommen.
Möglicherweise nutzt ein Filterscript oder eine Include diese Funktionen.