Mit format kannst du das doch einfach machen:
new zahl = 15,hex[4];
format(hex,sizeof(hex),"%x",zahl);
//hex = F
Mit format kannst du das doch einfach machen:
new zahl = 15,hex[4];
format(hex,sizeof(hex),"%x",zahl);
//hex = F
Aber ich möchte ja nicht, dass es zu einem String wird. Ich möchte diese Zahl in meinem Fall zB als Farbe für SendClientMessage verwenden.
Edit:
Danke für die Antwort - mir ist ganz entfallen, dass ich einfach {FARBCODE} vor die Zeichenkette schreiben kann.
Kann wer helfen warum ich den Decknamen nicht
auslesen kann bzw Setzen kann ?
Ich lade es mit:
cache_get_field_content(0,"Deckname",Spieler[playerid][pDeckname]);
Der Befehl dazu:
COMMAND:setdeckname(playerid,params[])
{
if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
new pID,deckname[MAX_PLAYER_NAME],query[256];
if(!isPlayerInFrakt(playerid,19))return SendClientMessage(playerid,GRAU,"Du bist nicht in der jeweiligen Fraktion.");
if(!isPlayerAMember(playerid,6))return SendClientMessage(playerid,GRAU,"Du besitzt nicht den jeweiligen Rang.");
if(sscanf(params,"us[24]",pID,deckname))return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /setdeckname [playerid/Name][Neuername]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,GRAU,"Der angegebene Spieler ist nicht eingeloggt!");
if(GetPVarInt(pID,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Der angegebene Spieler ist nicht eingeloggt!");
if(IsPlayerNPC(pID))return SendClientMessage(playerid,GRAU,"Das kannst du nicht!");
if(!strcmp(deckname,Spieler[pID][pDeckname],true))return SendClientMessage(playerid,GRAU,"Spieler hat bereits den selben Decknamen!");
mysql_format(MySqlConnection,query,sizeof(query),"SELECT * FROM "#SQLTAG"_account_main WHERE Deckname = '%s'",deckname);
mysql_function_query(MySqlConnection,query,true,"OnQueryFinish2","ssiiii",query,deckname,_SQL_SETDECKNAME_QUERY,playerid,pID,MySqlConnection);
return 1;
}
case _SQL_SETDECKNAME_QUERY:
{
cache_get_data(rows,fields);
if(rows)
{
SendClientMessage(extraid,GRAU,"Name wir schon verwendet.");
return 1;
}
mysql_format(MySqlConnection,query,sizeof(query),"UPDATE "#SQLTAG"_account_main SET Deckname='%s' WHERE Deckname='%s'",index2,Spieler[extraid2][pDeckname]);
mysql_function_query(MySqlConnection,query,false,"","");
mysql_format(MySqlConnection,query,sizeof(query),"Du hast den Decknamen von %s zu %s umbenannt!",Spieler[extraid2][pDeckname],index2);
SendClientMessage(extraid,GELB,query);
mysql_format(MySqlConnection,query,sizeof(query),"AdminBefehl: Der Admin %s (ID:%i) hat deinen Decknamen in %s umgeändert. Dein Account wurde geupdatet!",Spieler[extraid][pDeckname],extraid,index2);
SendClientMessage(extraid2,GELB,query);
return 1;
}
Kann leider keine Threads eröffnen...
@tayson87:
1. return SendClientMessage(playerid,0xFAF0CEFF,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
kann man nicht machen, entweder erst SendClientMessage(...) und danach der return oder nur SendClientMessage(...) und ne richtige Programmordnung ![]()
2. return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back"); geht auch nicht, statt Komma musst du ein Semikolon setzten, also
if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1) {
SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen.");
SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
return 1;
}
Keine Angst vor geschweiften Klammern ![]()
Alf das geht Problemlos, achte mal darauf was mein eigentliches Problem ist. Mein Problem liegt daran, dass das Deckname nicht funktioniert. Ich kann keinen Decknamen setzen. Es kommt immer wieder "Spieler hat bereits den selben Decknamen!"
@Kaliber danke funktioniert jedoch hab ich ein Problem undzwar wenn ich dann SetPlayerName(playerid,Spieler[playerid][pDeckname]); mache funktioniert es nicht und der server stürzt ab
zb der Befehl: /Setdeckname gibt einen anderne namen ein der gespeichert werden soll. und wenn ich dann den namen abrufen will mit SetPlayerName(playerid,Spieler[playerid][pDeckname]); stürzt der server ab
Musst auch prüfen ob der String nicht leer ist...
Anscheinend tritt da irgendein Fehler beim speichern auf..
Mal ein bisschen print-Debug betreiben und Fehler suchen ![]()
Leute wieso wird mir ingame keine Sirene als Texdraw angezeigt ?
Ich lass den Textdraw anzeigen wenn man in einen Wagen steigt, hab ich irgendwas vergessen?
TextCC[playerid] = CreatePlayerTextDraw(playerid, 581.500000, 387.277770, "hud:radar_police");
PlayerTextDrawLetterSize(playerid, TextCC[playerid], 0.000000, 1.895678);
PlayerTextDrawTextSize(playerid, TextCC[playerid], 561.500000, 0.000000);
PlayerTextDrawAlignment(playerid, TextCC[playerid], 1);
PlayerTextDrawColor(playerid, TextCC[playerid], 1);
PlayerTextDrawSetShadow(playerid, TextCC[playerid], 0);
PlayerTextDrawSetOutline(playerid, TextCC[playerid], 0);
PlayerTextDrawFont(playerid, TextCC[playerid], 4);
PlayerTextDrawSetSelectable(playerid, TextCC[playerid], true);
Les mal, beim einsteigen lass ich den Textdraw anzeigen
Dann musst du den Code auch posten sonst kann man dir da nicht helfen, ich kann mein Fehler auch beschreiben aber ohne Code wird das nichts ![]()
Da ist der Code doch :D?
das einzige was ich nicht gepostet habe ist unter onplayerstatechange
if(newstate == PLAYER_STATE_DRIVER) {
new string [60];
PlayerTextDrawShow(playerid, Tacho1[playerid]);
PlayerTextDrawShow(playerid, Tacho2[playerid]);
PlayerTextDrawShow(playerid, Tacho3[playerid]);
PlayerTextDrawShow(playerid, CarFahrzeug[playerid]);
PlayerTextDrawShow(playerid, CarTankart[playerid]);
PlayerTextDrawShow(playerid, CarSpeed[playerid]);
PlayerTextDrawShow(playerid, CarKmh[playerid]);
PlayerTextDrawShow(playerid, MotorIMG[playerid]);
PlayerTextDrawShow(playerid, TextCC[playerid]); }
Moin.
Ich hab ein Problem, undzwar hab ich bei OnDialogResponse etwas gescriptet, doch bekomme tonnnweiße Errors...
Code:
case 1501:
{
if(!response)
{
SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Mhm, Aufwiedersehen!");
return 1;
}
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) < 0) return SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Du hast nicht genügend Geld!");
SetPlayerFightingStyle (playerid, FIGHT_STYLE_NORMAL);
SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Dein Kampfstyle wurde nun in 'Normal' geändert!");
}
case 1;
{
if(GetPlayerMoney(playerid) < 50000) return SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Du hast nicht genügend Geld!");
SetPlayerFightingStyle (playerid, FIGHT_STYLE_BOXING);
SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Dein Kampfstyle wurde nun in 'Boxing' geändert!");
}
case 3;
{
if(GetPlayerMoney(playerid) < 75000) return SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Du hast nicht genügend Geld!");
SetPlayerFightingStyle (playerid, FIGHT_STYLE_KUNGFU);
SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Dein Kampfstyle wurde nun in 'KungFu' geändert!");
}
case 4;
{
if(GetPlayerMoney(playerid) < 100000) return SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Du hast nicht genügend Geld!");
SetPlayerFightingStyle (playerid, FIGHT_STYLE_KNEEHEAD);
SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Dein Kampfstyle wurde nun in 'Kneehead' geändert!");
}
case 5;
{
if(GetPlayerMoney(playerid) < 100000) return SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Du hast nicht genügend Geld!");
SetPlayerFightingStyle (playerid, FIGHT_STYLE_GRABKICK);
SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Dein Kampfstyle wurde nun in 'Grabkick' geändert!");
}
case 6;
{
if(GetPlayerMoney(playerid) < 125000) return SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Du hast nicht genügend Geld!");
SetPlayerFightingStyle (playerid, FIGHT_STYLE_ELBOW);
SendClientMessage(playerid,COLOR_RED,"{33CCFF}Uwe {FFFFFF}Dein Kampfstyle wurde nun in 'Elbow' geändert!");
}
}
}
Dazugehöriger Dialog:
format(string1, sizeof(string1),"Uwe: Bitte wähle eine Aktion!");
format(string2, sizeof(string2),"1. Kampfstyle 'Normal'\t\t\tKosten: 0$\n\2. Kampfstyle 'Boxing'\t\t\tKosten: 50.000$\n\3. Kampfstyle 'KungFu'\t\t\tKosten: 75.000$\n\4. Kampfstyle 'Kneehead'\t\t\tKosten: 100.000$\n\5. Kampfstyle 'Grabkick'\t\t\tKosten: 100.000$\n\6. Kampfstyle 'Elbow'\t\t\tKosten: 125.000$");
ShowPlayerDialog(playerid,1501,DIALOG_STYLE_LIST,string1,string2,"Wählen","Schließen");
Zeig uns deine Errormeldungen + die Zeile dazu.
@ENEF Hab die Errors gefunden, hatte "case (Nr);" geschrieben, statt dem ";" musste ein ":" hin... xd
Nun hab ich ein anderes Problem.
Undzwar hab ich jetzt mein OnDialogResponse Code nun so:
case DIALOG_SPEAK:
{
if(!response)
{
SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Mhm, Aufwiedersehen! ))");
return 1;
}
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) < 0) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Du hast nicht genügend Geld! ))");
SetPlayerFightingStyle (playerid, FIGHT_STYLE_NORMAL);
GivePlayerMoney(playerid, -0);
SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Dein Kampfstyle wurde nun in 'Normal' geändert! ))");
return 1;
}
case 1:
{
if(GetPlayerMoney(playerid) < 50000) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Du hast nicht genügend Geld! ))");
SetPlayerFightingStyle (playerid, FIGHT_STYLE_BOXING);
GivePlayerMoney(playerid, -50000);
SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Dein Kampfstyle wurde nun in 'Boxing' geändert! ))");
return 1;
}
case 3:
{
if(GetPlayerMoney(playerid) < 75000) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Du hast nicht genügend Geld! ))");
SetPlayerFightingStyle (playerid, FIGHT_STYLE_KUNGFU);
GivePlayerMoney(playerid, -75000);
SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Dein Kampfstyle wurde nun in 'KungFu' geändert! ))");
return 1;
}
case 4:
{
if(GetPlayerMoney(playerid) < 100000) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Du hast nicht genügend Geld! ))");
SetPlayerFightingStyle (playerid, FIGHT_STYLE_KNEEHEAD);
GivePlayerMoney(playerid, -100000);
SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Dein Kampfstyle wurde nun in 'Kneehead' geändert! ))");
return 1;
}
case 5:
{
if(GetPlayerMoney(playerid) < 100000) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Du hast nicht genügend Geld! ))");
SetPlayerFightingStyle (playerid, FIGHT_STYLE_GRABKICK);
GivePlayerMoney(playerid, -100000);
SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Dein Kampfstyle wurde nun in 'Grabkick' geändert! ))");
return 1;
}
case 6:
{
if(GetPlayerMoney(playerid) < 125000) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Du hast nicht genügend Geld! ))");
SetPlayerFightingStyle (playerid, FIGHT_STYLE_ELBOW);
GivePlayerMoney(playerid, -125000);
SendClientMessage(playerid,COLOR_RED,"{FFFFFF}(( {33CCFF}Uwe: {FFFFFF}Dein Kampfstyle wurde nun in 'Elbow' geändert! ))");
return 1;
}
}
Alles anzeigen
Dialog:
ShowPlayerDialog(playerid, DIALOG_SPEAK, DIALOG_STYLE_LIST, "Uwe: Bitte wähle eine Aktion!","1. Kampfstyle 'Normal'\t\t\tKosten: 0$\n2. Kampfstyle 'Boxing'\t\t\tKosten: 50.000$\n3. Kampfstyle 'KungFu'\t\t\tKosten: 75.000$\n4. Kampfstyle 'Kneehead'\t\tKosten: 100.000$\n5. Kampfstyle 'Grabkick'\t\tKosten: 100.000$\n6. Kampfstyle 'Elbow'\t\t\tKosten: 125.000$", "Wählen", "Schließen");
Ich bekomme keine Erorrs, garnichts..
Jedoch wenn ich dann Ingame, auf "3. Kampfstyle 'KungFu'" klicke, dann passiert garnichts, wenn ich dann auf "4. Kampfstyle 'Kneehead'" drücke, dann gibt er mir den Text von KungFu raus, und halt den Style, das ganze ist irgendwie etwas verschoben, jedoch finde ich im Code mein Fehler nicht...
jemand ne idee?
Bei dir fehlt case 2 deswegen verschiebt sich das ![]()
Bei dir fehlt case 2 deswegen verschiebt sich das
Glatt übersehen hahaa
danke dir ![]()
Es funktioniert jetzt allerding wenn ich dann den Namen ersetzen will
mit SetPlayerName(playerid,Spieler[playerid][pDeckname]); Dann liest er
das nicht ab. Aber in der Datenbank steht dann der Decknamen ganz
normal es speichert auch ganz normal ab..
Nur könntes einer mir sagen wie ich des hinbekäme das er den Decknamen abliest ?