| Robdeflop1, 10.09.2009, 19:18 |
|---|
| Hi Ich habe ein Script mitdem ich tore öffne und schließe. Das sieht so aus: Zitat:#include <a_samp> #pragma tabsize 0 #define COLOR_RED 0xFF0000AA #define COLOR_YELLOW 0xFFFF00AA #define FILTERSCRIPT #if defined FILTERSCRIPT new y_gate; public OnFilterScriptInit() { y_gate = CreateObject(3816, -2323.615479, 2195.620605, 9.502295, 0.0000, 0.0000, 0.0000); print("\n--------------------------------------"); print(" Filterscript by Robdeflop"); print("--------------------------------------\n"); return 1; } public OnFilterScriptExit() { return 1; } #else #endif public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp(cmdtext, "/hangarhoch", true) == 0){ MoveObject(y_gate,-2323.615479, 2195.620605, 20.352274,0.5); SendClientMessage(playerid, COLOR_YELLOW,"Hangar wird hochgefahren!"); return 1; } if (strcmp(cmdtext, "/hangarrunter", true) == 0){ MoveObject(y_gate,-2323.615479, 2195.620605, 9.502295,0.5); SendClientMessage(playerid, COLOR_YELLOW,"Hangar wird gesenkt!"); return 1; } return 0; } Was muss ich machen, damit ich das ín einem bestimmtem radius üffnen kann? Wenn ich zu weit weg bin, soll nichts passieren, also auch keine meldung kommen "SERVER: Unknown Command" Pls help MFG, RoB |
| Rafioso, 10.09.2009, 19:57 |
|---|
| Erstelle da wo du willst, dass man das Tor öffnen kann, einen In_der_Zone-Bereich. Beispiel: Admin Area http://forum.gtavision.com/posts_51_461_1.html |
| Robdeflop1, 10.09.2009, 20:07 |
|---|
| Hi Das sieht ja so aus: Zitat:#include <a_samp> new gAreaTime = 3000; forward AdminArea(playerid); public OnGameModeInit() { SetTimer("AdminArea",gAreaTime,1); return 1; } public AdminArea(playerid) { new i, Float:X, Float:Y, Float:Z; for (i = 0; i < MAX_PLAYERS; i++) { GetPlayerPos(i, X, Y, Z); if(X <= 2047.7998 && X >= 1806.3052 && Y <= 1712.3303 && Y >= 1449.5577) { if(IsPlayerAdmin(i)) { } else { SetPlayerHealth(i,0); } } } } Aber wie bekomme ich das in mein script oda so?? Soll ja nur ein radius von ca 10 meter um mein tor sein, nur in dem bereich kann man das tor öffnen, sonst nichts. Der spieler soll ja nicht gekillt werden oda so. MFG, RoB |
| Sh3LteR, 10.09.2009, 20:17 |
|---|
| bei GetPlayerPos cords ändern? Also geringer machen und testen?? Und SetPlayerHealth weg, und wenn ein error kommt, } wegmachen, schrittweise^^ , weis nimma wie viel weggehört. |
| Robdeflop1, 10.09.2009, 20:21 |
|---|
| Hi Also, das könnte ich mal versuchen^^ Soll ich das dann einfach iwo in mein filterscript einfügen? MFG, RoB |
| Sh3LteR, 10.09.2009, 20:43 |
|---|
| Am besten in den Gamemod ... |
| Robdeflop1, 11.09.2009, 14:21 |
|---|
| ok^^ Ich mach meistens immer nur filterscripts ![]() Das is für mich übersichtlicher un ich muss nich im GM durchblättern MFG, RoB |
| Robdeflop1, 11.09.2009, 16:06 |
|---|
| Hi Ich hab ne andere Idee. Ich hab in meinem server ein menu, womit man teleports auswählen kann. Ich hab grad mal versucht die Tore/Objecte auch mit einem Menu auszuwählen, dass sie sich dann bewegen. Aber das hat iwie nicht geklappt :*( Ich war freezed un das tor ist mehrmals gespawnt worden... So sieht mein script aus: Zitat:#include <a_samp> #define COLOR_YELLOW 0xFFFF00AA new y_gate; new Menu:Teleports; public OnPlayerConnect(playerid) { SendClientMessage(playerid, COLOR_YELLOW, "/Tor um Tore zu öffnen und schließen"); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/Tor",cmdtext, true, 10)==0) { Teleports = CreateMenu("TELEPORTS",2,200,100,150,100); AddMenuItem(Teleports, 0, "Marine-auf"); AddMenuItem(Teleports, 0, "Marine-zu"); AddMenuItem(Teleports, 0, "Veldenz-auf"); AddMenuItem(Teleports, 0, "Veldenz-zu"); AddMenuItem(Teleports, 0, "Dock-auf"); AddMenuItem(Teleports, 0, "Dock-zu"); ShowMenuForPlayer(Teleports, playerid); TogglePlayerControllable(playerid, 0); return 1; } return 0; } public OnPlayerSelectedMenuRow(playerid, row) { new Menu:Current = GetPlayerMenu(playerid); if (Current == Teleports) { switch(row) { case 0:{ y_gate = CreateObject(980, -2318.629150, 2386.114258, 1.936819, 0.0000, 0.0000, 56.2500); MoveObject(y_gate,-2318.629150, 2386.114258, 7.311823,4); SendClientMessage(playerid, COLOR_YELLOW,"Tor wird geöffnet!"); } case 1:{ y_gate = CreateObject(980, -2318.629150, 2386.114258, 1.936819, 0.0000, 0.0000, 56.2500); MoveObject(y_gate,-2318.629150, 2386.114258, 1.936819,4); SendClientMessage(playerid, COLOR_YELLOW,"Tor wird geschlossen!"); } case 2:{ SetPlayerPos(playerid,-669.9276,1050.2535,654.2639); TogglePlayerControllable(playerid, 1); SendClientMessageToAll(COLOR_YELLOW, "Ein Depp hat sich zum Stunt1 teleportiert!");} case 3:{ SetPlayerPos(playerid,834.8551,-3007.4299,14.2109); TogglePlayerControllable(playerid, 1); SendClientMessageToAll(COLOR_YELLOW, "Ein Spieler hat sich zu meinem Dorf teleportiert!");} case 4:{ SetPlayerPos(playerid,833.1293,-1800.9092,13.3950); TogglePlayerControllable(playerid, 1); SendClientMessageToAll(COLOR_YELLOW, "Ein Depp hat sich zum Santa Maria Beach teleportiert!");} case 5:{ SetPlayerPos(playerid,-2328.8987,2391.0034,5.7813); TogglePlayerControllable(playerid, 1); SendClientMessageToAll(COLOR_YELLOW, "Ein Spieler hat sich zur Marine Teleportiert!");} } } return 1; } public OnPlayerExitedMenu(playerid) { new Menu:Current = GetPlayerMenu(playerid); if( Current == Teleports){ TogglePlayerControllable(playerid,1);} return 1; } So sieht das aus. Nur die ersten beiden case haben was mit toren zu tun, die anderen sin noch von den teleports, ich hab das menu einfach kopiert^^ Das script womit ich vorher alles gemacht hab sieht so aus: Zitat:#include <a_samp> #pragma tabsize 0 #define COLOR_RED 0xFF0000AA #define COLOR_YELLOW 0xFFFF00AA #define FILTERSCRIPT #if defined FILTERSCRIPT new y_gate; public OnFilterScriptInit() { y_gate = CreateObject(3816, -2323.615479, 2195.620605, 9.502295, 0.0000, 0.0000, 0.0000); print("\n--------------------------------------"); print(" Filterscript by Robdeflop"); print("--------------------------------------\n"); return 1; } public OnFilterScriptExit() { return 1; } #else #endif public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp(cmdtext, "/hangarhoch", true) == 0){ MoveObject(y_gate,-2323.615479, 2195.620605, 20.352274,0.5); SendClientMessage(playerid, COLOR_YELLOW,"Hangar wird hochgefahren!"); return 1; } if (strcmp(cmdtext, "/hangarrunter", true) == 0){ MoveObject(y_gate,-2323.615479, 2195.620605, 9.502295,0.5); SendClientMessage(playerid, COLOR_YELLOW,"Hangar wird gesenkt!"); return 1; } return 0; } Das war aber immer doof, die befehle einzugeben, hat aber geklappt. Wie würdet ihr das ins Menu einbauen? MFG, RoB |
| Sh3LteR, 11.09.2009, 16:49 |
|---|
| Öhm.. bei deinem menü, iwie creatobjekt in das menü rein? CreatObjekt istja immer in Ongamemodinit ... ( wenn es ein FS ist, dann in Onfilterscriptinit oder wie das heißt , und dass menü teleportscript^^, also ändere dass auch noch, sieht besser aus ,vllt noch Credits?^^ Also im case gehört einfach nur MoveObject(); Hoffe dass ich richtig liege^^ |
| Robdeflop1, 11.09.2009, 16:55 |
|---|
| ok, ich probiers mal aus xDDD Ich bin halt noch totaler noob, obwohl ich mir schon mehrere tuts durchgelesen hab xDD Iwie will das nur langsam in meinen kopf. Aber das wird schon, keine sorge. Ihr seid ja so nett und hilft mir ![]() MFG, RoB |
| Robdeflop1, 11.09.2009, 17:12 |
|---|
| Hi Sooo, ich habs wieder probiert. Leider gings nicht :*( Zitat:#include <a_samp> #define COLOR_YELLOW 0xFFFF00AA new y_gate; new Menu:Teleports; public OnFilterScriptInit() { y_gate = CreateObject(980, -2318.629150, 2386.114258, 1.936819, 0.0000, 0.0000, 56.2500); //Tor eingang Marine y_gate = CreateObject(980, 832.447571, -1811.389038, 14.372936, 0.0000, 0.0000, 180.0000); //Tor eingang Veldenz y_gate = CreateObject(10828, -2225.758789, 2099.969482, 2.613731, 0.0000, 0.0000, 0.0000); //Tor Dock return 1; } public OnPlayerConnect(playerid) { SendClientMessage(playerid, COLOR_YELLOW, "/Tor um Tore zu öffnen und schließen"); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/Tor",cmdtext, true, 10)==0) { Teleports = CreateMenu("Tore",2,200,100,150,100); AddMenuItem(Teleports, 0, "Marine-auf"); AddMenuItem(Teleports, 0, "Marine-zu"); AddMenuItem(Teleports, 0, "Veldenz-auf"); AddMenuItem(Teleports, 0, "Veldenz-zu"); AddMenuItem(Teleports, 0, "Dock-auf"); AddMenuItem(Teleports, 0, "Dock-zu"); ShowMenuForPlayer(Teleports, playerid); TogglePlayerControllable(playerid, 0); return 1; } return 0; } public OnPlayerSelectedMenuRow(playerid, row) { new Menu:Current = GetPlayerMenu(playerid); if (Current == Teleports) { switch(row) { case 0:{ MoveObject(y_gate,-2318.629150, 2386.114258, 7.311823,4);} case 1:{ MoveObject(y_gate,-2318.629150, 2386.114258, 1.936819,4);} case 2:{ SetPlayerPos(playerid,-669.9276,1050.2535,654.2639); TogglePlayerControllable(playerid, 1); SendClientMessageToAll(COLOR_YELLOW, "Ein Depp hat sich zum Stunt1 teleportiert!");} case 3:{ SetPlayerPos(playerid,834.8551,-3007.4299,14.2109); TogglePlayerControllable(playerid, 1); SendClientMessageToAll(COLOR_YELLOW, "Ein Spieler hat sich zu meinem Dorf teleportiert!");} case 4:{ SetPlayerPos(playerid,833.1293,-1800.9092,13.3950); TogglePlayerControllable(playerid, 1); SendClientMessageToAll(COLOR_YELLOW, "Ein Depp hat sich zum Santa Maria Beach teleportiert!");} case 5:{ SetPlayerPos(playerid,-2328.8987,2391.0034,5.7813); TogglePlayerControllable(playerid, 1); SendClientMessageToAll(COLOR_YELLOW, "Ein Spieler hat sich zur Marine Teleportiert!");} } } return 1; } public OnPlayerExitedMenu(playerid) { new Menu:Current = GetPlayerMenu(playerid); if( Current == Teleports){ TogglePlayerControllable(playerid,1);} return 1; } Ich werde dann immernoch gefreezed und es tut sich nichts. Ich weiß einfach nicht weiter. Kann mir vielleicht einer helfen? bitte MFG, RoB |
| Sh3LteR, 11.09.2009, 17:23 |
|---|
Ich wunder mich dass das mit cmd überhaupt funktionieren konnte ... oO Naja weiß auch nicht obs so funzt, hab kein GTA installed, sonst täte ich´s selbst test, wenns trotzdem nicht funktioniert, hab ich leider keine Ahnung, dann muss sich wer anders dransetzen, bin zu faul GTASA zu installen sry^^ , is unnötiger steicherplatz, dar ichs sowieso nichtmehr zogge ...
|
| Robdeflop1, 11.09.2009, 17:51 |
|---|
| Hi Du hast mir sehr geholfen! Aber du hast einen fehler gemacht. Zitat:case 0:{ MoveObject(y_gate[1],-2318.629150, 2386.114258, 1.936819,4);} case 1:{ MoveObject(y_gate[2],-2318.629150, 2386.114258, 7.311823,4);} case 2:{ So hast du´s gemacht. Aber da muss in beiden y_gate ne 1 in den klammern stehen, weils ja das object von der marine is. Vielen dank! MFG, RoB |
| Robdeflop1, 11.09.2009, 18:00 |
|---|
| es funzt zwar, aber ich bin immer gefreezed nachdem ich ein tor ausgewählt habe. Sry 4 doppelpost MFG, RoB |
| Sh3LteR, 11.09.2009, 18:07 |
|---|
Robdeflop1 hat folgendes geschrieben:Hi Du hast mir sehr geholfen! Aber du hast einen fehler gemacht. Zitat:case 0:{ MoveObject(y_gate[1],-2318.629150, 2386.114258, 1.936819,4);} case 1:{ MoveObject(y_gate[2],-2318.629150, 2386.114258, 7.311823,4);} case 2:{ So hast du´s gemacht. Aber da muss in beiden y_gate ne 1 in den klammern stehen, weils ja das object von der marine is. Vielen dank! MFG, RoB ALso sind das 2 tore, die sich gleichzeitig öffnen sollen? ok.. (Edit: Ich weiß zwar nd wie du das jetzt meinst aber es sind 3 tore defeniert, mit dem [1] usw. werden sie einzeln defeniert, meiner meinung nach, sind alle 3 verschiedene tore ... das heißt, wie ichs oben gepostet habe ist es richtig, denn sonst müsste man sie ja nicht defenieren ...) Du bist gefreezt? Ja ok, bewegen sich die tore auch?? Oder unverändert? //Edit 2²: Ich habs so bei mir defeniert gehabt, also mit cmd aber egal, man muss jedes tor einzeln defeniren ... auch wenn man mehrere mit einem cmd bewegen will ... |
| Robdeflop1, 11.09.2009, 18:10 |
|---|
| Die tore bewegen sich Un es soll sich nur ein tor bewegen^^ Gegen das freezed kann ich nichts machen. Wenn ich mich mit dem teleporter wieder iwo hinteleporte, dann bin ich unfreeze. MFG, RoB |
| Sh3LteR, 11.09.2009, 18:20 |
|---|
Wenn ein error da ist, dann spiel dich mit den } klammern^^ Jetzt muss es funzen |
| Robdeflop1, 11.09.2009, 18:28 |
|---|
| Jop, klappt, thx : ) you are the best^^ MFG, RoB |
| Sh3LteR, 11.09.2009, 18:33 |
|---|
Robdeflop1 hat folgendes geschrieben:Jop, klappt, thx : ) you are the best^^ MFG, RoB Nö bin nd the best^^ Das hätte ich schon am anfang sehen sollen
|
| Robdeflop1, 11.09.2009, 21:43 |
|---|
| schon, aber immerhin besser als ich xDDD Danke *wink* |