Beiträge von PizzaHaus
-
-
Guten Tag meine Accounts Speichern nicht (MySQL)
public OnUserCheck(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,mdhandle);
if(num_rows==0)
{
//Registrierung
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Montana Deathmatch Registrierung","Herzlich Wilkommen auf Montana Deathmatch\nDein Account wurde in unserem Datenbank nicht gefunden!\nBitte gib dein Passwort niemals weiter auch nicht an die Supporter!\n\nDu kannst dich nun Registieren","OK"," ");
}
else
{
//Login
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Montana Deatmatch Login","Herzlich Wilkommen zurück auf Montana Deatmatch!\nDein Account wurde in unserem Datenbank gefunden!\nBitte gib dein Passwort niemals weiter auch nicht an die Supporter!\nDu kannst dich nun Einloggen","OK"," ");
}
return 1;
}public OnPlayerConnect(playerid)
{
ChatBoxClear(playerid,40);
SendClientMessage(playerid, GELB, " Verbindung zum Server wird hergestellt. ");
SendClientMessage(playerid, GELB, " Einen Moment Bitte du wirst sofort mit dem Server verbunden. ");
//Login/Register
new name[MAX_PLAYER_NAME],query[128];
GetPlayerName(playerid,name,sizeof(name));
format(query,sizeof(query),"SELECT id FROM user WHERE username='%s'",name);
mysql_function_query(mdhandle,query,true,"OnUserCheck","i",playerid);
return 1;
}if(dialogid==DIALOG_REGISTER)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>3)
{
//Registrierungsfunktion
mysql_escape_string(inputtext,passwort,mdhandle);
format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s',MD5('%s')) ",name,passwort);
}
else
{
//Passwort nicht lang genug
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Montana Deathmatch Registrierung","Das Passwort war nicht lang genug\n\nHerzlich Wilkommen auf Montana Deathmatch\nDein Account wurde in unserem Datenbank nicht gefunden!\n Bitte gib dein Passwort niemals weiter auch nicht an die Supporter!\n\nDu kannst dich nun Registieren","OK"," ");
}
}
else
{
Kick(playerid);
}
return 1;
} -
Du formatierst deinen String, erstellst eine For-Schleife mit der Bedingungen des Adminlevels und sendest sie anschließend an den Inhalt der For-Schleife.
ocmd:spec(playerid,params[])
{
if(sInfo[playerid][alevel]==1)
{
new string[128];
format(string,sizeof(string),"Ein Admin TVT nun: %s",GetName(playerid));
SendClientMessage(playerid, BLAU, string);
}
if(GetPVarInt(playerid,"Beobachten") == 0)
{
new pID;
new string[128];
if(sInfo[playerid][alevel] < 1)return SendClientMessage(playerid,GRAU,"Du bist nicht befugt!");
if(sscanf(params,"u",pID))return SendClientMessage(playerid,GRAU,"Benutzung: /spec [PlayerID]");
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid,pID);
format(string,sizeof(string),"Du beobachtest %s. Um das Beobachten abzubrechen, tippe (/specaus)!",GetName(pID));
SendClientMessage(playerid,ORANGE,string);
SetPVarInt(playerid,"Beobachten",0);
}
else if(GetPVarInt(playerid,"Beobachten") == 1)
{
SendClientMessage(playerid,GRAU,"Du beobachtest bereits einen Spieler, tippe (/specaus) um das Beobachten zu beenden.");
}
return 1;
}so?
-
Guten Abend,
ich hatte eine Frage undzwar: Wie mache ich wenn man z.B /spec [ID] eingibt an ALLE Admins senden sollte : %s tvt nun %s also sozusagen eine nachricht an admins schicken oder /makeadmin ...%s wurde zum admin bennant von %s
-
In Textdraw wie soll des gehen bitte?
Gruß
-
Der Lösungsvorschlag ist nicht korrekt. Mache es so wie ich es dir geschrieben habe.
Achte aber darauf, dass du von dem Code aus startest, den du anfangs gepostet hast, also mache diese Änderung zuerst rückgängig.Habe ich Jeffrey
Probiere ich gleich aus
-
Code
Alles anzeigenstock SpielerLaden(playerid) { new Spieler[64]; new Sname[MAX_PLAYER_NAME]; GetPlayerName(playerid,Sname,sizeof(Sname)); format(Spieler,sizeof(Spieler),"/Accounts/%s.ini",Sname); if(dini_Exists(Spieler)) { sInfo[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel"); GivePlayerMoney(playerid,dini_Int(Spieler,"pGeld")); sInfo[playerid][pBan] = dini_Int(Spieler,"pBan"); } if(GetPVarInt(playerid,"pBan")==1) { SendClientMessage(playerid,0xEB0000FF,"Du bist auf diesem Server gebannt!"); } return 1; } stock SpielerSpeichern(playerid) { new Spieler[64]; new Sname[MAX_PLAYER_NAME]; GetPlayerName(playerid,Sname,sizeof(Sname)); format(Spieler,sizeof(Spieler),"/Accounts/%s.ini",Sname); if(dini_Exists(Spieler)) { dini_IntSet(Spieler,"Adminlevel",sInfo[playerid][Adminlevel]); dini_IntSet(Spieler,"pGeld",GetPlayerMoney(playerid)); dini_IntSet(Spieler,"pBan",sInfo[playerid][pBan]); } return 1; }
Wird immer noch nicht auf 1 gesetet
-
Guten Tag,
Ich habe einen Problem undzwar wenn ich /ban [ID] [Grund] eingebe wird er vom Server gebannt, aber er kann ganznormal wieder Connecten und auff der Datenbank wird es bei pBan nicht auf 1 gesetzt!stock SpielerLaden(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.ini",Sname);
if(dini_Exists(Spieler))
{
sInfo[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
GivePlayerMoney(playerid,dini_Int(Spieler,"pGeld"));
dini_IntSet(Spieler,"pBan",GetPVarInt(playerid,"pBan"));
}
if(GetPVarInt(playerid,"pBan")==1)
{
SendClientMessage(playerid,0xEB0000FF,"Du bist auf diesem Server gebannt!");
}
return 1;
}ocmd:ban(playerid, params[])
{
if(!isAdmin(playerid,4))return SendClientMessage(playerid,GRAU,"Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
new pID, reason[128],string[128];
if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,GRAU,"Verwendung: /ban [PlayerID] [Grund]");
format(string,sizeof(string),"SERVER: %s wurde von %s gebannt. Grund: %s",GetName(pID),GetName(playerid),reason);
SendClientMessageToAll(ROT,string);
sInfo[playerid][pBan] = 1;
Kick(pID);
return 1;
}stock SpielerSpeichern(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.ini",Sname);
if(dini_Exists(Spieler))
{
dini_IntSet(Spieler,"Adminlevel",sInfo[playerid][Adminlevel]);
dini_IntSet(Spieler,"pGeld",GetPlayerMoney(playerid));
dini_IntSet(Spieler,"pBan",GetPVarInt(playerid,"pBan"));
}
return 1;
} -
Dann setzt du das Interior nicht mehr, bzw. nicht mehr zurück zu 0, je nach dem wo du spawnen willst.
Poste gegebenenfalls mal den Teil von OnPlayerSpawn.public OnPlayerSpawn(playerid)
{
if(PlayerInArena[playerid] == 1) // Deagle
{
new Random = random(sizeof(DeagleSpawns));
SetPlayerPos(playerid, DeagleSpawns[Random][0], DeagleSpawns[Random][1], DeagleSpawns[Random][2]);
SetPlayerFacingAngle(playerid, DeagleSpawns[Random][3]);
SetPlayerInterior(playerid,1);
GivePlayerWeapon(playerid, 24, 250);
}
else if(PlayerInArena[playerid] == 2) // DM
{
new Random = random(sizeof(DMSpawns));
SetPlayerPos(playerid, DMSpawns[Random][0], DMSpawns[Random][1], DMSpawns[Random][2]);
SetPlayerFacingAngle(playerid, DMSpawns[Random][3]);
SetPlayerInterior(playerid,10);
GivePlayerWeapon(playerid, 24, 250);
GivePlayerWeapon(playerid, 33, 250);
}
else if(PlayerInArena[playerid] == -1) // Kein Modus
{}
switch(GetPVarInt(playerid,"Skinauswahl"))
{
case 0:{SetPlayerPos(playerid,mdspawn);SetPlayerColor(playerid,WEIß);}
}
return 1;
} -
Moin wenn ich bei einer DM oder Deagle Arena sterbe Spawne ich aber ich habe dann Object Bug also ich kann nichts sehen es ist alles Grau
ocmd:deagle(playerid,params[])
{
if(PlayerInArena[playerid] > 0) return SendClientMessage(playerid, GRAU, "Fehler: Du bist bereits in einer Arena!");
PlayerInArena[playerid] = 1;
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,24,500);
SetPlayerHealth(playerid,100);new rand = random(sizeof(DeagleSpawns));
SetPlayerPos(playerid,DeagleSpawns[rand][0],DeagleSpawns[rand][1],DeagleSpawns[rand][2]);
SetPlayerFacingAngle(playerid,DeagleSpawns[rand][3]);
SetPlayerInterior(playerid, 1);
SetPlayerVirtualWorld(playerid, 1);new pName[MAX_PLAYER_NAME];
new string[128];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "%s hat die Deagle Arena (/deagle) betreten.", pName);
SendClientMessageToAll(GRÜN, string);
return 1;
}ocmd:dm(playerid,params[])
{
if(PlayerInArena[playerid] > 0) return SendClientMessage(playerid, GRAU, "Fehler: Du bist bereits in einer Arena!");
PlayerInArena[playerid] = 2;
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,24,500);
SetPlayerHealth(playerid,100);new rand = random(sizeof(DMSpawns));
SetPlayerPos(playerid,DMSpawns[rand][0],DMSpawns[rand][1],DMSpawns[rand][2]);
SetPlayerFacingAngle(playerid,DMSpawns[rand][3]);
SetPlayerInterior(playerid, 10);
SetPlayerVirtualWorld(playerid, 1);new pName[MAX_PLAYER_NAME];
new string[128];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "%s hat die DM Arena (/dm) betreten.", pName);
SendClientMessageToAll(GRÜN, string);
return 1; -
-
close danke an ryan
-
ganz einfach du Fragst ab ob er in einer Arena istz.B.
Codeif(PlayerInArena[playerid] > 1) return SendClientMessage(playerid,COLOR_RED,"Du bist bereits in einer Arena"); // Die 1 steht für die Arenanummer, also wenn deine Arena bei der ID 0 anfängt einfach 0 hinschreiben und PlayerInArena ist eine Abfrage.
Das tuhst du natürlich in deinen Befehl rein z.B. /DeagleKommt keine Meldung if(Deagle[playerid] > 1) return SendClientMessage(playerid,ORANGE,"Du bist in keiner Arena");
-
Vielen Dank an alle nun habe ich ein anderes Problem undzwar ich kann so oft wie ich will immer andere arenas switchen?
-
Nutzt du mysql_connect noch woanders außer in dem stock? Wenn ja, dann entferne es.
Ja bei OnGameModeInit wenn ich das entferne habe ich keine Verbindung mehr
-
Füge das ganz unten im Code ein:
public OnFilterScriptExit(){ return 1;}Und entferne das return 1 in Zeile 5 in dem ersten Code den du gepostet hast, im post drüber.
danke aber nun
[20:22:13] [WARNING] CMySQLHandle::Create - connection already exists
-
C:\Users\QQ\Desktop\Montana Deathmatch\gamemodes\md.pwn(251) : error 004: function "OnFilterScriptExit" is not implemented
C:\Users\QQ\Desktop\Montana Deathmatch\gamemodes\md.pwn(255) : warning 225: unreachable code
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error.
Zeile 251:
OnFilterScriptExit();
return 0;
}
}
return 1;
}Zeile 255
return 1;
} -
Dann macht der stock aber keinen Sinn.
Hast du vielleicht einen define von db_host und den anderen?
Sowas hier?
#define db_host "bla bla"Ja #define db_host "127.0.0.1"
-
Nein, das ist es nicht.
In der Zeile nach der ich frage kommt "DL_ConnectMYSQL" vor, damit rufst du den stock ja auf.Ich habe nirgendswo "DL_ConnectMYSQL" stehen außer bei stock DL_ConnectMYSQL.............
-
So, und jetzt poste bitte noch die Zeile, die DL_ConnectMYSQL aufruft (wird wohl bei OnGameModeInit stehen).
mdhandle = mysql_connect(db_host,db_user,db_db,db_pass);
public DL_CheckWhiteList(playerid)
{
new rows, fields;
cache_get_data(rows, fields);
if(!rows)
{
SendClientMessage(playerid, ORANGE, "Der Server verfügt über ein Whitelist System!");
SendClientMessage(playerid, ORANGE, "Da du auf der Whitelist nicht gefunden wurdest, wirst du nicht Verbunden!");
SetTimerEx("Kick2", 2000, false, "i", playerid);
TogglePlayerControllable(playerid, false);
return 1;
}
//#error Ersetze hier den SpawnPlayer(playerid); durch den Aufruf deinen Logins
SendClientMessage(playerid, GELB, "Du wurdest auf der Whitelist gefunden und wirst nun weitergeleitet!");
SpawnPlayer(playerid);
return 1;
}