Indem du das Tor nicht in deinen GM Scriptest sondern in gadmin^^
Wie du checkst, ob sie das nötige adm Level haben, musst du in den anderen cmds ma gucken, wie es dort ist
Beiträge von KeksOfDeath
-
-
Nimm mal das "return 1;" über der Zeile "if(classid==0)" weg
-
Nein, das Script übernimmt die alten Variablen nicht! (Außer beim Register, wie es hier der Fall war)
Und selbst wenn ein Spieler genau in der Nanosekunde disconnected, wo der andere conencted, ist der OnPlayerDisconnect public ausgeführt, bevor sich der andere eingeloggt hat, auch mit keybinder und beim Login werden die Variablen eh überschrieben -
if(PlayerData[playerid][Level] >= 1)
Dies reicht, es checkt, ob das adm Level höher gleich 1 ist
Goldkiller: Es ist bei mir nur ne Angewohnheit mit dem [0] dahinter -
-
Beim Register würde ich statt "PlayerInfo[playerid][pAdmin]" lieber eine "0" eintragen, genau wie Wanted Level oder Geld oder so, da man es sonst vom letzten übernimmt, da dieser nur ausgeloggt ist, aber die sachen auf die Zahl immernoch existieren (ich wette, dass du bei OnPlayerDisconnect den Player nur ausloggst und nicht alle variablen leerst (was ich jetzt auch nicht verlange, es ist sogar eigentlich egal, esseidern du rufst sie beim register wieder auf))
-
Du erstellst nen Timer, der meinetwegen alle 5 Sekunden checkt, ob noch alle ihr passendes Level haben
SetPlayerScore(playerid,gla);
gla musst du durch das ersetzen, wie bei GF die Level deklariert sind... bin kein gf user -
Man könnte sich dann entweder ein "samp-server-allround-pw" machen, wobei dem, der das PW speichert dann möglich wäre sich auf jedem Server mit dem Namen des Opfers einzuloggen, oder man macht sich für jeden Server nen eigenes PW... Für 1 Server ist das ja noch in Ordnung... aber wenn man nachher auf 20 Servern nen Acc hat...^^
Müsste man es sich aufschreiben oder so... all die Bemühung um die Passwörter dann nur, weil eine Person es speichert? -
Ops, hab gepennt...
GetPlayerName(playerid,pname,sizeof(pname));
Muss noch unter diese Zeile:
new pname[MAX_PLAYER_NAME], ss[128];
Und kannst du mal sagen, was die Zeile 3327 ist? -
Dann soll er nen neuen Acc machen oder was auch immer, Passwörter von anderen Usern ohne ihre Kenntnis abzuspeichern ist echt schon eine Frechheit, jeder Mensch hat doch wohl ein Recht darauf, dass er sein Passwort für sich behält, da er dieses Passwort meist als "allround-passwort" verwendet.
Beispiel: Ich registriere mich bei dir und du hättest sogar Zugang zu meinem Account in diesem Forum. Dieses Risiko wäre mir persönlich zu hoch
Ich würde sagen:
Doofe Idee die Passwörter abspeichern zu wollen -
Ich denke mal, dass dieses Forum am 27, Juli 2007 um 9:29 Uhr entstanden ist, zumindest steht es so in der Statistik^^
Beim Gründer schätz ich mal, dass es breadfish war, sonst würd das Forum nicht so heißen^^
Ich habe keine Ahnung, ob diese Angaben richtig sind, es sind nur logische Vermutungen -
Was auch noch ne Möglichkeit ist:
Ganz nach oben:
#define classx x//x float eintragen
#define classy y//y float eintragen
#define classz z//z float eintragen
#define classza za//z angle eintragen
Und bei den den PlayerClass:
AddPlayerClass(0,classx,classy,classz,classza,0,0,0,0,0,0);
Dann musst du nur die #defines ändern
Es ist nur eine andere Möglichkeit! -
Und was ist, wenn du Zufallsid nicht vergeben ist?
public AuftragsKiller(playerid)
{
new typ=random(sizeof(spieler));
new typ2=spieler[typ][0];
if(IsPlayerConnected(typ2))
{
new str[126];
new name[MAX_PLAYER_NAME];
GetPlayerName(typ2, name, sizeof(name));
format(str, sizeof(str), " Du musst %s killen!", name);
SendClientMessage(playerid, COLOR_YELLOW, str);
killer[playerid] = 1;
zielperson[playerid] = typ2;
}
else { AuftragsKiller(playerid); }
} -
Wenn dein Adminscript in einem extra FS ist, dannin OnPlayerCommandText (NICHTin einen cmd) :
new name[MAX_PLAYER_NAME], s[100];
GetPlayerName(playerid,name,sizeof(name));
format(s,sizeof(s),"%s nutzte %s\r\n",name,cmdtext[0]);
new File:gla=fopen("admcmds.txt",io_append); fwrite(gla,s); fclose(gla);
Sollten es nur einzelne cmds sein, dann fügst du dies in die cmds ein -
Wo ist das eine Erleichterung?
Sowas wie dcmd oder strget oder sscanf ist eine Erleichterung, aber ob man nun "sizeof(name));" oder "sizeof name);" macht, das ist beides gleich schwer -
if(strcmp(cmdtext,"/flip",true)==0) {
if(IsPlayerInAnyVehicle(playerid)) {
new Float:x, Float:y, Float:z, Float:za, aid=GetPlayerVehicleID(playerid);
GetVehiclePos(aid,x,y,z); GetVehicleZAngle(aid,za);
SetVehiclePos(aid,x,y,z); SetVehicleZAngle(aid,za); }
return 1;
} -
@ Monti:
Aber ob man die Klammern nun weglässt oder ein Sack Reis umfällt... -
if(strcmp(cmdtext,"/b",true,2)==0) {
if(!strlen(cmdtext[3])) return SendClientMessage(playerid,FARBE,"/b Text");
new name[MAX_PLAYER_NAME], s[128];
format(s,sizeof(s),"%s: %s",name,cmdtext[3]);
GlobalChat(playerid,FARBE,s);
return 1;
} -
-
AARRGGHHHH hab ne Zeile vergessen^^ sry
if(strcmp(cmdtext,"/announce",true,9)==0) {
if(!strlen(cmdtext[10])) return SendClientMessage(playerid,FARBE,"/announce Text");
new s[60];
format(s,sizeof(s),"%s",cmdtext[10]);
GameTextForAll(s,5000,6);
return 1;
}