Hallo Community!
Ich habe meinen /fchat Befehl so geschrieben:
Code
ocmd:fchat(playerid,params[])
{
if(PI[playerid][pFrak] >= 1)
{
new msg[150],str[200],rangname[20],frakid = PI[playerid][pFrak];
if(sscanf(params,"s[150]",msg))return SCM(playerid,frot,"[FEHLER]: /fchat [MSG]");
if(PI[playerid][pRang] == 1){rangname = FI[frakid][rname1];}
else if(PI[playerid][pRang] == 2){rangname = FI[frakid][rname2];}
else if(PI[playerid][pRang] == 3){rangname = FI[frakid][rname3];}
else if(PI[playerid][pRang] == 4){rangname = FI[frakid][rname4];}
else if(PI[playerid][pRang] == 5){rangname = FI[frakid][rname5];}
if(PI[playerid][pLeader] > 0){format(str,sizeof(str),"(([L]%s %s: %s))",rangname,GPlayerName(playerid),msg);}
else{format(str,sizeof(str),"((%s %s: %s))",rangname,GPlayerName(playerid),msg);}
SendFrakMessage(PI[playerid][pFrak],str);
return 1;
}
SCM(playerid,frot,"[FEHLER]: Du befindest dich in keiner Fraktion!");
return 1;
}
Alles anzeigen
Nun kommt ingame aber das hier heraus:
Ich lasse die Rangnamen per Mysql Speichern und Laden, habe in der Tabelle auch die Rangnamen Testweise erstellt, der "rname5" wäre in der Datenbank: RName5
Wenn ich nur die Daten aus der Datenbank nehme kommt das hier bei /fchat:
Durch meinen Befehl mit dem ich die Rangnamen ändern kann, kam dann das obere Beispiel zustande.
Mein Befehl /changername:
Code
ocmd:changername(playerid,params[])
{
if(PI[playerid][pLeader] >= 1 || PI[playerid][pAdmin] >= 3)
{
new str[128];
if(PI[playerid][pAdmin] >= 3)
{
new rang,name[25],fraktion;
if(sscanf(params,"dds[25]",fraktion,rang,name))return SCM(playerid,frot,"[FEHLER]: /changername [fraktion] [Rang] [Name]");
if(rang > 5 || rang < 1)return SCM(playerid,frot,"[FEHLER]: Der Rang muss zwischen 1 und 5 liegen!");
if(strlen(name) > 20)return SCM(playerid,frot,"[FEHLER]: Der Name darf maximal 20 Zeichen lang sein!");
if(rang == 1)format(FI[fraktion][rname1],25,name);
else if(rang == 2)format(FI[fraktion][rname2],25,name);
else if(rang == 3)format(FI[fraktion][rname3],25,name);
else if(rang == 4)format(FI[fraktion][rname4],25,name);
else if(rang == 5)format(FI[fraktion][rname5],25,name);
format(str,sizeof(str),"Der Admin %s hat den Namen des Ranges %d auf %s geändert!",GPlayerName(playerid),rang,name);
SendFrakMessage(fraktion,str);
}
else
{
new rang,name[25],frakid = PI[playerid][pLeader];
if(sscanf(params,"ds[25]",rang,name))return SCM(playerid,frot,"[FEHLER]: /changername [Rang] [Name]");
if(rang > 5 || rang < 1)return SCM(playerid,frot,"[FEHLER]: Der Rang muss zwischen 1 und 5 liegen!");
if(strlen(name) > 20)return SCM(playerid,frot,"[FEHLER]: Der Name darf maximal 20 Zeichen lang sein!");
if(rang == 1)format(FI[frakid][rname1],25,name);
else if(rang == 2)format(FI[frakid][rname2],25,name);
else if(rang == 3)format(FI[frakid][rname3],25,name);
else if(rang == 4)format(FI[frakid][rname4],25,name);
else if(rang == 5)format(FI[frakid][rname5],25,name);
format(str,sizeof(str),"Der Leader %s hat den Namen des Ranges %d auf %s geändert!",GPlayerName(playerid),rang,name);
SendFrakMessage(frakid,str);
}
return 1;
}
SCM(playerid,frot,"[FEHLER]: Du hast nicht den nötigen Fraktions/Admin Rang");
return 1;
}
Alles anzeigen
Und mein Public in dem Ich die Fraktionen laden lasse:
Code
forward LoadFraksTimer();
public LoadFraksTimer()
{
for(new i=0;i<sizeof(FI);i++)
{
cache_get_field_content(i,"name",FI[i][f_name],db_handle,30);
FI[i][f_id] = cache_get_field_content_int(i,"frakid",db_handle);
FI[i][f_kasse] = cache_get_field_content_int(i,"kasse",db_handle);
FI[i][f_x] = cache_get_field_content_float(i,"spawnx",db_handle);
FI[i][f_y] = cache_get_field_content_float(i,"spawny",db_handle);
FI[i][f_z] = cache_get_field_content_float(i,"spawnz",db_handle);
FI[i][f_r] = cache_get_field_content_float(i,"spawnr",db_handle);
FI[i][gehalt1] = cache_get_field_content_int(i,"gehalt1",db_handle);
FI[i][gehalt2] = cache_get_field_content_int(i,"gehalt2",db_handle);
FI[i][gehalt3] = cache_get_field_content_int(i,"gehalt3",db_handle);
FI[i][gehalt4] = cache_get_field_content_int(i,"gehalt4",db_handle);
FI[i][gehalt5] = cache_get_field_content_int(i,"gehalt5",db_handle);
cache_get_field_content(i,"rname1",FI[i][rname1],db_handle,20);
cache_get_field_content(i,"rname2",FI[i][rname2],db_handle,20);
cache_get_field_content(i,"rname3",FI[i][rname3],db_handle,20);
cache_get_field_content(i,"rname4",FI[i][rname4],db_handle,20);
cache_get_field_content(i,"rname5",FI[i][rname5],db_handle,20);
cache_get_field_content(i,"frakmsg",FI[i][frakmsg],db_handle,200);
FI[i][skin1] = cache_get_field_content_int(i,"skin1",db_handle);
FI[i][skin2] = cache_get_field_content_int(i,"skin2",db_handle);
FI[i][skin3] = cache_get_field_content_int(i,"skin3",db_handle);
FI[i][skin4] = cache_get_field_content_int(i,"skin4",db_handle);
FI[i][skin5] = cache_get_field_content_int(i,"skin5",db_handle);
FI[i][cc_1] = cache_get_field_content_int(i,"cc_1",db_handle);
FI[i][cc_2] = cache_get_field_content_int(i,"cc_2",db_handle);
}
return 1;
}
Alles anzeigen
Ich weiß es ist sehr viel Code, das tut mir auch leid ich weiß nur nicht mehr weiter :/, danke!