[SAMMELTHREAD] Kleine Scripting Fragen

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
  • @xPatrick
    Nutze mal bitte dies, und sage uns was dann in der Konsole steht wenn du die Funktion nutzen tust.

    GetGMRang(playerid)
    {
    new string[36];
    switch(sInfo[playerid][Adminlevel]) {
    case 1: string = "[GS]Gamesage";
    printf("Case 1: %s", string);
    case 2: string = "[GM]Gamemaster";
    printf("Case 2: %s", string);
    case 3: string = "[ADM]Admin";
    printf("Case 3: %s", string);
    }
    return string;
    }


    Mit freundlichen Grüßen,
    Aaron!

    Die Missglückte Persönlichkeit, Ciao!

  • @xPatrick
    Nutze mal bitte dies, und sage uns was dann in der Konsole steht wenn du die Funktion nutzen tust.
    GetGMRang(playerid){ new string[36]; switch(sInfo[playerid][Adminlevel]) { case 1: string = "[GS]Gamesage"; printf("Case 1: %s", string); case 2: string = "[GM]Gamemaster"; printf("Case 2: %s", string); case 3: string = "[ADM]Admin"; printf("Case 3: %s", string); } return string;}


    Mit freundlichen Grüßen,
    Aaron!

    C:\Users\Paddz\Desktop\Neuer Ordner\gamemodes\Roleplay.pwn(1010) : error 002: only a single statement (or expression) can follow each "case"
    C:\Users\Paddz\Desktop\Neuer Ordner\gamemodes\Roleplay.pwn(1010) : warning 215: expression has no effect
    C:\Users\Paddz\Desktop\Neuer Ordner\gamemodes\Roleplay.pwn(1011) : error 014: invalid statement; not in switch
    C:\Users\Paddz\Desktop\Neuer Ordner\gamemodes\Roleplay.pwn(1011) : warning 215: expression has no effect
    C:\Users\Paddz\Desktop\Neuer Ordner\gamemodes\Roleplay.pwn(1011) : error 001: expected token: ";", but found ":"
    C:\Users\Paddz\Desktop\Neuer Ordner\gamemodes\Roleplay.pwn(1011) : error 029: invalid expression, assumed zero
    C:\Users\Paddz\Desktop\Neuer Ordner\gamemodes\Roleplay.pwn(1011) : fatal error 107: too many error messages on one line


    Funktionier so nicht^^ Sorry bin noch ein Noob wasdas scripten angeht. Sollte ich etwas offensichtliches Vergessen haben, sagts mir

  • @Aaron1337 die Funktion ist so korrekt, diese vor allem so zu überprüfen ist unnötig.


    @xPatrick zeig mir mal bitte wie und wo du die Funktion aufrufst.


    ocmd:aduty(playerid,params[])
    {
    if(!IsPlayerGM(playerid,1)) return 1;
    if(!AdmOnDuty{playerid})
    {
    new string[128];
    format(string,sizeof(string),"* %s ist nun als %s im Dienst! *",getPlayerName(playerid),GetGMRang(playerid));
    SendClientMessageToAll(FARBE_BLAU,string);
    SetPlayerColor(playerid, FARBE_ROT);
    AdmOnDuty{playerid}=true;
    CMDLog(string);
    }


    Zum Beispiel hier. Es steht dann jetzt mit euren Ergebnissen nach wie vor Spieler X ist nun als im Dienst

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • @Aaron1337 die Funktion ist so korrekt, diese vor allem so zu überprüfen ist unnötig.

    Weshalb sollte dies unnötig sein?
    Was ist wenn er die Veriable gar nicht gesetzt hat, dann hätte wir den Fehler direkt gefunden?
    Oder nicht richtig Laden/Speichern tut?


    @xPatrick
    Tue mir bitte einen Gefallen und nutze dies einmal und sage dann ob es dann geht.



    ocmd:aduty(playerid,params[])
    {
    if(!IsPlayerGM(playerid,1)) return 1;
    if(!AdmOnDuty{playerid})
    {
    sInfo[playerid][Adminlevel] = 3;
    new string[128];
    format(string,sizeof(string),"* %s ist nun als %s im Dienst! *",getPlayerName(playerid),GetGMRang(playerid));
    SendClientMessageToAll(FARBE_BLAU,string);
    SetPlayerColor(playerid, FARBE_ROT);
    AdmOnDuty{playerid}=true;
    CMDLog(string);
    }
    }

    Die Missglückte Persönlichkeit, Ciao!

  • Du kannst nicht überall die geschweiften Klammern ("{}") benutzen.

    ocmd:aduty(playerid,params[])
    {
    if(!IsPlayerGM(playerid,1)) return 1;
    if(!AdmOnDuty[playerid])
    {
    new string[128];
    format(string,sizeof(string),"* %s ist nun als %s im Dienst! *",getPlayerName(playerid),GetGMRang(playerid));
    SendClientMessageToAll(FARBE_BLAU,string);
    SetPlayerColor(playerid, FARBE_ROT);
    AdmOnDuty[playerid]=true;
    CMDLog(string);
    }
    return 1;
    }

  • Du kannst nicht überall die geschweiften Klammern ("{}") benutzen.
    ocmd:aduty(playerid,params[]){ if(!IsPlayerGM(playerid,1)) return 1; if(!AdmOnDuty[playerid]) { new string[128]; format(string,sizeof(string),"* %s ist nun als %s im Dienst! *",getPlayerName(playerid),GetGMRang(playerid)); SendClientMessageToAll(FARBE_BLAU,string); SetPlayerColor(playerid, FARBE_ROT); AdmOnDuty[playerid]=true; CMDLog(string); } return 1;}

    Weshalb sollte dies unnötig sein?Was ist wenn er die Veriable gar nicht gesetzt hat, dann hätte wir den Fehler direkt gefunden?
    Oder nicht richtig Laden/Speichern tut?


    @xPatrick
    Tue mir bitte einen Gefallen und nutze dies einmal und sage dann ob es dann geht.


    ocmd:aduty(playerid,params[]){ if(!IsPlayerGM(playerid,1)) return 1; if(!AdmOnDuty{playerid}) { sInfo[playerid][Adminlevel] = 3; new string[128]; format(string,sizeof(string),"* %s ist nun als %s im Dienst! *",getPlayerName(playerid),GetGMRang(playerid)); SendClientMessageToAll(FARBE_BLAU,string); SetPlayerColor(playerid, FARBE_ROT); AdmOnDuty{playerid}=true; CMDLog(string); }}

    Ok Jungs, jeder eurer Vorschläge hat funktioniert. Ich habe bei AdmRang {} benutzt weil es so in einen Tutorial gezeigt wurde, ist ein bool.
    Also danke. Ich nehme jetzt malE Variante, da ich da 1 Zeile spare^^ danke euch


  • FastFoodBiz[i][FastFoodActor] = CreateActor(68,375.5763,-65.5976,1001.5078,178.5633); //4779
    SetActorVirtualWorld(FastFoodBiz[i][FastFoodActor], i); //4780




    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German 0.3z\gamemodes\German.pwn(4779) : error 017: undefined symbol "CreateActor"
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German 0.3z\gamemodes\German.pwn(4780) : error 017: undefined symbol "SetActorVirtualWorld"

  • FastFoodBiz[i][FastFoodActor] = CreateActor(68,375.5763,-65.5976,1001.5078,178.5633); //4779SetActorVirtualWorld(FastFoodBiz[i][FastFoodActor], i); //4780



    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German 0.3z\gamemodes\German.pwn(4779) : error 017: undefined symbol "CreateActor"C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German 0.3z\gamemodes\German.pwn(4780) : error 017: undefined symbol "SetActorVirtualWorld"

    Kannst du denn einen Actor normal erstellen, ohne dein FastfoodBiz... oder kommen da die selben Fehler?

  • Moin


    Aktuell habe ich einen Command /blowup mit dem ich pruefe ob der Spieler in der Naehe eines Bettes von diesem Array hier ist:


    C
    new const Float:beds[][3] = {
    	{-2340.7637,-2024.7919,270.5094},//VIOLET
    	{-2812.6035,-1515.9814,140.8438},//Brown
    	{-2326.8735,-1356.4872,300.2661}//Yellow
    };


    Und dann mit dem jeweiligen Index stelle ich fest ob er bei dem Brown ist oder aehnlich.
    Kann ich das ganze eventuell effizienter machen, indem ich die CreateObjects in das Array packe? Kann ich die dann auch z.B. mit DeleteObject oder aehnlich verarbeiten? also so dass ich in dem Array statt der 3 Koordinaten einfach die 3 Objekte habe?


    Weitere Sache.
    Ich will folgendes machen:


    Habe ein Gamemode mit 3 Maps, jedoch braucht jeder dieser Maps angepasste Koordinaten, weshalb ich Koordinaten und OnPlayerCommandText fuer jede Map mit #tryinclude einbinde.
    Gibt es die Moeglichkeit dass ich irgendwie mit Praeprozessoranweisung machen kann, dass ich den Mapnamen irgendwie im Kopf des Gamemodes festgelegt wird, und je nachdem das entsprechende Include eingebunden wird? Also geht if etc. mit Praeprozessoranweisungen?


    Also ich will das ganze Modular machen, das meiste ist bei allen Maps gleich, ausser die Koordinaten von diversen Spawns und locations, und die will ich halt bei Bedarf einfach einsetzen koennen ohne irgendwie, wie ich es bisher gemacht habe, den Gamemode zu kopieren, und da die Koordinaten umzuschreiben.

  • Code
    format(query,sizeof(query),"SELECT * FROM "#DATENBANKTAG"_gangwar WHERE GangZoneID='%d'",gw); //MYSQL R31
    		mysql_function_query(MySqlConnection,query,true,"OnQueryFinish","siii",query,_SQL_GANGZONE_INSERT,gw,MySqlConnection); //MMYSQL R31
    
    
    	
    mysql_pquery(handle,query,"OnQueryFinish","i",_SQL_GANGZONE_INSERT); //MYSQL R41

    Hey, ich wollte fragen ob das so stimmen kann wen ich das umschreiben möchte auf R41

    Einmal editiert, zuletzt von Dr. Frauenarzt () aus folgendem Grund: format(query,sizeof(query),"SELECT * FROM "#DATENBANKTAG"_gangwar WHERE GangZoneID='%d'",gw); mysql_function_query(MySqlConnection,query,true,"OnQueryFinish","siii",query,_SQL_GANGZONE_INSERT,gw,MySqlConnection); Eingefügt