if(strcmp(cmd, "/unban", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /unban [playername]");
return 1;
}
if (PlayerInfo[playerid][pAdmin] >= 1)
{
new string3[64];
format(string3, sizeof(string3), "/Accounts/%s.ini", tmp);
if(!fexist(string3)) return SendClientMessage(playerid, COLOR_GRAD2, "Error: Spieler existiert nicht.");
if(dini_Int(string3, "Banned") == 0) return SendClientMessage(playerid, COLOR_GRAD2, "Error: Spieler ist nicht gesperrt.");
dini_Set(string3, "Banned", "0");
SendClientMessage(playerid, 0xFF6347AA, "Entbannt.");
return 1;
}
}
return 1;
}
Beiträge von Jeffry
-
-
Bei OnPlayerSpawn muss das stehen:
for(new i = 1;i< 14;i++) GivePlayerWeapon(playerid,weapon[playerid][i-1],ammo[playerid][i-1]);ammo und weapon ist ja global deklariert.
-
Dann poste bitte den Code, mit dem du einen Spieler speicherst.
-
Nur der zweite Code.
Die Waffen musst du bei OnPlayerSpawn geben. -
Ist der Spieler denn im Server, den du entsperren willst?
-
Wo bleibt es auf 1? In der Datei?
Dann musst du den Spieler beim Befehl speichern lassen. -
Mache es so:
Unter den Includes:
new weapon[MAX_PLAYERS][14];
new ammo[MAX_PLAYERS][14];Beim Laden:
for(new i = 1;i< 14;i++)
{
new tmpstring[128];
format(tmpstring,sizeof tmpstring, "waffenslot%d",i);
weapon[playerid][i-1] = cache_get_field_content_int(0, tmpstring, handle);
format(tmpstring,sizeof tmpstring, "ammoslot%d",i);
ammo[playerid][i-1] = cache_get_field_content_int(0, tmpstring, handle);
printf("i: %d | weapon: %d | ammo: %d", i, weapon[playerid][i-1],ammo[playerid][i-1]);
}
Und bei OnPlayerSpawn:
for(new i = 1;i< 14;i++) GivePlayerWeapon(playerid,weapon[playerid][i-1],ammo[playerid][i-1]); -
Debugge es mal so und poste dann was im Server Log steht, wenn du dich einloggst.
Beachte, dass Waffen-Daten in der Datenbank stehen, sonst ist natürlich alles 0, wenn in der Datenbank nur Nullen stehen.new weapon[14];
new ammo[14];
for(new i = 1;i< 14;i++)
{
new tmpstring[128];
format(tmpstring,sizeof tmpstring, "waffenslot%d",i);
weapon[i-1] = cache_get_field_content_int(0, tmpstring, handle);
format(tmpstring,sizeof tmpstring, "ammoslot%d",i);
ammo[i-1] = cache_get_field_content_int(0, tmpstring, handle);
GivePlayerWeapon(playerid,weapon[i-1],ammo[i-1]);
printf("i: %d | weapon: %d | ammo: %d", i, weapon[i-1],ammo[i-1]);
} -
Hast du zum einloggen auch einen Log?
-
format(tmpstring,sizeof tmpstring, "UPDATE `users` SET `waffenslot%d`='%d', `ammoslot%d`='%d' WHERE `id`='%d'",i, weapon[i], i, ammo[i], PlayerInfo[playerid][p_id]);
zu:
format(tmpstring,sizeof tmpstring, "UPDATE `users` SET `waffenslot%d`='%d', `ammoslot%d`='%d' WHERE `id`='%d'",i, weapon[i-1], i, ammo[i-1], PlayerInfo[playerid][p_id]);Wahrscheinlich war das schon alles, im Log sieht nämlich sonst alles gut aus.
-
Stehen Errors im mysql_log, oder irgendwelche Warnungen, wenn du den Spieler speicherst bzw. einloggst?
-
stock GetFreeHotel(playerid)
{
for(new i = 0; i<MaxHaus; i++)
{
if(Haus[i][hArt] == 1)continue;
if(Haus[i][hZimmerA] >= Haus[i][hZimmerM]) //>= oder < ? Kommt drauf an was die bedeuten. Gegebenenfalls ändern.
{
SetPlayerPos(playerid,Haus[i][hX],Haus[i][hY],Haus[i][hZ]);
return 1;
}
}
SendClientMessage(playerid, 0xFF0000FF, "[SERGEY] {FFFFFF}Es gibt keine freie Hotelszimmer mehr.");
SendClientMessage(playerid, 0xFF0000FF, "[SERGEY] {FFFFFF}Deshalb wirst du jetzt wohl in ein Miethaus.");
GetFreeMietHaus(playerid);
return 1;
} -
mysql_fetch_field_row(data, "id");
mysql_fetch_field_row(data, "datum");
-
Welche Zeilen Code?
-
public timebancheck(playerid)
{
new query[256],data[255],ergebnis,timestamp;
format(query,sizeof(query),"SELECT * FROM `timeban` WHERE `Ip`='%s' OR `name`='%s'",gPlayerIp[playerid],gPlayerName[playerid]);
mysql_query(dbhandle,query);
mysql_store_result();
if(mysql_num_rows())
{
mysql_fetch_field("id",data);
ergebnis=strval(data);
mysql_fetch_field("datum",data);
timestamp=strval(data);
if(ergebnis!=0)
{
if(gettime()<timestamp)
{
new string[128];
new zahl=timestamp-gettime();
zahl=zahl/60;
format(string,128,"Du bist noch %d Minuten gebannt.",zahl);
SendClientMessage(playerid,0xFF0000FF,string);
return Kick(playerid);
}
else
{
format(query,sizeof(query),"DELETE FROM `timeban` WHERE `Ip`='%s' OR `name`='%s'",gPlayerIp[playerid],gPlayerName[playerid]);
mysql_query(dbhandle,query);
}
}
}
mysql_free_result();
return 1;
}Nochmals: Nutze bitte den PAWN Tag.
-
Öffne die pawno.exe im /pawno/ Ordner, in dem die neuen Includes sind. Dann wähle deinen Code über die "Öffnen" Funktion aus.
-
Lade dir den aktuellsten Server mit den neusten Includes herunter und nutze diese.
http://files.sa-mp.com/samp037_svr_R2-1-1_win32.zip -
stock mktime(hour,minute,second,day,month,year)
{
new timestamp2;
timestamp2 = second + (minute * 60) + hour * (3600);
new days_of_month[12];if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )
{
days_of_month = { 31,29,31,30,31,30,31,31,30,31,30,31 };
}
else
{
days_of_month = { 31,28,31,30,31,30,31,31,30,31,30,31 };
}
new days_this_year = 0;
days_this_year = day;
if(month > 1)
{
for(new i=0; i<month-1;i++)
{
days_this_year += days_of_month[i];
}
}
timestamp2 += days_this_year * 86400;for(new j=1970;j<year;j++)
{
timestamp2 += 31536000;
if( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp2 += 86400;
}
return timestamp2;
} -
timestamp2 = second + (minute * 60) + hour * (3600),
zu:
timestamp2 = second + (minute * 60) + hour * (3600); -