Portable14, 01.10.2008, 12:09 |
---|
Hallo, ich habe mal vor Monaten gescriptet und danach mal das SPiel gewechselt. Jetzt fange ich mal wieder an und muss ins Scripten erstmal wieder rein kommen. So dazu hab ich ein paar fragen. Ich hoffe das Profis hier im Forum mir helfen können. 1. Ich kann leider nicht mehr in der Tram in San Fierro einsteigen. Nur als Beifahrer. Liegt es am Script oder an dem neuen SA-MP? Zitat: AddStaticVehicle(449,-2006.50,149.79,28,0.5965,1,74); 2. Ich würde gerne den Zug (Brown Streak) nur als Admin Zug verwenden. Der Spieler soll dann rausgeschmießen werden und ein Gametext aufleuchten "Nur für Admin´s". Mit GameTextforPlayer weiß ich wie es funktioniert, aber mit Entervehicle und so komm ich nicht weiter. 3. Würde ich die Swat Person gerne als Admin Skin verwenden. Und wenn man die Person nimmt, stirb man bei Spawn und es erscheint eine Nachricht (Chat) "Wechsel dein Skin!!!" 4. Ich würde gern mal wissen die man das IsPlayerAdmin einsetzten muss. Wäre nett, wenn jemand paar Beispiele hat. Ich danke allen die mir helfen können. Mfg Florian |
FloRaX, 01.10.2008, 12:19 |
---|
Das könnte auch in denn Scriptfragen Thread |
Recycler, 01.10.2008, 17:38 |
---|
#1 http://forum.gtavision.com/posts_51_470_1.html #2 #3 #4 siehe oben 100% deiner Fragen wurden schon von mir oder anderen mindestens 1x beantwortet. MfG Recycler |
Portable14, 01.10.2008, 19:35 |
---|
Hallo, ich danke vielmals für die Scripts. Ich werde sie jetzt mal in meinen Gamemode einbauen. Ich werde dann nochmal fragen wenn es schwierigkeiten gibt (was ich nicht hoffe). Mfg Florian |
Portable14, 09.10.2008, 10:51 |
---|
Zitat: public OnGameModeInit() { ... new azug; azug = CreateVehicle(537,2240.2058,2466.2283,3.0322,270.0516,-1,-1,600); ... } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { if (!IsPlayerAdmin(playerid) && vehicleid == azug) { RemovePlayerFromVehicle(playerid); GameTextForPlayer(playerid, "Nur für Admins!!!"); } } Ich habe noch paar Probleme damit aber ist es richtig? Es kommen nähmlich immer Fehler. EDIT: Sorry für den Doppelpost! |
Jermuk, 09.10.2008, 11:20 |
---|
Und was sind das für Fehler? Gruß Jermuk |
Macronix, 09.10.2008, 14:07 |
---|
Das GameTextForPlayer schaut so aus: Du hast bei deinem GameTextForPlayer nur die playerid und den Text Und mach am besten bei deinem RemovePlayerFromVehicle(playerid); folgendes: Probiers aus, weil das mit RemovePlayerFromVehicle kaum Sinn ergibt, da das OnPlayerEnterVehicle genau in dem Moment wo man F drückt, passiert... Und das RemovePlayerFromVehicle eigentlich nur dafür ist, wenn man schon in einem Auto sitzt (dann würde eher OnPlayerStateChange passen... aber so ists nun auch ok :D) |
Portable14, 09.10.2008, 20:44 |
---|
Das der Script mit dem 1 Error und paar Warnings. |
dödel, 09.10.2008, 21:00 |
---|
Du musst "new aswat;" über Main setzen, es darf in keinem Public stehtn, sonst kannst du es nicht global verwenden |
Portable14, 09.10.2008, 21:13 |
---|
GetPlayerPos(playerid,x,y,z); bei der Position zeigt er noch das Tag mismatch an sonst geht alles. Und wenn ich in das Auto (nicht als Admin) einsteige steht sofort "Nur für Admins!" und werde dann auf dem Feld gespawnt. |
Recycler, 09.10.2008, 21:18 |
---|
Floats verwenden. MfG Recycler |
dödel, 09.10.2008, 21:19 |
---|
new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); SetPlayerPos(playerid,x,y,z+2.0); Edit: Eine weit aus bessere Methode wäre allerdings den Code so zu gestalten: Somit kannst du all deine Adminfahrzeuge in case auflisten Bsp.: case azug, aswat, bswat, bzug, crhino: <? und ?> gehört natürlich nicht zum Code |
Portable14, 10.10.2008, 14:23 |
---|
Cool danke das wäre nähmlich meine nächste Frage gewesen, wie ich mehrere aufliste. Dann danke ich allen!!! Edit: Was bedeutet eigentlich dieses SetPlayerPos(playerid,x,y,z+2.0);??? Also welche Funktion hat es? Und das if(newstate == 2)??? Edit2: Es gibt wieder paar Fehler: Die new: Die Autos sind auch erstellt!!! P.S.: Pawno zeigt "Warning" in der Zeile 1060. Die gibt es aber nicht!!! Mfg Florian |
Recycler, 10.10.2008, 14:29 |
---|
Ein Float hat die Eigenschaft, eine nicht ganze Zahl != aufzunehmen und nichts anderes. Deshalb musst du jede ganze Zahl mit mindestens einer Dezimalstelle ausschreiben. Es funktioniert zwar auch ohne, ist aber nicht nach den Regeln. Für ganze Zahlen benutzt man Integer. if(newstate == 2) ist eine Bedingung, die dann erfüllt ist, wenn der neue Status des Spielers 2 (PLAYER_STATE_DRIVER) ist. Die ID's findest du in a_samp.inc MfG Recycler |
Macronix, 10.10.2008, 15:13 |
---|
Das SetPlayerPos(playerid,x,y,z+2); macht das wenn der spieler im auto ist das er 2 Meter über dem Auto/Zug spawnt Ersetz ma die Float:x,y,z zu xA yA zA... probier das mal ^^ und ein new Float:x,... muss wohl weg.. |
Portable14, 10.10.2008, 16:15 |
---|
Es geht leider nichts davon. Kommen entweder die selben oder mehr Errors und Warnings. |
dödel, 10.10.2008, 17:04 |
---|
Hm.. joah, ich habe nicht daran gedacht, das die angaben in case nicht variabel sein dürfen, nimm einfach mal diesen code Nun findet die Auflistung in der if abfrage statt if(vehid == azug || vehid == aswat || vehid == bswat || vehid == bzug ...) Das || steht für oder, d.h. WENN(vehid == azug ODER vehid == aswat) Nur mal zur vedeutlichung |
Recycler, 10.10.2008, 17:22 |
---|
+1 MfG Recycler |
Portable14, 10.10.2008, 20:21 |
---|
dödel hat folgendes geschrieben: Bei dem Script geht alles nur wenn ich dann in meinen Server gehe stürtzt mein GTA ab. Hab schon andere Mods pobiert die gehen dann. recyler hat folgendes geschrieben: new bool:cars[MAX_VEHICLES]; public OnGameModeInit(...) { cars[CreateVehicle(...)] = true; return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { if (newstate == 2) { if (!IsPlayerAdmin(playerid)) { new vehid = GetPlayerVehicleID(playerid); if (cars[vehid] == true) { new Float:xpos, Float:ypos, Float:zpos; GetPlayerPos(playerid,xpos,ypos,zpos); SetPlayerPos(playerid,xpos,ypos,zpos+2.0); GameTextForPlayer(playerid, "Nur für Admins!!!", 5000, 5); } } } return 1; } Der Script geht auch. Danke. Aber ich würde es gern so haben wie vorhin wo die gar nicht erst ensteigen können. Wo muss ich das ändern??? |
dödel, 10.10.2008, 20:28 |
---|
Portable14 hat folgendes geschrieben: nur wenn ich dann in meinen Server gehe stürtzt mein GTA ab Das kann jawohl nicht an dem Code von mir liegen, aber du sagtest ja, bei anderen Modes funktioniert es. |
Portable14, 10.10.2008, 20:52 |
---|
dödel hat folgendes geschrieben: Das kann jawohl nicht an dem Code von mir liegen, aber du sagtest ja, bei anderen Modes funktioniert es. Ja sry hab eine Zahl vergessen vom Panzer Danke jetzt funktioniert alles. Ich danke Euch. Dann kann der Thread geschlossen werden! Mfg Florian |
dödel, 10.10.2008, 20:57 |
---|
Portable14 hat folgendes geschrieben: Dann kann der Thread geschlossen werden! Mfg Florian Kann, muss aber nicht, vllt. hat bald noch jemand die selben fragen und dann kann er sich hier umsehen, oder möglichweise noch mehr Fragen zum Thema äußern |