Pille ich hab aber alles, was fehlt denn?
/unban
- SenTiZz
- Geschlossen
- Erledigt
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
-
-
Beispiel:
Der Spieler, den du entbannen möchtest, heißt "PeterLustig".
Der Befehl heißt: "/unban [spielername]".
Also gibst du in den Chat ein: "/unban PeterLustig".Jetzt musst du das "PeterLustig" in einen string speichern, ihn formatieren,
sodass der string den richtigen Pfad angibt, diese Datei öffnen und sie bearbeiten.//edit: xXxCrashxXx, das ist falsch.
Es wird nur "Banned 0" in die Datei geschrieben!Kann nicht falsch sein da es sonst bei mir nicht funktionieren würde.
Das ist ein Nameban den ich mir so umgebaut habe, da beim PPC Script mit Bantime gearbeitet wird und das sehr nervig ist.
Habe es zudem mit einigen getestet und es funktioniert zu 100%.
Zudem werde ich doch nicht ihm ein command schreiben damit er copy/paste machen kann, er soll ja nun auch was dabei lernen.
-
dcmd_tunban(playerid,params[])
{
new pName[MAX_PLAYER_NAME],pIdName[MAX_PLAYER_NAME];
if(PlayerInfo[playerid][pAdmin] <= 2) { return 1; }
if(sscanf(params,"s",pIdName)) { return SendClientMessage(playerid,COLOR_GRAD1,"Benutzung: /tunban [Voller Spielername]"); }
GetPlayerName(playerid,pName,sizeof(pName));
if(Playerinfo[pIdName][pBan == 1)
{
UnBan(pIdName);
format(string2,sizeof(string2,"Spieler %s wurde entbannt!", name);
ABroadCast(COLOR_RED,string2,1);
return 1;
} else { return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler finden wir nicht im Ordner!"); }
}
stock TUnban(playername[])
{
format(FB_tbDir,sizeof(FB_tbDir),FB_foxBanFile,playername);
if(FB_dini_Exists(FB_tbDir)) {
FB_dini_Remove(FB_tbDir); return true; }
return false;
}wie mache ich bei dem stock das die playerinfo pban auf 0 ist?
-
ocmd:unban(playerid,params[])
{
if(!IsPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,COLOR_GREY,"Du bist kein Admin Rang 4!");
new name[MAX_PLAYER_NAME];
new grund[64];
new SpielerDatei[128];
if(sscanf(params,"ss",name,grund)) return SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /unban [Name][Grund]");
new string[128];
format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",name);
(!dini_Exists(SpielerDatei))return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler existiert nicht!");
format(string,sizeof(string),"[Unban]: %s hat den Spieler %s entsperrt. Grund: %s",PlayerName(playerid),name,grund);
dini_IntSet(SpielerDatei,"Baned",0);
SendAdminMessage(string);
return 1;
}Ich weiß nicht warum man eine Servervariable auf 0 setzt, wenn der Spieler höchstwarscheinlich nichtmal Online ist..
-
Habs so aber wie setze ich dem den ban auf 0?
dcmd_unban(playerid,params[])
{
if(!IsPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,COLOR_GREY,"Du bist kein Admin Rang 4!");
new name[MAX_PLAYER_NAME];
new grund[64];
new string15[128];
if(sscanf(params,"ss",name,grund)) return SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /unban [Name][Grund]");
new string[128];
format(string15,sizeof(string15),"/Accounts/%s.ini",name);
(!dini_Exists(SpielerDatei))return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler existiert nicht!");
format(string,sizeof(string),"[Unban]: %s hat den Spieler %s entsperrt. Grund: %s",PlayerName(playerid),name,grund);
//PlayerInfo[playerid][pBan] = 0;
SendAdminMessage(string);
return 1;
} -
Ich würde auchnoch überprüfen, ob der Spieler gebannt ist
Kannst du uns mal deine enums oben schicken? -
enum pInfo
{
pPunkte,
pRest,
pKey[128],
pLevel,
pAdmin,
pSupporter,
pDonateRank,
gPupgrade,
pConnectTime,
pReg,
pSex,
pLand,
pAge,
pOrigin,
pCK,
pMuted,
pExp,
pCash,
pAccount,
pPlayerKreditDauer,
pPlayerKredit,
pCrimes,
pKills,
pDeaths,
pArrested,
pWantedDeaths,
pPhoneBook,
pLottoNr,
pFishes,
pBiggestFish,
pJob,
pHarz,
pPayCheck,
pHeadValue,
pJailed,
pRobTime,
pJailTime,
pDuty,
pGangJailed,
pwJailed,
pMauled,
pMats,
pDrugs,
pLeader,
pMember,
pFMember,
pRank,
pChar,
pContractTime,
pDetSkill,
pSexSkill,
pBoxSkill,
pLawSkill,
pMechSkill,
pJackSkill,
pCarSkill,
pNewsSkill,
pDrugsSkill,
pCookSkill,
pFishSkill,
Float:pHealth,
Float:pSHealth,
pInt,
pLocal,
pTeam,
pModel,
pPnumber,
pPhousekey,
pPbiskey,
Float:pPos_x,
Float:pPos_y,
Float:pPos_z,
pCarLic,
pNewLic,
pFlyLic,
pBoatLic,
pFishLic,
pGunLic, //Definition des Scheines zb die Aufgabe später
pLKWLic,
pRollerLic,
pMotoLic,
pZig,
pSchaufel,
pKekse,
pZigSucht,
pGun1,
pGun2,
pGun3,
pGun4,
pAmmo1,
pAmmo2,
pAmmo3,
pAmmo4,
pCarTime,
pMulltime,
pArbeittime,
pJobstart,
pBusTime,
pPayDay,
pPayDayHad,
pCDPlayer,
pWins,
pLoses,
pAlcoholPerk,
pDrugPerk,
pMiserPerk,
pPainPerk,
pTraderPerk,
pTut,
pWarns,
pAdjustable,
pFuel,
pMarried,
pMarriedTo[128],
pInvWeapon,
pInvAmmo,
pInvWeapon2,
pInvAmmo2,
pInvDrugs,
pInvMats,
pFlugTime,
pRoadblock,
pPlayMinutes,
pGesamtMinutes,
pMinutesSinceLogin,
pMinutesSinceAn,
pSFPASS,
pLVPASS,
pSPECIAL,
pLUFTWAFFE,
pHandyGeld,
pHandyVer,
pUhrID,
pHandyID,
pOwnPerso,
pOwnAntrag,
pPersoStop,
pGehalt,
pFrakSperre,
pBoxMats,
pBankPin,
pBan,
pBankPinCode,
pJobgeld,
pHatJob,
pBoxDrugs,
pSASpawn,
pOamtSpawn,
pMedicSpawn,
pFeuerSpawn,
pFBISpawn,
pFahrer,
pCNNSpawn,
Text:LetterboxTop,Text:LetterboxBottom2, Text:LetterboxBottom,
pTot,
pFarmTime,
pGDeaths,
pGKills,
pMeldung,
};dcmd_unban(playerid,params[])
{
if(PlayerInfo[playerid][pAdmin] >= 1)return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
new name[MAX_PLAYER_NAME];
new grund[64];
new string15[128];
if(sscanf(params,"ss",name,grund)) return SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /unban [Name][Grund]");
new string[128];
if(PlayerInfo[name][pBan] == 1)
{
format(string15,sizeof(string15),"/Accounts/%s.ini",name);
(!dini_Exists(string15))return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler existiert nicht!");
//format(string,sizeof(string),"[Unban]: %s hat den Spieler %s entsperrt. Grund: %s",PlayerName(playerid),name,grund);
//PlayerInfo[playerid][pBan] = 0;
//SendAdminMessage(string);
}
else
{
SendClientMessage(playerid,COLOR_RED,"Der Spieler ist nicht gebannt!");
}
return 1;
} -
Du musst den "BANN" in der Spielerdatei auf 0 setzen, wie oft noch -.-
dini_IntSet(Spielerdatei,"Baned",0);
-
Habs nun so:
stock Unban(playerid)
{
format(string15,sizeof(string15),"/Accounts/%s.ini",playerid);
(!dini_Exists(string15))return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler existiert nicht!");
PlayerInfo[playerid][pBan] = 0;
}dcmd_unban(playerid,params[])
{
if(PlayerInfo[playerid][pAdmin] >= 1)return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
new pIdName[MAX_PLAYER_NAME];
new grund[64];
if(sscanf(params,"ss",pIdName,grund)) return SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /unban [Name][Grund]");
if(PlayerInfo[pIdName][pBan] == 1)
{
/*format(string15,sizeof(string15),"/Accounts/%s.ini",pIdName);
(!dini_Exists(string15))return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler existiert nicht!");
PlayerInfo[pIdName][pBan] = 0;*/
SendClientMessage(playerid, COLOR_GREEN, "Spieler entbannt!");
UnBan(pIdName);
//format(string,sizeof(string),"[Unban]: %s hat den Spieler %s entsperrt. Grund: %s",PlayerName(playerid),name,grund);
}
else
{
SendClientMessage(playerid,COLOR_RED,"Der Spieler ist nicht gebannt!");
return 1;
}
}kriege errors:
C:\Users\Moritz\Desktop\Scripte\Era Script\gamemodes\Release.pwn(63531) : error 033: array must be indexed (variable "pIdName")
C:\Users\Moritz\Desktop\Scripte\Era Script\gamemodes\Release.pwn(63537) : error 017: undefined symbol "UnBan"
C:\Users\Moritz\Desktop\Scripte\Era Script\gamemodes\Release.pwn(63545) : warning 209: function "dcmd_unban" should return a value -
ocmd:unban(playerid,params[])
{
if(!IsPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,COLOR_GREY,"Du bist kein Admin Rang 4!");
new name[MAX_PLAYER_NAME];
new grund[64];
new SpielerDatei[128];
if(sscanf(params,"ss",name,grund)) return SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /unban [Name][Grund]");
new string[128];
format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",name);
(!dini_Exists(SpielerDatei))return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler existiert nicht!");
format(string,sizeof(string),"[Unban]: %s hat den Spieler %s entsperrt. Grund: %s",PlayerName(playerid),name,grund);
dini_IntSet(SpielerDatei,"Baned",0); // HIER WIRD DER VERDAMMTE BAN AUF 0 GESETZT
SendAdminMessage(string);
return 1;
} -
-
Ich hab aber kein Selfmade
-
Du siehst ja wie es aufgebaut ist, den Rest kannste selber, niemand wird dir hier irgendwelche Copy&Paste Dinge schreiben, die direkt zu deinem Script passen, das musst du selbst anpassen.
-
Du siehst ja wie es aufgebaut ist, den Rest kannste selber, niemand wird dir hier irgendwelche Copy&Paste Dinge schreiben, die direkt zu deinem Script passen, das musst du selbst anpassen.
Aber dann solltet ihr ihm auch vernünftige Sachen schreiben und nicht sowas:Zitat(!dini_Exists(SpielerDatei))return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler existiert nicht!");
Aber ansonsten sollte der Code von roOlling funktionieren, musst nur paar Sachen noch ausbessern und evtl anpassen...
mfg.
-
ocmd:unban(playerid,params[])
{
if(PlayerInfo[playerid][pAdmin] >= 1)return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
new name[MAX_PLAYER_NAME];
new grund[64];
new Spielerdatei[128];
if(sscanf(params,"ss",name,grund)) return SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /unban [Name][Grund]");
new string[128];
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
format(string,sizeof(string),"[Unban]: Man hat den Spieler %s entsperrt. Grund: %s",name,grund);
PlayerInfo[Spielerdatei][pBan] = 0;
SendClientMessageToAll(COLOR_RED,string);
return 1;
}Error:
C:\Users\Moritz\Desktop\Scripte\Era Script\gamemodes\Release.pwn(63528) : error 033: array must be indexed (variable "Spielerdatei")
PlayerInfo[Spielerdatei][pBan] = 0;
-
Du kannst nicht PlayerInfo[Spielerdatei][pBan] = 0; nutzen !
Du musst das nutzen:
dini_IntSet(SpielerDatei,"Baned",0);
mfg.
-
Aber wie bilde ich damit eine Abfrage und bei mir heißt das pban und Ban
-
Aber wie bilde ich damit eine Abfrage
Für was eine Abfrage -
ob der spieler gebannt ist
if(PlayerInfo[playerid][pBan] == 1) //autoban
{
format(string2,sizeof(string2)," %s wurde gekickt, sein Account ist gebannt...",playername2);
ABroadCast(COLOR_LIGHTRED,string2,1);
SendClientMessage(playerid,COLOR_RED," Dein Account ist gebannt! Mach dir mal Gedanken, warum...");
Kick(playerid);
return 1;
}ist beim login wenn ich mich einlogge werde ich nicht gekickt sondern bei em reloggt er sich oder ladet sich halt neu
-
ob der spieler gebannt ist
if(PlayerInfo[playerid][pBan] == 1) //autoban
{
format(string2,sizeof(string2)," %s wurde gekickt, sein Account ist gebannt...",playername2);
ABroadCast(COLOR_LIGHTRED,string2,1);
SendClientMessage(playerid,COLOR_RED," Dein Account ist gebannt! Mach dir mal Gedanken, warum...");
Kick(playerid);
return 1;
}ist beim login wenn ich mich einlogge werde ich nicht gekickt sondern bei em reloggt er sich oder ladet sich halt neu
Mein Freund, dat passiert, wenn man Kick(); unter OnPlayerConnect verwendet. Benutz es am Besten unter OnPlayerRequestClass / OnPlayerSpawn. :x -
? ist unter onplayerlogin also unter nem public