Sto creando evento in warrock "C#" e non riesco a definire una cosa, se il player è la prima volta che ha digitato l'evento "in questo caso ho messo
" allora inserisce nel db della tabella message_event la giusta stringa con actived 0, da il contenuto dell'evento e setta actived a 1. Se il player ha già fatto questo evento allora nel db non deve inserire nulla. ma arrivato a if (present[2].Equals(User.UserID)) la macchina mi da "Indice oltre i limiti della matrice" Cosa è che sto sbagliando?
Codice:
if (sMessage == "asd")
{
string[] present = DB.runReadRow("SELECT ownerid, message, actived FROM message_event WHERE id='" + User.UserID + "'");
if (present[2].Equals(User.UserID)) return;
DB.runQuery("INSERT INTO message_event (ownerid, message , actived) VALUES ('" + User.UserID + "', '" + sMessage + "', '" + 0 + "')");
}
Thread.Sleep(1000);
string[] me = DB.runReadRow("SELECT ownerid, message, actived FROM message_event WHERE id='" + User.UserID + "'");
bool b = (me[2] == "1" ? true : false);
if (b == false)
{
if (sMessage == "asd") //4ppyxmas-from-FW14
{
int Rand = new Random().Next(0, 0);
string ItemCode = null;
int Days = 1;
if (sMessage == "asd")
{
if (Rand == 0) { ItemCode = "CZ79"; Days = 0; }
}
DB.runQuery("UPDATE message_event SET actived='" + 1 + "' WHERE ownerid='" + User.UserID + "'");
User.AddOutBoxItem(ItemCode, Days);
User.Inventory = new InventoryItem[105];
User.LoadItems();
User.send(new PACKET_CHAT("SERVER", PACKET_CHAT.ChatType.Whisper, "SERVER >> Guarda il tuo OutBox!", User.SessionID, User.Nickname));
}
}
if (b == true)
{
User.send(new PACKET_CHAT("SERVER", PACKET_CHAT.ChatType.Whisper, "SERVER >> Guarda il tuo OutBoxerx!", User.SessionID, User.Nickname));
}
break;
}