Suche eine Glas und die Stein Texture darunter ( Wand ) die in etwar so ist wie unten auf dem Bild:
Na dann, auf gehts: https://textures.xyin.ws/?page=textures
Als Keyword, für Glas: glas und für die Wand: brick
Suche eine Glas und die Stein Texture darunter ( Wand ) die in etwar so ist wie unten auf dem Bild:
Na dann, auf gehts: https://textures.xyin.ws/?page=textures
Als Keyword, für Glas: glas und für die Wand: brick
Achtung, das System spinnt!!! ![]()
Versuchs mal damit: https://www.piriform.com/ccleaner
Wenns nicht geht, am besten einfach Chrome nutzen
Denn die V8 Engine von Chrome ist schneller, als TraceMonkey von Firefox ![]()
Aber ich würde die auch gerne nach ein serverrestart behalten
Tust du doch...das wird immer wieder neu geladen...solange du es in den files lässt ![]()
Aso..ja sry mein Fehler..hatte mich verlesen ![]()
Hier, probiers mal so:
new File:f = fopen("logs/Bugreports.txt",io_read);
if(!f) return 1; //Keine Berechtigung
const rows = 10; //Wie viele Namen du angezeigt bekommen möchtest
new buffer[256],tmp[128],stack[MAX_PLAYER_NAME*rows],x,y,counter,n[16];
while(fread(f, buffer))
{
x = strfind(buffer,"]"), y = strfind(buffer,":",false,x);
strmid(tmp,buffer,x+1,y,sizeof(tmp));
strcat(tmp,"\n"),strcat(stack, tmp);
strmid(tmp,buffer,y+2,strlen(buffer),sizeof(tmp));
format(n,sizeof(n),"bug_%d",counter++);
SetPVarString(playerid,n,tmp);
}
SetPVarInt(playerid,"bug_length",counter);
fclose(f);
ShowPlayerDialog(playerid,DIALOG_BUSREPORTS,DIALOG_STYLE_LIST,"Log",stack,"Bestätigen","");
//Und dann unter OnDialogResponse
if(dialogid == DIALOG_BUSREPORTS)
{
if(!response) return DeleteBugCache(playerid);
new string[128],n[16];
format(n,sizeof(n),"bug_%d",listitem);
GetPVarString(playerid,n,string,sizeof(string));
ShowPlayerDialog(playerid,999,DIALOG_STYLE_MSGBOX,"Log",string,"Bestätigen","");
DeleteBugCache(playerid);
return 1;
}
//Und unten ganz wichtig:
stock DeleteBugCache(playerid)
{
new max=GetPVarInt(playerid,"bug_length");
for(new i,n[16]; i<max; i++)
{
format(n,sizeof(n),"bug_%d",i);
DeletePVar(playerid, n);
}
DeletePVar(playerid,"bug_length");
return 1;
}
Alles anzeigen
Der Fehler ist wohl offensichtlich.
...da ist kein Fehler ![]()
Der Fehler liegt beim Timer...
Er übergibt keine Spielerid, also musst du loopen:
forward anticheat();
public anticheat()
{
for(new i=GetPlayerPoolSize(),w,a,str[128]; i!=-1; i--)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
/*---SCHLAGRINGE ABFRAGE FÜR AIMBOT---*/
GetPlayerWeaponData(i,0,w,a);
if(w==1 && a==1000)
{
format(str,sizeof(str),"* %s hat den Verdacht auf einen Aimbot (1000 Schlagringe).",PlayerName(i));
SendClientMessageToAdmins(str, GELB);
}
}
return 1;
}
Alles anzeigen
eiß aber nicht in welchem Sekundentakt ich diesen aktualisieren soll
...das kannste dir doch aussuchen xD
Musst du doch wissen...wie schnell du sowas wissen magst...ob 5..10..20 Sekunden..xD
einfach nur abfragen ob der Spieler 1000 besitzt, damit ich mit einer Schleife eine Message an die Administratoren schicken kann.
Ja..aber den Aimbot kann man ja nur nutzen..wenn man schießt xD
Aber..na gut, dein Ding...hast keine Spieler Schleife irgendwo?
Bestimmt unter nem timer oder so..da kannste das einfach mit reinpacken ![]()
Bei welchem Callback kann ich dies am besten abfragen?
Na, wenn du einen Aimbot busten willst, dann unter OnPlayerWeaponShot & dann nutze meine 2. Methode mit GetWeaponData ![]()
Ehh..nicht sicher ob das möglich ist..aber wenn, dann so:
kann man bei pawno nicht eine variable in eine andere packen ?
Wie hast denn hours deklariert? ![]()
PS: Die Sprache heißt nur Pawn ![]()
Test und test2 sind die Nachrichten die Gespeichert werden.
Nein ich meine..wenn du darauf klickst...was soll den passieren..welche Nachricht willst du denn sehen..wo ist diese gespeichert ![]()
Wie hast n die Dialogid definiert..und wie sieht n der Code vor OnDialogResponse aus...
und wird der Callback eventuell gar nicht aufgerufen?
Setz mal n print nach ganz oben..wenn er nicht aufgerufen wird...dann check deine Includes & Filterscripts..ob da jemand den Callback dir weghookt ![]()
So is besser:
Setz das mal unter OnPlayerConnect ![]()
Wie sieht denn dein Code unter OnPlayerRequestClass & OnPlayerRequestSpawn aus? ![]()
wenn man draufklickt die Nachricht kommt die er gesendet hat
Ehh...wo hast n die Nachricht gespeichert..das wäre irgendwie relevant xD
Also..Variable..oder Datei..oder wo xD
Oder gibt es tatsächlich irgendwo ein unterschied wo man das obere benutzen könnte, es ist ja langsamer?
Das könntest du ![]()
Theoretisch wäre foreach noch besser ![]()
wie frage ich diese 2 cops ab?
Naja..
stock GetOnlineFrakPlayer(frakid)
{
new counter;
for(new i=GetPlayerPoolSize(); i!=-1; i--) //Ist wie deine Schleife..nur schneller :D Da sie nicht 500 spieler durchloopt sondern nur bis zur höchsten spielerid
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
if(SpielerInfo[i][pFrak] == frakid) counter++; //Dieses SpielerInfo zeug halt auf deine Datenstruktur anpassen...
}
return counter;
}
//Nutzung:
new onlineCops = GetOnlineFrakPlayer(1); //1 = frakid
if(onlineCops < 2) return SendClientMessage(playerid,-1,"* Es sind keine 2 Cops online!");
SendClientMessage(playerid,-1,"* Es sind mehr als 2 Cops online :)");
Alles anzeigen