Müsste so passen:
ocmd:editbiz(playerid, params[])
{
if(PlayerDaten[playerid][pTutorial] == 1)return SendClientMessage(playerid,ORANGE," Du bist noch im Tutorial!");
if(PlayerDaten[playerid][pLogin] == 0)return SendClientMessage(playerid,ORANGE ," Du bist nicht Eingeloggt!");
if(PlayerDaten[playerid][pAdminlevel] != 2000)return SendClientMessage(playerid,DUNKELROT," Du hast kein Zugriff auf diesen Befehl!");
new BizIDWahl, ExistsBiz[84], cmd[12], angabe[32];
if(sscanf(params,"is[12]s[32]", BizIDWahl, cmd, angabe)) return SendClientMessage(playerid,DUNKELROT," Benutzung: /editbiz [ID] [Name/Preis] [Angabe]");
format(ExistsBiz,sizeof(ExistsBiz),"/Firmen/%i.ini", BizIDWahl);
if(dini_Exists(ExistsBiz))
{
if(strcmp(cmd,"Name",true) == 0)
{
// Hier ist noch alles Leer.
}
if(strcmp(cmd,"Preis",true) == 0)
{
if(!IsNumeric(angabe)) return SendClientMessage(playerid,DUNKELROT,"Ein Preis besteht nicht aus Buchstaben!");
new preis = strval(angabe);
}
}
return 1;
}
Beiträge von Jeffry
-
-
Den dritten Parameter als String auslesen lassen, und beim Preis-Teil mit IsNumeric prüfen.
stock IsNumeric(string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
{
if ((string[i] > '9' || string[i] < '0')) return 0;
}
return 1;
}if(!IsNumeric(angabe)) return ...
else preis = strval(angabe); -
Einfach so:
if(strcmp(cmd,"/equip",true)==0)
{
if(PlayerInfo[playerid][pMember]!=20&&PlayerInfo[playerid][pLeader]!=20)return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht in der jeweiligen Fraktion.");
if(PlayerInfo[playerid][pFriedhof]==1)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht ausrüsten, solange du auf den Friedhof bist.");
if(!PlayerToPoint(5,playerid,-1869.5820,-1624.6660,21.8426))return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich hier nicht ausrüsten.");
if(gettime()<equipusen[playerid])
{
new equipzeit=equipusen[playerid]-gettime();
format(string,sizeof(string),"Du kannst dich erst wieder in %d Sekunden wieder ausrüsten.",equipzeit);
return SendClientMessage(playerid,COLOR_GREY,string);
}
GivePlayerWeapon(playerid,24,200);
equipusen[playerid]=gettime()+(60*2);
SendClientMessage(playerid,COLOR_GREY,"Du hast dich erfolgreich ausgerüstet.");
return 1;
} -
Ok. Ein paar Dinge:
Wird die Fraktion geladen?
Existiert der Ordner "Spieler" in den scriptfiles?
Wo rufst du "loadacc(playerid)" auf? Poste den Code dazu mal.Dann:
OnPlayerDisconnect zu:
public OnPlayerDisconnect(playerid, reason)
{
SpielerSpeichern(playerid);
ResetVariablen(playerid);
return 1;
}Und nebenbei:
if(strcmp("/binichadmin", cmdtext, true, 10) == 0)
zu:
if(strcmp("/binichadmin", cmdtext, true) == 0)Sonst prüfst du nur die ersten 10 Zeichen.

-
Poste bitte noch den Code dazu, der dir sagt, dass du kein Admin bist.
-
name hört sich nach einem String an.
format(path, sizeof(path), "/Frakcars/%d/%d.ini", fraks[frakid][name], fcnummer);
zu:
format(path, sizeof(path), "/Frakcars/%s/%d.ini", fraks[frakid][name], fcnummer);Existieren die Unterordner in Frakcars, also die Fraktionsnamen?
-
Poste bitte nicht alles in einer Zeile, sondern formatiere es richtig.
Wenn du es nicht hinbekommst, dann nutze http://www.pastebin.com und füge die Links hier ein. Danke! -
Willkommen auf Breadfish!
Poste bitte den dazugehörigen Code, sonst können wir dir nicht helfen.
Lese dir nebenbei auch noch das hier durch: Tipps: Scripting-Probleme richtig erklären -
Meinst du das was ich zuletzt am Script gemacht habe, oder was?
Genau. -
Bei deinen Pfaden fehlt die Dateiendung (.txt, .ini, ...). Ist das so gewollt, ich glaube kaum.

-
Indem du überlegst, was du als letztes gemacht hast. Dort schaust du dann nach, ob eine Klammer zu viel oder zu wenig vorhanden ist.
Wo der Fehler ist lässt sich nicht sagen, das ist das doofe daran.Du kannst als Alternative den ganzen Code via http://www.pastebin.com hier mal posten, dann kann ich es heute Abend mit meinem Programm mal testen, in ca. 50% der Fälle kann ich damit den Klammerfehler finden.
-
Das sieht ziemlich stark nach einem Klammerfehler aus.
Öffne den Code mal mit Notepad++ und lass dir die { und } Klammern zählen. Die sind dann wahrscheinlich unterschiedlich.Zitat26 Errors (Klammerfehler)
Steht ja sogar dabei.
-
So, schreib das Speichern so:
<Code auf Wunsch von [DT]midomen entfernt, wegen Copyright.>Und dann schau nochmal.
Wenn es nicht tut, poste bitte nochmal den Log und den aktuellen gesamten dazugehörigen Code dazu, damit der Überblick wieder da ist. -
Kennt jemand eine Objekt ID von einem Fenster, dass man z.B für ein Autohaus verwenden kann?
Otto's: 3857 - 3859
Wang Cars: 3851 -
So:
format(string,128,"<< Hitman %s hat den Auftrag an %s erfüllt und erhält: $%d >>",killer,giveplayer,PlayerInfo[playerid][pHeadValue]);Strings sind %s, die Variable name kannst du weg machen, dafür hast du giveplayer.
-
Du willst doch sicher nicht die playerid ausgeben, sondern den Name:
format(string,128,"<< Hitman %s hat den Auftrag an %s erfüllt und erhält: $%d >>",killer,playerid,PlayerInfo[playerid][pHeadValue]);
Da musst du playerid ändern, und wie bei killer auch GetPlayerName machen. -
Die Klammer unter
else if(listitem == 1)
ist falsch herum. -
TextDrawSetString(Geld2[playerid], str);
Zu
PlayerTextDrawSetString(playerid, Geld2[playerid], str);Eigentlich hättest du da sogar eine Warnung haben sollen.
-
Du musst bei OnPlayerConnect (oder eben dort wo du willst), das Textdraw anzeigen lassen, wenn du das nicht machst:
PlayerTextDrawShow(playerid, Geld2[playerid]);Übrigens sehe ich gerade, dass bei Geld1 das Array fehlt. An sich kein Problem, da es ja nur eine weiße Box ist, aber dann musst du es als normales Textdraw erstellen, sonst sieht es nur eine playerid. Also unter OnGameMode Init mit "TextDrawCreate" und ohne playerid erstellen und definieren. Außerdem "new Text:Geld1;".
Das macht dann mehr Sinn, dann erstellst du nicht für jeden Spieler das weiße Textdraw nochmal.Anzeigen dann mit
TextDrawShowForPlayer(playerid, Geld1); -
Dort wo die Nachricht ausgegeben wird:
new string[145];
format(string, sizeof(string), "[%s] %s: %s", GetAdminRank(playerid), SpielerName(playerid), nachricht);
SendClientMessageToAll(FARBE, string);Ganz unten im Code:
stock GetAdminRank(playerid)
{
new rank[20];
switch(SpielerInfo[playerid][AdminLevel])
{
case 0: rank = "Spieler";
case 1: rank = "Moderator";
case 2: rank = "Administrator";
default: rank = "Unbekannt";
}
return rank;
}