Print mal die Virtuelle Welt
Die Virtuelle Welt ist 0
Print mal die Virtuelle Welt
Die Virtuelle Welt ist 0
Ist es möglich den Servernamen im Script zu ändern?
Ich finde keine Funktion dazu
Einfach [wiki]SetGameModeText[/wiki]
Einfach [wiki]SetGameModeText[/wiki]
Ich will nicht den GameMode sondern den Servernamen ändern
Ich will nicht den GameMode sondern den Servernamen ändern
Ups fail^^
Du schreibst einfach ins Script bei bspw. OnGameModeInit SendRconCommand("hostname Ich bin ein toller Server");
Okay, ich will es aber alle paar Millisekunden ändern lassen.
Ich hab es so oben definiert:
#define SERVER_SCREENNAME1 "["
#define SERVER_SCREENNAME2 "[R"
#define SERVER_SCREENNAME3 "[RL"
#define SERVER_SCREENNAME4 "[RLR"
#define SERVER_SCREENNAME5 "[RLR]"
#define SERVER_SCREENNAME6 "[RLR] R"
#define SERVER_SCREENNAME7 "[RLR] Re"
#define SERVER_SCREENNAME8 "[RLR] Red"
#define SERVER_SCREENNAME9 "[RLR] RedL"
#define SERVER_SCREENNAME10 "[RLR] RedLi"
#define SERVER_SCREENNAME11 "[RLR] RedLif"
#define SERVER_SCREENNAME12 "[RLR] RedLife"
#define SERVER_SCREENNAME13 "[RLR] RedLife R"
#define SERVER_SCREENNAME14 "[RLR] RedLife Re"
#define SERVER_SCREENNAME15 "[RLR] RedLife Rea"
#define SERVER_SCREENNAME16 "[RLR] RedLife Real"
#define SERVER_SCREENNAME17 "[RLR] RedLife Reall"
#define SERVER_SCREENNAME18 "[RLR] RedLife Realli"
#define SERVER_SCREENNAME19 "[RLR] RedLife Reallif"
#define SERVER_SCREENNAME20 "[RLR] RedLife Reallife"
Wie kann ich nach und nach als Hostename anzeigen?
Dauerhaft, oder nur einmal bis es voll ist?
Falls dauerhaft, soll es, nachdem es voll ist, auch wieder zurück laufen?
Hat sich erledigt
#hinbekommen :^)
Um das mal kurz zu sagen, das sieht nicht gut aus mit dem Namen, wenn der sich permanent ändert ![]()
Da man immer einen links Klick machen muss, damit man die Veränderung des Namens sieht, das geht nicht automatisch ![]()
Hier ein kleines Beispiel:
//Oben im Skript
#define SERVER_NAME_INTERVAL 500
//Ruf folgendes unter OnGameModeInitAuf
SetTimerEx("changeServerName", SERVER_NAME_INTERVAL, 0, "i", 0);
//Dann iwo im Skript
forward changeServerName(x);
public changeServerName(x)
{
static const s_name[]="[RLR] RedLife Reallife";
new tmp[8 + sizeof(s_name) + 1];
strmid(tmp,s_name,0,x,sizeof(s_name));
format(tmp,sizeof tmp,"hostname %s",tmp);
SendRconCommand(tmp);
if(x == sizeof(s_name)-1) x=-1;
SetTimerEx("changeServerName", SERVER_NAME_INTERVAL, 0, "i", ++x);
}
Alles anzeigen
Könntest du mir anhand diesem hier erklären wie ich zum Beispiel wenn ich ein Event starte. Den Namen ändern lassen kann?
//Oben im Skript
#define SERVER_NAME_INTERVAL 500
//Ruf folgendes unter OnGameModeInitAuf
SetTimerEx("changeServerName", SERVER_NAME_INTERVAL, 0, "i", 0);
//Dann iwo im Skript
forward changeServerName(x);
public changeServerName(x)
{
static const s_name[]="[RLR] RedLife Reallife";
new tmp[8 + sizeof(s_name) + 1];
strmid(tmp,s_name,0,x,sizeof(s_name));
format(tmp,sizeof tmp,"hostname %s",tmp);
SendRconCommand(tmp);
if(x == sizeof(s_name)-1) x=-1;
SetTimerEx("changeServerName", SERVER_NAME_INTERVAL, 0, "i", ++x);
}
SendRconCommand("hostname Server Name [Event im Gang]");
Falls der Server Name eine Zeit oder sowas beinhalten soll, dann per format den Text formatieren und mit SendRconCommand absenden.
Kann mir einer sagen warum das:
format(string,sizeof(string),"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s",fInfo[pInfo[playerid][pFraction]][f_rank0],fInfo[pInfo[playerid][pFraction]][f_rank1],fInfo[pInfo[playerid][pFraction]][f_rank2],fInfo[pInfo[playerid][pFraction]][f_rank3],
fInfo[pInfo[playerid][pFraction]][f_rank4],fInfo[pInfo[playerid][pFraction]][f_rank5],fInfo[pInfo[playerid][pFraction]][f_rank6],fInfo[pInfo[playerid][pFraction]][f_rank7]);
ShowPlayerDialog(playerid, DIALOG_FSETTINGS_SETTINGS_RANKNAMES_OVERVIEW, DIALOG_STYLE_LIST, "Einstellungen", string, "","Zurück");
Nicht funktioniert er zeigt mir den Dialog an doch ohne irgendwas drin.
Hey, habe soeben ein Dialog bearbeitet und habe den zurück Button hinzugefügt, nur habe ich das irgendwie nicht hinbekommen.
Kann mir jemand zeigen wie man's richtig macht?
(Hatte es hinbekommen dass der zurück Button funktioniert, aber man konnte dann das Dialog nicht mehr schließen)
if(dialogid == D_Tops)
{
if(response)
{
switch(listitem) {
case 0: {
new cQuery[1024];
format(cQuery, sizeof(cQuery), "SELECT Name, Level, Color FROM `players` ORDER BY `Level` DESC LIMIT 10");
mysql_query(MySQL, cQuery);
mysql_store_result();
new num, top[10][24], score[10][10], Top[1024], color[10][10];
while(mysql_retrieve_row())
{
mysql_fetch_field_row(top[num], "Name");
mysql_fetch_field_row(score[num], "Level");
mysql_fetch_field_row(color[num], "Color");
num ++;
}
format(Top, sizeof(Top),"Top\tNickname\tLevel\n1\t{%06x}%s\t%i\n2\t{%06x}%s\t%i\n3\t{%06x}%s\t%i\n4\t{%06x}%s\t%i\n5\t{%06x}%s\t%i\n6\t{%06x}%s\t%i\n7\t{%06x}%s\t%i\n8\t{%06x}%s\t%i\n9\t{%06x}%s\t%i\n10\t{%06x}%s\t%i",
strval(color[0]) >>> 8, top[0], strval(score[0]),
strval(color[1]) >>> 8, top[1], strval(score[1]),
strval(color[2]) >>> 8, top[2], strval(score[2]),
strval(color[3]) >>> 8, top[3], strval(score[3]),
strval(color[4]) >>> 8, top[4], strval(score[4]),
strval(color[5]) >>> 8, top[5], strval(score[5]),
strval(color[6]) >>> 8, top[6], strval(score[6]),
strval(color[7]) >>> 8, top[7], strval(score[7]),
strval(color[8]) >>> 8, top[8], strval(score[8]),
strval(color[9]) >>> 8, top[9], strval(score[9])
);
ShowPlayerDialog(playerid, D_Tops+1, DIALOG_STYLE_TABLIST_HEADERS, "Top Level", Top, "Close", "Back");
mysql_free_result();
}
case 1: {
new cQuery[1024];
format(cQuery, sizeof(cQuery), "SELECT Name, Kills, Color FROM `players` ORDER BY `Kills` DESC LIMIT 10");
mysql_query(MySQL, cQuery);
mysql_store_result();
new num, top[10][24], score[10][10], Top[1024], color[10][10];
while(mysql_retrieve_row())
{
mysql_fetch_field_row(top[num], "Name");
mysql_fetch_field_row(score[num], "Kills");
mysql_fetch_field_row(color[num], "Color");
num ++;
}
format(Top, sizeof(Top),"Top\tNickname\tKills\n1\t{%06x}%s\t%i\n2\t{%06x}%s\t%i\n3\t{%06x}%s\t%i\n4\t{%06x}%s\t%i\n5\t{%06x}%s\t%i\n6\t{%06x}%s\t%i\n7\t{%06x}%s\t%i\n8\t{%06x}%s\t%i\n9\t{%06x}%s\t%i\n10\t{%06x}%s\t%i",
strval(color[0]) >>> 8, top[0], strval(score[0]),
strval(color[1]) >>> 8, top[1], strval(score[1]),
strval(color[2]) >>> 8, top[2], strval(score[2]),
strval(color[3]) >>> 8, top[3], strval(score[3]),
strval(color[4]) >>> 8, top[4], strval(score[4]),
strval(color[5]) >>> 8, top[5], strval(score[5]),
strval(color[6]) >>> 8, top[6], strval(score[6]),
strval(color[7]) >>> 8, top[7], strval(score[7]),
strval(color[8]) >>> 8, top[8], strval(score[8]),
strval(color[9]) >>> 8, top[9], strval(score[9])
);
ShowPlayerDialog(playerid, D_Tops+2, DIALOG_STYLE_TABLIST_HEADERS, "Top Killers", Top, "Close", "Back");
mysql_free_result();
}
case 2: {
new cQuery[1024];
format(cQuery, sizeof(cQuery), "SELECT Name, Deaths, Color FROM `players` ORDER BY `Deaths` DESC LIMIT 10");
mysql_query(MySQL, cQuery);
mysql_store_result();
new num, top[10][24], score[10][10], Top[1024], color[10][10];
while(mysql_retrieve_row())
{
mysql_fetch_field_row(top[num], "Name");
mysql_fetch_field_row(score[num], "Deaths");
mysql_fetch_field_row(color[num], "Color");
num ++;
}
format(Top, sizeof(Top),"Top\tNickname\tDeaths\n1\t{%06x}%s\t%i\n2\t{%06x}%s\t%i\n3\t{%06x}%s\t%i\n4\t{%06x}%s\t%i\n5\t{%06x}%s\t%i\n6\t{%06x}%s\t%i\n7\t{%06x}%s\t%i\n8\t{%06x}%s\t%i\n9\t{%06x}%s\t%i\n10\t{%06x}%s\t%i",
strval(color[0]) >>> 8, top[0], strval(score[0]),
strval(color[1]) >>> 8, top[1], strval(score[1]),
strval(color[2]) >>> 8, top[2], strval(score[2]),
strval(color[3]) >>> 8, top[3], strval(score[3]),
strval(color[4]) >>> 8, top[4], strval(score[4]),
strval(color[5]) >>> 8, top[5], strval(score[5]),
strval(color[6]) >>> 8, top[6], strval(score[6]),
strval(color[7]) >>> 8, top[7], strval(score[7]),
strval(color[8]) >>> 8, top[8], strval(score[8]),
strval(color[9]) >>> 8, top[9], strval(score[9])
);
ShowPlayerDialog(playerid, D_Tops+3, DIALOG_STYLE_TABLIST_HEADERS, "Top Noobs", Top, "Close", "Back");
mysql_free_result();
}
case 3: {
new cQuery[1024];
format(cQuery, sizeof(cQuery), "SELECT Name, Ratio, Color FROM `players` ORDER BY `Ratio` DESC LIMIT 10");
mysql_query(MySQL, cQuery);
mysql_store_result();
new num, top[10][24], score[10][10], Top[1024], color[10][10];
while(mysql_retrieve_row())
{
mysql_fetch_field_row(top[num], "Name");
mysql_fetch_field_row(score[num], "Ratio");
mysql_fetch_field_row(color[num], "Color");
num ++;
}
format(Top, sizeof(Top),"Top\tNickname\tRatio\n1\t{%06x}%s\t%0.2f\n2\t{%06x}%s\t%0.2f\n3\t{%06x}%s\t%0.2f\n4\t{%06x}%s\t%0.2f\n5\t{%06x}%s\t%0.2f\n6\t{%06x}%s\t%0.2f\n7\t{%06x}%s\t%0.2f\n8\t{%06x}%s\t%0.2f\n9\t{%06x}%s\t%0.2f\n10\t{%06x}%s\t%0.2f",
strval(color[0]) >>> 8, top[0], floatstr(score[0]),
strval(color[1]) >>> 8, top[1], floatstr(score[1]),
strval(color[2]) >>> 8, top[2], floatstr(score[2]),
strval(color[3]) >>> 8, top[3], floatstr(score[3]),
strval(color[4]) >>> 8, top[4], floatstr(score[4]),
strval(color[5]) >>> 8, top[5], floatstr(score[5]),
strval(color[6]) >>> 8, top[6], floatstr(score[6]),
strval(color[7]) >>> 8, top[7], floatstr(score[7]),
strval(color[8]) >>> 8, top[8], floatstr(score[8]),
strval(color[9]) >>> 8, top[9], floatstr(score[9])
);
ShowPlayerDialog(playerid, D_Tops+4, DIALOG_STYLE_TABLIST_HEADERS, "Top Ratios", Top, "Close", "Back");
mysql_free_result();
}
case 4:
{
new cQuery[1024];
format(cQuery, sizeof(cQuery), "SELECT Name, Weed, Color FROM `players` ORDER BY `Weed` DESC LIMIT 10");
mysql_query(MySQL, cQuery);
mysql_store_result();
new num, top[10][24], score[10][10], Top[1024], color[10][10];
while(mysql_retrieve_row())
{
mysql_fetch_field_row(top[num], "Name");
mysql_fetch_field_row(score[num], "Weed");
mysql_fetch_field_row(color[num], "Color");
num ++;
}
format(Top, sizeof(Top),"Top\tNickname\tWeed Grams\n1\t{%06x}%s\t%i\n2\t{%06x}%s\t%i\n3\t{%06x}%s\t%i\n4\t{%06x}%s\t%i\n5\t{%06x}%s\t%i\n6\t{%06x}%s\t%i\n7\t{%06x}%s\t%i\n8\t{%06x}%s\t%i\n9\t{%06x}%s\t%i\n10\t{%06x}%s\t%i",
strval(color[0]) >>> 8, top[0], strval(score[0]),
strval(color[1]) >>> 8, top[1], strval(score[1]),
strval(color[2]) >>> 8, top[2], strval(score[2]),
strval(color[3]) >>> 8, top[3], strval(score[3]),
strval(color[4]) >>> 8, top[4], strval(score[4]),
strval(color[5]) >>> 8, top[5], strval(score[5]),
strval(color[6]) >>> 8, top[6], strval(score[6]),
strval(color[7]) >>> 8, top[7], strval(score[7]),
strval(color[8]) >>> 8, top[8], strval(score[8]),
strval(color[9]) >>> 8, top[9], strval(score[9])
);
ShowPlayerDialog(playerid, D_Tops+4, DIALOG_STYLE_TABLIST_HEADERS, "Top Smokers", Top, "Close", "Back");
mysql_free_result();
}
}
}
}
du hast ja
das bedeutet wenn der das Auswählt sprich auf den "Close" Button klickt.
Hast du mal versucht folgendes zu machen?
if(dialogid == D_Tops)
{
if(response)
{
switch(listitem) {
case 0: {
new cQuery[1024];
format(cQuery, sizeof(cQuery), "SELECT Name, Level, Color FROM `players` ORDER BY `Level` DESC LIMIT 10");
mysql_query(MySQL, cQuery);
mysql_store_result();
new num, top[10][24], score[10][10], Top[1024], color[10][10];
while(mysql_retrieve_row())
{
mysql_fetch_field_row(top[num], "Name");
mysql_fetch_field_row(score[num], "Level");
mysql_fetch_field_row(color[num], "Color");
num ++;
}
format(Top, sizeof(Top),"Top\tNickname\tLevel\n1\t{%06x}%s\t%i\n2\t{%06x}%s\t%i\n3\t{%06x}%s\t%i\n4\t{%06x}%s\t%i\n5\t{%06x}%s\t%i\n6\t{%06x}%s\t%i\n7\t{%06x}%s\t%i\n8\t{%06x}%s\t%i\n9\t{%06x}%s\t%i\n10\t{%06x}%s\t%i",
strval(color[0]) >>> 8, top[0], strval(score[0]),
strval(color[1]) >>> 8, top[1], strval(score[1]),
strval(color[2]) >>> 8, top[2], strval(score[2]),
strval(color[3]) >>> 8, top[3], strval(score[3]),
strval(color[4]) >>> 8, top[4], strval(score[4]),
strval(color[5]) >>> 8, top[5], strval(score[5]),
strval(color[6]) >>> 8, top[6], strval(score[6]),
strval(color[7]) >>> 8, top[7], strval(score[7]),
strval(color[8]) >>> 8, top[8], strval(score[8]),
strval(color[9]) >>> 8, top[9], strval(score[9])
);
ShowPlayerDialog(playerid, D_Tops+1, DIALOG_STYLE_TABLIST_HEADERS, "Top Level", Top, "Close", "Back");
mysql_free_result();
}
case 1: {
new cQuery[1024];
format(cQuery, sizeof(cQuery), "SELECT Name, Kills, Color FROM `players` ORDER BY `Kills` DESC LIMIT 10");
mysql_query(MySQL, cQuery);
mysql_store_result();
new num, top[10][24], score[10][10], Top[1024], color[10][10];
while(mysql_retrieve_row())
{
mysql_fetch_field_row(top[num], "Name");
mysql_fetch_field_row(score[num], "Kills");
mysql_fetch_field_row(color[num], "Color");
num ++;
}
format(Top, sizeof(Top),"Top\tNickname\tKills\n1\t{%06x}%s\t%i\n2\t{%06x}%s\t%i\n3\t{%06x}%s\t%i\n4\t{%06x}%s\t%i\n5\t{%06x}%s\t%i\n6\t{%06x}%s\t%i\n7\t{%06x}%s\t%i\n8\t{%06x}%s\t%i\n9\t{%06x}%s\t%i\n10\t{%06x}%s\t%i",
strval(color[0]) >>> 8, top[0], strval(score[0]),
strval(color[1]) >>> 8, top[1], strval(score[1]),
strval(color[2]) >>> 8, top[2], strval(score[2]),
strval(color[3]) >>> 8, top[3], strval(score[3]),
strval(color[4]) >>> 8, top[4], strval(score[4]),
strval(color[5]) >>> 8, top[5], strval(score[5]),
strval(color[6]) >>> 8, top[6], strval(score[6]),
strval(color[7]) >>> 8, top[7], strval(score[7]),
strval(color[8]) >>> 8, top[8], strval(score[8]),
strval(color[9]) >>> 8, top[9], strval(score[9])
);
ShowPlayerDialog(playerid, D_Tops+2, DIALOG_STYLE_TABLIST_HEADERS, "Top Killers", Top, "Close", "Back");
mysql_free_result();
}
case 2: {
new cQuery[1024];
format(cQuery, sizeof(cQuery), "SELECT Name, Deaths, Color FROM `players` ORDER BY `Deaths` DESC LIMIT 10");
mysql_query(MySQL, cQuery);
mysql_store_result();
new num, top[10][24], score[10][10], Top[1024], color[10][10];
while(mysql_retrieve_row())
{
mysql_fetch_field_row(top[num], "Name");
mysql_fetch_field_row(score[num], "Deaths");
mysql_fetch_field_row(color[num], "Color");
num ++;
}
format(Top, sizeof(Top),"Top\tNickname\tDeaths\n1\t{%06x}%s\t%i\n2\t{%06x}%s\t%i\n3\t{%06x}%s\t%i\n4\t{%06x}%s\t%i\n5\t{%06x}%s\t%i\n6\t{%06x}%s\t%i\n7\t{%06x}%s\t%i\n8\t{%06x}%s\t%i\n9\t{%06x}%s\t%i\n10\t{%06x}%s\t%i",
strval(color[0]) >>> 8, top[0], strval(score[0]),
strval(color[1]) >>> 8, top[1], strval(score[1]),
strval(color[2]) >>> 8, top[2], strval(score[2]),
strval(color[3]) >>> 8, top[3], strval(score[3]),
strval(color[4]) >>> 8, top[4], strval(score[4]),
strval(color[5]) >>> 8, top[5], strval(score[5]),
strval(color[6]) >>> 8, top[6], strval(score[6]),
strval(color[7]) >>> 8, top[7], strval(score[7]),
strval(color[8]) >>> 8, top[8], strval(score[8]),
strval(color[9]) >>> 8, top[9], strval(score[9])
);
ShowPlayerDialog(playerid, D_Tops+3, DIALOG_STYLE_TABLIST_HEADERS, "Top Noobs", Top, "Close", "Back");
mysql_free_result();
}
case 3: {
new cQuery[1024];
format(cQuery, sizeof(cQuery), "SELECT Name, Ratio, Color FROM `players` ORDER BY `Ratio` DESC LIMIT 10");
mysql_query(MySQL, cQuery);
mysql_store_result();
new num, top[10][24], score[10][10], Top[1024], color[10][10];
while(mysql_retrieve_row())
{
mysql_fetch_field_row(top[num], "Name");
mysql_fetch_field_row(score[num], "Ratio");
mysql_fetch_field_row(color[num], "Color");
num ++;
}
format(Top, sizeof(Top),"Top\tNickname\tRatio\n1\t{%06x}%s\t%0.2f\n2\t{%06x}%s\t%0.2f\n3\t{%06x}%s\t%0.2f\n4\t{%06x}%s\t%0.2f\n5\t{%06x}%s\t%0.2f\n6\t{%06x}%s\t%0.2f\n7\t{%06x}%s\t%0.2f\n8\t{%06x}%s\t%0.2f\n9\t{%06x}%s\t%0.2f\n10\t{%06x}%s\t%0.2f",
strval(color[0]) >>> 8, top[0], floatstr(score[0]),
strval(color[1]) >>> 8, top[1], floatstr(score[1]),
strval(color[2]) >>> 8, top[2], floatstr(score[2]),
strval(color[3]) >>> 8, top[3], floatstr(score[3]),
strval(color[4]) >>> 8, top[4], floatstr(score[4]),
strval(color[5]) >>> 8, top[5], floatstr(score[5]),
strval(color[6]) >>> 8, top[6], floatstr(score[6]),
strval(color[7]) >>> 8, top[7], floatstr(score[7]),
strval(color[8]) >>> 8, top[8], floatstr(score[8]),
strval(color[9]) >>> 8, top[9], floatstr(score[9])
);
ShowPlayerDialog(playerid, D_Tops+4, DIALOG_STYLE_TABLIST_HEADERS, "Top Ratios", Top, "Close", "Back");
mysql_free_result();
}
case 4:
{
new cQuery[1024];
format(cQuery, sizeof(cQuery), "SELECT Name, Weed, Color FROM `players` ORDER BY `Weed` DESC LIMIT 10");
mysql_query(MySQL, cQuery);
mysql_store_result();
new num, top[10][24], score[10][10], Top[1024], color[10][10];
while(mysql_retrieve_row())
{
mysql_fetch_field_row(top[num], "Name");
mysql_fetch_field_row(score[num], "Weed");
mysql_fetch_field_row(color[num], "Color");
num ++;
}
format(Top, sizeof(Top),"Top\tNickname\tWeed Grams\n1\t{%06x}%s\t%i\n2\t{%06x}%s\t%i\n3\t{%06x}%s\t%i\n4\t{%06x}%s\t%i\n5\t{%06x}%s\t%i\n6\t{%06x}%s\t%i\n7\t{%06x}%s\t%i\n8\t{%06x}%s\t%i\n9\t{%06x}%s\t%i\n10\t{%06x}%s\t%i",
strval(color[0]) >>> 8, top[0], strval(score[0]),
strval(color[1]) >>> 8, top[1], strval(score[1]),
strval(color[2]) >>> 8, top[2], strval(score[2]),
strval(color[3]) >>> 8, top[3], strval(score[3]),
strval(color[4]) >>> 8, top[4], strval(score[4]),
strval(color[5]) >>> 8, top[5], strval(score[5]),
strval(color[6]) >>> 8, top[6], strval(score[6]),
strval(color[7]) >>> 8, top[7], strval(score[7]),
strval(color[8]) >>> 8, top[8], strval(score[8]),
strval(color[9]) >>> 8, top[9], strval(score[9])
);
ShowPlayerDialog(playerid, D_Tops+4, DIALOG_STYLE_TABLIST_HEADERS, "Top Smokers", Top, "Close", "Back");
mysql_free_result();
}
}
}
else
{
/* wenn der auf den anderen Button klickt */
}
}
Alles anzeigen
Ist mal ne vermutung, denn du gibst ja nur an was bei dem einen Button passieren soll ![]()
Kann mir jemand auch kurz weiterhelfen, es handelt sich bestimmt um ein Denkfehler.
Ich möchte, wenn der Spieler vor nem Objekt ist ( Müllsäcke ) und halt ne Taste klickt, dann soll er dieses Objekt
was auf dem Boden war verschwinden und in seinen Händen Attachen...
Folgendes habe ich versucht:
if(newkeys & KEY_SPRINT)
{
for(new i = 0; i < MAX_MUELLOBJ; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, Muell_Info[i][m_posX1], Muell_Info[i][m_posY1], Muell_Info[i][m_posZ1]))
{
AttachObjectToPlayer(Muell_Info[i][Mueltonne1], playerid, 0, 0.5, -0.5, 0, 0, 0);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
//DestroyDynamicObject(Muelltonnen_Info1[i][Mueltonne1]);
}
}
}
Alles anzeigen
Falls ihr den Enum braucht:
enum Strassen_Muell
{
MuellObjekt,
Float:m_posX,
Float:m_posY,
Float:m_posZ,
Float:m_posRX,
Float:m_posRY,
Float:m_posRZ,
MuellArt,
bool:MuellErstellt,
NachsteMuell,
Mueltonne
}
Alles anzeigen
Objekt wird folgendermaßen erstellt:
Muellt_Info[i][Mueltonne] = CreateDynamicObject(Muell_Info[i][MuellObjekt],Muell_Info[i][m_posX],Muell_Info[i][m_posY],Muell_Info[i][m_posZ],Muell_Info[i][m_posRX],Muell_Info[i][m_posRY],Muell_Info[i][m_t_posRZ]);
Der Fehler liegt da wo der Spieler die Taste drückt, aber ich weiß nicht was ich falsch gemacht habe? :o
Ne, funktioniert so nicht..
Habe es so versucht:
if(dialogid == D_Tops+2 || D_Tops+3 || D_Tops+4)
{
if(!response)
{
ShowPlayerDialog(playerid, D_Tops, DIALOG_STYLE_LIST, "BattleArena: Ranking", "\
Top Level\n\
Top Kills\n\
Top Deaths\n\
Top Ratio\n\
Top Smokers\n\
", "Select", "Cancel");
return 1;
}
}
Damit funktionierts (ich kann auf die Zurück Buttons klicken) aber nicht mehr das Dialog schließen..
Hey,
warum funktioniert das nicht?:
format(string,sizeof(string),"%s",inputtext);
cfrak_info[23][f_name] = string;
format(string,sizeof(string),"Sie erstellen die Fraktion {FF7700}%s{FFFFFF}", cfrak_info[23][f_name]);
SCM(playerid,COLOR_YELLOW,string);
cfrak_info[23][f_name] = string;
Musst das z.B. so zuweisen:
format(cfrak_info[23][f_name],32, string); //Bzw angeben wie groß cfrak_info[x][f_name] ist :)
Ok, so ganz hab ich das nicht verstanden.
Ich habe auch ein Problem mit meinem Enum. Es ist ja 2dimensional und ich weiß nicht was ich in die 2 Spalte eintragen soll ![]()
enum cfrakEnum{
f_name[128],
f_catergorie,
f_enterpoint_x,
f_enterpoint_y,
f_enterpoint_z,
f_spawnpoint_x,
f_spawnpoint_y,
f_spawnpoint_z,
f_dutypoint_x,
f_dutypoint_y,
f_dutypoint_z,
f_equippoint_x,
f_equippoint_y,
f_equippoint_z,
f_arrestpoint_x,
f_arrestpoint_y,
f_arrestpoint_z,
f_exitpoint_x,
f_exitpoint_y,
f_exitpoint_z,
f_interior,
f_world
}
new cfrak_info[25][cfrakEnum];
Vielleicht kannst du mir anhand meines Enums eine bessere Beschreibung deiner Lösung geben.
Das schon ok so.
Es bedeutet ja quasi, dass du 25 Fraktionen erstellen kannst auf dem Server.
Um die jeweilige Fraktionsid rauszubekommen musst du einfach ermitteln, welche frei ist, z.B. so:
stock GetFreeFrakID()
{
for(new i; i<sizeof(cfrak_info); i++)
{
if(cfrak_info[i][f_name][0] == EOS) return i;
}
return -1;
}
//Wichtig dass du beim löschen einer Fraktion folgendes machst:
strdel(cfrak_info[i][f_name],0,128);
//Und dann kann dein Befehl so aussehen:
format(string,sizeof(string),"%s",inputtext);
new i = GetFreeFrakID();
if(i == -1) return SendClientMessage(playerid,-1,"* Es wurden bereits 25 Fraktionen erstellt!");
format(cfrak_info[i][f_name],128, string);
format(string,sizeof(string),"Sie erstellen die Fraktion {FF7700}%s{FFFFFF}", cfrak_info[i][f_name]);
SCM(playerid,COLOR_YELLOW,string);
Danke dafür das hat mir geholfen. Ich erstelle bloß gerade ein Fraktionscreate System per Dialog.
Soll ich dann immer das:
new i = GetFreeFrakID()if(i == -1) return SendClientMessage(playerid,-1,"* Es wurden bereits 25 Fraktionen erstellt!");
Einfügen? Kommt dann auch immer die Selbe ID. Oder hast du vielleicht eine andere Idee.
//e @Kaliber
Ich habe das Problem, das er einfach die Id´s weiterzählt.
Das soll er ja nicht er soll ja eine Fraktion mit einer ID ausstatten.
Bisheriger Code:
new i = GetFreeFrakID();
if(i == -1) return SendClientMessage(playerid,-1,"* Es wurden bereits 25 Fraktionen erstellt!");
if(dialogid==DIALOG_CREATEFRACTION)
{
if(response)
{
ShowPlayerDialog(playerid, DIALOG_CREATEFRACTION_NAME, DIALOG_STYLE_INPUT, "Fraktionserstellsystem by {FF7700}Ryan_Walton{FFFFFF}", "Sie können nun den Namen für die Fraktion festlegen.", "Weiter","Abbrechen");
}
else
{
SCM(playerid,COLOR_GREY,"Abgebrochen");
}
return 1;
}
//STEP 2
if(dialogid==DIALOG_CREATEFRACTION_NAME)
{
new string[256];
if(response)
{
format(string,sizeof(string),"%s",inputtext);
format(cfrak_info[i][f_name],128, string);
cfrak_info[i][f_id] = i;
format(string,sizeof(string),"Sie erstellen die Fraktion: {FF7700}%s(ID: %d){FFFFFF}", cfrak_info[i][f_name],cfrak_info[i][f_id]);
SCM(playerid,COLOR_YELLOW,string);
ShowPlayerDialog(playerid, DIALOG_CREATEFRACTION_CATERGORIE, DIALOG_STYLE_LIST, "Fraktionserstellsystem by {FF7700}Ryan_Walton{FFFFFF}", "Behörde\nNeutrale Fraktion\nGang/Mafia", "Weiter","Abbrechen");
}
else
{
ShowPlayerDialog(playerid, DIALOG_CREATEFRACTION_NAME, DIALOG_STYLE_INPUT, "Fraktionserstellsystem by {FF7700}Ryan_Walton{FFFFFF}", "Sie können nun einen Namen für die Fraktion auswählen", "Weiter","Abbrechen");
}
}
Keine Warnings ETC.