Dann letztere Methode.
Beiträge von Jeffry
-
-
Wird wenn ich z.b 17 Häuser erstellt habe und haus 15 Lösche wird dann 16 auf 15 verschoben und 17 auf 16 ?
Nein. Warum sollte das so sein? Dann würden sich die IDs ja ständig verschieben.
In dem Fall kannst du das AUTO_INCREMENT auch weg lassen, und die ID komplett über den Code steuern (immer eine freie ID nehmen).Hast du vielleicht ne Idee wie ich abfragen kann, ob der Spieler vor einem Objekt steht und dieses anschießt ? Entsprechend, festerstellte Objekte von SAMP.
-
Schau dir mal https://ifttt.com/ an.
Zum Beispiel:
https://ifttt.com/recipes/1644…phone-gets-an-sms-message
Sprich, du bekommst eine E-Mail, wenn du eine SMS am Handy bekommst.Alternativ kann man sowas auch mit Tasker/Automagic (o.ä.) einrichten.
-
Zum Auslesen des Wertes, falls du ihn nicht kennst:
SQLSELECT `AUTO_INCREMENT` FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'Datenbank' AND TABLE_NAME = 'Tabelle'Zum setzen:
Achte darauf, dass bei InnoDB der Wert nicht kleiner gesetzt werden kann, als der größte Eintrag + 1 (z.B. id = 2 existiert, dann muss A_I mindestens 3 sein). -
mysql_format(handle, query, sizeof(query), "UPDATE Benutzer SET Level = '%d', Money = '%d', Admin = '%d', WHERE UserID = '%d'",
PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][p_id]);
zu:
mysql_format(handle, query, sizeof(query), "UPDATE Benutzer SET Level = '%d', Money = '%d', Admin = '%d', WHERE UserID = '%d'",
PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][p_id]);bzw.
mysql_format(handle, query, sizeof(query), "UPDATE Benutzer SET Level = '%d', Money = '%d', Admin = '%d', WHERE UserID = '%d'",
PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], sSpieler[playerid][pAdmin], PlayerInfo[playerid][p_id]);
Falls für das Admin Level sSpieler genutzt wird, wie im Befehl (eventuell geändert?). -
soll ich trotzdem noch
IsPlayerConnected(i) abfragen ?Ja.
-
Frage zusätzlich ab, ob i online ist.
if(IsPlayerConnected(i) && !strcmp(...Da sonst dein getPlayerName einen leeren String zurück gibt, was strcmp false zurück geben lässt.
-
Nein, der Fehler heißt, dass im Query nichts stand, es ist leer, zum Zeitpunkt der Ausführung.
-
Das kannst du mit dieser Funktion machen:
https://wiki.sa-mp.com/wiki/PlayAudioStreamForPlayerLade die mp3 Datei auf einem Webhost hoch oder in Dropbox (direkter Link).
-
mitteX = kleinX + ((grossX - kleinX) / 2.0);
mitteY = kleinY + ((grossY - kleinY) / 2.0); -
Nein, ich meine, dass du deinen Quellcode leserlich posten sollst.
Tipps: Scripting-Probleme richtig erklären
Kapitel 3 Punkt 2. -
Poste nächstes mal bitte den Quellcode im PWN/Code Tag.
-
Ändere den Teil zu:
if(Spieler[playerid][Wanteds] > 0 && IsACop(killerid))
{
SetPlayerHealth(playerid,100);
Spieler[playerid][Jailed] = 1;
Spieler[playerid][JailType] = 2;
GivePlayerCash(playerid, -5000);
GivePlayerCash(killerid, 5000);
ResetPlayerWeapons(playerid);
SendClientMessage(playerid, COLOR_GRAD2, "");
format(string, sizeof(string), "Du bist nun für %d Minuten im Knast. (Nicht Gestellt, -5000$)",Spieler[playerid][Wanteds]*4);
SendClientMessage(playerid, BLAU, string);
SetTimerEx("Unjail",Spieler[playerid][Wanteds]*4*1000*60,false,"i",playerid);
//SetPlayerPos(playerid, 264.0500,77.8530,1001.0391);
//SetPlayerInterior(playerid, 6);
//ClearChat(playerid);
// PlayerPlaySound(killerid, 1139, 0.0, 0.0, 0.0);
// SendClientMessage(killerid,0xFFFFFF00,"Du hast den gesuchten Verbrecher geschnappt!");
// SendClientMessage(killerid,0xFFFFFF00,"Dir wird eine Prämie für den nächsten Zahltag gutgeschrieben.");
// SendClientMessage(playerid,0xFFFFFF00,"Du wurdest von der Polizei gestoppt!");
//der eingespäter wird nicht als killerid sndern als playerid definirt
SetPlayerWantedLevel(playerid,0);
//SpawnPlayer(playerid);
//format(string, sizeof(string), "%s hat den Verbrecher %s geschnappt!", GetName(killerid), GetName(playerid));
//SendFamilyMessage(1, BLAU, string);
//SendFamilyMessage(2, BLAU, string);
}Und füge bei OnPlayerSpawn ein:
if(Spieler[playerid][Jailed] == 1)
{
SetPlayerPos(playerid, 264.0500,77.8530,1001.0391);
SetPlayerInterior(playerid, 6);
}Poste nächstes mal bitte den Quellcode im PWN/Code Tag.
-
Dann ändere mal
if(sscanf(params,"ud", pid, Alevel))
zu:
if(sscanf(params,"dd", pid, Alevel))Wenn das geht, dann aktualisiere dein sscanf Plugin, da du dann eine alte Version hast, die das "u" noch nicht unterstützt.
http://forum.sa-mp.com/showthread.php?t=602923 -
2 Warum steht bei mir nur das er Aktiviert wurde und bei wem anderes nur das er ausgemacht wurde ?
Das liegt daran, dass du den Wert mit jedem Schleifendurchlauf von 1 auf 0 und umgekehrt änderst.
Ändere es zu:
ocmd:einsatz(playerid)
{
if(GetPlayerFrakID(playerid) != 2) return SendClientMessage(playerid,BLAU," Du bist kein SEK Mitglied.");
new str[128];
if(Einsatz == 0)
{
Einsatz = 1;
format(str, sizeof(str), "---> Achtung ein Einsatz wurde autorisiert <---");
}
else
{
Einsatz = 0;
format(str, sizeof(str), "---> Achtung der Einsatzbefehl wurde deklariert <---");
}
for(new i=0; i<MAX_PLAYERS; i++)
{
if(pInfo[i][pEingeloggt] == 0) continue;
if(GetPlayerFrakID(i) != 2) continue;
SendClientMessage(i,BLAU,str);
}
return 1;
} -
Diese while-Schleife bleibt immer bei fc=0, was in einer Endlosschleife endet.
Ändere:
new fc;while(fc<MAX_FRACTION_CARS){
zu:
for(new fc; fc<MAX_FRACTION_CARS; fc++){Oder in der Schleife ein fc++; einbauen.
-
if(clickedid == INVALID_TEXT_DRAW)
{
//ESC wurde gedrückt
//Textdraws hier wieder zum anklicken setzen (SelectTextDraw).
} -
SendClientMessage(pid, C_YELLOW, "Du bist nun ein Administrator");
SendClientMessage(pid, C_BLUE2, "Der angegebene Spieler ist nun Admin");
Du sendest beide Nachrichten an die pid.Ändere es ab zu:
SendClientMessage(pid, C_YELLOW, "Du bist nun ein Administrator");
SendClientMessage(playerid, C_BLUE2, "Der angegebene Spieler ist nun Admin");Falls es weiterhin nicht geht, nutzt du das sscanf Plugin?
-
kann es sein das man gekickt wird?
Nutze vor TogglePlayerSpectating die Funktion SetSpawnInfo.
-
Das PLugin läd jetzt aber Ingame passiert immer noch nichts...
Kannst du bitte den Code posten, der nicht ausgeführt wird, und den MySQL Log, der erzeugt wird?