Hast du das auto auch zerstört?
DestroyVehicle(vid);
MFG
Hast du das auto auch zerstört?
DestroyVehicle(vid);
MFG
sonst noch jemand ne idee?
ich bin am verzweifeln.... wieso geht denn nur das von strickenkind nicht=?
also ich gehe jetzt echt schlafen sry aber geht nixmehr bei mir ich machs dir morgen 100% (hört sich irgendwie pervers an aber naja) xD
MFG
nochmal verständlicher
Du hast ja Variablen Geld,Level etc die auf dem Server sind du hast aber auch dein Mysql und diese 2 werden ja immer ausgetauscht wenn du aber am mysql etwas veränderst wird es nicht auf den server übergeben solltest du dann eingeloggt sein und dich ausloggen oder restart machen werden die daten auf dem mysql mit den nicht geänderten werten des servers überschrieben...
also log dich aus änder das und teste das ganze
MFG
//edit sry bin müde schaffe das dann nit mehr so gut zu beschreiben
hmm also ich kann dir anbieten dir das morgen also heute so ab ca 16 uhr das zu machen per teamviewer gehe nähmlich jetzt schlafen sonst komme ich um 7 nit raus xD
// edit log dich mal aus und dann mach das alles dann log dich ein und mach mal nen restart usw denn wenn du das machst dann ists geändert und wenn du dann restartest und überschreibt das ganze mit deinen variblen die du vor der änderung auf dem server hast denn das wird ja nur geändert wenn du dir z.b nen befehl machst
bleibt denn der adminrang auf 5 nach dem restart?
kannst du mir mal die zeilen zeigen?
ja als host localhost
ja root hatte ich vorher als benutzer und pw garkeins ist ja standart von xampp und dann hab ich gelesen das man ein extra benutzer mit passwort und allen rechten machen soll aber es geht trotzdem nit
//
edit mit dem von gstylezz gehts mit wenigen änderungen ...
das problem ist ich brauche strickenkinds
also du musst es auch deinen sachen anpassen denn ich weiß ja nit wie es bei dir gemacht wird ob der spieler eingeloggt ist bzw wie die variable heißt... und die funktion um die spielerdaten zu speichern pass es mal deinen an oder wir machen es per TV mehr ...
// edit
so hab das ganze jetzt nochmal fehlerfrei gemacht...
das ganze nach oben : foward restart();
dann die public ganz nach unten : public restart()
{
SendRconCommand("gmx");
SendClientMessageToAll(0xFF0000FF,"Server wird Restartet.");
return 1;
}
und dann nochmal den befehl musst dann mit deinen sache anpassen oder du sagst mir alles oder halt per teamviewer :if(strcmp(cmdtext, "/r", true) == 0)
{
for(new i = 0; i < MAX_PLAYERS; i++)
if(IsPlayerConnected(i))
{
if(GetPVarInt(i,"Eingeloggt")==1)
{
SavePlayer(i);
}
}
SetTimer("restart",5000,0);
return 1;
}
geth trotzdem nit komisch...
leider nicht da mein script auf einer platte liegt die aufgrund eines virus abgeklemmt ist...
aber kann versuchen dir auf die schnelle einen zu machen
//das zu OnPlayerCommandText
if(strcmp(cmd, "/r", true) == 0)
{
for(new i = 0; i < MAX_PLAYERS; i++)
if(IsPlayerConnected(i))
{
if(LoggedIn[i]==1)
{
SavePlayer(i)
}
}
SetTimer(restart,5000,0);
return 1;
}
// den public nach ganz unten..
public restart()
{
SendRconCommand("gmx")
return SendMessageToAll("Rot","Der Server wird Neu gestartet!!!");
}
hab jetzt mal ausm kopf müste aber so gehen
Hallo,
seit heute will ich wieder anfangen zu Scripten doch als ich versuchte die Aktuellle Version von Strickenkind zu verwenden mit einem Basis Script und 0.3d auf Win7 64 bit kommt bei mir immer dieser error:
Function: mysql_ping called when not connected to any database. Access denied for user 'samp'@'localhost' (using password: YES).
Ich habe extra schon ein benutzer gemacht mit passwort und allen rechten geht leider nicht
hier mein script: #include <a_samp>
#include <mysql>
//mydsql
#define SQL_HOST "localhost"
#define SQL_USER "samp"
#define SQL_PASS "eH4yE7CqGXrjdXAA"
#define SQL_DATA "sampdb"
//mysql
//DIALOGE
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
//DIALOGE
//Spieler
enum SpielerDaten
{
pName[MAX_PLAYER_NAME],
pLevel,
pGeld,
pKills,
pTode,
Float:pHealth
}
new SpielerInfo[MAX_PLAYERS][SpielerDaten];
//Spieler
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
public OnGameModeInit()
{
UsePlayerPedAnims();
SetGameModeText("Blank Script");
Connect_To_Database();
AddPlayerClass(277, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
if(GetPVarInt(playerid,"Eingeloggt") == 0) //Als erstes fragen wir ab ob der Spieler schon eingeloggt ist oder nicht, damit wir nicht bei jeder Skin Auswahl uns neu Einloggen müssen.
{
if(mysql_CheckAccount(playerid) == 0)//Wir überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
{
SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde nicht gefunden, bitte Registriere dich!");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Bitte Gib ein Passwort an:","Register","Exit");
}
else if(mysql_CheckAccount(playerid) == 1)//Falls doch zeigen wir den Dialog zum Einloggen.
{
SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde gefunden, bitte Log dich nun ein!");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Bitte gib dein Passwort ein:","Login","Abbrechen");
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SavePlayer(playerid);
DeletePVar(playerid,"Eingeloggt");
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_REGISTER:
{
if(response)
{
if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Das angegebene Passwort war zu Kurz...\nBitte Registrier dich jetzt mit einem Passwort:","Register","Abbrechen");
return 1;
}
else
{
CreateAccount(playerid, inputtext); //Account wird erstellt
SetPVarInt(playerid,"Eingeloggt",1); //Die variable wird auf 1 gesetzt, damit wir nun die Skin Auswahl benutzen können ohne wieder nach unserem Passwort gefragt zu werden.
SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
return 1;
}
}
else
{
Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
}
}
case DIALOG_LOGIN:
{
if(response)
{
if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
return 1;
}
else
{
new SpielerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true)) // Wir holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem angegebenen passwort.
{
SetPVarInt(playerid,"Eingeloggt",1); //Falls beide passwörter übereinstimmen wird die Variable auf 1 gesetzt damit wir die Skin auswahl benutzen können.
LoadPlayer(playerid); //Der Spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.
SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
return 1;
}
else
{
//Wenn das Passwort falsch war, lassen wir erneut das Login fenster erscheinen damit der Spieler das Richtige Passwort eingibt.
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das war das Falsche Passwort.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
return 1;
}
}
}
else
{
Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
}
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
//msql sachen
stock Connect_To_Database()
{
new MySQL:connection = mysql_init(LOG_ONLY_ERRORS, 1);
mysql_connect("localhost","samp","test","eH4yE7CqGXrjdXAA",connection,1); //Wir versuchen mit den Angaben die wir oben im Script gemacht haben uns mit dem MySQL Server zu verbinden.
if(mysql_ping() == 1) //Es wird überprüft ob die Verbindung steht.
{
//Falls ja wird das in die Console geschrieben und die Funktion wird beendet.
print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
return true;
}
else
{
//Falls nicht wird erneut versucht eine Verbindung aufzubauen.
print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
mysql_connect("localhost","samp","test","eH4yE7CqGXrjdXAA",connection,1);
if(mysql_ping() == 1)
{
print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
return true;
}
else
{
//Falls das auch nicht Funktioniert wird der Server zur Sicherheit wieder heruntergefahren.
print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
print("<-| [MYSQL] Der Server wird nun beendet!");
SendRconCommand("exit");
return true;
}
}
}
stock mysql_GetInt(Table[], Field[], Where[], Is[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
new sqlint = mysql_fetch_int();
mysql_free_result();
return sqlint;
}
stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
{
new query[128], Float:sqlfloat;
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
mysql_fetch_float(sqlfloat);
mysql_free_result();
return sqlfloat;
}
stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(To, To);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE %s SET %s = '%s' WHERE %s = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE %s SET %s = '%.1f' WHERE %s = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
//mysql sachen
//Spieler System
stock mysql_CheckAccount(playerid)
{
new Query[128],Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
mysql_real_escape_string(Name, Name);
format(Query, sizeof(Query), "SELECT * FROM Benutzer WHERE Name = '%s'", Name);
mysql_query(Query);
mysql_store_result();
return mysql_num_rows();
}
stock CreateAccount(playerid, pass[])
{
new query[256],Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
mysql_real_escape_string(Name,Name);
mysql_real_escape_string(pass,pass);
format(query, sizeof(query), "INSERT INTO Benutzer (Name, Passwort) VALUES ('%s', '%s')", Name, pass);
mysql_query(query);
return true;
}
stock mysql_ReturnPasswort(Name[])
{
new query[130], Get[130];
mysql_real_escape_string(Name, Name);
format(query, 128, "SELECT passwort FROM Benutzer WHERE Name = '%s'", Name);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(Get);
mysql_free_result();
return Get;
}
stock LoadPlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist (nur zur sicherhheit)
{
GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable [i]SpielerInfo[playerid][pName][/i]
SpielerInfo[playerid][pLevel] = mysql_GetInt("Benutzer", "Level", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
SpielerInfo[playerid][pGeld] = mysql_GetInt("Benutzer", "Geld", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.
SpielerInfo[playerid][pKills] = mysql_GetInt("Benutzer", "Kills", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Kills" eingetragen ist und Speichern ihn in unserer Variable.
SpielerInfo[playerid][pTode] = mysql_GetInt("Benutzer", "Tode", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Tode" eingetragen ist und Speichern ihn in unserer Variable.
}
return 1;
}
stock SavePlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
{
if(GetPVarInt(playerid,"Eingeloggt") == 1) //Und hier ob er noch eingeloggt ist.
{
//Nun speichern wir die Daten in der Datenbank.
mysql_SetInt("Benutzer", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("Benutzer", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("Benutzer", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("Benutzer", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
mysql_SetFloat("Benutzer", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
}
}
return 1;
}
//Spieler System
Hoffe mir kann jemand helfen
MFG Janpplayer
diesen bug hatte ich auch immer mach dir mal einen befehl womit du restartest wo erst alle user gespeichert werden und dann nach 5 sekunden restartet wird dadurch wurde er bei mir behoben...
MFG
leider immernoch dasselbe problem ich verstehe das nicht auch wenn ichs umnenne
Hallo bei diesem Command bekomme ich Unkown Command wenn ich Telefoniere und nicht angezeigt wird du telefonierst nicht also wenn alles überein stimmt
if(strcmp(cmdtext,"/auflegen",true)==0)
{
if(IstOn(playerid)==1)
{
if(IstAmTelen[playerid]==1)
{
IstAmTelen[playerid]=0;
OtherID[playerid]=-1;
nummergewaehlt[playerid]=-1;
Rufzahl[playerid]=0;
SendClientMessage(playerid,Grau,"[HANDY]: Du hast aufgelegt.");
if(IstAmTelen[OtherID[playerid]]==1)
{
if(OtherID[OtherID[playerid]]==playerid)
{
SendClientMessage(OtherID[playerid],Gelb,"[HANDY]: Gesprächspartner legt auf.");
IstAmTelen[OtherID[playerid]]=0;
OtherID[OtherID[playerid]]=-1;
nummergewaehlt[OtherID[playerid]]=-1;
Rufzahl[OtherID[playerid]]=0;
return 1;
}
return 1;
}
return 1;
}
else
{
SendClientMessage(playerid,Rot,"[HANDY]: Du Telefonierst nicht.");
}
return 1;
}
MFG
hab ich doch darunter außerhalb eines publics aber trotzdem geht er aber ich habe eine Abfrage unter OnPlayerCommandText
ob er existiert und wenn nicht Befehl existiert nicht per SendClientMessage
mein problem ist das er zwar geht aber die fehlermeldung kommt und ich will wissen wieso? und wie kann ich das beheben ohne diese funktion zu löschen?
ja sry kann dir nur sagen wie ich es sehe habe leider keinen lappi hier habe dafür 3 pcs a 5 bildschirme xD
du musst halt mal gucken ob da was mit zuklappen steht und dann mal gucken was da eingetragen ist
so habe ich weißt du vll auch noch eine antwort auf mein problem?
warst du wirklich hier: Systemsteuerung\Hardware und Sound\Energieoptionen
und dann einfach Energieplaneinstellungen ändern und dann auf Erweiterte Einstellungen und dann auf Netzschalter und zuklappen
MFG