Danke dir sieht zu mindestens schon mal etwas schöner und übersichtlicher aus!
fand den ersten Code übersichtlicher trotzdem danke hab noch den alten Code den du vorm Edit gegeben hast.
Danke dir sieht zu mindestens schon mal etwas schöner und übersichtlicher aus!
fand den ersten Code übersichtlicher trotzdem danke hab noch den alten Code den du vorm Edit gegeben hast.
Hey habe ein Problem ich hab schon das versucht was ich weiß aber ich krieg den Error einfach nicht weg
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(1839) : error 001: expected token: ";", but found "-identifier-"
public OnPlayerText(playerid, text[])
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid, x, y, z);
new string[128];
format(string,sizeof(string), "%s sagt: %s", SpielerName(playerid), text);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(!IsPlayerInRangeOfPoint(i, CHAT_RADIUS, x, y, z))continue
SendClientMessage(i, WEISS, string); //1389
}
return 0;
}
Hey ist es möglich das ohne Fehler irgendwie "übersichtlicher" zu gestalten als alles in eine Zeile zu "quetschen" bzw die eine Lange Zeile und halt sonst vielleicht noch ein bisschen übersichtlicher?
//Spieler Abspeichern
stock SaveUserStats(playerid)
{
//Wenn der Spieler nicht eingeloggt ist, dann speichere seine Statistiken nicht
if(!PlayerInfo[playerid][pLoggedIn]) return 1;
//Ansonsten speichere sie
new query[256];
mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', kills = '%d', deaths = '%d', alevel = '%d', fraktion = '%d', rank = '%d', perso = '%d', spawnchange = '%d' WHERE id = '%d'",
PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pAlevel], PlayerInfo[playerid][pFraktion], PlayerInfo[playerid][pRank], PlayerInfo[playerid][pPerso],PlayerInfo[playerid][pSpawnchange], PlayerInfo[playerid][p_id]);
//Das Query wird abgesendet
mysql_pquery(handle, query);
return 1;
}
Wie mach ich das denn mit den Globalen TextDraw bitte sag mir nicht das ich jetzt alles neu machen muss
Das ist alles was ich habe @WriteMeDude
public sekunde(playerid)
{
new sekunden,minuten,stunden,string[164];
gettime(stunden,minuten,sekunden);
format(string,sizeof(string),"%02d:%02d:%02d",stunden,minuten,sekunden);
TextDrawSetString(TDEditor_TD[0],string);
TextDrawShowForPlayer(playerid,TDEditor_TD[0]);
return 1;
}
Funktioniert trotzdem nicht
Hey ich habe eine frage was mache ich eigentlich falsch?
Das ist das was man sieht: http://prntscr.com/gcb8kf
Und die Sachen habe ich alles:
forward sekunde(playerid);
public sekunde(playerid)
{
new sekunden,minuten,stunden,string[164];
gettime(stunden,minuten,sekunden);
format(string,sizeof(string),"%02d:%02d:%02d",stunden,minuten,sekunden);
TextDrawSetString(TDEditor_TD[0],string);
return 1;
}
TDEditor_TD[0] = TextDrawCreate(552.117553, 27.250003, "Uhrzeit~n~");
TextDrawLetterSize(TDEditor_TD[0], 0.400000, 1.600000);
TextDrawAlignment(TDEditor_TD[0], 1);
TextDrawColor(TDEditor_TD[0], -1);
TextDrawSetShadow(TDEditor_TD[0], 1);
TextDrawSetOutline(TDEditor_TD[0], 1);
TextDrawBackgroundColor(TDEditor_TD[0], 255);
TextDrawFont(TDEditor_TD[0], 1);
TextDrawSetProportional(TDEditor_TD[0], 1);
TextDrawSetShadow(TDEditor_TD[0], 1);
TextDrawShowForPlayer(playerid,TDEditor_TD[0]);
Falls ich etwas vergessen haben sollte einfach bescheid sagen
Mfg.
@Zreeq Ich bin nur soweit wie auf dem Screenshot halt nur eingefügt aber noch nicht als Register oder so.
@JustMe.77 Danke dir ich schaue es mir mal an!
@Zreeq da wird aber leider mit Dini gearbeitet hätte es aber ganz gerne in MySQL version
@Zreeq versuchs vielleicht mal so:
ocmd:setmoney(playerid, params[])
{
new pID, BETRAG, string[128];
if(PlayerInfo[playerid][plogged] == false) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du musst dich erst einloggen, um den Befehl zu benutzen!");
if(PlayerInfo[playerid][padmin] < 3) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du bist nicht berechtigt diesen Befehl zu benutzen!");
if(PlayerInfo[playerid][pduty] == 0) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du befindest dich nicht im Administrativen Dienst!");
if(sscanf(params, "ui", pID, money)) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Verwendung]: [/setmoney] [ID] [GELD]");
ResetPlayerMoney(pID);
GivePlayerMoney(pID, BETRAG);
PlayerInfo[pID][pmoney] = BETRAG;
format(string, sizeof(string), "{0099FF}[Admin]:{FFFFFF} %s %s hat dir %i$ gesettet.", GetAdminRank(playerid), PlayerInfo[playerid][pname], BETRAG);
SendClientMessage(pID, COLOR_WHITE, string);
format(string, sizeof(string), "{0099FF}[Admin]:{FFFFFF} Du hast dem Spieler %s %i$ gesettet.", PlayerInfo[pID][pname], BETRAG);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
Hey ich habe ein Problem mit meinem Textdraw und zwar habe ich kein Plan wie ich es einfüge und als Register System benutze
mein RegisterTextdraw sieht so aus: https://prnt.sc/gc7ulp
Falls einer eine Lösung hat wäre ich sehr dankbar
Bei mir war das echt nicht keine Ahnung was da bei dir los ist... @Almaz202122
@Whice. Ich weiß hab ich auch geändert aber mein Code sieht schon so aus aber funkt net:
ocmd:setmoney(playerid, params[])
{
print("setmoney Befehl ausgeführt!");
if(!isAdmin(playerid,3))return SendClientMessage(playerid, DUNKELROT, "Dein Adminlevel ist zu Niedrig!");
new pID, string[128], BETRAG;
if(sscanf(params, "ui", pID, BETRAG))return SendClientMessage(playerid, GELB, "[INFO]: /setmoney [SpielerID] [Betrag]");
ResetPlayerMoney(pID);
GivePlayerMoney(pID, BETRAG);
PlayerInfo[pID][pMoney]+=BETRAG;
format(string, sizeof(string), "AdmCmd: %s hat dein Geld auf $%i gesetzt", SpielerName(playerid), BETRAG);
SendClientMessage(pID, DUNKELROT, string);
format(string, sizeof(string), "AdmCmd: Du hast %s den Geldbetrag auf $%i gesetzt!", SpielerName(pID), BETRAG);
SendClientMessage(playerid, DUNKELROT, string);
SaveUserStats(pID);
return 1;
}
@Whice. Erstmal nochmal danke dafür aber wenn ich mein Geld auf 0 setzte steht das da: http://prntscr.com/gc585z
und mein Geldbetrag wird zwar auf 0 gesetzt aber in der Datenbank habe ich trotzdem noch 50010
/edit
Nachricht ist wieder ganz Normal also steht jetzt z.B 0 da... aber Datenbank wurde nicht verändert
@Almaz202122 Ich habe mich Ingame ziemlich lange mit dem Script beschäftigt gefühlte 1-2 Tage habe ein paar Schreibfehler etc. gefixxt darf ich dich fragen wie man die Fahrzeuge verdoppelt? vielleicht kann ich es ja entbuggen
Denke das du recht hast das hier ist mein jetziger Befehl:
ocmd:setmoney(playerid,params[])
{
print("setmoney Befehl ausgeführt!");
[b]if[/b](!isAdmin(playerid,3))[b]return[/b] SendClientMessage(playerid,DUNKELROT,"Dein Adminlevel ist zu Niedrig!");
[b]new[/b] pID, test[128], string[128],BETRAG;
[b]if[/b](sscanf(params,"ui",pID,BETRAG))[b]return[/b] SendClientMessage(playerid,GELB,"[INFO]: /setmoney [SpielerID] [Betrag]");
ResetPlayerMoney(pID);
GivePlayerMoney(pID,BETRAG);
format(string,sizeof(string),"AdmCmd: %s hat dein Geld auf $%i gesetzt",PlayerInfo[playerid],BETRAG);
format(test,sizeof(test),"AdmCmd: Du hast %s den Geldbetrag auf $%i gesetzt!",PlayerInfo[pID],BETRAG);
SendClientMessage(pID,DUNKELROT,string);
SendClientMessage(playerid,DUNKELROT,test);
SaveUserStats(playerid);
[b]return[/b] 1;
}
Muss ich das zu dem ändern?:
ocmd:setmoney(playerid,params[])
{
print("setmoney Befehl ausgeführt!");
[b]if[/b](!isAdmin(playerid,3))[b]return[/b] SendClientMessage(playerid,DUNKELROT,"Dein Adminlevel ist zu Niedrig!");
[b]new[/b] pID, test[128], string[128],BETRAG;
[b]if[/b](sscanf(params,"ui",pID,BETRAG))[b]return[/b] SendClientMessage(playerid,GELB,"[INFO]: /setmoney [SpielerID] [Betrag]");
ResetPlayerMoney(pID);
GivePlayerMoney(pID,BETRAG);
format(string,sizeof(string),"AdmCmd: %s hat dein Geld auf $%i gesetzt",PlayerInfo[playerid],BETRAG);
format(test,sizeof(test),"AdmCmd: Du hast %s den Geldbetrag auf $%i gesetzt!",PlayerInfo[pID],BETRAG);
SendClientMessage(pID,DUNKELROT,string);
SendClientMessage(playerid,DUNKELROT,test);
SaveUserStats(playerid);
[b]return[/b] 1;
}
Wäre das so richtig? @Whice.
@Whice. Ist bei mir das selbe kann in der Datenbank mein Geld setten wird Ingame geladen aber wenn ich /setmoney 1 0 setzte und vom Server Disconnecte was ich eigentlich nichteinmal machen müsste da ich beim setmoney Befehl noch den Spieler Speicher. Aber in der Datenbank steht das ich trotzdem noch 50k habe und @Zreeq Sorry das ich dir jetzt nicht helfen kann
passt so danke dir
Also ich hätte es jetzt so für die nächsten 2 erstellt @Whice. :
stock SaveUserStats(playerid)
{
//Wenn der Spieler nicht eingeloggt ist, dann speichere seine Statistiken nicht
if(!PlayerInfo[playerid][pLoggedIn]) return 1;
//Ansonsten speichere sie
new query[256];
mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', kills = '%d', deaths = '%d', alevel = '%d', fraktion = '%d', rang = '%d' WHERE id = '%d'",
PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pAlevel],PlayerInfo[playerid][pFraktion] ,PlayerInfo[playerid][pRang],PlayerInfo[playerid][p_id]);
mysql_pquery(handle, query);
return 1;
}
Und ich hätte noch eine Frage bin ziemlich weit aus dem Scripten raus und ich würde ganz gerne den String so erstellen das da steht:
"Du wurdest von %s zu einem %i Admin ernannt!"
mein Makeadminbefehl sieht so aus nicht wundern wegen den beiden SendClientMessages am Schluss:
ocmd:makeadmin(playerid,params[])
{
print("makeadmin Befehl ausgeführt!");
if(!isAdmin(playerid, 3))return SendClientMessage(playerid,DUNKELROT,"Dein Adminlevel ist zu Niedrig!");
new pID,a_level,string[128];
if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,GELB,"[INFO]: /makeadmin [playerid] [Level]");
PlayerInfo[pID][pAlevel]=a_level;
SaveUserStats(pID);
format(string,sizeof(string),"Du wurdest von %s zu einem Admin %i ernannt",name);
SendClientMessage(pID,GELB,"Dein Adminrang wurde geändert!");
SendClientMessage(playerid,GELB,"Du hast den Adminrang geändert!");
return 1;
}