Jeffry:
Dann wird mein name 2 mal angezeigt und meine id
Wie sieht denn dein Code aus? Poste ihn nochmal. Vielleicht hast du eine Änderung vergessen.
Jeffry:
Dann wird mein name 2 mal angezeigt und meine id
Wie sieht denn dein Code aus? Poste ihn nochmal. Vielleicht hast du eine Änderung vergessen.
Warum wird der Skin nicht angezeit? Also ich habe es per Anklickbare Textdraws gemacht... z.b. Man klickt "TEAM 1" an dann soll z.b.: ein Grove Street Skin erscheinen , jedoch bleibt es einfach leer, hier der Code:
Textdraw3[playerid] = CreatePlayerTextDraw(playerid, 194.000000, 124.444442, "_");//LD_SPAC:white
PlayerTextDrawFont(playerid, Textdraw3[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);
PlayerTextDrawLetterSize(playerid, Textdraw3[playerid], 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, Textdraw3[playerid], 254.000000, 296.177764);
PlayerTextDrawAlignment(playerid, Textdraw3[playerid], 1);
PlayerTextDrawColor(playerid, Textdraw3[playerid], -1);
PlayerTextDrawSetShadow(playerid, Textdraw3[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw3[playerid], 0);
PlayerTextDrawFont(playerid, Textdraw3[playerid], 4);
if(clickedid == Textdraw6) // Team 1
{
PlayerTextDrawSetPreviewModel(playerid, Textdraw3[playerid], 287);
ClearChat(playerid);
SendClientMessage(playerid, 0xFF0000FF,"[INFO] {FFFFFF}Sie haben {FF0000}Team 1{FFFFFF}als Team ausgewählt!");
}
//...
Yap in meinem Stock:
PlayerTextDrawShow(playerid, Textdraw3[playerid]);
PlayerTextDrawFont(playerid, Textdraw3[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);
TEXT_DRAW_FONT_MODEL_PREVIEW ist 5, du hast 4 angegeben, das ist für Sprites.
Hö? Und was muss man da jetzt ändern?
also dies?
Textdraw3[playerid] = CreatePlayerTextDraw(playerid, 194.000000, 124.444442, "_");//LD_SPAC:white
PlayerTextDrawFont(playerid, Textdraw3[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);
PlayerTextDrawLetterSize(playerid, Textdraw3[playerid], 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, Textdraw3[playerid], 254.000000, 296.177764);
PlayerTextDrawAlignment(playerid, Textdraw3[playerid], 1);
PlayerTextDrawColor(playerid, Textdraw3[playerid], -1);
PlayerTextDrawSetShadow(playerid, Textdraw3[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw3[playerid], 0);
EDIT:
Habe es jetzt geändert jedoch wird jetzt nur der CJ Skin angezeigt?
Also bei mir hat es den richtigen Skin angezeigt. Wie siehst denn dein kompletter dazugehöriger Code jetzt aus?
ok das mit den Textdraw3[playerid]........
ist bei mir ganz unten in einem Stock drinne wo alle Textdraws aufgerufen werden unter: stock TextDrawLoad(playerid), der wird aufgerufen unter: OnPlayerConnect...
Und hier sollte der Skin dann aufgerufen werden:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(_:clickedid != INVALID_TEXT_DRAW) //Sagt das wenn der Player ein falsches TD anklickt nichts passieren soll.
{
LoadPlayer(playerid);
//Team-Ausawhl
if(clickedid == Textdraw6) // United States
{
PlayerTextDrawSetPreviewModel(playerid, Textdraw3[playerid], 287);
ClearChat(playerid);
SendClientMessage(playerid, 0xFF0000FF,"[INFO] {FFFFFF}Sie haben {FF0000}United States {FFFFFF}als Team ausgewählt!");
gTeam[playerid] = TEAM_UNITEDSTATES;
if(mysql_CheckAccount(playerid) == 1)
{
SpielerInfo[playerid][pTeamAuswahl] = 1;
}
else if(mysql_CheckNoAccount(playerid) == 1)
{
NoSpielerInfo[playerid][pNoTeamAuswahl] = 1;
}
}
else if(clickedid == Textdraw7)//Russland
{
ClearChat(playerid);
SendClientMessage(playerid, 0xFF0000FF,"[INFO] {FFFFFF}Sie haben {FF0000}Russland {FFFFFF}als Team ausgewählt!");
gTeam[playerid] = TEAM_RUSSLAND;
if(mysql_CheckAccount(playerid) == 1)
{
SpielerInfo[playerid][pTeamAuswahl] = 1;
}
else if(mysql_CheckNoAccount(playerid) == 1)
{
NoSpielerInfo[playerid][pNoTeamAuswahl] = 1;
}
}
else if(clickedid == Textdraw13)//Afghanistan
{
ClearChat(playerid);
SendClientMessage(playerid, 0xFF0000FF,"[INFO] {FFFFFF}Sie haben {FF0000}Afghanistan {FFFFFF}als Team ausgewählt!");
gTeam[playerid] = TEAM_AFGHANISTAN;
if(mysql_CheckAccount(playerid) == 1)
{
SpielerInfo[playerid][pTeamAuswahl] = 1;
}
else if(mysql_CheckNoAccount(playerid) == 1)
{
NoSpielerInfo[playerid][pNoTeamAuswahl] = 1;
}
}
//....
ocmd:ban(playerid, params[])
{
new query[128], string[128], pID, grund;
if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,-1,"Du brauchst Adminlevel 2");
if(sscanf(params,"ui",pID,grund))return SendClientMessage(playerid,-1,"Tippe: /ban [spieler] [grund]");
format(string, sizeof(string),"Du wurdest von %s gebannt. Grund: %s",NamePlayer(playerid),grund);
SendClientMessage(pID,ROT,string);
format(query, sizeof(query), "UPDATE accounts SET Banned ='1'");
format(query, sizeof(query), "UPDATE accounts SET Bangrund ='%s'",grund);
mysql_tquery(mysqlHandle, query, "", "");
Kick(pID);
return 1;
}
Ingame kommt immer "Tippe /ban [spieler] [grund]".
Keine Errors/Fehler.
if(sscanf(params,"ui",pID,grund))return SendClientMessage(playerid,-1,"Tippe: /ban [spieler] [grund]");
Der Grund ist bestimmt kein Integer
new query[128], string[128], pID, grund;
Hier muss der "grund" auch zu ein String.
Füge doch noch die MySQL-Syntax "WHERE" hinzu.
EDIT:
ocmd:ban(playerid, params[])
{
new query[128], string[128], pID, grund[64];
if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,-1,"Du brauchst Adminlevel 2");
if(sscanf(params,"us[64]",pID,grund))return SendClientMessage(playerid,-1,"Tippe: /ban [spieler] [grund]");
format(string, sizeof(string),"Du wurdest von %s gebannt. Grund: %s",NamePlayer(playerid),grund);
SendClientMessage(pID,ROT,string);
format(query, sizeof(query), "UPDATE accounts SET Banned=1 WHERE Name='%s'",NamePlayer(pID));
mysql_tquery(mysqlHandle, query, "", "");
format(query, sizeof(query), "UPDATE accounts SET Bangrund ='%s' WHERE Name='%s'",grund,NamePlayer(pID));
mysql_tquery(mysqlHandle, query, "", "");
Kick(pID);
return 1;
}
In der Query musst du wahrscheinlich noch "Name" ändern. Ich weiß gerade nicht, wie das in deiner Datenbankstruktur aussieht.
@FerienFreak:
Außerdem fehlt nach dem ersten Query das Absenden des Queries.
Schreibe es so:
ocmd:ban(playerid, params[])
{
new query[128], string[128], pID, grund[64];
if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,-1,"Du brauchst Adminlevel 2");
if(sscanf(params,"us[64]",pID,grund))return SendClientMessage(playerid,-1,"Tippe: /ban [spieler] [grund]");
format(string, sizeof(string),"Du wurdest von %s gebannt. Grund: %s",NamePlayer(playerid),grund);
SendClientMessage(pID,ROT,string);
format(query, sizeof(query), "UPDATE accounts SET Banned ='1' WHERE name = '%s'", NamePlayer(pID));
mysql_tquery(mysqlHandle, query, "", "");
format(query, sizeof(query), "UPDATE accounts SET Bangrund ='%s' WHERE name = '%s'",grund, NamePlayer(pID));
mysql_tquery(mysqlHandle, query, "", "");
Kick(pID);
return 1;
}
@[GeD]Max: Wenn du Skin 287 angibst, dann sollte der auch angezeigt werden. Außer du zeigst woanders noch was anderes an. Bei mir hat es wie gesagt funktioniert. Wenn du den Skin siehst, und dann das PreviewModel zu 287 setzt, siehst du dann den richtigen Skin? Wenn ja, dann überschreibst du die 287 vor dem ersten Mal anzeigen.
Wie heißt die Funktion etwas aus der MySQL Tabelle auszulesen und daraus eine Abfrage zu machen ob er schon gebannt ist.
Das kannst du mit der Syntax SELECT machen.
also z.B. so?
format(query, sizeof(query), "SELECT * FORM accounts Banned WHERE Name='%s'", NamePlayer(playerid));
mysql_query(mysqlHandle, query, "", "");?
Nein. eher so.
format(query, sizeof(query), "SELECT Banned FORM accounts WHERE Name='%s'", NamePlayer(playerid));
Nicht ganz.
Schau mal hier, das hast du ein gutes Beispiel:
http://wiki.sa-mp.com/wiki/MySQL/R33#mysql_tquery
Du musst nach dem tquery nämlich ein callback aufrufen, um das Ergebnis aus dem Cache auslesen zu können.
EDIT:
Beispiel für dich:
format(query, sizeof(query), "SELECT Banned FORM accounts WHERE Name='%s'", NamePlayer(pID));
mysql_tquery(mysqlHandle, query, "CheckBanned", "d", pID);
//Callback: Ganz unten im Code.
forward CheckBanned(playerid);
public CheckBanned(playerid)
{
new NumRows = cache_num_rows();
if(NumRows)
{
Kick(playerid);
}
return 1;
}
Damit kann ich es auslesen aber wie mache ich es wenn es 1 ist das er gekickt wird?