[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
-
-
Warum werden die Spieler nicht gefreezt wen Sie nicht im Admindienst sind??
Zeig mal dein FreezePlayer
-
-
Ups gar nicht gesehen das du bei AdminDienst playerid und bei FreezePlayer i verwendest, wird wohl daran liegen.
-
-
Ich würde das nicht Fehler nennen. Das ist eine ziemlich präzise Aussage was du zu tun hast
-
@SynonymousZ würde drauf trippen YSF Plugins mal akualisieren
-
Hört sich gut an!
Wenn es dann nicht geht würde ich mir mal den releasedate vom streamer plugin anschauen und dann die ysf Version raussuchn, welche am dichtesten vor der streamerversion veröffentlicht wurde nehmen
-
C:\Users\PC\Desktop\SERVER\gamemodes\server.pwn(53533) : warning 213: tag mismatch: expected tag none ("_"), but found "bool"
Codenew frak = Spieler[playerid][pFraktion]; if( !IsAFightFaction(frak) && !Spieler[playerid][pFraktion] == 14) { //53533 return SendClientMessage(playerid, COLOR_RED, "[INFO] {FFFFFF}Du bist kein Gangs/Mafien-Mitglied."); }
Codestock IsAFightFaction(Faction) { if((Faction == 6 || Faction == 7 || Faction == 10 || Faction == 11 || Faction == 12 || Faction == 13|| Faction == 20 || Faction == 21)) return 1; return 0; }
Möchte doch nur einfach das die Fraktion ID 14 Zugreifen kann, bei IsAFightFaction kann ich nicht hinzufügen da die mehrere sachen haben als ID 14
-
-
-
Dies ist ein Auszug vom /motor
Code
Alles anzeigenif(engine == VEHICLE_PARAMS_OFF || engine == VEHICLE_PARAMS_UNSET) { if(fraktion && ( fraktion != 8) ) { if((fraktion != player_fraktion) && !IsPoliceVehicleAllowed(player_fraktion, fraktion)) { if(engine == VEHICLE_PARAMS_OFF || engine == VEHICLE_PARAMS_UNSET) { SendClientMessage(playerid, COLOR_YELLOW, "Du kannst den Motor nicht starten, da du nicht der Fraktion angehörst."); } else { SendClientMessage(playerid, COLOR_YELLOW, "Du kannst den Motor nicht ausschalten, da du nicht der Fraktion angehörst."); } return 1; } }
Dies sind die Abfragen beim /motor
Die Polizei kann jedes Fraktion der anderen Staatlichen Einheiten Fahren:
Codestock IsPoliceVehicleAllowed(pfraktion, vfraktion) { if( vfraktion == 1 || vfraktion == 2 || vfraktion == 16 || vfraktion == 18 || vfraktion == 22 ) { if( pfraktion == 1 || pfraktion == 2 || pfraktion == 16 || pfraktion == 18 || pfraktion == 22) { return 1; } } return 0; }
Dies ist der stock der Abruft ob das Fahrzeug der Fraktion gehört:
Codestock GetVehicleFraktion(vehicleid) { for(new fV;fV<MAX_FVEHS;fV++) { if(vehicleid == fVehicle[fV][CarId])return fV; } return INVALID_VEHICLE_ID; }
Habe zum Test Fratkion Fahrzeuge für die Folgenden ID´s erstellt: 1, 2 , 3, 4
1 = LSPD 2=FBI 3=LSMD 4=San News
Jetzt stell ich mir die frage die Fraktion 3 ist nicht angegeben das ein LSPDler die das Fahrzeug fahren kann warum kann er das Fahrzeug fahren und das von der Fraktion 4 kann er dann garnicht mehr fahren?
In der Datenbank ist alles richtig eingetragen, und wird auch alles richtig geladen.
-
if(vehicleid == fVehicle[fV][CarId])return fV;
Du gibst hier doch nur die Fahrzeugid zurück nicht die FraktionsID
-
Sollte das den nicht reichen?
Das ist die Abfrage ob das Fahrzeug der Fraktion gehört!
Codestock GetVehicleFraktion(vehicleid) { if( vehicleid < 0 || vehicleid > GetVehiclePoolSize() ) return 0; if(FrakCarInfo[vehicleid][f_frak] != 0 && FrakCarInfo[vehicleid][f_dbid] != 0) { return FrakCarInfo[vehicleid][f_frak]; } return 0; }
Das War die Alte abfrage aber das geht nun nicht mehr so..
-
-
Code
Alles anzeigenif(engine == VEHICLE_PARAMS_OFF || engine == VEHICLE_PARAMS_UNSET) { if(GetVehicleFraktion(vID) != -1 && (GetVehicleFraktion(vID) != 8)) { if(GetVehicleFraktion(vID) != Spieler[playerid][pFraktion] && !IsPoliceVehicleAllowed(Spieler[playerid][pFraktion], GetVehicleFraktion(vID) != -1)) { if(engine == VEHICLE_PARAMS_OFF || engine == VEHICLE_PARAMS_UNSET) { SendClientMessage(playerid, COLOR_YELLOW, "Du kannst den Motor nicht starten, da du nicht der Fraktion angehörst."); } else { SendClientMessage(playerid, COLOR_YELLOW, "Du kannst den Motor nicht ausschalten, da du nicht der Fraktion angehörst."); } return 1; } }
Danke,
Habe ich nun so geschrieben jetzte kann jede Fraktion das Fahrzeug fahren was auch anderen Fraktion gehören das sollten Sie eben nicht außer Sie sind in LSPD, FBI die sollen die Fahrzeuge untereinander Fahren könn...
/E:
Zumindest kann das PD alle Fraktion Fahrzeuge fahren.
Muss hier irgendwo der Fehler liegen
-
GetVehicleFraktion(vID) != -1)
Das -1 heißt einfach nur das kein Fahrzeug gefunden wurde.
In Funktionen musst du das != -1 natürlich weg lassen.
&& !IsPoliceVehicleAllowed(Spieler[playerid][pFraktion], GetVehicleFraktion(vID))) {
-
Beitrag von Dr. Frauenarzt ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Behoben (). -
Hab da irgendwas falsch gemacht
Er zeigt überall mein Namen an sowie das alle Offline sind obwohl ich ja Online bin sowie ein weiterer Leader.
Code
Alles anzeigenocmd:leaderlist(playerid) { new data[128],fName,igName[MAX_PLAYER_NAME],showList[1200]; mysql_query("SELECT `Name`, `Leader` FROM `accounts` WHERE `Leader` > 0"); mysql_store_result(); while(mysql_fetch_row_format(data)){ strins(data, "|", strlen(data)); printf("data: %s", data); new oldi=0, count=0; for(new i=0; i<strlen(data); i++) { if(data[i]=='|') { count++; new tmpstring[sizeof(data)]; tmpstring=data; strdel(tmpstring, i, strlen(tmpstring)); strdel(tmpstring, 0, oldi+1); switch(count) { case 1: format(igName, sizeof(igName), "%s", tmpstring); case 2: fName = strval(tmpstring); } oldi=i; } } printf("sName: %s | fName: %d | return: %s", igName, fName, GetFraktion(fName)); format(showList,sizeof(showList),"%s{FFFFFF}%s Leader: %s (%s{FFFFFF})\n",showList,GetFraktion(fName),SpielerInfo[playerid][sName],((!OnlineByName(igName))?("{F6000F}Offline"):("{00EE14}Online"))); } mysql_free_result(); ShowPlayerDialog(playerid,DIALOG_LEADERS,DIALOG_STYLE_MSGBOX,"Leaders",showList,"Bestätigen",""); return 1; } stock GetFraktion(frak) { new fName[37]="Unbekannt"; switch(frak) { case 1:{fName="San Andreas Government Department";} case 2:{fName="San Andreas Police Department";} case 3:{fName="Central Defensive Marshallas Service";} case 4:{fName="San Andreas Feuerwehr";} case 5:{fName="San Andreas Rettungsdienst";} case 6:{fName="Federal Bureau of Investigation";} case 7:{fName="San Andreas Ordnungsamt";} case 8:{fName="Interglobal Television";} case 9:{fName="Grove Street Families";} case 10:{fName="Rolling High Ballas";} case 11:{fName="Los Santos Vagos";} case 12:{fName="Los Aztecas";} case 13:{fName="San Fierro Rifa";} case 14:{fName="Triaden";} case 15:{fName="Yakuza";} case 16:{fName="Camorra";} case 17:{fName="Italian Mafia";} case 18:{fName="Russian Mafia";} case 19:{fName="International Contract Agency";} } return fName; } stock OnlineByName(string[]) { for(new i; i < MAX_PLAYERS ; ++i) if(IsPlayerConnected(i) && !strcmp(string,f_pName(i),false)) return 1; return 0; } stock f_pName(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, MAX_PLAYER_NAME); return name; }
-
Zeile 27: SpielerInfo[playerid][sName]
Da gibst du halt immer den Namen des Spielers der den Befehl ausführst an.
-
Hab nur schnell geguckt über Handy, habe jetzt Zeile 27 gesehen, wird der Name von playerid ausgeben, denke da liegt der oder ein Fehler.
Edit: Whice war schneller