GTA-Expert Forum: [HELP] RCON Pannel - GTA-Expert Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[HELP] RCON Pannel /kick e /ban

#1 L'utente č offline   Galletziz 

  • Cittadino Onesto
  • Gruppo: Utenti
  • Messaggi: 12
  • Iscritto il: 19/03/13
  • GTA Preferito:GTA: San Andreas

Inviato il 20 marzo 2013 - 19:15

Salve a tutti ragazzi, colgo, l'occasione per presentarmi: mi chiamo Amedeo, sono Messinese e mi sono da poco addentrato nel mondo di pawno, ho 19 anni e sono diplomato, oltre ad avere un attestato che certifica la mia frequentazione ad un corso per "web designers" xd.

Avendo incominciato da poco a scriptare con pawno, ho una marea di dubbi e domande, vuoti che piano piano.. ma molto piano, sto cercando di colmare.
Quindi andando al succo del discorso, sicuramente, avrete visto tante di quelle discussioni uguali a questa che aprire e leggere anche la mia vi farà venire la nausea, ahah.. o almeno un mal di testa.. Premetto che nonostante abbia trovato discussioni che parlavano a riguardo del problema che vi farò presente, non sono riuscito a capire i concetti che si volevano far capire.. 'somma, nce capisco na mazza.. xd

Quindi, andando veramente al succo del discorso.. xD, vorrei che una volta loggatomi come admin, potessi scrivere /kick e avviare un dialog che mi chiede l'ID del player che deve essere kickato, salvandolo cosi in una variabile, successivamente avviare un'altro dialog che mi chiede la ragione per la quale il player deve essere kickato salvare anche questo in una variabile ed in fine utilizzare il SendRconCommand();
Quindi se il player è stato kickato compare una SendClientMessage che ovviamente sarà visibile solo all'admin a finchè si utilizza un istruzione "if(!IsAdminPlayer" per esempio..

Io ho fatto una cosa del genere:

CMD:kick(playerid,params[]) {
	new messaggio[29];
	if (!IsPlayerAdmin(playerid)) {
		format(messaggio, sizeof(messaggio),"not autorized");
		SendClientMessage(playerid, 0xFF000000, messaggio);
	}else{
		ShowPlayerDialog(playerid, 4, DIALOG_STYLE_INPUT,"Player Kick ID","Scrivi l'ID del player","Kick!","Annulla");
	}
}


[size=2]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])[/size]
{
			new id [255];
// Switcho tra i dialog creati
[size=2]			[/size][size=2]switch(dialogid) {[/size]

						case 1 : {
								}
						case 2: {
								}
						.....
						.....
						
						case 4: {
					           if(dialogid == 4 && response == 1){
									format(id,sizeof(id),"kick %d", inputtext[playerid]);
									SendRconCommand(id);
									ShowPlayerDialog(playerid, 5, DIALOG_STYLE_INPUT,"Reason Player Kick","Immetti la ragione per cui vuoi kickare il player","Kick","Annulla");
								}
								else if (dialogid == 4 && response == 0){
									SendClientMessage(playerid,0xFFF00000,"Hai annullato la tua azione");
						    		}
								}
						case 5: {
								if(dialogid == 5 && response ==1){
									new ragione [128];
									new avviso  [128];
									new name [MAX_PLAYER_NAME];
   									GetPlayerName(playerid,name,sizeof(name));
									format(ragione, sizeof(ragione),inputtext);
									format(avviso, sizeof(avviso),"The player %s, has been kicked by admin for: %s",name,ragione);
									SendClientMessageToAll(0x00FF0000, avviso);
   								}
								else if (dialogid == 5 && response == 0){
									new avviso [128];
									new name [MAX_PLAYER_NAME];
									GetPlayerName(playerid,name,sizeof(name));
									format(avviso, sizeof(avviso),"The player player %s, has been kicked by admin");
									SendClientMessageToAll(0x00FF0000, avviso);
								}

						}
			}



Il compiler non mi da alcun tipo di errore, ma la mia teoria sul kick a dialoghi fa acqua da tutte le parti, è evidente che ci saranno errori di espressione che però non vengono rilevati.. o meglio, vengono rilevati ma il loro valore e nullo.

Grazie in anticipo a chinque risponda.
Spero di trovarmi bene in questa community.

P.S: è molto probabile che molti di voi mi consiglieranno di usare piu include, ma se non volessi usarle, si potrebbe fare lo stesso adottando questo medoto..?!

EDIT:

Ciao, ancora a tutti ragazzi, girovagando per il web sono riuscito a trovare questo altro metodo che include l'include sscanf, l'ho utilizzato, mancavano le dichiarazioni di alcune variabili e lo aggiunte io, ed il compiler non mi ha dato problemi, ma vedendo quegli if seguiti da quei return.. non so, secondo voi è un buon metodo !?

EDIT:

E ciao un altra volta ragazzi, vi scrivo per informarvi che ho risolto, a quanto pare quel metodo pare essere funzionale, in effetti è semplice perché interrompe l'esecuzione ad ogni istruzione con il return, non conoscendo il linguaggio ovviamente mi è subito saltata all'occhio questa cosa.

Il problema che mi sono posto, sono riuscito a risolverlo con l'include sscanf, della quale non sapevo a cosa principalmente servisse, ebbene dopo che ho capito che sscanf da la possibilità di accaparrarsi di piu parametri dandogli quello che scrive l'utente come valore, tutto mi è sembrato un po piu chiaro.. ma ancora so che la strada è lunga, molto lunga.

Vi chiedo di non chiudere il post, cosi magari vi posto il mio RCON Pannel, e se è buono potete anche spostarlo in tutorial. :]

Messaggio modificato da Galletziz il 21 marzo 2013 - 01:24

0

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi