Könnte mich irren, aber versuch mal TextDrawShoeForPlayer unter OnPlayerSpawn zu setzen.
Beiträge von IV/Anthrax
-
-
Schau dir mal die folgenden Funktionen an, vielleicht hilft es dir:
http://wiki.sa-mp.com/wiki/GetPlayerWeapon
http://wiki.sa-mp.com/wiki/GangZoneCreate
http://wiki.sa-mp.com/wiki/TextDrawCreate
http://wiki.sa-mp.com/wiki/OnPlayerUpdate
http://wiki.sa-mp.com/wiki/TogglePlayerControllableZusammen mit den verwandten Funktionen lässt sich dein Problem damit lösen.
Ansonsten, siehe PN. -
Liegt wahrscheinlich an dem fehlenden playerid als ersten Parameter
-
Das ist seltsam, die Differenz der Y Koordinaten beträgt lediglich 1... das heißt da ist nur eine Einheit Abstand zwischen oben links und unten rechts?!
EDIT: Sorry, bin das SA:MP System nicht mehr gewöhnt, verlesen. Moment bitte.SetPlayerWorldBounds(playerid,952.6550,805.9767,-1131.2578,-1072.4991);
Funktioniert das?
Edit: playerid eingefügt
-
Hast du denn eine Variable, in der du eine Zahl speicherst, die die Fraktion eines Spielers angibt?
-
Naja, wenn du in die PVar nie etwas eingetragen hast wird das zwar compilen, aber natürlich nicht funktionieren...
-
Das ist klasse so.
-
Kriegst du selbst hin
Mach einfach 2 Koordinaten: Eine an der Stelle "oben links" und eine an der Stelle "unten rechts"
Der X Wert aus oben links ist Minimum X, der Y Wert Maximum Y.
Der X Wert aus unten rechts ist Maximum X, der Y Wert Minimum Y.Und das dann eben in die Funktion einsetzen.
-
In Zeile 26 ein new string2[256]; einfügen, dann wird es zumindest kompilieren.
Ob es dann funktioniert ist natürlich etwas anderes.Edit: ; eingefügt.
-
Naja, die Syntax findest du hier: http://wiki.sa-mp.com/wiki/SetPlayerWorldBounds
Ansonsten:
Maximum und Minimum X sind die maximalen und minimalen X Werte zu denen der Spieler kann, wenn er zwischen X300 und X500 laufen darf
wären das eben 300 und 500.
Mit Y verhält es sich genauso, Werte bekommst du aus Koordinaten an den entsprechenden Stellen. -
Du verwendest die Variable string2, die du aber vorher nicht mittels new deklariert hast...
Zeig am besten mal den ganzen CMD oder das ganze Callback. -
Wenn du bereits DCMD benutzt solltest du das aber weiterhin durchziehen, ist deutlich schneller und bequemer
als simples strcmp() -
Tut es, ja
OnPlayerCommandText:
dcmd(payday,6,cmdtext);Ganz unten (zum Beispiel):
dcmd_payday(playerid,params[])
{
#pragma unused params
new msg[128];
new minute,second,hour;
gettime(hour,minute,second);
format(msg,128,"Bis zum PayDay sind es noch: %d Minuten",60-minute);
SendClientMessage(playerid,0xFF0000FF,msg);
return 1;
} -
Naja, das war die (gängige) Version aus lvdm.pwn.
Zeig mal eines deiner anderen CMDs, wie die aussehen. -
if(strcmp(cmd, "/payday", true) == 0)
{
new msg[128];
new minute,second,hour;
gettime(hour,minute,second);
format(msg,128,"Bis zum PayDay sind es noch: %d Minuten",60-minute);
SendClientMessage(playerid,0xFF0000FF,msg);
return 1;
}Dein Code löst den PayDay aus, wenn die Minute bei gettime() 0 ist. Daher lässt sich mit diesem Code die "verbleibende Zeit bis die
Minute 0 wird" ausgeben, also mittels der Rechnung 60 Minuten - bisherige Minuten = Minuten bis 60.Edit: SendClientMessage() eingefügt.