[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
-
-
%b sollte das sein
Okay, danke.
Dachte erst, das wäre bool, aber das wäre ja schwachsinnig -
Ich habe ein Problem mit tagof.
Ich arbeite gerade zum ersten Mal damit, und wollte wissen, warum das hier nicht funktioniert,
da es mMn eigentlich richtig aussiehtif(tagof(strlen(bin)/8) == ( Float: )){/**/}
Code
Alles anzeigenC:\Users\Chris\Desktop\Scripting\PAWN\Selfmade\gamemodes\xyz.pwn(150) : error 001: expected token: ")", but found "(" C:\Users\Chris\Desktop\Scripting\PAWN\Selfmade\gamemodes\xyz.pwn(150) : error 033: array must be indexed (variable "bin") C:\Users\Chris\Desktop\Scripting\PAWN\Selfmade\gamemodes\xyz.pwn(150) : error 029: invalid expression, assumed zero C:\Users\Chris\Desktop\Scripting\PAWN\Selfmade\gamemodes\xyz.pwn(150) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 4 Errors.
-
Ich habe ein Problem mit tagof.
Das geht so leider nichtDu musst bei tagof alles Zwischenspeichern und Schritt für Schritt machen, also schreib es so:
new idx = strlen(bin)/8,tag = tagof (idx);
if(tag == tagof (Float:)){/**/}mfg.
-
Wie kann man das Auswahlmenü bei der DIALOG_STYLE_LIST farbig verändern?
Also z.B. Item 0 - Rot, Item 1 - Blau usw...Spoiler anzeigen Mit {0x3330FFFF} davor wird der Code mit im Menü angezeigt und passieren tut nichts. -
Du brauchst den html farb code wenn mich das nicht täuscht.
-
mach das mal so {3330FF}
-
Ich möchte das der Geldbetrag im Dialog abgefragt wird
DIALOG :
Spoiler anzeigen {
if(dialogid == DIALOG_TICKET)
{
if(response == 0)
{
SendClientMessage(playerid,WEIß,"Du hast dein Ticket weggeschmissen und Flüchtest");
SetPlayerWantedLevel(playerid,1);
return 1;
}
if(response == 1)
{
SendClientMessage(playerid,WEIß,"Du hast den Betrag %d gezahlt!");
return 1;
}
}
TICKET BEFEHL
Spoiler anzeigen ocmd:ticket(playerid,params[])
{
if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,WEIß,"Du bist kein agestellter bei der Polizei");
if(DutyPD[playerid] == 0)return SendClientMessage(playerid,WEIß,"Du bist nicht im Dienst");
new pID, grund[265], betrag[265];
if(sscanf(params,"usd",pID,grund,betrag)) return SendClientMessage(playerid,HELLBLAU,"Benutze: /Ticket [PLAYERID] [GRUND] [STRAFE]");
format(grund,sizeof(grund),"Du hast ein Ticket bekommen GRUND: %s \nDu musst eine Betrag von %d zahlen", grund, betrag);
ShowPlayerDialog(pID, DIALOG_TICKET, DIALOG_STYLE_MSGBOX, "TICKET", grund, "Bezahlen", "Flüchten");
return 1;
}Wie kann ich das machen?
Danke im vorraus -
Wie kann man das Auswahlmenü bei der DIALOG_STYLE_LIST farbig verändern?
Also z.B. Item 0 - Rot, Item 1 - Blau usw...Spoiler anzeigen Mit {0x3330FFFF} davor wird der Code mit im Menü angezeigt und passieren tut nichts.
Das sollte dir helfen -> [ SCRIPTING ] [0.3C]Einen Message - Dialog mit Farben erstellen. -
Hey,
ich wollte ein EP-System in meinem Script machen und wollte nicht immer so 4 Zeilen haben.
Da habe ich mir gedacht, das ich alles wichtige in ein public mache.
Das sieht dann so aus:
forward GivePlayerEP(playerid, xp);
public GivePlayerEP(playerid, xp)
{
new string[128];
PlayerInfo[playerid][pRespekt] += xp;
format(string, sizeof(string), "* Du hast "#SERVERFARBE"+%i EXP{FFFFFF} für deine Aktion bekommen.", xp);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}Wie ich jemanden EP gebe:
GivePlayerEP(playerid, 2);
//oder
GivePlayerEP(i, 2);
//oder
GivePlayerEP(killerid, 2); //etc
Würde das so gehen? -
-
Warum muss ich immer den Nickname des Spielers eintragen und kann nicht bloß die ID nehmen damit etwas passiert?
Beispielsweise beim /kick-Befehl:
ocmd:kick(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du besitzt nicht die notwendigen Rechte!");
new pID, reason[128],string[128];
if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,GRAU,"/kick [id] [grund]");
format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
SendClientMessageToAll(ROT,string);
Kick(pID);
return 1;
}
Aber bei meinem /ban-Befehl und /makeadmin ist das gleiche Problem. Erst wenn ich den Nickname nehme wird die Person auch gekickt. Ansonsten steht da wo der SpielerName(pID) stehen soll einfach nichts, der String wird zwar an alle gesendet aber es passiert nichts. -
-
Probiere den Prameter "u" durch den Parameter "i" für Integer zu ersetzen.
Hinzukommend wäre eine Abfrage ob der Spieler connected ist nicht verkehrt, sonst kommen schnell Probleme auf.
Bitte bitte, lass es sein.Das was du da redest / schreibst, ist kompletter Mumpitz.
Sscanf gibt einen Fehler raus, wenn der Spieler nicht connected ist, eben so ist "i" als Parameter wenn man nach Usern sucht falsch.JohnsonC:
Nur mal so, es wäre schlau das sscanf Plugin zu nutzen, nicht eine 4 Jahre alte Include. -
Bitte bitte, lass es sein.Das was du da redest / schreibst, ist kompletter Mumpitz.
Sscanf gibt einen Fehler raus, wenn der Spieler nicht connected ist, eben so ist "i" als Parameter wenn man nach Usern sucht falsch.JohnsonC:
Nur mal so, es wäre schlau das sscanf Plugin zu nutzen, nicht eine 4 Jahre alte Include.Vor ca. einem Jahr gab es nach meinem Wissensstand solch ein Vorfall wo mein kompletter Mumpitz die Lösung war.
Ich schrieb, "probiere", ist wohl besser als nichts zu schreiben. Also keineswegs habe ich dies mit 100%er Weise als die Lösung angepriesen wobei diese Fehlermeldung nicht kommen sollte, wenn der Spieler connected ist. Und das ist wohl keine Kunst zu wissen ob wer online ist.
Zudem wollte er nur die ID eingeben wo dann dementsprechend i & u korrekt ist.Und Angesicht dessen spiegelt sich dein Beitrag meinem wieder. Also spiel dich nicht so auf?!
/e1
-
Vor ca. einem Jahr gab es nach meinem Wissensstand solch ein Vorfall wo mein kompletter Mumpitz die Lösung war.
Diese Lösung war vielleicht zu 0.1 Zeiten so, was aber unglaublich lange her ist.
Dein Weg war vor einem Jahr sicherlich keine Lösung, das wüsste ich.Zu dem sollte bekannt sein, das die PAWN sscanf Version schon immer anfällig für Fehler war, das ist nicht seid letztem Jahr
Somit ist deine "Lösung" falsch, weil es dieses Problem in den letzten Jahren nie gab.
Jetzt mal zu deinem 'i & u sind richtig'.
Eh wir sind immer noch bei Spielern, warum das Risiko eingehen der Spieler ist nicht connected.
i schleust den Code einfach durch wenn es eine Zahl findet,findet es was anderes -> Fehler.
Geht man wirklich nur nach Zahlen, muss man immer noch prüfen ob der Spieler auch wirklich da ist, aber warum diese Ressourcen verschwenden? Das ist nun wirklich ineffektiv bzw. Blöd -
Habe mal eine Frage bezüglich des Streamers von Ingocnito (oder wie auch immer).
Wie könnte ich diesen optimieren?
Ich nutze die neuste Include und auch das neuste Plugin, dennoch
streamt er nicht wie gewünscht. Objekte "ploppen" auf und sind auf entfernung ( keine Große) nicht sichtbar....Serversettings:
stream_distance 1000.0
stream_rate 1000 -
Die jeweilige settings bringen hinsichtlich des streamers nicht viel, wenn du willst das die Objekte von einer weiteren distanz sichtbar sind so kannst du die Drawdistanz
erhöhen enwteder über die Funktion CreateDynamicObjectEx oder durch das setzen dieser über Streamer_SetFloatData.Ebenfalls ist es möglich das zu viele Objekte auf einem Punkt sind daher kann man mit streamdistance arbeiten, um ein objekt früher oder später einzustreamen.
Zusätzlich könntest du TickRate verringern was jedoch auf die CPU leistung geht falls die Elemente zu langsam erscheinen. -
Die jeweilige settings bringen hinsichtlich des streamers nicht viel, wenn du willst das die Objekte von einer weiteren distanz sichtbar sind so kannst du die Drawdistanz
erhöhen enwteder über die Funktion CreateDynamicObjectEx oder durch das setzen dieser über Streamer_SetFloatData.Ebenfalls ist es möglich das zu viele Objekte auf einem Punkt sind daher kann man mit streamdistance arbeiten, um ein objekt früher oder später einzustreamen.
Zusätzlich könntest du TickRate verringern was jedoch auf die CPU leistung geht falls die Elemente zu langsam erscheinen.Ok, danke dir für die Info
Jetzt mal ein ganz anderes Problem:
Ich habe in mein Script den Public eingefügt:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)Ansicht passt alles, der Code darunter meines erachtens nach auch, dennoch bekomme ich ein
Error:
error 025: function heading differs from prototype
Wie kann ich diesen beheben? Auf einem Blanc Script passt alles.
Mein Aktuelles Script habe ich halt komplett geupdatet, damit alles auf 0.3z abgestimmt ist,
dennoch will der public nicht so richtig -
Wie kann ich diesen beheben? Auf einem Blanc Script passt alles.
Mein Aktuelles Script habe ich halt komplett geupdatet, damit alles auf 0.3z abgestimmt ist,
dennoch will der public nicht so richtig
Dein Pawno bezieht die Includes aus dem falschen ordner. Daher starte Pawno von dem Ordner aus von mit den aktuellsten includes und öffne danach ein skript.
Weil in der a_samp.inc ist der zusätzliche parameter enthalten -
Mit {0x3330FFFF} davor wird der Code mit im Me
Du benutzt SA-MP benutze Farben, dafür brauchst du HTML Farben. Hier der Colorpicker: http://forum.gtavision.com/posts_19_2664_1.html
Dort gibt es eine Funktion für HTML. Wenn du HTML Farben benutzt nicht den "#" mit Kopieren. -