Warum sollte ich jedem mein RCON geben wollen ? Genau, macht man nicht, deswegen benutze ich ein Adminsystem, warum ? Es soll Benutzerfreundlich sein. Mein Server hat mehr als nur ausreichende Ressourcen, weswegen ich mir diese Performancefressenden Klassen noch leisten darf
Beiträge von LoomaR
In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
-
-
Spiele kein Minecraft
-
Adde mich mal in Skype und wir schauen uns dass gerne mal fix gemeinsam an !
Bei mir mit ein wenig hin und her unter Unix Fixxed :
ZitatSA-MP Dedicated Server
----------------------
v0.3z, (C)2005-2014 SA-MP Team[11-04-2015 - 01:17:23]
[11-04-2015 - 01:17:23] Server Plugins
[11-04-2015 - 01:17:23] --------------
[11-04-2015 - 01:17:23] Loading plugin: mysql.so
[11-04-2015 - 01:17:23] >> plugin.mysql: R39-3 successfully loaded.
[11-04-2015 - 01:17:23] Loaded.
[11-04-2015 - 01:17:23] Loaded 1 plugins.[11-04-2015 - 01:17:23] I couldn't load any gamemode scripts. Please verify your server.cfg
[11-04-2015 - 01:17:23] It needs a gamemode0 line at the very least.Ja ich habe absichtlich keinen Gamemode geladen !
-
So funktioniert das ganze ! Also mit deinem Code, aber wie mache ich es nun, dass dort etwas in der Richtung steht wie:
"[AdmMsg]: %s, Du bist nicht befugt diesen Befehl zu benutzen!" Mindest benötigter Rang : (RANG)
Und eventuell noch sowas wie ... Du hast %s zum (Rang) befördert. Hat Spieler %s zum (RANG) befördert ?
Eventuell würde mir auch helfen, wenn du es detaliert erklärst warum du es so machst ! Den Query habe ich absichtlich wieder nach oben geschoben ! Da ich sonst Fehler bekomme !
ocmd:setadmin(playerid, params[])
{
new query[256];
if(isPlayerAnAdmin(playerid,1))
{
format(query, sizeof query, "[AdmMsg]: %s, Du bist nicht befugt diesen Befehl zu benutzen!" ,Spielername(playerid));
return SendClientMessage(playerid, Rot, query);
}
new pID;
if(sscanf(params, "ui", pID, rang)) return SendClientMessage(playerid, Blau, "[SysMsg]: Benutze: /setadmin [SpielerID][Rang 0 - 5]");
SetPVarInt(pID, "Adminlevel", rang);
SendClientMessage(playerid, Blau, "Der Vorgang war erfolgreich");
mysql_format(Handle, query, sizeof(query), "UPDATE `users` SET `Adminlevel`='%i' WHERE `username`='%s'",rang,Spielername(pID));
mysql_pquery(Handle, query);
return 1;
}Und zur Hölle warum muss ich GetPVarInt und SetPVarInt nutzren wenn ich mit MySQL arbeite, das verstehe ich nicht ganz
-
Du willst Dinge aus dem Workshop laden ? okay, dass ist nicht ganz so leicht
Schau dich hier mal um
-
Schrott !
Grund : FERTIGPC ( Allgemein Müll )
Beu dir deinen Rechner selber zusammen, ist kosteng+ünstiger und du kannst deine Komponenten aufeinander abstimmen
-
Quelle : Mein Programm
-
Ich habe da ein Problemchen !
Ich nutze ein MySQL System, Admin erstellen und in der DB Speichern alles kein Thema ...
Aber warum geht dieses hier nicht :
/*Hier kann man die Enums finden !*/
enum PD
{
pEingeloggt,
pGeld,
pLevel,
pAdminlevel,
pFraktion,
pOnline
};new SpielerInfo[MAX_PLAYERS][PD];
new Handle;
new rang;
new fraktion;/*Das Script beginnt hier !*/
ocmd:setadmin(playerid, params[])
{
new query[256];
//if(!IsPlayerAdmin(playerid))
if(isPlayerAnAdmin(playerid,1, rang))
{
format(query, sizeof query, "[AdmMsg]: %s, Du bist nicht befugt diesen Befehl zu benutzen!" ,Spielername(playerid));
return SendClientMessage(playerid, Rot, query);
}
new pID;
if(sscanf(params, "ui", pID, rang)) return SendClientMessage(playerid, Blau, "[SysMsg]: Benutze: /setadmin [SpielerID][Rang 0 - 5]");
SetPVarInt(playerid, "Adminlevel", rang);
SendClientMessage(pID, Blau, "Der Vorgang war erfolgreich");
mysql_format(Handle, query, sizeof(query), "UPDATE `users` SET `Adminlevel`='%i' WHERE `username`='%s'",rang,Spielername(playerid));
mysql_pquery(Handle, query);
return 1;
}stock isPlayerAnAdmin(playerid)
{
if(GetPVarInt(playerid,"Adminlevel")>=rang)
return 0;
}stock isPlayerNotAnAdmin(playerid)
{
if(getPVarInt(playerid,"Adminlevel")<=rang)
return 0;
}stock Adminrang(playerid)
{
new rang[128];
switch(SpielerInfo[playerid][pAdminlevel])
{
case 0 : rang = "Zivilist";
case 1 : rang = "Probe Supporter";
case 2 : rang = "Supporter";
case 3 : rang = "Moderator";
case 4 : rang = "Admin";
case 5 : rang = "FullAdmin";
case 6 : rang = "Inhaber";
}
return rang;
}Vielen Dank für Eure Hilfe !
-
Der Compiler crasht dann, dass hatte ich gestern, so wie mein stock ist, geht alles wunderbar !
-
Und ich suche doch nur eine Erklärung für :
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Rot, "[AdmMsg]: [u]'%s[/u]', Du bist nicht befugt diesen Befehl zu benutzen!");
Nicht wegen einem case oder return oder wie auch immer, und warum dass so sein muss, damit ich auch einen grund und nicht nur eine Vorlage habe !
-
Dank deine Antwort bin ich auf das hier gestoßen
[ SCRIPTING ] sscanf 2.0
Besten Dank !
new pID,rang;
Das hatte ich absichtlich weggelassen, da die Ränge aus einem Stock enstehen
stock Adminrang(playerid)
{
new rang[54];
switch(SpielerInfo[playerid][pAdminlevel])
{
case 0 : rang = "Zivilist";
case 1 : rang = "Probe Supporter";
case 2 : rang = "Supporter";
case 3 : rang = "Moderator";
case 4 : rang = "Admin";
case 5 : rang = "FullAdmin";
case 6 : rang = "Inhaber";
}
return rang;
}Dafür nochmals besten Dank an @seegran und ChristianW wegen die Hilfe gestern Abend im TS³ !
-
Guten Tag zusammen,
ich versuche gerade einen Setadmin Befehl zu basteln, der einen User jedoch persönlich anspricht. Ich glaube ich mache da was verkehrt, kann mir Jemand einen Tipp geben ?
Zudem, ich Suche eine Erklärung für die Verwendung von %i, %s, %d, %e und so weiter. Was steht genau für was und ist wie anzuwenden ?
Danke
ocmd:setadmin(playerid, params[])
{
new query[256];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Rot, "[AdmMsg]: %s, Du bist nicht befugt diesen Befehl zu benutzen!");
new pID;
if(sscanf(params, "ui", pID, rang)) return SendClientMessage(playerid, Blau, "Benutze: /setadmin [SpielerID][Rang 0 - 5]");
SetPVarInt(playerid, "Adminlevel", rang);
SendClientMessage(pID, Blau ,"Der Vorgang war erfolgreich");
mysql_format(Handle, query, sizeof(query), "UPDATE `samp_database`.`users` SET `Adminlevel`='%i' WHERE `username`='%s'", Spielername(playerid));
mysql_pquery(Handle, query);
return 1;
} -
Guten morgen zusammen,
ich habe eine kleine Frage, kann mir eventuell Jemand sagen, was ich noch machen muss um das ganze 100% auf MySQL Basis zu haben ?ß?
ocmd:setadmin(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Rot, "AdmMsg: Du bist nicht befugt diesen Befehl zu benutzen!");
new pID, pRang;
if(sscanf(params, "ui", pID, pRang)) return SendClientMessage(playerid, Blau, "Benutze: /setadmin [SpielerID][Rang 0 - 5]");
SetPVarInt(playerid, "Adminlevel", pRang);
SendClientMessage(pID, Blau ,"Der Vorgang war erfolgreich");
SpielerSpeichern(playerid);
return 1;
}Das gannze läuft über die Datenbank ! Tabelle Users, Spalte Adminlevel!
Gespeichert wird das ganze wie folgt :
stock SpielerSpeichern(playerid)
{
new query[256];
if(!SpielerInfo[playerid][pEingeloggt])return 1;
mysql_format(Handle, query, sizeof(query), "UPDATE `samp_database`.`users` SET `Geld`='%i',`Level`='%i', Adminlevel`='$i'` WHERE `username`='%e'", GetPlayerMoney(playerid), GetPlayerScore(playerid), Spielername(playerid)),
mysql_pquery(Handle, query);
return 1;
}Aufgerufen wird es so :
stock SpielerLaden(playerid)
{
SpielerInfo[playerid][pEingeloggt] = true;
SpielerInfo[playerid][pGeld] = cache_get_field_content_int(0, "Geld", Handle), GivePlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
SpielerInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level", Handle), SetPlayerScore(playerid, SpielerInfo[playerid][pLevel]);
SpielerInfo[playerid][pAdminlevel] = cache_get_field_content_int(0, "Adminlevel", Handle);
return 1;
}Thanks
-
Guten Morgen zusammen,
für die Nachtaktiven, ich hab euin wenig Langeweile und versuche mich derzeitig an Pawno
Wenn ihr wollt, dürft ihr mir gerne zuschauen !
Link : http://www.hitbox.tv/LoomaR
Online bin ich meist ab 12 Uhr bis Open end
Kritik : Klar her damit, wenn ich nen Noob bin, dann ist es so
-
Spoiler anzeigen
/*Allgemeine Includes sind hier zu finden !*/Spoiler anzeigen #include <a_samp>
#include <a_mysql>
#include <MD5>
#include <npcdll>
#include <ocmd>
#include <sscanf2>Spoiler anzeigen /*Allgemeine Farben sind hier zu finden !*/Spoiler anzeigen #define Weiss 0xFFFFFFFF
#define Rot 0xFF0000FF
#define Gelb 0xFFFC00FF
#define grün 0x00FF3CFF
#define blau 0x0096FFFFSpoiler anzeigen /*Allgemeine Handles sind hier zu finden !*/Spoiler anzeigen new Handle;Spoiler anzeigen new CarRadio[MAX_VEHICLES],
CarRadioName[MAX_PLAYERS][32],
CarRadioURL[MAX_PLAYERS][128];
/*Hier finsdest du die MySQL Daten !*/Spoiler anzeigen /*Warum nutze ich diese Reihenfolge ? Weil man erst den Host, dann den User, dann dass password und dann die Datenbank abruft !*/Spoiler anzeigen #define MYSQL_HOST "localhost"
#define MYSQL_USER "root"
#define MYSQL_DATA "samp_database"
#define MYSQL_PASS ""
/*Hier kann man noch Dialoge finden !*/Spoiler anzeigen #define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2Spoiler anzeigen #define RADIO_STREAMS_DEBUG 3
#define DIALOG_CARMENU_RADIO 300
#define DIALOG_RADIO_ADD_NAME 301
#define DIALOG_RADIO_ADD_URL 302
#define DIALOG_RADIO_ADD_CHECK 303
#define DIALOG_RADIO_MANAGE_LIST 304
/*Hier kann man die forwards finden !*/Spoiler anzeigen forward OnPasswordResponse(playerid);
forward UserCheck(playerid);Spoiler anzeigen /*Hier = ENUM !!!*/Spoiler anzeigen enum PD
{
pEingeloggt,
pGeld,
pLevel,
pFraktion,
pOnline
};Spoiler anzeigen new SpielerInfo[MAX_PLAYERS][PD];Spoiler anzeigen /*Das Script beginnt hier !*/Spoiler anzeigen main()
{
print("\n----------------------------------");
print(" That is a gamemode made by LoomaR");
print("----------------------------------\n");
}Spoiler anzeigen public OnGameModeInit()
{
Handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATA, MYSQL_PASS);
if(mysql_errno() < 1) print ("MySqlServer: Die Verbindung zum Server wurde erfolgreich hergestellt."), mysql_log(LOG_ALL); else print ("MySqlServer: Es konnte keine Verbindung zum Server hergestellt werden"), SendRconCommand("exit");
SetGameModeText("That is a script made by LoomaR");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}Spoiler anzeigen public OnGameModeExit()
{
return 1;
}Spoiler anzeigen 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;
}Spoiler anzeigen public OnPlayerConnect(playerid)
{
new query[256];
mysql_escape_string(Spielername(playerid), Spielername(playerid));
format(query, sizeof(query), "SELECT * FROM `samp_database`.`users` WHERE username='%s'", Spielername(playerid));
mysql_tquery(Handle, query, "UserCheck", "i", playerid);
format(query, sizeof(query), "UPDATE `samp_database`.`users` SET `Online`=1 WHERE `username`='%s'", Spielername(playerid));
mysql_tquery(Handle, query);
return 1;
}Spoiler anzeigen public OnPlayerDisconnect(playerid, reason)
{
new query[256];
format(query, sizeof(query), "UPDATE `samp_database`.`users` SET `Online`=0 WHERE `username`='%s'", Spielername(playerid));
SpielerSpeichern(playerid);
mysql_tquery(Handle, query);
return 1;
}Spoiler anzeigen public OnPlayerSpawn(playerid)
{
return 1;
}Spoiler anzeigen public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}Spoiler anzeigen public OnVehicleSpawn(vehicleid)
{
CarRadio[vehicleid] = 0;
return 1;
}Spoiler anzeigen public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}Spoiler anzeigen public OnPlayerText(playerid, text[])
{
return 1;
}Spoiler anzeigen public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 1;
}Spoiler anzeigen ocmd:carradio(playerid, params[])
{
new query [512];
if(GetPlayerVehicleSeat(playerid) != 1 && GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, 0xAFAFAFFF, "Du bist kein Fahrer oder Beifahrer eines Fahrzeuges!");
format(query, sizeof(query), "SELECT * FROM radiostations WHERE radio_active='1'", Spielername(playerid));
new rows, fields;
cache_get_data(rows, fields);
if(!rows)return SendClientMessage(playerid, 0xAFAFAFFF, "Es sind keine Radiosender vorhanden.");
new radios, dstring[1028];
while(radios < rows) {
new temp[512];
cache_get_field_content(radios, "radio_name", temp);
format(dstring, sizeof dstring, "%s%s\n", dstring, temp);
radios++;
}
ShowPlayerDialog(playerid, DIALOG_CARMENU_RADIO, DIALOG_STYLE_LIST, "Radiosender", dstring, "Einschalten", "Ausschalten");
mysql_tquery(Handle, query);
return 1;
}
ocmd:listradios(playerid, params[])
{
new query [512];
if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, 0xAFAFAFFF, "Du bist kein Administrator.");
format(query, sizeof(query), "SELECT * FROM radiostations WHERE radio_active='1'", Spielername(playerid));
new rows, fields;
cache_get_data(rows, fields);
if(!rows)return ShowPlayerDialog(playerid, DIALOG_RADIO_MANAGE_LIST, DIALOG_STYLE_LIST, "Radiosender", "Es sind keine Radiosender vorhanden", "Hinzufügen", "");
new radios, dstring[1028];
while(radios < rows) {
new temp[512];
cache_get_field_content(radios, "radio_name", temp);
format(dstring, sizeof dstring, "%s[%i] %s\n", cache_get_field_content_int(radios, "id"), dstring, temp);
radios++;
}
ShowPlayerDialog(playerid, DIALOG_RADIO_MANAGE_LIST, DIALOG_STYLE_LIST, "Radiosender", dstring, "Hinzufügen", "Löschen");
mysql_tquery(Handle, query);
return 1;
}Spoiler anzeigen public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}Spoiler anzeigen public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}Spoiler anzeigen public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) {
if(CarRadio[vehicleid] != 0) {
new query[512];
format(query, sizeof(query), "SELECT * FROM radiostations WHERE id='%i' LIMIT 1", CarRadio[vehicleid], Spielername(playerid));
mysql_tquery(Handle, query);
new temp[512];
cache_get_field_content(0, "radio_url", temp);
PlayAudioStreamForPlayer(playerid, temp);
}
}
if(newstate == PLAYER_STATE_ONFOOT) {
StopAudioStreamForPlayer(playerid);
}
return 1;
}Spoiler anzeigen public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}Spoiler anzeigen public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}Spoiler anzeigen public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}Spoiler anzeigen public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}Spoiler anzeigen public OnRconCommand(cmd[])
{
return 1;
}Spoiler anzeigen public OnPlayerRequestSpawn(playerid)
{
return 1;
}Spoiler anzeigen public OnObjectMoved(objectid)
{
return 1;
}Spoiler anzeigen public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}Spoiler anzeigen public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}Spoiler anzeigen public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}Spoiler anzeigen public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}Spoiler anzeigen public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}Spoiler anzeigen public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}Spoiler anzeigen public OnPlayerExitedMenu(playerid)
{
return 1;
}Spoiler anzeigen public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}Spoiler anzeigen public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}Spoiler anzeigen public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}Spoiler anzeigen public OnPlayerUpdate(playerid)
{
return 1;
}Spoiler anzeigen public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}Spoiler anzeigen public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}Spoiler anzeigen public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}Spoiler anzeigen public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}Spoiler anzeigen public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new query[256], key[50];
if(dialogid == DIALOG_REGISTER)
{
if(!response)
{
return Kick(playerid);
}
if(strlen(inputtext) < 7) return SendClientMessage(playerid, Rot, "Error: {FFFFFF}Dein Passwort ist kleiner als 7 Zeichen. Bitte verwende ein sicheres Passwort."),ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration","It was no Account found under this name.\nPlease take a safe Password to register you.","Register","Cancel"); format(key, 50, "%s", inputtext);
mysql_escape_string(Spielername(playerid), Spielername(playerid)), mysql_escape_string(key, key);
format(query, sizeof(query), "INSERT INTO `samp_database`.`users` (`username`, `password`, `Geld`, `Level`) VALUES ('%s', MD5('%s'), 50000, 1)", Spielername(playerid), key);
mysql_tquery(Handle, query);
SendClientMessage(playerid, -1, "Dein Account wurde erstellt.");
GivePlayerMoney(playerid, 50000), SetPlayerScore(playerid, 1);
return 1;
}
if(dialogid == DIALOG_LOGIN)
{
if(!response)
{
return Kick(playerid);
}
format(key, 50, "%s", inputtext);
mysql_escape_string(Spielername(playerid), Spielername(playerid)), mysql_escape_string(key, key);
format(query, sizeof(query), "SELECT * FROM `samp_database`.`users` WHERE username='%s' AND password=MD5('%s')", Spielername(playerid), key);
mysql_tquery(Handle, query, "OnPasswordResponse", "i", playerid);
}
new string[512];
switch(dialogid) {
case DIALOG_CARMENU_RADIO: {
if(response) {
format(query, sizeof(query), "SELECT * FROM radiostations WHERE radio_name='%s' LIMIT 1", inputtext, Spielername(playerid));
mysql_tquery(Handle, query);
new temp[512];
cache_get_field_content(0, "radio_url", temp);
PlayAudioStreamForPlayer(playerid, temp);
cache_get_field_content(0, "radio_name", temp);
format(query, sizeof(query), "Du hast den Radiosender auf %s gestellt.", temp);
SendClientMessage(playerid, -1, string);
CarRadio[GetPlayerVehicleID(playerid)] = cache_get_field_content_int(0, "id");
} else StopAudioStreamForPlayer(playerid);
}
case DIALOG_RADIO_ADD_NAME: {
if(response) {
if(!strlen(inputtext) || strlen(inputtext) < 6)return SendClientMessage(playerid, 0xAFAFAFFF, "Der Name ist zu kurz."), ShowPlayerDialog(playerid, DIALOG_RADIO_ADD_NAME, DIALOG_STYLE_INPUT, "Radio hinzufügen", "Gebe den Namen des Radios ein.", "Weiter", "Abbruch");
if(strlen(inputtext) > 32)return SendClientMessage(playerid, 0xAFAFAFFF, "Der Name ist zu lang."), ShowPlayerDialog(playerid, DIALOG_RADIO_ADD_NAME, DIALOG_STYLE_INPUT, "Radio hinzufügen", "Gebe den Namen des Radios ein.", "Weiter", "Abbruch");
ShowPlayerDialog(playerid, DIALOG_RADIO_ADD_URL, DIALOG_STYLE_INPUT, "Radio hinzufügen", "Gebe die URL des Radios ein.", "Weiter", "Zurück");
format(CarRadioName[playerid], 32, "%s", inputtext);
mysql_tquery(Handle, query);
}
}
case DIALOG_RADIO_ADD_URL: {
if(response) {
if(!strlen(inputtext) || strlen(inputtext) < 6)return SendClientMessage(playerid, 0xAFAFAFFF, "Die URL ist zu kurz."), ShowPlayerDialog(playerid, DIALOG_RADIO_ADD_URL, DIALOG_STYLE_INPUT, "Radio hinzufügen", "Gebe die URL des Radios ein.", "Weiter", "Zurück");
if(strlen(inputtext) > 128)return SendClientMessage(playerid, 0xAFAFAFFF, "Die URL ist zu lang."), ShowPlayerDialog(playerid, DIALOG_RADIO_ADD_URL, DIALOG_STYLE_INPUT, "Radio hinzufügen", "Gebe die URL des Radios ein.", "Weiter", "Zurück");
format(CarRadioURL[playerid], 128, "%s", inputtext);
format(query, sizeof(query), "Radio Name: %s\nRadio URL: %s\n\nWollen sie die Radiostation hinzufügen?", CarRadioName[playerid], CarRadioURL[playerid]);
ShowPlayerDialog(playerid, DIALOG_RADIO_ADD_CHECK, DIALOG_STYLE_INPUT, "Radio hinzufügen", string, "Ja", "Nein");
mysql_tquery(Handle, query);
}
}
case DIALOG_RADIO_ADD_CHECK: {
if(response) {
format(query, sizeof(query), "INSERT INTO radiostations (`radio_name`, `radio_url`) VALUES ('%s', '%s')", CarRadioName[playerid], CarRadioURL[playerid]);
mysql_tquery(Handle, query);
SendClientMessage(playerid, -1, "Du hast erfolgreich eine Radiostation hinzugefügt.");
#if RADIO_STREAMS_DEBUG == 1
printf("[Radio-System]: %s hat einen Radiosender hinzugefügt.", PlayerName(playerid));
#endif
}
}
case DIALOG_RADIO_MANAGE_LIST: {
if(response) {
ShowPlayerDialog(playerid, DIALOG_RADIO_ADD_NAME, DIALOG_STYLE_INPUT, "Radio hinzufügen", "Gebe den Namen des Radios ein.", "Weiter", "Abbruch");
} else if(!response) {
new start, end;
start = strfind(inputtext, "[");
end = strfind(inputtext, "]");
strdel(inputtext, 0, start+1);
strdel(inputtext, end, strlen(inputtext));
new id = strval(inputtext);
format(query, sizeof(query), "DELETE FROM radiostations WHERE id='%i'", id);
mysql_tquery(Handle, query);
SendClientMessage(playerid, -1, "Du hast erfolgreich einen Radiosender gelöscht.");
#if RADIO_STREAMS_DEBUG == 1
printf("[Radio-System]: %s hat einen Radiosender gelöscht.", PlayerName(playerid));
#endif
}
}
}
return 1;
}Spoiler anzeigen public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}Spoiler anzeigen public UserCheck(playerid)
{
new num_rows, num_fields;
cache_get_data(num_rows, num_fields, Handle);
if(num_rows == 0)
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Anmeldung", "Es wurde kein Account unter diesem namen gefunden!", "Anmelden", "Abbrechen");
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Es wurde ein Account unter diesem namen gefunden!", "Anmelden", "Abbrechen");
}
}
public OnPasswordResponse(playerid)
{
new num_fields, num_rows;
cache_get_data(num_rows, num_fields);
if(num_rows == 0)
{
SendClientMessage(playerid, -1, "Das Passwort ist inkorrekt.");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Es wurde ein Account unter diesem namen gefunden!", "Anmelden", "Abbrechen");
}
else
{
SendClientMessage(playerid, -1, "Erfolgreich eingeloggt.");
SpielerInfo[playerid][pEingeloggt] = true;
SpielerLaden(playerid);
SpawnPlayer(playerid);
}
return 1;
}Spoiler anzeigen stock Spielername(playerid)
{
new name[50];
GetPlayerName(playerid, name, 50);
return name;
}Spoiler anzeigen stock PlayerName(playerid) {
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
return Name;
}Spoiler anzeigen stock SpielerLaden(playerid)
{
SpielerInfo[playerid][pEingeloggt] = true;
SpielerInfo[playerid][pGeld] = cache_get_field_content_int(0, "Geld", Handle), GivePlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
SpielerInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level", Handle), SetPlayerScore(playerid, SpielerInfo[playerid][pLevel]);
return 1;
}Spoiler anzeigen stock SpielerSpeichern(playerid)
{
new query[256];
if(!SpielerInfo[playerid][pEingeloggt])return 1;
mysql_format(Handle, query, sizeof(query), "UPDATE `samp_database`.`users` SET `Geld`='%i',`Level`='%i' WHERE `username`='%e'", GetPlayerMoney(playerid), GetPlayerScore(playerid), Spielername(playerid)),
mysql_pquery(Handle, query);
return 1;
}Spoiler anzeigen stock CheckTables()
{
new query[256];
mysql_format(Handle, query, sizeof(query), "CREATE TABLE IF NOT EXISTS `radiostations` (`id` int(11) NOT NULL AUTO_INCREMENT,`radio_name` text NOT NULL,`radio_url` text NOT NULL,`radio_active` tinyint(1) NOT NULL DEFAULT '1',PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;", Spielername(playerid));
mysql_pquery(Handle, query);
return 1;
}So, beim Compilen nun keine Fehler mehr ! Aber ich bin mir sicher, ohne es zu testen, es sind Fehler vorhanden !
-
Und was fehlt nun ?
-
Habe dir eine PM zukommen lassen Jeffry
-
case DIALOG_RADIO_ADD_URL: {
if(response) {
if(!strlen(inputtext) || strlen(inputtext) < 6)return SendClientMessage(playerid, 0xAFAFAFFF, "Die URL ist zu kurz."), ShowPlayerDialog(playerid, DIALOG_RADIO_ADD_URL, DIALOG_STYLE_INPUT, "Radio hinzufügen", "Gebe die URL des Radios ein.", "Weiter", "Zurück");
if(strlen(inputtext) > 128)return SendClientMessage(playerid, 0xAFAFAFFF, "Die URL ist zu lang."), ShowPlayerDialog(playerid, DIALOG_RADIO_ADD_URL, DIALOG_STYLE_INPUT, "Radio hinzufügen", "Gebe die URL des Radios ein.", "Weiter", "Zurück");
format(CarRadioURL[playerid], 128, "%s", inputtext);
format(query, sizeof(query), "Radio Name: %s\nRadio URL: %s\n\nWollen sie die Radiostation hinzufügen?", CarRadioName[playerid], CarRadioURL[playerid]);
ShowPlayerDialog(playerid, DIALOG_RADIO_ADD_CHECK, DIALOG_STYLE_INPUT, "Radio hinzufügen", string, "Ja", "Nein");
}
}Sicher nicht ?
-
ocmd:carradio(playerid, params[])
{
new query [512];
if(GetPlayerVehicleSeat(playerid) != 1 && GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, 0xAFAFAFFF, "Du bist kein Fahrer oder Beifahrer eines Fahrzeuges!");
format(query, sizeof(query), "SELECT * FROM radiostations WHERE radio_active='1'", Spielername(playerid));
new rows, fields;
cache_get_data(rows, fields);
if(!rows)return SendClientMessage(playerid, 0xAFAFAFFF, "Es sind keine Radiosender vorhanden.");
new radios, dstring[1028];
while(radios < rows) {
new temp[512];
cache_get_field_content(radios, "radio_name", temp);
format(dstring, sizeof dstring, "%s%s\n", dstring, temp);
radios++;
}
ShowPlayerDialog(playerid, DIALOG_CARMENU_RADIO, DIALOG_STYLE_LIST, "Radiosender", dstring, "Einschalten", "Ausschalten");
return 1;
}
ocmd:listradios(playerid, params[])
{
new query [512];
if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, 0xAFAFAFFF, "Du bist kein Administrator.");
format(query, sizeof(query), "SELECT * FROM radiostations WHERE radio_active='1'", Spielername(playerid));
new rows, fields;
cache_get_data(rows, fields);
if(!rows)return ShowPlayerDialog(playerid, DIALOG_RADIO_MANAGE_LIST, DIALOG_STYLE_LIST, "Radiosender", "Es sind keine Radiosender vorhanden", "Hinzufügen", "");
new radios, dstring[1028];
while(radios < rows) {
new temp[512];
cache_get_field_content(radios, "radio_name", temp);
format(dstring, sizeof dstring, "%s[%i] %s\n", cache_get_field_content_int(radios, "id"), dstring, temp);
radios++;
}
ShowPlayerDialog(playerid, DIALOG_RADIO_MANAGE_LIST, DIALOG_STYLE_LIST, "Radiosender", dstring, "Hinzufügen", "Löschen");
return 1;
}Jemand eine Ahnung warum dies so ist ?
-
Immer als erstes mysql.dll / mysql.so laden, sonst passiert dir dieser Fehler