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
-
-
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