Guck dir das mal genauer an und überleg was du falsch gemacht hast ;D http://wiki.sa-mp.com/wiki/SetVehicleNumberPlate
Falls dir das nicht weiterhilft: Mit printf die IDs von den Rollern ausgeben lassen ;D
Beiträge von Haxler
-
-
Da wird deine Frage beantwortet: http://wiki.sa-mp.com/wiki/Random
-
AddPlayerClass im script?
-
AddPlayerClass? Damit kannst du Skins zur Skinauswahl hinzufügen.
-
Du speicherst die beiden Variablen aber schon ab oder?
-
http://forum.sa-mp.com/showthread.php?t=179089
Gangschaltung musst du dann halt selbst machen -
Versuchs mit dem Object 19294. Das ist ein gelbes Licht das von alleine blinkt und nicht hinterher hinkt ;D
-
Erstmal musst du rausfinden welche ID die Schwimmanimation hat. Einfach unter OnPlayerUpdate:
new s[10];
format(s,10,"Anim: %d",GetPlayerAnimationIndex(playerid));
SendClientMessage(playerid,0x00FF00,s);
wenn du dann die ID hast kannst du sie einfach mit GetPlayerAnimationIndex vergleichen. -
Kenne 2 möglichkeiten:
1. Schwimmanimation abfragen (funktioniert nicht in Fahrzeugen)
2. MapAndreas -> gibt als Z-Wert 0 zurück wenn der Spieler im Wasser ist (Nachteil: Es gibt auch andere Stellen in SA die dann als Wasser erkannt werden) -
Sniper: Das hat jetzt aber mit SetPlayerVelocity nichts zu tun. Würde mich übrigens auch interessieren wie man richtig mit der Funktion umgeht.
-
Lies dir mal das durch: http://forum.sa-mp.com/showthread.php?t=55261
-
Mir fällt grad auf, dass du oben den Pfad mit "carID" formatiert hast und carID erst später aus der Datei lädst.
-
Wo liegt die Datei?
-
Hab noch ein paar Verbesserungen im OnPlayerClickPlayer-Callback:
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
ClickedPlayer[playerid] = clickedplayerid;
new string[256]; //kannst du kleiner machen
new SpielerName[MAX_PLAYERS]; //MAX_PLAYERS = 500 (standart), du solltest MAX_PLAYER_NAME verwenden
GetPlayerName(playerid,SpielerName,sizeof(SpielerName)); //hier findest du den Namen vom Spieler der einen anderen anklickt raus
//muss zu clickedplayerid geändert werden
//Außerderm würde ich den ganzen oberen teil unter die IsPlayerAdmin abfrage machen
if(IsPlayerAdmin(playerid))
{
format(string, sizeof(string),"Was willst du bei %s machen?:",SpielerName);
ShowPlayerDialog(playerid,DIALOG_CLICK,DIALOG_STYLE_LIST,string,"Kicken\nBannen\nVolles Leben geben\nNachricht Senden\nHingehen\nZu mir Porten\nBeobachten\nNicht mehr beobachten","Auswählen","Verlassen");
}
return 1;
}
Edit:
Außerdem:
if(listitem == 0)//Kick
{
new kickstring[256]; //hier erstellt du einen String der 1. viel zu groß ist und 2. nie verwendet wird
Kick(Spieler);
format(string,sizeof(string),"%s hat %s vom Server gekickt!", Admin, SpielerName); //hier formatierst du den String der weiter oben definiert wird
SendClientMessageToAll(0xffffff,kickstring); //hier schickst du einen anderen string ab (du hast den string "string" formatiert willst aber "banstring" abschicken...)
}
Ich würde den Code an deiner Stelle nochmal richtig überarbeiten. Du erstellt ziemlich viele, unnötige Variablen. Außerdem könntest du statt if(..)else if(..) switch verwenden. -
Wieso formatierst du "extraini"? Ist doch unnötig, du kannst den Wert auch direkt laden:
carID = dini_Int("extra.txt","carID"); liegt die Datei auch im ScriptFiles ordner? Also in keinem Unterordner? -
Ist FraktionsKasse als Float definiert? Wenn nicht versuchs mal mit floatround.
-
Zitat
format(Autodatei,256,"/Autos/%s.txt",carID);
fällt dir was auf?
-
http://wiki.sa-mp.com/wiki/OnPlayerRequestSpawn
ZitatReturning 0 in this callback will prevent the player from spawning
-
http://wiki.sa-mp.com/wiki/GetPlayerVehicleID guck dir das mal an
-