Stato
Discussione chiusa ad ulteriori risposte.

Giulix

Utente Strepitoso
Autore del topic
3 Ottobre 2008
4.111
0
Miglior risposta
0
Scrivo questa guida pensando al giorno in cui decisi di darmi alla programmazzione.

HO avuto delle difficoltà enormi specialmente perchè non ci sono guide su questo argomento o lo trattano molto rudemente e generalizzando.

Oggi noi andremo a vedere come approcciarci al C# e a modificare un po' il nostro server.

Per prima cosa stabiliamo l'occorrente.
-Source Holo (Imaginext) Reperibili Da Qui:
Perfavore, Entra oppure Registrati per vedere i Link!

-C# Expression Edition Reperibile Da Qui:
[GOOGLE]Download C# Express edition[/GOOGLE]
-Un Pò Di Pazienza! ^^

Siccome le source Che andiamo a "Codare" sono Molto buone e non hanno bisogno di particolari fix preferirei cominciare dalla personalizzazzione (nome, header ecc..).

Per prima cosa scompattiamo il contenuto dell'archivio (la cartella "2.5" [Senza Apici]) Sul Desktop.
Apriamola e noteremo subito un file nominato "ImagiNeXt Server.csproj" bene quello è il progetto che però non ci serve per ora.
Ora dirigiamoci in 2.5\Source e noteremo all'interno della cartella dei file con estensione ".cs" (senza apici).
nfhd10.png


Apriamo il file "config.cs" (senza Apici) e iniziamo a sbizzarrirci nel tradurre le frasi di colore rosso
RICORDATE DI NON MODIFICARE NULLA CHE NON SIANO LE SCRITTE ROSSE.
2vs55ia.jpg


ora sappiamo come "personalizzare" il nostro server e non dobbiamo fare altro che andare alla ricerca di altre stringhe rosse da personalizzare in tutti i file con estensione ".cs" (Senza Apici).

Infine quando il progetto sarà pronto e vorrete avviare il vostro server Dirigetevi in 2.5\bin\Debug\ImagiNext Server.exe (il secondo partendo dall'alto.)


FIX E MODIFICA INTERNA

MODIFICA E FIX DELLA CONSOLE
Ecco qui, iniziamo con delle modifiche e fix alla console.
Come ben sappiamo, non sempre funziona al meglio e noi cercheremo di aggiustarla.
Dirigiamoci nel file "Console.cs" (senza apici [lo trovate in 2.5/source])
SCREEN:
szbvdk.png

Per la modifica estetica della chatbox fare come indica l'immagine.
I codici sono perfettamente funzionanti.
N.B. ricordate di modificarli dappertutto nel file console.cs

INSERIRE COMANDI

Aprire il file virtualuser.cs ed inserisci alcuni dei seguenti codici

Per vedere le competizioni in corso :competizione


case "competizione": //
{
sendData("BK" + "La competizione in corso e' " + DB.runRead("SELECT competizione FROM compe ") + "scade il giorno " + DB.runRead("SELECT finisce FROM compe"));
}
break;/CENTER]

Aggiungere questo al database

/*
MySQL Data Transfer
Source Host: localhost
Source Database: server
Target Host: localhost
Target Database: server
Date: 05/03/2009 14.18.59
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for compe
-- ----------------------------
DROP TABLE IF EXISTS `compe`;
CREATE TABLE `compe` (
`competizione` varchar(100) NOT NULL,
`finisce` varchar(100) NOT NULL,
PRIMARY KEY (`competizione`,`finisce`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `compe` VALUES ('prova', '06/03/09');


About con furni totali in hotel,gruppi totali in hotel,stanze totali in hotel,utenti registrati :about

case "about": // Display information about the emulator
{
sendData("BK" + "Ciao " + _Username + ", Questo server è stato codato per voi da Hotelfico.\r\r" +
"L'ora del server è: " + DateTime.Now.ToString() + ". (GMT +1)\r" +
"The asynchronous socket server for game connections has accepted " + Socketservers.gameSocketServer.acceptedConnections + " connections since last boot.\r" +
"Ci sono " + userManager.userCount + " utenti connessi in questo momento, the peak since last boot is " + userManager.peakUserCount + ".\r" +
"Ci sono " + roomManager.roomCount + " Stanze in uso in questo momento, the peak since last boot is " + roomManager.roomCount + ".\r\r" +
"Ci sono " + DB.runRead("SELECT COUNT(*) FROM furniture ") + "furni in hotel" + ".\r" +
"Ci sono " + DB.runRead("SELECT COUNT(*) FROM groups_details ") + "gruppi" + ".\r" +
"Ci sono " + DB.runRead("SELECT COUNT(*) FROM rooms ") + "stanze" + ".\r" +
"Ci sono " + DB.runRead("SELECT COUNT(*) FROM users ") + "utenti registrati" + ".\r" +
"Ci vediamo presto by Hotelfico e HabboBoss Server!");

}
break;


x vedere lo staff dell'hotel :staff



case "staff": //
{
sendData("BK" + "Lo staff dell'hotel sono ' " + DB.runRead("SELECT name FROM users WHERE rank = 7 "));
}
break;

x vedere i chatlog dell'utente digitato non funge tanto :chatlog user


case "chatlog": // Chat log of users
{
if (rankManager.containsRight(_Rank, "fuse_room_alert") == false)
return false;
else
{
string userName = args[1]; // Get the username
virtualUser _User = userManager.getUser(userName); // Get the user


sendData("BK" + "Stai leggendo le chatlog di " +_Username + ".\r" +
DB.runRead("SELECT message FROM system_chatlog WHERE username = '" + _Username + "'"));
}
break;
}

Questo è il + forte puoi diventare hc in hotel o aumentare l'hc :club1 :club3 :club6


case "club3": // club
{
DB.runQuery("UPDATE users SET credits = credits - 50 WHERE id = '" + userID + "'");
DB.runQuery("UPDATE users_club SET months_left = months_left + 3 WHERE userid = '" + userID + "'");
sendData("BK" + "Ti sei iscritto a HabboClub per 3 mesi");
}
break;

case "club1": // club
{
DB.runQuery("UPDATE users SET credits = credits - 20 WHERE id = '" + userID + "'");
DB.runQuery("UPDATE users_club SET months_left = months_left + 1 WHERE userid = '" + userID + "'");
sendData("BK" + "Ti sei iscritto a HabboClub per 1 mesi");
}
break;

case "club6": // club
{
DB.runQuery("UPDATE users SET credits = credits - 80 WHERE id = '" + userID + "'");
DB.runQuery("UPDATE users_club SET months_left = months_left + 6 WHERE userid = '" + userID + "'");
sendData("BK" + "Ti sei iscritto a HabboClub per 6 mesi");
}
break;

Messaggio di chiusura hotel :chiudi

case "chiudi": // chiudi
{
if (rankManager.containsRight(_Rank, "fuse_moderator_access") == false)
return false;
else
sendData("Dc");

}

break;

mette il costume per tuffare senno crasha :costume1

case "costume1": // costume
{
DB.runQuery("UPDATE users SET figure_swim = 'ch=s02/53,51,44' WHERE id = '" + userID + "'");
refreshAppearance(false, false, true);
sendData("BK" + "Rientra in stanza e avrai il costume");
}
break;
Immagine

Spoiler


Tuffare :tuffo

case "tuffo":
{
sendData("A}");
DB.runQuery("UPDATE users SET tuffifatti = tuffifatti + 1 WHERE id = '" + userID + "'");
DB.runQuery("UPDATE users SET puntituffi = puntituffi + 10 WHERE id = '" + userID + "'");
break;
}

Inserire nel db per punteggi tuffi

/*
MySQL Data Transfer
Source Host: localhost
Source Database: server
Target Host: localhost
Target Database: server
Date: 06/03/2009 17.09.22
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int(15) NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE latin1_general_ci NOT NULL,
`password` varchar(100) COLLATE latin1_general_ci NOT NULL,
`rank` int(1) NOT NULL,
`email` varchar(100) COLLATE latin1_general_ci NOT NULL,
`birth` varchar(100) COLLATE latin1_general_ci NOT NULL,
`hbirth` varchar(100) COLLATE latin1_general_ci NOT NULL,
`figure` varchar(150) COLLATE latin1_general_ci NOT NULL,
`sex` varchar(5) COLLATE latin1_general_ci NOT NULL,
`mission` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
`consolemission` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
`credits` int(7) NOT NULL DEFAULT '0',
`tickets` int(5) NOT NULL DEFAULT '0',
`badge_status` enum('0','1') COLLATE latin1_general_ci NOT NULL DEFAULT '1',
`lastvisit` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
`figure_swim` varchar(100) COLLATE latin1_general_ci DEFAULT NULL,
`user` text COLLATE latin1_general_ci,
`postcount` bigint(20) NOT NULL DEFAULT '0',
`ticket_sso` varchar(39) COLLATE latin1_general_ci DEFAULT NULL,
`ipaddress_last` varchar(100) COLLATE latin1_general_ci DEFAULT NULL,
`noob` int(1) NOT NULL DEFAULT '0',
`online` mediumint(30) NOT NULL DEFAULT '1',
`bb_totalpoints` int(30) DEFAULT '0',
`bb_playedgames` int(30) DEFAULT '0',
`screen` varchar(100) COLLATE latin1_general_ci DEFAULT NULL,
`rea` varchar(100) COLLATE latin1_general_ci DEFAULT NULL,
`gift` smallint(2) DEFAULT NULL,
`sort` smallint(1) DEFAULT NULL,
`roomid` int(15) DEFAULT NULL,
`lastgift` smallint(2) DEFAULT NULL,
`visibility` int(1) DEFAULT '1',
`hc_before` int(1) DEFAULT NULL,
`newsletter` int(1) DEFAULT '1',
`email_verified` tinyint(1) DEFAULT '0',
`guideavailable` int(1) NOT NULL,
`shockwaveid` text COLLATE latin1_general_ci NOT NULL,
`guide` int(1) NOT NULL,
`guideallowed` int(1) NOT NULL,
`window` int(3) NOT NULL,
`lastlogin` bigint(20) NOT NULL DEFAULT '0',
`creditcheck` tinyint(2) NOT NULL DEFAULT '0',
`favourites` varchar(50) COLLATE latin1_general_ci NOT NULL,
`tuffifatti` varchar(50) COLLATE latin1_general_ci NOT NULL,
`puntituffi` int(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=22 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;




Cancella il pg di chi lo digita :cancellapg

case "cancellapg"://
{
sendData("BK" + "Hai cancellato il pg ora puoi uscire");
DB.runQuery("DELETE FROM messenger_friendships WHERE userid = '" + userID + "'");
DB.runQuery("DELETE FROM furniture WHERE ownerid = '" + userID + "'");
DB.runQuery("DELETE FROM rooms WHERE owner = '" + _Username + "'");
DB.runQuery("DELETE FROM soundmachine_songs WHERE userid = '" + userID + "'");
DB.runQuery("DELETE FROM system_chatlog WHERE username = '" + _Username + "'");
DB.runQuery("DELETE FROM users_badges WHERE userid = '" + userID + "'");
DB.runQuery("DELETE FROM users_club WHERE userid = '" + userID + "'");
DB.runQuery("DELETE FROM users WHERE id = '" + userID + "'");
}

break;

Cancella i Tuoi amici :cancellamici

case "cancellamici"://
{
sendData("BK" + "I tuoi amici sono stati cancellati");
DB.runQuery("DELETE FROM messenger_friendships WHERE userid = '" + userID + "'");
}
break;

Chiude il sito :chiudisito

case "chiudisito": // chiude il sito
{

sendData("BK" + "Il sito ora e' chiuso");
DB.runQuery("UPDATE cms_system SET site_closed = '1'");

}
break;

Apri sito :aprisito

case "aprisito": // apre il sito
{

sendData("BK" + "Il sito ora e' aperto");
DB.runQuery("UPDATE cms_system SET site_closed = '0'");

}
break;

:O fa partire il poll dell'infobus senza le domande e risposte :start

case "start":// start
{

sendData("AO");

}
break;


Le info sui tuffi :infotuffi

case "infotuffi"://
{
sendData("BK" + "Ciao " + _Username + " Hai effettuato " + DB.runRead("SELECT tuffifatti FROM users WHERE id = '" + userID + "'") + " Tuffi" + ".\r" +
"e hai " + DB.runRead("SELECT puntituffi FROM users WHERE id = '" + userID + "'") + " Punti");
}
break;




Ecco questa è un po' l'introduzione.
Spero che dopo aver letto questa guida tutto vi apparirà piu' semplice! ^^
Continuerò con altri fix man mano..
 
Ultima modifica:
  • Like
Reactions: 3 people
Ottima bravo, comunque dovresti aggiungere più informazioni tipo alcuni FIX e codici vari per l'utilizzo. ^^
 
Si, questa è un introduzione
Se tutti capiscono questa la amplio con maggiori fix..
 
Mi serviva proprio grz...


edit:
scusa ma sn agli inizi cn il c# cn che programma devo aprire... il file config.cs
 
Ultima modifica:
In Che senso "la finisce"?
Quelle source sono complete.
Comunque provo a scrivere un paio di codici dei fix..
 
Ok, mi do da fare :emoji_smiley:
--------------- AGGIUNTA AL POST ---------------
Aggiunte immagini.
 
Ultima modifica:
Il link è errato. Quando apro la pagina clicco sul pulsante per scaricare il file e mi da errore.
 
Ho provato a farlo,ma quando apro il server mi da smp quello standard di imaginext :S
:bye:
 
Complimenti Giulix, bella guida!
Sono molto felice che i miei sorgenti stiano risultando in qualche modo utili e ottimali alla comunity per personalizzare i vostri server...
 
Grazie Mille Giorgio ^^, sono utilissime le tue sorgenti.
Per quanto riguarda te retrover devi aprire uno dei due presenti (provali tutti e due)
 
Stato
Discussione chiusa ad ulteriori risposte.