und statt MAX_PLAYER_NAME
MAX_PLAYERS
Ouh hast recht, habs übersehen
und statt MAX_PLAYER_NAME
MAX_PLAYERS
Ouh hast recht, habs übersehen
Nur wegen sscanf wird text nicht automatisch definiert..
Man muss schon ein "new text[64]" haben
ocmd:answer(playerid,params[])
{
new pID, str[128], text[128];
if(!IstSpielerAdmin(playerid)) return SCM(playerid,Rot,"[Info]: Du bist nicht befugt!");
if(sscanf(params,"us",pID,text)) return SCM(playerid,Rot,"Usage: /answer [Name/ID] [Text]");
format(str,sizeof(str),"Answer: %s",text);
SCM(pID,Blau,str);
return 1;
}
Ja das weiß ich schon,
aber ich möchte, dass man den Befehl auch in der Console benutzen kann.
Wenn man eingibt: "cnnn lol" soll es InGame als "/cnnn lol" ausgegeben werden.
if(sscanf(params,"us[128]",player,text))return SendClientMessage(playerid,Rot,"Usage: /answer [pID] [answer]");
format(string,sizeof(string),"Answer: %s",text);
Wie kommst du jetzt auf text, obwohl du kein text definierst?
Verstehe ich nicht so ganz..
Du benutzt /answer 0 Hallo
Dann steht da ganz oft
ZitatAnswer:
Answer:
Answer:
Answer:
Answer:
?
Weil ein Problem am Command sehe ich auf dem ersten Blick nicht
Kaliber ist ein echt guter Scripter und bietet Scripting Unterricht an.
Das kostet dich dann zwar 10€ PSC, aber dafür bringt er dir bei, was
du willst. Ohne monatl. Kosten oder Sonstiges
Alles anzeigenocmd:ask(playerid,params[])
{string[128],name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,sizeof(name));if(sscanf(params, "s[128]", Text)) return SendClientMessage(playerid, 0xFFFFFFFF, "Usage:/ask [question]");
format(string,sizeof(string),"User %s asked: %s",name,Text);
SendAdminMessage(0xFFFFFFFF,string,1);
return 1;
}
stock SendAdminMessage(color, text[], adminlevel)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IstSpielerAdmin(i, adminlevel))
{
SendClientMessage(i, color, text); }
} }
}
Das Problem ist doch schon gelöst
ZitatDer Beitrag von »Travelga« (Heute, 15:04) wurde aus folgendem Grund vom Autor selbst gelöscht: Ja geht danke dir (Heute, 15:05).
Hey Brotfische,
Ich habe mich gefragt, ob es möglich ist Rcon- bzw. Consolebefehle zu erstellen.
zB: Man erstellt den Befehl /cnnn (Gametext) und macht den zu einem Rcon-/Consolecommand.
Wenn man dann in der Console "/cnnn 3 Das ist ein text" eingibt, soll der Gametext erscheinen.
Also ist so etwas möglich? Einen Befehl zu erstellen, denn man per Console benutzen kann?
SetTimer("TimeTimer",1000,true);
Fail gemacht.. Sind ja Minuten und keine Sekunden xD
Der Timer gehört so:
SetTimer("TimeTimer",60000,true);
Hier mal ganz grob ein Beispiel..
new pMinuten[MAX_PLAYER_NAME], pStunden[MAX_PLAYER_NAME];
forward TimeTimer(playerid);
SetTimer("TimeTimer",1000,true);
public TimeTimer(playerid)
{
pMinuten[playerid]++;
if(pMinuten[playerid] >= 60)
{
pStunden[playerid]++;
pMinuten[playerid] = 0;
}
return 1;
}
Und das dann abspeichern..
Kannst es auch mit Enum oder sonstwas abspeichern
Der Fehler lag am Stock.. habs gefixxt und getestet.
So gehts
ocmd:ask(playerid,params[])
{
new input[128],string[128], pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
if(sscanf(params,"s",input))return SCM(playerid,-2,"Usage:/ask [question]");
format(string,sizeof(string),"User %s asked: %s",pname,input);
SendAdminMessage(Orange,string,1);
return 1;
}
stock SendAdminMessage(color, const message[], adminlevel)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IstSpielerAdmin(i, adminlevel))
{
SendClientMessage(i, color, message);
}
}
return 1;
}
new input[128],string[128], pname[MAX_PLAYER_NAME];
Hab das ; vergessen sry
Welche ist Zeile 616?
Alles anzeigenProbier es mal so:
if(response==1)
{
if(strlen(inputtext) > 0)
{
new string[64];
format(string,sizeof(string),"~r~%s",inputtext);
GameTextForAll(string,5000,3);
return 1;
}
}
fc?
Hier versuch es mal so
ocmd:ask(playerid,params[])
{
new input[128],string[128], pname[MAX_PLAYER_NAME]
GetPlayerName(playerid,pname,sizeof(pname));
if(sscanf(params,"s",input))return SCM(playerid,-2,"Usage:/ask [question]");
format(string,sizeof(string),"User %s asked: %s",pname,input);
SendAdminMessage(Orange,string);
return 1;
}
stock SendAdminMessage(color, const message[], adminlevel)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IstSpielerAdmin(i, adminlevel))
{
SendClientMessage(i, color, const message[]);
}
}
return 1;
}
PWN-Taste nicht gefunden?
Ich verstehe nicht, wie du hier versuchst die Zeit abzuspeichern
stock SpielerSpeichern(playerid)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
new tag,monat,jahr;
new string[20];
getdate(jahr,monat,tag);
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"%02d/%02d/%d",tag,monat,jahr);
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"Premiumlevel",GetPVarInt(playerid,"Premiumlevel"));
dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
dini_IntSet(Spielerdatei,"timeban",GetPVarInt(playerid,"timeban"));
dini_Set(Spielerdatei,"lastlogin",string);
}
return 1;
}
Laden Stock
stock LoadAccount(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Premiumlevel",dini_Int(Spielerdatei,"Premiumlevel"));
SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
if(GetPVarInt(playerid,"Baned")==1)
{
SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
Kick(playerid);
}
SetPVarInt(playerid,"loggedin",1);
return 1;
}
Poste vllt mal die Errors?
new pID
Wieso benutzt du pID..
In dem Fall musst du normal "playerid" benutzen
Name: Caligulas Casino
Interior: 1
Koordinaten: 2233.8032, 1712.2303, 1011.7632
Ich glaube das ist er ;D
DAnn sollte es gehen..
Oder mach es so mit dem CreateAccount
stock CreateAccount(playerid, pass[])
{
new query[256],pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
mysql_real_escape_string(pname,pname);
mysql_real_escape_string(pass,pass);
format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pname);
mysql_query(query);
return true;
}
Und diese Anderen Sachen in einem anderen stock.. zB so:
stock ResetPlayer(playerid)
{
SpielerInfo[playerid][pLevel]=NoobLevel;
SpielerInfo[playerid][hID]=-1;
SpielerInfo[playerid][pSkin]=78;
strins(SpielerInfo[playerid][pRankname],"Unknown",0);
SpielerInfo[playerid][ActivateSoundeffects]=1;
GivePlayerMoney(playerid,NoobMoney);
SetPlayerScore(playerid,NoobLevel);
return 1;
}
Und dass ResetPlayer machst du dann da rein, wo du dein CreateAccounts drinnen hast. (Also im RegisterDialog)
Welche version benutzt du denn von MySQL.
Hast du vllt nicht die R6 ?