Die Zeile ist zu lang, du musst sie teilen:
format(string,sizeof(string),"{DCDCDC}/stats {00AFFF}» {FFA000}zeigt Stats an\n{DCDCDC}/enter {00AFFF}» {FFA000}betritt ein Gebäude\n{DCDCDC}/exit {00AFFF}» {FFA000}verlässt ein Gebäude\n{DCDCDC}/pay {00AFFF}» {FFA000}übergebe jemanden Geld\n{DCDCDC}");
format(string, sizeof(string),"%s/licenses {00AFFF}» {FFA000}zeigt dir deine Lizenzen\n{DCDCDC}/showperso {00AFFF}» {FFA000}zeige anderen deinen Personalausweis\n{DCDCDC}/showlicenses {00AFFF}» {FFA000}zeige anderen deine Lizenzen\n{DCDCDC}/support {00AFFF}» {FFA000}schreibt ein Supportticket", string);
[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
-
-
Jetzt zeigt er mir nur meinen letzten Format an.
http://img5.fotos-hochladen.ne…ads/samp007jbcyg4fe2i.png
format(string,sizeof(string),"{DCDCDC}/stats {00AFFF}» {FFA000}zeigt Stats an\n{DCDCDC}/enter {00AFFF}» {FFA000}betritt ein Gebäude\n{DCDCDC}/exit {00AFFF}» {FFA000}verlässt ein Gebäude\n{DCDCDC}/pay {00AFFF}» {FFA000}übergebe jemanden Geld\n{DCDCDC}/licenses {00AFFF}» {FFA000}zeigt dir deine Lizenzen\n{DCDCDC}/showperso {00AFFF}» {FFA000}zeige anderen deinen Personalausweis\n{DCDCDC}/showlicenses {00AFFF}» {FFA000}zeige anderen deine Lizenzen");format(string,sizeof(string),"\n{DCDCDC}/support {00AFFF}» {FFA000}schreibt ein Supportticket\n{DCDCDC}/ad {00AFFF}» {FFA000}schreibt eine Werbung\n{DCDCDC}/nc {00AFFF}» {FFA000}Noobchat\n{DCDCDC}/notruf {00AFFF}» {FFA000}sendet einen Notruf ab");
format(string,sizeof(string),"\n{DCDCDC}/nextatm {00AFFF}» {FFA000}zeigt dir den nächsten Bankautomaten an\n{DCDCDC}/forumb {00AFFF}» {FFA000}schalte dich im Forum frei\n{DCDCDC}/start {00AFFF}» {FFA000}startet den Motor\n{DCDCDC}/stop {00AFFF}» {FFA000}stoppt den Motor");
format(string,sizeof(string),"\n{DCDCDC}/lichtan {00AFFF}» {FFA000}schaltet das Licht an\n{DCDCDC}/lichtaus {00AFFF}» {FFA000}schaltet das Licht aus\n{DCDCDC}/me {00AFFF}» {FFA000}Bsp: /me hustet=[Dein Name] hustet\n{DCDCDC}/warinfo {00AFFF}» {FFA000}zeigt dir die aktuellen Gebietskämpfe an");
ShowPlayerDialog(playerid, DIALOG_H1, DIALOG_STYLE_MSGBOX, "{FFFFFF}Allgemeine Befehle", string, "Zurück", "Beenden");
-
format(string,sizeof(string),"{DCDCDC}/stats {00AFFF}» {FFA000}zeigt Stats an\n{DCDCDC}/enter {00AFFF}» {FFA000}betritt ein Gebäude\n{DCDCDC}/exit {00AFFF}» {FFA000}verlässt ein Gebäude\n{DCDCDC}/pay {00AFFF}» {FFA000}übergebe jemanden Geld\n{DCDCDC}/licenses {00AFFF}» {FFA000}zeigt dir deine Lizenzen\n{DCDCDC}/showperso {00AFFF}» {FFA000}zeige anderen deinen Personalausweis\n{DCDCDC}/showlicenses {00AFFF}» {FFA000}zeige anderen deine Lizenzen");
format(string,sizeof(string),"%s\n{DCDCDC}/support {00AFFF}» {FFA000}schreibt ein Supportticket\n{DCDCDC}/ad {00AFFF}» {FFA000}schreibt eine Werbung\n{DCDCDC}/nc {00AFFF}» {FFA000}Noobchat\n{DCDCDC}/notruf {00AFFF}» {FFA000}sendet einen Notruf ab",string);
format(string,sizeof(string),"%s\n{DCDCDC}/nextatm {00AFFF}» {FFA000}zeigt dir den nächsten Bankautomaten an\n{DCDCDC}/forumb {00AFFF}» {FFA000}schalte dich im Forum frei\n{DCDCDC}/start {00AFFF}» {FFA000}startet den Motor\n{DCDCDC}/stop {00AFFF}» {FFA000}stoppt den Motor",string);
format(string,sizeof(string),"%s\n{DCDCDC}/lichtan {00AFFF}» {FFA000}schaltet das Licht an\n{DCDCDC}/lichtaus {00AFFF}» {FFA000}schaltet das Licht aus\n{DCDCDC}/me {00AFFF}» {FFA000}Bsp: /me hustet=[Dein Name] hustet\n{DCDCDC}/warinfo {00AFFF}» {FFA000}zeigt dir die aktuellen Gebietskämpfe an",string);
Du musst den String immer wieder neu in den String wieder einfügen. -
Yo, wie multipliziere ich den inputtext?
Sprich:
C
Alles anzeigenublic OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_GAME) { if(response) { if(strval(inputtext) < 2500 || strval(inputtext) > 10000) { ShowPlayerDialog(playerid,DIALOG_GAME, DIALOG_STYLE_INPUT, "Set a bet", "Type in for how much money you want to buy a ticket.", "Buy", "Cancel"); return SendClientMessage(playerid,0x00FF00FF, "{FF1717}ERROR:{FFFFFF} You must set a bet from 2.500$ to 10.000$ at least."); } new str[145]; //format(str, sizeof(str), "You have bought a ticket for %i $!", strval(inputtext)); //SendClientMessage(playerid,0x00FF00FF, str); new zahl = random(300001) + 100000; format(str, sizeof(str), "Ticketnumber: %d", zahl); if(random(2) == 0) { Showing[playerid] = 1; format(str, sizeof(str), "You have bought a ticket for %i$ and won %i $ !", strval(inputtext)); SendClientMessage(playerid,0x00FF00FF, str); PlayerPlaySound(playerid,4201, 0.0, 0.0, 0.0); TextDrawShowForPlayer(playerid, Textdraw0); TextDrawShowForPlayer(playerid, Textdraw1); TextDrawShowForPlayer(playerid, Textdraw2); TextDrawShowForPlayer(playerid, Textdraw3); TextDrawShowForPlayer(playerid, Textdraw4); //Win Textdraw TextDrawShowForPlayer(playerid, Textdraw6); TextDrawSetString(Textdraw2, str); SelectTextDraw(playerid, 0xFFFF0000); }
-
new ergebnis = strval(inputtext) * 10;
-
Habe das mal so eingefügt und erhalte 0 Errors. Aber sobald ich mein FS reloade crasht mein Server.
Serverlog:
[13:09:34] RCON (In-Game): Player [[LnD]JustMe.77] sent command: reloadfs Lotto
[13:09:34] Filterscript 'Lotto.amx' unload failed.
[13:09:34] Failed to load 'filterscripts/Lotto.amx.amx' filterscript.
[13:09:34] Filterscript 'Lotto.amx' load failed'.
[13:09:34] [debug] Server crashed due to an unknown error
[13:09:34] [debug] Native backtrace:
[13:09:34] [debug] #0 00401696 in ?? () from samp-server.exe
[13:09:34] [debug] #1 00401726 in ?? () from samp-server.exe -
Wie und wo hast du das eingefügt?
-
Unter den Includes
new ergebnis = strval(inputtext) * 2;
Dann hatte ich es Anfangs hiermit versucht
//format(str, sizeof(str), "You have bought a ticket for %i$ and won %i $ !", strval(inputtext)), strval(inputtext))*2;
Habs dann aber umgeändert und hiermit versucht
format(str, sizeof(str), "You have bought a ticket for %i$ and won %i $ !", strval(inputtext)),ergebnis;
-
Nein, das darfst du nicht unter den Includes einfügen, das musst du im Befehl vor dem format einfügen.
new ergebnis = strval(inputtext)*2;
format(str, sizeof(str), "You have bought a ticket for %i$ and won %i $ !", strval(inputtext), ergebnis);Oder:
format(str, sizeof(str), "You have bought a ticket for %i$ and won %i $ !", strval(inputtext), strval(inputtext)*2);Beides kommt auf das Gleiche raus.
-
Funktioniert sehr gut
Wieso wird mir mein String im Textdraw und im Chat angezeigt? Sollte nur im Chat sein. (Kommt seit dem ich mehrere Farben verwende)
format(str, sizeof(str), "You have bought a ticket for {00FF00}%i{FFFFFF}$ and {00FF00}won %i $ !", strval(inputtext), strval(inputtext)*2);
SendClientMessage(playerid,0xFFFFFFFF, str); -
-
Vielleicht verwendest du den String [str] doppelt, überprüf das einmal.
Mit den Farben alleine sollte das nichts zu tun haben.
-
Wieso wird mir mein String im Textdraw und im Chat angezeigt?
Diese Zeile:
format(str, sizeof(str), "Ticketnumber: %d", zahl);
muss unter die PlayerPlaySound Zeile, da du das andere format + SendClientMessage verschoben hast. -
Wieso wird meine Animation nicht ausgeführt?
CMD:test(playerid,params[])
{
ApplyAnimation(playerid,"VENDING","VEND_Use ",4.1,0,0,0,0,0);
return 1;
} -
Möglicherweise irritiert ihn das Leerzeichen, versuche es so:
ApplyAnimation(playerid,"VENDING","VEND_Use",4.1,0,0,0,0,0);Alternativ mal so:
ApplyAnimation(playerid,"VENDING","VEND_Use",1.4,0 ,1,1,0,2500,1); -
Tatsächlich, habe nicht daran gedacht. (Lösung 1 war hilfreich)
Edit: Frage dazu, gibt's als Sound dieses Geräusch was immer kommt wenn man ein Sprunk Automaten bedient?
Edit2: PlayerPlaySound(playerid,42600,0,0,0);
-
-
Ich habe ein selbsterstelltes Sprunk Object erstellt und habe angefangen die Funktionen nachzumachen wie sie Standart bei GTA sind. Es klappt bis jetzt eigentlich relativ gut, nur gibt es eine kleine Sache die ich mir nicht erklären kann:
Wenn ich ungefähr 9mal ein Getränk "nehme", geht mein Health wieder auf die Hälfte.
Mache ich das bei den schon existierenden Automaten passiert da nichts.Hier mein Code unter OnPlayerKeyStateChange
else if(IsPlayerInRangeOfPoint(playerid, 0.2,1411.1259,-1484.6494,106.6032) )//Sprunk Machine
{
ApplyAnimation(playerid,"VENDING","VEND_Use",4.1,0,0,0,0,0);
PlayerPlaySound(playerid,42600,0,0,0);
GivePlayerMoney(playerid,-1);
new Float:health;
GetPlayerHealth(playerid,health);
SetPlayerHealth(playerid,health+33.3);
}Frage Nummer 2: Geht mein HP mit meinem aktuellen Code über 100?
-
Das ist ein Fehler von SA-MP, dass die Health-Anzeige ab 255 (?) wieder runter geht. Du hast die Health aber trotzdem, sie wird nur nicht angezeigt. Fällst du wieder unter den Wert, dann geht sie wieder hoch. Das ist auch bei 511 so, etc... (256er-Schritte, wenn ich mich richtig erinnere).
-
Das heißt also auch das mein Health über 100 geht, richtig? Möchte das verhindern, man kann ja bei den normalen Automaten auch nicht über 100 gehen wenn ich nicht falsch liege.
-
SetPlayerHealth(playerid,health+33.3);
zu:
health += 33.3;
if(health > 100.0) health = 100.0;
SetPlayerHealth(playerid,health);