Verändere mal dein Code zu:
ocmd:givewarn(playerid,params[]){
new pID,string[128],reason[64];
if(SpielerInfo[playerid][pAdminlevel] < 4) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 4");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Keiner ist Verbunden mit dieser ID!");
if(sscanf(params,"us", pID, reason)) return SendClientMessage(playerid, Rot,""COLO"Verwendung :"COLR" /givewarn [ID] [Grund]");
SpielerInfo[pID][pWarns] ++;
SavePlayer(pID);
format(string,sizeof(string),""COLO"[%s] %s"COLR" hat dir einen Warn gegeben! "COLO"Grund: "COLR "%s ",adminrang(playerid),GetName(playerid),reason);
SendClientMessage(pID,Rot,string);
format(string,sizeof(string),"Du hast "COLO" %s "COLR" einen Warn gegeben! "COLO"Grund: "COLR" %s",GetName(pID),reason);
SendClientMessage(playerid,Rot,string);
if(SpielerInfo[playerid][pWarns] >= 3){
SendClientMessage(pID,Rot,"Du wurdest Gebannt! "COLO"Grund: "COLR"3Warns");
print("1");
format(string,sizeof(string),""COLO"[ServerNachricht] "COLR" %s wurde vom Server gebannt! "COLO"Grund: "COLR"3Warns",GetName(pID));
print("2");
SendClientMessageToAll(Rot,string);
print("3");
SpielerInfo[pID][pBan] = 1;
print("4");
SavePlayer(pID);
print("5");
printf("TestB: %d", SpielerInfo[pID][pBan]);
return SetTimerEx("BanTimer",500,false,"i",pID);
}
return 1;
}
Beiträge von xDesertx
-
-
Zitat
Hallo ,
ah ok habs verstanden xD war glaub ein denk fehler von mir xD
Du sag mal vl könntest du mir doch bei einer Sache helfen und zwar hab ich es grad getestet funktioniert auch alles derzeitig Prima!
Außer ich hab z.B.: 10.000Euro und gebe per Adminbefehl 4Euro dazu dann bekomm ich eine Anzeige mit der Zahl nur 4 und die 10.000Euro sind weg...Könntest du mir eventuell dabei helfen?
Lg
J0a9Deswegen^^
Verändere deinen UpdatePlayerMoneyTextdraw zu:
stock UpdatePlayerMoneyTextdraw(playerid)
{
new m = GetPlayerMoney(playerid), str[50];
if(m == 0) format(str, sizeof str, "~r~00000000");
else if(m < 10 && m > 0) format(str, sizeof str, "~g~Geld ~w~0000000%d", m);
else if(m < 100 && m >= 10) format(str, sizeof str, "~g~Geld ~w~000000%d", m);
else if(m < 1000 && m >= 100) format(str, sizeof str, "~g~Geld ~w~00000%d", m);
else if(m < 10000 && m >= 1000) format(str, sizeof str, "~g~Geld ~w~0000%d", m);
else if(m < 100000 && m >= 10000) format(str, sizeof str, "~g~Geld ~w~000%d", m);
else if(m < 1000000 && m >= 10000) format(str, sizeof str, "~g~Geld ~w~00%d", m);
else if(m < 10000000 && m >= 1000000) format(str, sizeof str, "~g~Geld ~w~0%d", m);
else if(m < 100000000 && m >= 10000000) format(str, sizeof str, "~g~Geld ~w~%d", m);
else format(str, sizeof(str), "~g~Euro~w~%d", m);
printf("%s", str);
TextDrawSetString(MoneyDraw[playerid], str);
return 1;
}
Und schick dann was im Log steht. -
mach das mal vor dem BanTimer:
printf("TestP: %d", SpielerInfo[pID][pBan]);
Und schick mal was dann im Log steht. -
Naja, es gibt ja nicht umsonst Suchen & Ersetzen Methode^^
b2t:
Dann hau mal bidde deinen Adminbefehl zum Geldgeben raus. -
ICy.,
Das würde funktonieren, aber deine Methode ist besser, er erstellt nähmlich einen Indirekten PlayerTextDraw durch "MoneyDraw[playerid]",
Aber mein Tipp, wie Icy. bereits gesagt hat, verwende Payertextdraws.//Edit: 2 Frage:
HAst du mit SetPlayerMoney gearbeitet oder GIvePlayerMoney ? -
Ich habe mal eine Frage,
Kann mir einer erklären wie ich über c++ an den SAMP Server informationen schicken kann also z.b Spieler Soundso verbindet mit dem Clienten -
Vielen dank für eure Unterstützung!
-
Ja, aber dann tretet ein neues Problem auf: Wie?
-
Schöne Diskussion
b2t:
Naja, das ein Anti-Cheat-Tool so schwer ist, hätte ich nicht gedacht. Könnte man nicht einfach den GTA Ordner nach S0beit sachen durchsuchen? -
Die INSERT funktion ist zum eintragen von Spalten, schick mal bitte dein mysql_SetInt stock, und am besten einen Screenshot von deiner Datenbankstruktur in phpmyadmin, oder Navi Cat oder so:O
-
Lese dir mal Bitte das hier durch:
http://wiki.sa-mp.com/wiki/GetPVarInt
Und am besten das auch:
http://wiki.sa-mp.com/wiki/Format -
Okay, danke für diese Information, kennt einer ein Gutes Buch/Online Tutorial für C++?
-
Falsche mysql version, vermutte ich mal, probiere mal diese:
http://dl-it.tk/ul-8b5k -
Wurde Account mit INSERT INTO erstellt?
Zeig trotzdem mal den log. -
Erstmal vielen dank für eure Antworten,
Wie Helpher bereits geschrieben hat möchte ich mein Wissen erweitern, und probieren einen Anti-Cheat Programm/Tool zuentwickeln
Dieser soll nicht für Server oder so verwendet werden lediglich für Testzwecke. -
Naja, Eigentlich benötige ich auch nur Stichpunkte, wie du zum beispiel geschrieben hast "Disassemblies".
-
Hey Breadfish!
Ich habe mal eine Frage, kann mir einer sagen wie man ein Anti Cheat Client erstellt,
Tutorial oder Code(Bitte mit Programmiersprache würde mir dann mal Tutorials durchlesen/Ansehen) würde mir reichen. -
ocmd:setversion(playerid,params[])
{
if(!isAdmin(playerid,8))return 0;
new query[128], Version[128];
if(sscanf(params,"s[128]",Version))return SendClientMessage(playerid,CL_GREEEN,"** Benutze: /setversion [VersionsText]");
TextDrawSetString(VersionsDraw,Version);
mysql_format(dbhandle, query, 200, "UPDATE `version` SET `versionstext`='%s'",Version);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}Teste mal :O
-
Ähm,
Entweder bin ich Blind, oder du hast vergessen den Speicherstock beizulegen^^MfG,
xDesertx -
mach es einfach so:
new pDropGun[MAX_PLAYERS];
ocmd:disweapon(playerid,params[])
{
if(IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,GRAU,"Du darfst nicht in einem Fahrzeug sitzen!");
if(gettime() < pDropGun[playerid])return SendClientMessage(playerid,GRAU,"Du kannst deine Waffen nur jede Minute fallen lassen!");
new f = MAX_WAFFENDROP+1,GunID = GetPlayerWeapon(playerid),GunAmmo = GetPlayerAmmo(playerid), string[128];
new Float:X, Float:Y, Float:Z;
if(GunID > 0 && GunAmmo != 0)
{
for(new a = 0; a < MAX_WAFFENDROP; a++)
{
if(dGunData[a][ObjPos][0] == 0.0)
{
f = a;
break;
}
}
if(GunID == 27)
{
RemovePlayerWeapon(playerid,GunID);
SendClientMessage(playerid, -1, "{FE2E2E}Diese Waffe kann nicht fallen gelassen werden. Sie wurde aus deinem Inventar gelöscht!");
return 1;
}
RemovePlayerWeapon(playerid,GunID);
dGunData[f][ObjData][0] = GunID;
dGunData[f][ObjData][1] = GunAmmo;
GetPlayerPos(playerid,dGunData[f][ObjPos][0],dGunData[f][ObjPos][1],dGunData[f][ObjPos][2]);
dGunData[f][ObjID] = CreateDynamicObject(GunObjects[GunID],dGunData[f][ObjPos][0],dGunData[f][ObjPos][1],dGunData[f][ObjPos][2]-1,93.7,120.0,120.0);
format(string,sizeof(string),"** %s lässt etwas fallen! **",SpielerName(playerid));
WaffenPickup = CreatePickup(1274, 2, Float:X, Float:Y, Float:Z, -1);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
pDropGun[playerid] = gettime() + (1*60);
return 1;
}
return SendClientMessage(playerid,GRAU,"Du hast keine Waffe in der Hand!");
}