Ich bevorzuge y_command- aber auch nur, weil ich die YSI Libary nutze
[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
-
-
Was ist pawnCMD ?
-
Steht doch in dem Link von Kaliber...
https://forum.sa-mp.com/showthread.php?t=608474 -
wie kann ich ein frak carrespawn machen?
bei mir compilet der einfach nicht wenn ich das so habe, kann mir jemand helfen?
if(dialogid == DIALOG_Frakcars)
{
if(response)
{
if(listitem == 0)
{
for(new v=0; v<LSPDCar; v++)
{
if(GetVehicleDriver(v) == -1)
{
SetVehicleToRespawn(v);
SetVehicleHealth(v,1000);
format(string, sizeof(string), "%s hat die Fraktionsfahrzeuge der Fraktion LSPD [ID: 1]respawnt.", sendername);
ABroadCast(COLOR_YELLOW,string,1);
return 1;
}
}
}
}
if(listitem == 1)
{
for(new v=0; v<fbicar; v++)
{
if(GetVehicleDriver(v) == -1)
{
SetVehicleToRespawn(v);
SetVehicleHealth(v,1000);
format(string, sizeof(string), "%s hat die Fraktionsfahrzeuge der Fraktion FBI [ID: 2]respawnt.", sendername);
ABroadCast(COLOR_YELLOW,string,1);
return 1;
}
}
}
}
}
} -
bei mir compilet der einfach nicht wenn ich das so habe, kann mir jemand helfen?
Da ist vermutlich ein Klammerfehler und deine Schleifen sind falsch...
Aber ich würd dir eh empfehlen, es so zu schreiben:
C
Alles anzeigenif(dialogid == DIALOG_Frakcars) { if(!response) return 1; RespawnFrakVehicles(listitem); format(string, sizeof(string), "%s hat die Fraktionsfahrzeuge der Fraktion LSPD [ID: %d]respawnt.", sendername,listitem+1); ABroadCast(COLOR_YELLOW,string,1); } //Irgendwo außerhalb stock RespawnFrakVehicles(frak) { switch(frak) { case 0: { for(new i,v; i<sizeof(LSPDCar); i++) { v = LSPDCar[i]; if(GetVehicleDriver(v) != -1) SetVehicleToRespawn(v),SetVehicleHealth(v,1000); } } case 1: { for(new i,v; i<sizeof(fbicar); i++) { v = fbicar[i]; if(GetVehicleDriver(v) != -1) SetVehicleToRespawn(v),SetVehicleHealth(v,1000); } } } return 1; }
-
Kann ich irgendwie alle Objektpositionen vom Objekt z.b 295 herausfinden? (Normale Objekte keine erstellten)
Ich habe nichts gefunden.//Seite hat nicht geladen
-
Nein das geht nicht.
-
Kann ich irgendwie alle Objektpositionen vom Objekt z.b 295 herausfinden?
Mal abgesehen davon das ID 295 eine Skin ID ist, was hast du denn genau vor ?
-
Kann ich irgendwie alle Objektpositionen vom Objekt z.b 295 herausfinden? (Normale Objekte keine erstellten)
Ich habe nichts gefunden.//Seite hat nicht geladen
Diese Seite sollte dir helfen. Wählst du ein Objekt dort aus, kannst du unten links die Koordinaten sehen, wo sich das Objekt überall befindet.
Beispiel:
https://dev.prineside.com/en/g…del/3174-sm_airstrm_sml_/Siehe unten rechts.
-
@Akino Kiritani wie gesagt habe z.B geschrieben, bin auf der Suche nach einigen Ampeln.
-
-
bin auf der Suche nach einigen Ampeln.
Wozu denn ? Willst du sie entfernen oder willst du gar ein eigenes Ampelsystem bauen ?
-
Ja, ich habe gelesen das die normalen Ampeln dann nicht mehr funktionieren, wenn man ein eigenes Ampelsystem macht, und das wollte ich jetzt testen
-
und das wollte ich jetzt testen
Nur zur Info, du musst das nicht alles selbst schreiben, da gab es schon einige vor dir:
https://forum.sa-mp.com/showthread.php?t=646429
https://forum.sa-mp.com/showthread.php?t=509952
https://forum.sa-mp.com/showthread.php?t=301328Vielleicht hilft dir das ja ein wenig weiter
-
Danke nochmal fuer die Makro Variante fuer das Sprachensystem.
Leider ist in diesem Fall doch eher eine andere Variante via Funktion gewuenscht.
Ich habe das mal so gemacht, interessanterweise reconnected der Spieler wenn das hier ausgefuehrt wird Sowas habe ich vorher noch nicht geschafft.C
Alles anzeigenstock SendMessageEx(playerid, color, Language1[], Language2[] , Language3[], {Float, _}:...) { #define BYTECOUNT (cellbits / 8) if(playerid == -1) { for(new i; i<MAX_PLAYERS;i++) { if(!IsPlayerConnected(i)) continue; if(IsPlayerNPC(i)) continue; switch( player_Language[i] ) { case 0: //Language 1 { static const ARGC = 3; new n = (numargs() - ARGC) * BYTECOUNT; if (n) { new message[128], arg_start, arg_end; #emit CONST.alt Language1 #emit LCTRL 5 #emit ADD #emit STOR.S.pri arg_start #emit LOAD.S.alt n #emit ADD #emit STOR.S.pri arg_end do { #emit LOAD.I #emit PUSH.pri arg_end -= BYTECOUNT; #emit LOAD.S.pri arg_end } while (arg_end > arg_start); #emit PUSH.S Language1 #emit PUSH.C 128 #emit PUSH.ADR message n += BYTECOUNT * 3; #emit PUSH.S n #emit SYSREQ.C format n += BYTECOUNT; #emit LCTRL 4 #emit LOAD.S.alt n #emit ADD #emit SCTRL 4 return SendClientMessage(i, color, message); } } case 1: //Language 2 { static const ARGC = 3; new n = (numargs() - ARGC) * BYTECOUNT; if (n) { new message[128], arg_start, arg_end; #emit CONST.alt Language2 #emit LCTRL 5 #emit ADD #emit STOR.S.pri arg_start #emit LOAD.S.alt n #emit ADD #emit STOR.S.pri arg_end do { #emit LOAD.I #emit PUSH.pri arg_end -= BYTECOUNT; #emit LOAD.S.pri arg_end } while (arg_end > arg_start); #emit PUSH.S Language2 #emit PUSH.C 128 #emit PUSH.ADR message n += BYTECOUNT * 3; #emit PUSH.S n #emit SYSREQ.C format n += BYTECOUNT; #emit LCTRL 4 #emit LOAD.S.alt n #emit ADD #emit SCTRL 4 return SendClientMessage(i, color, message); } } case 2: //Language 3 { static const ARGC = 3; new n = (numargs() - ARGC) * BYTECOUNT; if (n) { new message[128], arg_start, arg_end; #emit CONST.alt Language3 #emit LCTRL 5 #emit ADD #emit STOR.S.pri arg_start #emit LOAD.S.alt n #emit ADD #emit STOR.S.pri arg_end do { #emit LOAD.I #emit PUSH.pri arg_end -= BYTECOUNT; #emit LOAD.S.pri arg_end } while (arg_end > arg_start); #emit PUSH.S Language3 #emit PUSH.C 128 #emit PUSH.ADR message n += BYTECOUNT * 3; #emit PUSH.S n #emit SYSREQ.C format n += BYTECOUNT; #emit LCTRL 4 #emit LOAD.S.alt n #emit ADD #emit SCTRL 4 return SendClientMessage(i, color, message); } } } } } else { switch( player_Language[playerid] ) { case 0: //Language 1 { static const ARGC = 3; new n = (numargs() - ARGC) * BYTECOUNT; if (n) { new message[128], arg_start, arg_end; #emit CONST.alt Language1 #emit LCTRL 5 #emit ADD #emit STOR.S.pri arg_start #emit LOAD.S.alt n #emit ADD #emit STOR.S.pri arg_end do { #emit LOAD.I #emit PUSH.pri arg_end -= BYTECOUNT; #emit LOAD.S.pri arg_end } while (arg_end > arg_start); #emit PUSH.S Language1 #emit PUSH.C 128 #emit PUSH.ADR message n += BYTECOUNT * 3; #emit PUSH.S n #emit SYSREQ.C format n += BYTECOUNT; #emit LCTRL 4 #emit LOAD.S.alt n #emit ADD #emit SCTRL 4 return SendClientMessage(playerid, color, message); } } case 1: //Language 2 { static const ARGC = 3; new n = (numargs() - ARGC) * BYTECOUNT; if (n) { new message[128], arg_start, arg_end; #emit CONST.alt Language2 #emit LCTRL 5 #emit ADD #emit STOR.S.pri arg_start #emit LOAD.S.alt n #emit ADD #emit STOR.S.pri arg_end do { #emit LOAD.I #emit PUSH.pri arg_end -= BYTECOUNT; #emit LOAD.S.pri arg_end } while (arg_end > arg_start); #emit PUSH.S Language2 #emit PUSH.C 128 #emit PUSH.ADR message n += BYTECOUNT * 3; #emit PUSH.S n #emit SYSREQ.C format n += BYTECOUNT; #emit LCTRL 4 #emit LOAD.S.alt n #emit ADD #emit SCTRL 4 return SendClientMessage(playerid, color, message); } } case 2: //Language 3 { static const ARGC = 3; new n = (numargs() - ARGC) * BYTECOUNT; if (n) { new message[128], arg_start, arg_end; #emit CONST.alt Language3 #emit LCTRL 5 #emit ADD #emit STOR.S.pri arg_start #emit LOAD.S.alt n #emit ADD #emit STOR.S.pri arg_end do { #emit LOAD.I #emit PUSH.pri arg_end -= BYTECOUNT; #emit LOAD.S.pri arg_end } while (arg_end > arg_start); #emit PUSH.S Language3 #emit PUSH.C 128 #emit PUSH.ADR message n += BYTECOUNT * 3; #emit PUSH.S n #emit SYSREQ.C format n += BYTECOUNT; #emit LCTRL 4 #emit LOAD.S.alt n #emit ADD #emit SCTRL 4 return SendClientMessage(playerid, color, message); } } } } return true; }
-
Leider ist in diesem Fall doch eher eine andere Variante via Funktion gewuenscht.
Wieso? :o
-
Ich habe ein Array voller Koordinaten, zu diesen will ich per Zufall eine aussuchen (x,y,z) und abfragen, ob diese eine Koordinate schon benutzt wurde, damit er beim zweiten mal dort kein Checkpoint kriegt, sondern
dann eine noch nicht benutzte Koordinate rausgesucht wird.
Ist etwas für ein Jobwas wäre das schlauste?
Wenn ich ein Enum dazu erstelle und dort z.b 0 eintrage, kann ich dann beim setzten da die 1 setzten und später abfragen ob es auf 1 ist?
Das geht ja alles nicht über Playerid oder? -
Wieso? :o
Leider gibt es da doch Errors
Wuerde dann auch gerne die funktionierend SendMessageEx Funktion nutzen um das ganze bspw. fuer Dialoge und GameTexts als auch TextDraw Strings abzuwandeln.
Leider werde ich aus dem #emit Kram nicht schlau, kann man die Funktion denn auch mit format etc. ausdruecken? Das Problem ist ja irgendwie die Argumente hinten zu erfassen.Gibt es uebrigends auch die Moeglichkeit bei zcmd, bzw. izcmd sowas wie alias einzurichten?
So dass ich bspw. die Hilfe nicht einfach mit /ayuda aufmachen kann, sondern mit /ayuda /ajuda und /help, alles fuer den gleichen Befehl. -
Ich habe einen Befehl, den man nur in einen der beiden Fahrzeug-Typen nutzen kann.
Beide Fahrzeugtypen haben die selbe Model-ID sind aber anders.
2 Schleifen hintereinander sind ja nicht so das gelbe vom Ei, was kann ich machen?
Ich kann ja nicht abfragen, ob der Spieler in dem Vehicle-Model ist, da man dafür die Vehicle-ID brauch... -
Mal eine Frage wie mach ich das das keiner zwischen 05:45 Uhr und 06:00 Uhr joinen kann.
ist das so richtig ?
if(Stunde == 5 && Minute == 45 && Sekunde == 0)
{
for(new i=0;i<GetMaxPlayers();i++) {
ShowPlayerDialog(i,Dialog_Aufraeumen,DIALOG_STYLE_MSGBOX,""SERVER_NAME"","Der Server ist aufgrund Aufräumarbeiten unerreichbar.\nBitte versuche es in Kürze erneut.","Schließen","");
SavePlayer(i);
Kick(i);
}
return 1;
} -