Du musst es auf 1 stellen, um den Skinshot einzuschalten.
Beiträge von Jeffry
-
-
Genau so, ja.
-
Genau so, ja.
-
-
if(strlen(Firmengebiete[i][F_Besitzer]) > 2) return SendClientMessage(playerid, 0xFF0000FF, "Error: Diese Firma gehört bereits jemandem.");
-
Jeffry wieso keine natives nutzen , welche ziemlich schnell sind
0 ist auch eine Zahl.
Und dein IsLetterString kann Zeichen enthalten, die kein Buchstabe sind.
-
Du kannst es ja mit dem Registrieren mal direkt rein schreiben:
format(query,sizeof(query),"INSERT INTO user (username, passwort, level, firma) VALUES ('%s',MD5('%s'), '1', '-1')",name,passwort);Wenn das auch nichts bringt, dann überschreibst du die -1 irgendwo zu einer 0.
-
Ich war so frei und habe die Funktionen verbessert.
Die IsOnly... Funktionen habe ich weg gelassen, da diese hier keinen Sinn mehr geben, da sie das gleiche darstellen würden.stock IsLetterString(str[]) //©Jeffry
{
if(!strlen(str)) return 0;
for(new i = 0, j = strlen(str); i < j; i++)
{
switch(str[i])
{
case 'A'..'Z', 'a'..'z': continue;
case 138, 142, 159, 192..214, 216..246, 248..255: continue;
}
return 0;
}
return 1;
}stock IsNumber(str[]) //©Jeffry
{
if(!strlen(str)) return 0;
for(new i = 0, j = strlen(str); i < j; i++)
{
switch(str[i])
{
case '0'..'9': continue;
case '+', '-': if(i == 0) continue;
}
return 0;
}
return 1;
}stock IsFloat(str[]) //©Jeffry
{
if(!strlen(str)) return 0;
new l_dct;
for (new i = 0, j = strlen(str); i < j; i++)
{
switch(str[i])
{
case '0'..'9': continue;
case '+', '-': if(i == 0 && i != j-1) continue;
case '.':
{
l_dct++;
if(l_dct == 1 && i != 0 && i != j-1 && str[i-1] != '+' && str[i-1] != '-') continue;
}
}
return 0;
}
return 1;
}Verwendung:
printf("%d",IsLetterString("Jeffry")); //true
printf("%d",IsLetterString("Hallo123!")); //false
printf("%d",IsNumber("+14032401")); //true
printf("%d",IsNumber("14032401")); //true
printf("%d",IsNumber("Jeffry")); //false
printf("%d",IsFloat("14.03")); //true
printf("%d",IsFloat("-24.01")); //true
printf("%d",IsFloat("9.9a")); //false -
if(!IsPlayerAdmin(playerid)) return
zu:
if(pInfo[playerid][pAdmin] < 1 || pInfo[playerid][pAdmin] > 6) returnbzw, wenn ab 1 bis unbegrenzt:
if(pInfo[playerid][pAdmin] < 1) return -
Gleich wie bei den anderen Befehlen bei denen du es so hast.
Poste gegebenenfalls mal so einen, damit man es dir zeigen kann. -
Also, so scheint es bei mir zu klappen:
printf("i: %d | Face: %d | Range: %d", i, PlayerFaces(playerid, FirePos[i][0], FirePos[i][1], FirePos[i][2], 3), IsPlayerInRangeOfPoint(playerid, 16, FirePos[i][0], FirePos[i][1], FirePos[i][2]));
if(PlayerFaces(playerid, FirePos[i][0], FirePos[i][1], FirePos[i][2], 3) && IsPlayerInRangeOfPoint(playerid, 16, FirePos[i][0], FirePos[i][1], FirePos[i][2]))Versuche es mal so.
-
Daran:
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,ROT,"Du bist kein Admin und hast nicht das Recht Reports zu sehen!"); -
Alle pID im Befehl, nicht nur das nach dem new.
-
Zwecks den Warnungen:
Benenne alle pID's in den Befehlen um zu "pid".Und zwecks den Errors:
Du hast die Funktion AdminNachricht nicht. Das wird eine Nachricht an alle Admins sein, in der Art:
stock AdminNachricht(color, string[])
{
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerAdmin(i)) SendClientMessage(i, color, string);
return 1;
} -
Achso.
format(string,sizeof(string),"[REPORT-SYSTEM]: %s hat eine Beschwerde eingesendet: [ %s ]",pInfo(playerid),inputtext); //Hier 20505
pInfo(playerid), das scheint mir merkwürdig. pName vielleicht? Oder SpielerName, je nach dem wie es bei dir heißt.Oder hast du eine pInfo Funktion?
-
Versuche es so:
COMMAND:platzieren(playerid)//Objekt platzieren
{
if(Spieler[playerid][Eingeloggt] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Eingeloggt!");
if(Spieler[playerid][pAFK] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist AFK. Benutze /back");
if(Spieler[playerid][pGetazert] == 1) return SendClientMessage(playerid,ROT,"Du bist getazert!");
if(Spieler[playerid][pHouseID] == defaulth)return SendClientMessage(playerid,GRAU,"Du besitzt kein Haus.");
for(new houseID = 0; houseID < MAX_HOUSE; houseID++)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,HouseInfo[houseID][hiPos][0],HouseInfo[houseID][hiPos][1],HouseInfo[houseID][hiPos][2]))
{
if(HouseInfo[houseID][hID] == Spieler[playerid][pHouseID])
{
new string[500];
for(new i = 0; i < MAX_INV; i++)
{
if(Inventar[playerid][i][0] == -1)
{
//Inventarslot ist leer
format(string, sizeof(string),"%sInventarslot nicht belegt!\n", string);
}
else
{
format(string,sizeof(string),"%sObjekt: %d\n",string,Inventar[playerid][i][0]);
}
}
if(strlen(string) == 0)
{
format(string,sizeof(string),"Dein Inventar ist leer!");
}
ShowPlayerDialog(playerid,DIALOG_INVENTAR,DIALOG_STYLE_LIST,"Deine Objekte",string,"Okey","");
return 1;
}
}
}
return true;
} -
SendClientMessage(playerid,orange,"Dein Beschwerde wurde abgespeichert und wurde an die Administratoren weitergeleitet!");
zu:
SendClientMessage(playerid,0xFF960DFF,"Dein Beschwerde wurde abgespeichert und wurde an die Administratoren weitergeleitet!");
oder:
#define orange 0xFF960DFFZwecks den anderen beiden Fehlern bei 18291, poste dazu den Code.
-
Keine der Funktionen funktioniert so wie sie soll.
printf("%d",IsString("Hallo1")); //true -> (Hat aber eine Zahl, muss false sein)
printf("%d",IsFloat("0.a")); //true -> (Hat einen Buchstabe, muss false sein)
printf("%d",IsFloat("0..1")); //true -> (Hat zwei Punkte, muss false sein)
printf("%d",IsNumber("Hallo0a")); //true -> (Das ist keine Zahl, sollte klar sein dass das false ist)
printf("%d",IsOnlyString("eeeee")); //false -> (Das ist ein String, muss true sein)
printf("%d",IsOnlyFloat("9.9")); //false -> (9.9 ist sehr wohl ein Float, muss true sein)
printf("%d",IsOnlyNumber("123456789")); //false -> (Das ist eine Zahl, muss true sein)Das solltest du überarbeiten.
-
Dann liegt der Fehler woanders.
Kommentiere so mal Callback für Callback aus, bis du es wieder kompiliere kannst. -
Ändere mal:
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i',firma='%i'WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][firma],sInfo[playerid][db_id]);
zu:
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i',firma='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][firma],sInfo[playerid][db_id]);
Möglicherweise mag er das nicht.Hast du dich neu registriert? Wenn nicht, mach das.