Was geht nicht?
Beiträge von Jeffry
-
-
Spoiler anzeigen /* Support System by Steffen P. aka Scriptor.*/Spoiler anzeigen #include <dini>
#include <ocmd>Spoiler anzeigen //----------------------------------------------------------------Spoiler anzeigen #define COLOR_YELLOW 0xFFFF00AA
#define COLOR_GREY 0xAFAFAFAASpoiler anzeigen //---------------------------------------------------------------Spoiler anzeigen new TicketZeile[MAX_PLAYERS];
new SupportTicket[MAX_PLAYERS];
new TicketAngenommen[MAX_PLAYERS];
new DeinSupport[MAX_PLAYERS];Spoiler anzeigen //--------------------------------------------------------------Spoiler anzeigen //public OnPlayerConnect(playerid)Spoiler anzeigen TicketZeile[playerid] = 0;
SupportTicket[playerid] = 0;
TicketAngenommen[playerid] = 0;
DeinSupport[playerid] = 0;Spoiler anzeigen //-------------------------------------------------------------Spoiler anzeigen ocmd:tickets(playerid, params[])
{
#pragma unused params
if(pInfo[playerid][admin] >= 1)
{
SendClientMessage(playerid, COLOR_YELLOW, "Die angezeigten Tickets können mit /taketicket angenommen werden");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(SupportTicket[i] == 1)
{
if(TicketAngenommen[i] == 0)
{
new string[128], DerSpieler[MAX_PLAYER_NAME];
GetPlayerName(i, DerSpieler, sizeof(DerSpieler));
format(string, sizeof(string), "ID: %d Name: %s", i, DerSpieler);
SendClientMessage(playerid, COLOR_GREY, string);
}
}
}
}
return 1;
}Spoiler anzeigen ocmd:sup(playerid,params[])
{
new text[256];
if(sscanf(params,"s",text))
{
SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /sup [text]");
}
else
{
if(TicketAngenommen[playerid] == 0)
{
new pname[MAX_PLAYERS],save[512], string[128];
GetPlayerName(playerid,pname,sizeof pname);
format(save,sizeof save,"Tickets/%s.ini",pname);
if(!dini_Exists(save) && TicketZeile[playerid] == 0)
{
new adminmeldung[128];
format(adminmeldung, sizeof(adminmeldung), "%s hat ein Support-Ticket geschrieben", pname);
SendAdminMessage(COLOR_YELLOW, adminmeldung);
SupportTicket[playerid] = 1;
TicketZeile[playerid] = 1;
dini_Create(save);
dini_Set(save,"Suptext",text);
SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Du hast ein Ticket mit folgendem Text geöffnet:");
format(string, sizeof(string), "%s", text);
SendClientMessage(playerid, COLOR_YELLOW, string);
SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT]Warte bis es ein Supporter annimmt!");
SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT]Du kannst noch mit /sup 2 weitere Zeilen anhängen");
return 1;
}
else if(TicketZeile[playerid] == 1)
{
new string2[128];
dini_Set(save, "Suptext2",text);
SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Du hast folgendes an dein Ticket anhängt:");
format(string2, sizeof(string2), "%s", text);
SendClientMessage(playerid, COLOR_YELLOW, string2);
TicketZeile[playerid] = 2;
return 1;
}
else if(TicketZeile[playerid] == 2)
{
new string3[128];
dini_Set(save, "Suptext3",text);
SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Du hast folgendes an dein Ticket anhängt:");
format(string3, sizeof(string3), "%s", text);
SendClientMessage(playerid, COLOR_YELLOW, string3);
TicketZeile[playerid] = 3;
return 1;
}
else if(TicketZeile[playerid] == 3)
{
SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Dein Ticket ist bereits randgefüllt!");
return 1;
}
}
if(TicketAngenommen[playerid] == 1)
{
new pID = DeinSupport[playerid];
new antwort[128], antwort2[128], DerFragende[MAX_PLAYER_NAME], DerSup[MAX_PLAYER_NAME];
GetPlayerName(playerid, DerFragende, sizeof (DerFragende));
GetPlayerName(pID, DerSup, sizeof (DerSup));
format(antwort, sizeof (antwort),"--> %s", text);
SendClientMessage(playerid, COLOR_YELLOW, antwort);
format(antwort2, sizeof (antwort2), "%s schrieb: %s", DerFragende, text);
SendClientMessage(pID, COLOR_YELLOW, antwort2);
}
}
return 1;
}Spoiler anzeigen ocmd:giveticket(playerid, params[])
{
new pID, adminid;
if(sscanf(params,"uu",pID,adminid))
{
return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /giveticket [ticketid] [adminid]");
}
if(!IsPlayerConnected(adminid))
{
return SendClientMessage(playerid, COLOR_GREY,"Admin nicht online");
}
if(pInfo[adminid][admin] == 0)
{
return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist kein Admin");
}
new pname[MAX_PLAYERS],save[512];
GetPlayerName(pID,pname,sizeof pname);
format(save,sizeof save,"Tickets/%s.ini",pname);
if(!dini_Exists(save))
{
return SendClientMessage(playerid, COLOR_GREY,"Die ID hat kein offenes Ticket");
}
new NeuerAdmin[MAX_PLAYER_NAME], AlterAdmin[MAX_PLAYER_NAME], Fragender[MAX_PLAYER_NAME];
GetPlayerName(playerid, AlterAdmin , sizeof(AlterAdmin));
GetPlayerName(adminid, NeuerAdmin, sizeof(NeuerAdmin));
GetPlayerName(pID, Fragender , sizeof(Fragender));
DeinSupport[pID] = adminid;
new string2[128], string3[128], string4[256], string5[256], string6[256];
format(string2, sizeof(string2), "[SUPPORT] %s hat dein Ticket an %s weitergegeben.", AlterAdmin, NeuerAdmin);
SendClientMessage(pID, COLOR_YELLOW, string2);
SendClientMessage(playerid, COLOR_YELLOW, "Erfolgreich weitergeleitet");
format(string3, sizeof(string3), "[SUPPORT] %s hat dir %s´s Ticket gegeben. Er schrieb folgendes:", AlterAdmin, Fragender);
string4 = dini_Get(save, "Suptext");
string5 = dini_Get(save, "Suptext2");
string6 = dini_Get(save, "Suptext3");
SendClientMessage(adminid, COLOR_YELLOW, string3);
SendClientMessage(adminid, COLOR_YELLOW, string4);
SendClientMessage(adminid, COLOR_YELLOW, string5);
SendClientMessage(adminid, COLOR_YELLOW, string6);
return 1;
}Spoiler anzeigen ocmd:deleteticket(playerid, params[])
{
new pID;
if(sscanf(params,"u",pID))
{
return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /deleteticket [id]");
}
new pname[MAX_PLAYERS],save[512];
GetPlayerName(pID,pname,sizeof pname);
format(save,sizeof save,"Tickets/%s.ini",pname);
if(dini_Exists(save))
{
if(pInfo[playerid][admin] >= 1)
{
new string[128], DerSup[MAX_PLAYER_NAME];
GetPlayerName(playerid, DerSup, sizeof(DerSup));
dini_Remove(save);
format(string, sizeof(string), "%s hat dein Ticket gelöscht", DerSup);
SendClientMessage(pID, COLOR_YELLOW, string);
SendClientMessage(playerid, COLOR_YELLOW, "Erfolgreich gelöscht");
TicketZeile[pID] = 0;
TicketAngenommen[pID] = 0;
DeinSupport[pID] = 0;
SupportTicket[pID] = 0;
}
}
return 1;
}Spoiler anzeigen ocmd:taketicket(playerid,params[])
{
new pID;
new string2[256], string[256], string3[256], string4[256],mitteilung[128] , DerPlayer[MAX_PLAYER_NAME], DerAdmin[MAX_PLAYER_NAME];
if(sscanf(params,"u",pID))
{
return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /taketicket [id]");
}
new pname[MAX_PLAYERS],save[512];
GetPlayerName(pID,pname,sizeof pname);
format(save,sizeof save,"Tickets/%s.ini",pname);
if(dini_Exists(save))
{
if(pInfo[playerid][admin] >= 1)
{
string2 = dini_Get(save,"Suptext");
string3 = dini_Get(save,"Suptext2");
string4 = dini_Get(save,"Suptext3");
GetPlayerName(pID, DerPlayer, sizeof(DerPlayer));
GetPlayerName(playerid, DerAdmin, sizeof(DerAdmin));
format(string, sizeof(string), "%s schrieb folgende Supportnachricht:", DerPlayer);
SendClientMessage(playerid, COLOR_YELLOW, string);
SendClientMessage(playerid, COLOR_YELLOW, string2);
SendClientMessage(playerid, COLOR_YELLOW, string3);
SendClientMessage(playerid, COLOR_YELLOW, string4);
SendClientMessage(playerid, COLOR_YELLOW, "Du kannst per /aw [ID] antworten");
format(mitteilung, sizeof(mitteilung), "[SUPPORT] %s hat dein Support Ticket geöffnet. Du kannst nun per /sup direkt mit ihm schreiben!",DerAdmin);
//new string5[128];
//format(string5, sizeof (string5), "[SUPPORT] %s hat das Ticket von %s geöffnet");
//SendAdminMessage(COLOR_YELLOW, string5);
SendClientMessage(pID, COLOR_YELLOW, mitteilung);
DeinSupport[pID] = playerid;
TicketAngenommen[pID] = 1;
}
}
return 1;
}Spoiler anzeigen //---------------------------------------------------------------------------------Spoiler anzeigen stock DeleteTicket(playerid)
{
new save1[256], pname[MAX_PLAYERS];
GetPlayerName(playerid,pname,sizeof pname);
format(save1,sizeof save1,"Tickets/%s.ini",pname);
if(fexist(save1))
{
dini_Remove(save1);
}
return true;
}Spoiler anzeigen //-----------------------------------------------------------------------------------------Spoiler anzeigen //OnPlayerDisconnectSpoiler anzeigen DeleteTicket(playerid);
So wäre es richtig eingerückt.Was sind sonst für Probleme vorhanden? Erkläre das bitte jeweils einzeln.
-
Kannst Du mir die Box für unten auch geben?
LoginBoxUnten = TextDrawCreate( 0.0000, 310.0, "~n~");
TextDrawLetterSize(LoginBoxUnten, 1.0000, 19.0000);
TextDrawUseBox(LoginBoxUnten, 1);
TextDrawBoxColor(LoginBoxUnten, 0x000000FF);
TextDrawFont(LoginBoxUnten, 0);
TextDrawSetShadow(LoginBoxUnten, 0);
TextDrawSetProportional(LoginBoxUnten, 0);SnipeZ: Da ist wohl ein Timer die beste Methode.
-
sInfo[playerid][bankmoney] = cache_get_field_content_int(0,"bankmoney",dbhandle);
Zu:
SetPVarInt(playerid,"bankmoney",cache_get_field_content_int(0,"bankmoney",dbhandle)); -
Wie lädst du die Daten aus der Datenbank?
-
-
savePlayer(playerid)
{
if(sInfo[playerid][eingeloggt]==0)return 1;new query[256];
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',bankmoney='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],GetPVarInt(playerid,"bankmoney"),sInfo[playerid][id]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
} -
Wie sieht dein savePlayer aus?
-
Ah, das sind Abfragen.
Dann schau in deiner Datenbank, in den Tabellen, nach den in der Fehlermeldung angegebenen Spalten und gebe diesen einen DEFAULT Wert, also wahrscheinlich einfach nur 0. Dann sollte es klappen. -
-
Abfragen zu können, ob der Spieler die F8 Taste gedrückt hat.
Das ist leider nicht möglich. -
Du hast irgendwo im Code global (wahrscheinlich unter den Includes) "modelid" deklariert. Diese musst du umbenennen, und auch überall dort, wo du diese Variable verwendest.
-
Ach, natürlich. Ich hab zwei mal "Hallo" gelesen ich Depp

Interessanterweise kompiliert bei mir die Funktion gar nicht, da schmiert der Compiler ab. Ist ja komisch...
Hat jemand eine Idee warum
#emit SYSREQ.C format
den Kompiler abschmieren lässt? -
Was hast du denn überhaupt genau vor? Das Beispiel, das du gemacht hast gibt ist für mich nicht ganz schlüssig.
-
Dann schau dir dort mal den Code an. Dort wird ein MySQL Query abgesendet, das wohl Fehler beinhaltet.
-
Der PAWN Code, der diesen Fehler verursacht.
-
Schreibe den Tacho-Filterscript mal ganz als letztes unter "filterscripts" in der server.cfg hin.
-
Wie sieht der Code zu dem Fehler aus?
-
ocmd:gibgeld(playerid,params[])
{
if(!isAdmin(playerid,3))return SendClientMessage(playerid,Rot,"Dein Adminlevel ist nicht Ausreichend");
new pID,a_money;
if(sscanf(params,"ui",pID,a_money))return SendClientMessage(playerid,Grau,"INFO: /gibgeld [playerid] [Betrag]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid, -1, "INFO: Spieler ist nicht Online.");
new Float:x,Float:y,Float:z;
GetPlayerPos(pID, x, y, z);
if(!IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z)) return SendClientMessage(playerid, -1, "INFO: Du musst neben dem Spieler sein.");//Abfrage hinzugefügt
GivePlayerMoney(pID, a_money);
savePlayer(pID);
new str[128];
format(str, sizeof(str), "Info: Du hast %i Doller erhalten von %s erhalten", a_money, SpielerName(playerid));
SendClientMessage(pID,Gelb,str);
format(str, sizeof(str), "Info: Du hast %s %i Doller gegeben", SpielerName(pID), a_money);
SendClientMessage(playerid,Gelb,str);
return 1;
}Und sollte es nicht "Dollar" heißen?

-
Schau dir mal das hier an:
stock CPF(playerid, color, fstring[], {Float, _}:...)