Skip to content
Bekijk in de app

Een betere weg om onze GTA community te volgen. Leer meer.

GTAGames.nl - De Nederlandse Grand Theft Auto Community!

Een volledig scherm app op het beginscherm inclusief notificaties, badges en meer.

Om deze app op je iPhone en iPad te installeren
  1. Druk op het icoon in Safari
  2. Scroll in het menu en druk op Zet op beginscherm.
  3. Druk op Voeg toe rechts bovenaan.
Om deze app op je Android toe te voegen
  1. Druk op het 3-punten menu (⋮) rechts bovenaan in de browser.
  2. Druk op Toevoegen aan beginscherm of Installeer app.
  3. Druk op Toevoegen om te bevestigen.

Report command

Geplaatst:

Ik heb een reportcommand.

Ik zou graag willen dat de report in een file wordt opgeslaan.

Ik denk dat dat met hulp van dini is, maar ik zou niet weten hoe eraan te beginnen.

Het command ziet er zo uit:

/report [reportname] [reason]

De naam een de reden moeten worden opgeslaan.

Bewerkt: door Freaksken

Featured Replies

Geplaatst:

Omdat je met Naam en Reden werkt is het niet zo handig om met Dini te werken omdat het dan ook word overscheven als diegene weer word gereport

En de tijd+datum is ook wel handig zodat je precies weet waneer het gebeurt is.

Alles klopt niet helemaal,

Je moet otherplayer en Reason vervangen door jouwn manier om die te vinden in jouwn command

Code:

GetPlayerName(playerid,name,sizeof(name));
new File:SaveFile, ip[50], year,month,day, hour,minute,second;
GetPlayerIp(playerid,ip,sizeof(ip) );	
getdate(year,month,day); gettime(hour,minute,second);
GetPlayerName(otherplayer, otherplayer, sizeof(otherplayer));

SaveFile = fopen("Report.txt",io_append);
format(string,sizeof(string),"[Report:] [%d.%d.%d %d:%d] By:%s,%s For:%s Reason: %s\r\n",day,month,year,hour,minute, name,ip,otherplayer,reason);
fwrite(SaveFile,string);
fclose(SaveFile);

Als het niet lukt post je eigen command dan even dan kan ik zorgen dat alles klopt.

Bewerkt: door mosweg

Geplaatst:
  • Auteur
//Report
	if(strcmp(cmd, "/report", true)==0)
   {
 		new sendername[MAX_PLAYER_NAME];
 		new reportname[MAX_PLAYER_NAME];
 		new reportid;
 		new reason[256];
	new string[256];
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
       {
           SendClientMessage(playerid, COLOR_BLUE, "Use: /report [reportname] [reason]");
           return 1;  //Stopt het commando
       }
       playerid = strval(tmp);

	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
       {
           SendClientMessage(playerid, COLOR_BLUE, "Use: /report [reportname] [reason]");
           return 1;  //Stopt het commando
       }
       reason = tmp;
	GetPlayerName(playerid, sendername, sizeof(sendername));
	format(string, sizeof(string), "Reportmessage from %s(%d): %s: %s!", sendername, playerid, reportname, cmdtext[8]);
	SendClientMessageToAdmins(COLOR_RED, string);
	format(string, sizeof(string), "Message send to currently online admins!");
	SendClientMessage(playerid, COLOR_WHITE, string);

	new File:SaveFile, ip[50], year,month,day, hour,minute,second;
	GetPlayerIp(playerid,ip,sizeof(ip) );
	getdate(year,month,day);
	gettime(hour,minute,second);
	GetPlayerName(reportid, reportname, sizeof(reportname));
	SaveFile = fopen("Report.txt",io_append);
	format(string,sizeof(string),"[Report:] [%d/%d/%d, %d:%d] By:%s,%s For:%s Reason: %s\r\n",day,month,year,hour,minute, sendername,ip,reportname,reason);
	fwrite(SaveFile,string);
	fclose(SaveFile);
       return 1;
   }

Ik typ: /report N00b daarom

Nu krijg ik in de chat:

Reportmessage from TrainDriverLS(0): : N00b daarom!

Dit moet zijn:

Reportmessage from Freaksken(7): N00b: daarom!

Dit in Report.txt:

[Report:] [4/1/2010, 18:12] By:TrainDriverLS,127.0.0.1 For:TrainDriverLS Reason: daarom

Dit moet zijn:

[Report:] [4/1/2010, 18:12] By:Freaksken,127.0.0.1 For:N00b Reason: daarom

Het ligt denkik hieraan:

	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
       {
           SendClientMessage(playerid, COLOR_BLUE, "Use: /report [reportname] [reason]");
           return 1;  //Stopt het commando
       }
       playerid = strval(tmp);

PS: TrainDriverLS is een bot met ID 0

PS2: Kijk ook naar de dubbele punten die verkeerd staan in de chat

Bewerkt: door Freaksken

Geplaatst:

Ik krijg het niet eens aan het werk in mijn server.

Het lijkt me ook lastig om 2 dingen achter het command te zetten (playerid, reason)

Meestal word dat gedaan met dcmd.

Tutorial> Tutorial

Het command word dan:

dcmd_report(playerid, params[])
{
GetPlayerName(playerid, playername, sizeof(playername));
format(userfile, sizeof(userfile), "/Account/%s.txt", playername);
admin = dini_Int(userfile, "adminlevel");
new string[256];

       new otherplayer; // Hierin gaan we het id van de speler opslaan
       new reason[64]; // Hierin gaan we de reden opslaan

       if(sscanf(params, "uz", otherplayer, reason)) // Haal de gegevens uit params. u = playerid, z = Reden (optioneel)
       {
       	// Als er iets ontbreekt ...
        	SendClientMessage(playerid, 0xFF0000FF, "USE: /report <Playerid/PartOfName> <Reason>");
         	return 1;
       }

       if(!IsPlayerConnected(otherplayer)) // Als de ingevoerde speler niet online is ...
       {
       	SendClientMessage(playerid, 0xFF0000FF, "Player is not online");
        	return 1;
       }

       // Op dit punt is het id van de speler opgeslagen in 'otherplayer' en de reden in 'reason'

       new PlayerName[MAX_PLAYER_NAME], OtherName[MAX_PLAYER_NAME]; // Variabelen voor de namen
       GetPlayerName(playerid, PlayerName, sizeof(PlayerName)); // Verkrijg de naam van de admin
       GetPlayerName(otherplayer, OtherName, sizeof(OtherName)); // Verkrijg de naam van de speler die gekicked wordt);
       format(string, sizeof(string), "[REPORT:] by: %s(%d) for: %s(%d) Reason: %s.", PlayerName, playerid, OtherName, otherplayer, reason);
       SendAdminMessage(COLOR_RED, string);
       print(string);

       new File:SaveFile, ip[50], year,month,day, hour,minute,second;
GetPlayerIp(playerid,ip,sizeof(ip) );
getdate(year,month,day);
gettime(hour,minute,second);
SaveFile = fopen("Report.txt",io_append);
format(string,sizeof(string),"[Report:] [%d/%d/%d, %d:%d] By: %s,%s For: %s Reason: %s\r\n",day,month,year,hour,minute,      PlayerName,ip,otherplayer,reason);
fwrite(SaveFile,string);
fclose(SaveFile);
   return 1;
}

Bewerkt: door mosweg

Geplaatst:
  • Auteur

Neenee, geen dcmd, kben strtok nu gewoon.

Ik zal nog eens proberen dan gebaseerd op het jouwe.

Geplaatst:

Je bent vergeten te checken of de playerid wel online is en strtok slaat maar 1 woord op.

EDIT: en waarom probeer je een naam in te vullen als je "playerid = strval(tmp);" gebruikt?

Bewerkt: door GTAguillaume

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.

Account

Navigatie

Zoeken

Zoeken

Configureer push berichten

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.