exe*:
Auch der beste Anti-Cheat Client wird nicht helfen, wie du siehst wurde der auch sehr leicht um gangen auf RGN.
Daher sehr nutzlos, naja aber wer möchte kann ja sowas Entwickeln
Beiträge von Pascal.
-
-
new query[128];
//EDIT: Jeffry war schneller.
-
Das Public OnPlayerKeyStateChange.
-
Kein Problem
-
Das bedeutet das du die Funktion SendAdminMessage nicht hast.
SendAdminMessage(color,const message[])
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && pInfo[i][pAdmin]>=1)
{
SendClientMessage(i,color,message);
}
}
return 1;
}Musst du zu deinen Funktionen machen.
-
Jo guck mein Edit
-
Cripain: Kannst es bitte die pwn codes so listen wie im ersten post?
//EDIT:
ocmd:dveh(playerid,params[])
{
if(pInfo[playerid][pAdmin] <1)return SendClientMessage(playerid,0xFF1400FF,"Du bist kein Supporter!");
new string[128];
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,0xB0AFB0FF,"Du bist in keinem Fahrzeug!");
DestroyVehicle(GetPlayerVehicleID(playerid));
format(string,128,"%s hat ein Fahrzeug gelöscht.",SpielerName(playerid));
SendAdminMessage(0xB0AFB0FF,string);
return 1;
} -
-
Mh da weiß ich nicht weiter.
Vielleicht kann dir ja Jeffry: helfen -
Include im /pawno/include ordner drinne?
Plugin im plugins ordner? -
Du fragst ab ob der Admin/Spieler in einem Fahrzeug sitzt, wenn er in einem Fahrzeug sitzt lässt du das Fahrzeug löschen.
Hier ein code aus meinem Script:
ocmd:dveh(playerid,params[])
{
if(pInfo[playerid][pEingeloggt] == 0)return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht Eingeloggt!");
if(pInfo[playerid][pAdmin] <2)return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht befugt diesen Befehl zu nutzen!");
new string[128];
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_GRAU,"Du bist in keinem Fahrzeug!");
DestroyVehicle(GetPlayerVehicleID(playerid));
format(string,128,"%s hat ein Fahrzeug gelöscht.",SpielerName(playerid));
SendAdminMessage(COLOR_BLAU,string);
return 1;
} -
ocmd:f(playerid,params[])
{
new string[128],rangn[128],SpielerName[MAX_PLAYER_NAME];
if(SpielerInFraktion(playerid,0))return SendClientMessage(playerid,COLOR_RED,"SERVER: {FFFFFF}Du darfst diesen Befehl nicht benutzen.");
if(sscanf(params,"s[128]",string)) return SendClientMessage(playerid,COLOR_RED,"FEHLER: {FFFFFF}/f [Text]");
new fID = sInfo[playerid][fraktion];
GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
if(sInfo[playerid][fraktion] == 9)
{
if(sInfo[playerid][rang] == 0) format(string,sizeof(rangn),"Praktikant");
else if(sInfo[playerid][rang] == 1) format(string,sizeof(rangn),"Azubi");
else if(sInfo[playerid][rang] == 2) format(string,sizeof(rangn),"Reporter");
else if(sInfo[playerid][rang] == 3) format(string,sizeof(rangn),"Redaktions Assisten");
else if(sInfo[playerid][rang] == 4) format(string,sizeof(rangn),"Redaktions Manager");
else if(sInfo[playerid][rang] == 5) format(string,sizeof(rangn),"Redakteur");
else if(sInfo[playerid][rang] == 6) format(string,sizeof(rangn),"Chefredakteur");
return rangn;
}
format(string,sizeof(string)," * %s %s: %s. *",rangn, SpielerName(playerid), string);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(!SpielerInFraktion(i,fID))continue;
SendClientMessage(i,COLOR_FRAKTIONCHAT,string);
}
return 1;
}SpielerName musst du auch ein Parameter angeben so wie du es deklariert hast. heißt SpielerName(von wem? playerid--> der den Befehl ausführt);.
An wem wollen wir es senden? an i--> alle die online & in der Fraktion sind.
Dann müssen wir den Rang name return, weil wir ja am ende den Rang namen wollen.
return rangn;
Probiere mal ob es so Funktioniert.//EDIT: Zu lange geschrieben & zu spät gemerkt
-
-
Hast du dieses main drinne?
Hast du in der ersten zeile das drinne?
#include <a_samp> -
Über OnGameModeInit sollte das hier sein:
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}Hast du das drinne oder auch raus genommen?
-
Naja daran liegt es denke nicht.
Eventuell mal Includes & Plugins updaten?
Ahja und die MySQL Verbindung gehört nach ganz oben -
Log dich mal über das Rcon ein und führe den Command "/rcon gmx" aus.
Wenn der Server erneut crashed, liegt dies am Server & nicht am Script.
Verstehe ich nicht das soll jetzt was bringen?
Ob er ein Befehl hat in dem er nur /gmx eingeben tut oder ob er es als rcon admin macht ist doch genau das gleiche.
Am Ende führt er genau das gleiche aus.Zeig uns mal dein OnGameModeInit und OnGameModeExit
-
ocmd:restart(playerid,params[])
{
if(isAdmin(playerid,9))
{
SendClientMessageToAll(COLOR_GREEN,"Server wird neugestartet!");
SendRconCommand("gmx");
return 1;
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du bist nicht befugt!");
return 1;
}}
Eventuell Server mal als Admin ausführen..
Das hat nix mit Admin sein zutun, hatte auch mal das gleiche Problem.
Jedoch fällt mir die Lösung nicht mehr.
Ich werde Trotzdem mal kurz schauhen was ich nochmal gemacht habe. -
Mal paar kleine Anhaltspunkte:
- Array erstellen mit allen benötigten Variablen
- Du benötigst eine Lade- und Speicherfunktion für deine Werte.
- Die benötigten Befehle schreiben
Am besten stellst du dir die Werte in einer Tabelle vor, wenn du eine Zeile füllen willst musst du immer erst ermitteln , welche Zeile frei ist das geht über eine Schleife,
dazu pickst du dir eine variable raus , welche du überprüfst ob diese leer ist wie zum beispiel einen String oder einen anderen wert der auf jeden Fall leer sein muss, wenn diese Zeile nicht belegt ist. Wenn du einen Wert abfragen möchtest musst du die Zeilen rasufiltern, du verwendest dazu auch wieder eine Schleife und ermittelst darüber den entsprechenden index.
[table=4]
[*]fID[*]fName[*]fRang1[*]weiteres
[*]1 [*]Ballas[*]Anwerber[*]...
[*]2 [*]Grove[*]Anwerber[*]...
[*]...[*]...[*]...[*]...
[/table]
Beispiel: du willst abfragen ob eine Fraktion existiert
stock fractionExist(fid){
for(new i; i != MAX_FRAKTIONEN;++i){
if(!FDaten[i][fName][0])continue;
if(FDaten[i][fID] == fid)return 1;
}
return 0;
}[/table]
Naja man muss nicht extra ein stock machen um abfragen zu können ob diese Fraktion existiert.
Er könnte das ja in sein Befehl einbauen
if(fID >= sizeof(fInfo))return SendClientMessage(playerid,COLOR_GRAU, " Info: Fraktion existiert nicht."); -
Wo liegt jetzt hier das Problem?