Schreibe es so:
format(PlayerInfo[playerid][pBannedGrund],64,dini_Get(SpielerD,"Banngrund"));
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
format(PlayerInfo[playerid][pBannedGrund],64,dini_Get(SpielerD,"Banngrund"));
Ja danke.
Noch ein kleiner fehler ich versuche nun den Adminnamen nun auch zu speichern.
So siehts bisher aus, bekomme aber leider Fehler:new namegeber[MAX_PLAYER_NAME];
GetPlayerName(GeberName[playerid],namegeber,sizeof(namegeber));
new adminname[15];
adminname = namegeber; //Fehlerzeile
PlayerInfo[SelectedOne[playerid]][pBannedAdmin] = adminname;error 047: array sizes do not match, or destination array is too small
-
Nach dem gleichen Prinzip:
format(PlayerInfo[SelectedOne[playerid]][pBannedAdmin], MAX_PLAYER_NAME, adminname); -
Was ist hier falsch?
ocmd:oban(playerid,params[])
{
new string[124],Spielerdatei[64];
new name[MAX_PLAYER_NAME];
if(sscanf(params,"s",name))return SendClientMessage(playerid,Rot,"/oban [Spielername]");
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(fexist(name))
{
new INI:file = INI_Open(Spielerdatei);
INI_WriteInt(File,"Banned",1);
INI_Close(File);
format(string,sizeof(string),"You have banned %s.",name);
SendClientMessage(playerid,-1,string);
return 1;
}
else SendClientMessage(playerid,-1,"Der Account wurde nicht gefunden!");
return 1;
}warning 213: tag mismatch
error 017: undefined symbol "File"
error 017: undefined symbol "File"
warning 204: symbol is assigned a value that is never used: "file" -
Du hast "File" geschrieben, aber "file" deklariert.
ocmd:oban(playerid,params[])
{
new string[124],Spielerdatei[64];
new name[MAX_PLAYER_NAME];
if(sscanf(params,"s",name))return SendClientMessage(playerid,Rot,"/oban [Spielername]");
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(fexist(Spielerdatei))
{
new INI:file = INI_Open(Spielerdatei);
INI_WriteInt(file,"Banned",1);
INI_Close(file);
format(string,sizeof(string),"You have banned %s.",name);
SendClientMessage(playerid,-1,string);
return 1;
}
else SendClientMessage(playerid,-1,"Der Account wurde nicht gefunden!");
return 1;
} -
Danke schon mal dafür:
warning 213: tag mismatch
error 035: argument type mismatch (argument 1)
number of arguments does not match definition
warning 204: symbol is assigned a value that is never used: "file"Muss da file rein oder muss da nicht Spielerdatei rein?
-
-
Beitrag von PStar ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Bei meinem Befehl kommen zwar keine Errors, aber der Spieler wird nicht offline gebannt, bitte um Hilfe
ocmd:oban(playerid,params[])
{
new Spieler[128],grund[128];
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",params);
if(!isPlayerRang(playerid,4)) return SendClientMessage(playerid,Dunkelrot,"Du besitzt nicht die benötigten Rechte!");
if(!strlen(params)) return SendClientMessage(playerid,Grau,"Verwendung: /Oban [Spielername] [Grund]");
//if(sscanf(params,"ss",params,grund)) return SendClientMessage(playerid,Grau,"Verwendung: /Oban [Spielername] [Grund]");
if(!dini_Exists(Spieler)) return SendClientMessage(playerid, Dunkelrot, "Es existiert kein Spieler mit diesem Namen in der Datenbank.");
dini_IntSet(Spieler,"Banned",1);
new string2[128];
format(string2,sizeof(string2),"[OFFLINEBANNED] %s wurde von %s offline gebannt. Grund: %s",Spieler,getPlayerName(playerid),grund);
SendClientMessageToAll(Rot,string2);
return 1;
}mfg
/e
und ich möchte das mit sscanf und nicht mit strok bzw. strlen, weiß jemand wie es geht? -
ocmd:oban(playerid,params[])
{
new Spieler[128],grund[128];
if(!isPlayerRang(playerid,4)) return SendClientMessage(playerid,Dunkelrot,"Du besitzt nicht die benötigten Rechte!");
if(sscanf(params,"ss",Spieler,grund)) return SendClientMessage(playerid,Grau,"Verwendung: /Oban [Spielername] [Grund]");
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Spieler);
if(!dini_Exists(Spieler)) return SendClientMessage(playerid, Dunkelrot, "Es existiert kein Spieler mit diesem Namen in der Datenbank.");
dini_IntSet(Spieler,"Banned",1);
new string2[128];
format(string2,sizeof(string2),"[OFFLINEBANNED] %s wurde von %s offline gebannt. Grund: %s",Spieler,getPlayerName(playerid),grund);
SendClientMessageToAll(Rot,string2);
return 1;
}
Falls du das sscanf Plugin verwendest, musst du "ss" zu "s[128]s[128]" machen. -
ocmd:oban(playerid,params[])
{
new Spieler[128],grund[128];
if(!isPlayerRang(playerid,4)) return SendClientMessage(playerid,Dunkelrot,"Du besitzt nicht die benötigten Rechte!");
if(sscanf(params,"ss",Spieler,grund)) return SendClientMessage(playerid,Grau,"Verwendung: /Oban [Spielername] [Grund]");
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Spieler);
if(!dini_Exists(Spieler)) return SendClientMessage(playerid, Dunkelrot, "Es existiert kein Spieler mit diesem Namen in der Datenbank.");
dini_IntSet(Spieler,"Banned",1);
new string2[128];
format(string2,sizeof(string2),"[OFFLINEBANNED] %s wurde von %s offline gebannt. Grund: %s",Spieler,getPlayerName(playerid),grund);
SendClientMessageToAll(Rot,string2);
return 1;
}
Falls du das sscanf Plugin verwendest, musst du "ss" zu "s[128]s[128]" machen.
Danke schonmal, hat gefunzt.Jetzt möchte ich aber, dass da nich steht:
[OFFLINEBANNED] Spieler/Tester.txt wurde von xy offline gabannt.........
sondern,
dass da nur der Name steht ohne das Verzeichnis, wie mache ich das?Screen:
-
Ach ja, da habe ich nicht drauf geachtet.
ocmd:oban(playerid,params[])
{
new Spieler[128],grund[128],name[MAX_PLAYER_NAME];
if(!isPlayerRang(playerid,4)) return SendClientMessage(playerid,Dunkelrot,"Du besitzt nicht die benötigten Rechte!");
if(sscanf(params,"ss",name,grund)) return SendClientMessage(playerid,Grau,"Verwendung: /Oban [Spielername] [Grund]");
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",name);
if(!dini_Exists(Spieler)) return SendClientMessage(playerid, Dunkelrot, "Es existiert kein Spieler mit diesem Namen in der Datenbank.");
dini_IntSet(Spieler,"Banned",1);
new string2[128];
format(string2,sizeof(string2),"[OFFLINEBANNED] %s wurde von %s offline gebannt. Grund: %s",name,getPlayerName(playerid),grund);
SendClientMessageToAll(Rot,string2);
return 1;
}Dann passt es.
-
Code
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Reallife-Skript.pwn(327) : warning 215: expression has no effect Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 1 Warning.
SpielerInfo[playerid][pAdminlevel] = cache_get_field_content_int(0, "Adminlevel", mysqlHandle), SpielerInfo[playerid][pAdminlevel];
-
SpielerInfo[playerid][pAdminlevel] = cache_get_field_content_int(0, "Adminlevel", mysqlHandle), SpielerInfo[playerid][pAdminlevel];
zu:
SpielerInfo[playerid][pAdminlevel] = cache_get_field_content_int(0, "Adminlevel", mysqlHandle); -
Wie kann ich was in MYSQL in die Datenbank setzen?
-
Mit der Funktion mysql_query().
Kommt zwar auf das Plugin an, das Du verwendest, dürfte aber in jedem existieren. -
Wie kann ich was in MYSQL in die Datenbank setzen?
Dem obigen Post nach nutzt du eins der neueren Plugins, nutze deshalb:
http://wiki.sa-mp.com/wiki/MySQL/R33#mysql_tqueryBeispiel:
new query[128];
format(query, sizeof(query), "UPDATE tabelle SET spalte = 'wert' WHERE spalte = 'suchwert'");
mysql_tquery(Handle, query, "", ""); -
ocmd:makeadmin(playerid)
{
new query[128], string[128], rank, pID;
if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,ROT,"Du brauchst das Rcon Passwort.");
if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,-1,"Tippe: /makeadmin [spieler] [level]");
if(rank<0||rank>7)return SendClientMessage(playerid,ROT,"Ungültig.");
format(string, sizeof(string),"Du hast Adminlevel erhalten. Checke /stats");
SendClientMessage(pID,ROT,string);
format(query, sizeof(query), "UPDATE accounts SET adminlevel = '%d' WHERE adminlevel = '%s'",rank);
mysql_tquery(mysqlHandle, query, "", "");
return 1;
} -
-
Danke
Aber es funktioniert tzd.
nicht.
ocmd:makeadmin(playerid, params[])
{
new query[128], string[128], rank, pID;
if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,ROT,"Du brauchst das Rcon Passwort.");
//if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,-1,"Tippe: /makeadmin [spieler] [level]");
if(rank<0||rank>7)return SendClientMessage(playerid,ROT,"Ungültig.");
format(string, sizeof(string),"Du hast Adminlevel erhalten. Checke /stats");
SendClientMessage(pID,ROT,string);
format(query, sizeof(query), "UPDATE accounts SET adminlevel = '%d' WHERE adminlevel = '%s'",rank);
mysql_tquery(mysqlHandle, query, "", "");
return 1;
}Code[16:58:18] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE accounts SET adminlevel = '0' WHERE adminlevel = ''", callback: "(null)", format: "(null)" [16:58:18] [DEBUG] CMySQLQuery::Execute[] - starting query execution [16:58:18] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 0.396 milliseconds [16:58:18] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving
Code[16:58:29] [ERROR] CMySQLQuery::Execute[] - (error #1146) Table 'reallife server.arank1' doesn't exist
und das hier auch nicht:
ocmd:arank(playerid)
{
new string[128], query[128];
format(query, sizeof(query), "SELECT * FROM admins, aRank1");
mysql_tquery(mysqlHandle,query);
format(string, sizeof(string),"Rank 1: %i",Adminrank[playerid][pRank1]);
SendClientMessage(playerid, -1, string);
return 1;
}