@Pinguin: Dein CreateDynamicObject Code stimmt, jetzt musst du die Include Datei im Script eingebunden haben #include <streamer> und du musst das Streamer Plugin im plugins Ordner haben sowie es in der server.cfg eingetragen haben: Bei Linux streamer.so, bei Windows streamer.
Bevor du das alles machst update nochmal deinen Streamer und um sicher zu gehen dass du wirklich in VirtualWorld 1 bist schreib dir nen Befehl der die aktuelle virtuelle Welt ausgibt
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Hallo,
Son totaler noob im Scripten bin ich ja nun auch nicht
Das habe ich natürlich schon alles gemachtDer Spieler befindet sich auch in der VW... Aber wie gesagt das Objekt wird nicht angezeigt
-
Es weiß nicht zufällig einer, ob es möglich ist, einen Integer zu einer hexadezimalen Zahl zu konvertieren?
Auf normalem Wege ist es ja leider nicht möglich, da die Zahl für einen Integer zu groß ist.Ich habe es bisher so versucht, aber ohne Erfolg (Die Zahl für FF0088
(16711816 * 256) + 255
(16711816 * 0x100) + 0xFFIch habe danach noch einiges mit Sscanf versucht und mit diesem Code, jedoch ging nichts davon.
-
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:Code
Alles anzeigencase 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; } }
Dialog:CodeShowPlayerDialog(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? -