[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
  • #include <a_samp>
    #tryinclude <streamer>


    #if !defined STREAMER_TYPE_OBJECT
    #error Der Streamer ist nicht vorhanden oder nicht auf der neusten Version
    #endif


    public OnGamemodeInit(){
    #if defined exd_OnGamemodeInit
    exd_OnGamemodeInit();
    #endif
    return 1;
    }


    #if defined _ALS_OnGamemodeInit
    #undef OnGamemodeInit
    #else
    #define _ALS_OnGamemodeInit
    #endif


    #define OnGamemodeInit exd_OnGamemodeInit


    #if defined exd_OnGamemodeInit
    forward exd_OnGamemodeInit(playerid);
    #endif


    Wo liegt der Fehler?

    Code
    \Users\René\Desktop\SAMP\The Godfather\pawno\include\streamerfix.inc(8) : warning 235: public function lacks forward declaration (symbol "OnGamemodeInit")
  • Ich möchte ein Pickup erstellen und habe so angefangen:



    new pickup;


    Oben definiert


    Dann bei OnGameModeInit



    public OnGameModeInit()
    {
    {
    pickup = CreatePickup(1273, 1, 48,1911.2902,-2505.4646, -1);
    // Create an armour pickup and store the ID in 'pickup'
    }


    Hier soll das Pickup erscheinen



    AddPlayerClass(48,1911.2902,-2505.4646,13.5391,180.0646,0,0,0,0,0,0); // PickUP


    Diese Warnungen erhalte ich



    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(37) : warning 204: symbol is assigned a value that is never used: "pickup"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.



    Ich habe Probleme die X, Y und Z Achse da rauszunehmen, oder woran liegt das Problem das mein PickUP nicht erscheint?


    Mit freundlichen Grüßen
    JustMe.77 8)

  • CreatePickup(1273, 1, 48,1911.2902,-2505.4646, -1);


    Das ist falsch, was macht die 48 da? :D


    Das muss so aussehen:


    CreatePickup(1273, 1, 1911.2902,-2505.4646,13.5391, -1);


    und wenn du mit der Variable pickup nichts machst außer sie zu initialisieren...dann wird sie ja nicht gebraucht (deshalb die Warnung) aus dem Grund, kannst du dir das sparen ;)


    Oder eine andere Variante
    new stock pickup; //Dann sucht sich der Compiler das raus, ob er sie brauch oder nicht


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S



  • Die 48 kam von den SavedPositions, ich dachte die gehört zu einer der Achsen, danke für die Aufklärung :D


    //


    Ich bin gerade dabei ein "Haus" zu erstellen, der 1.Schritt ist ja gemacht, nun möchte ich aber das wenn man in der Nähe des Icons ist, in meinem selbstgemappten Interior spawnt, wo und wie muss ich anfangen?


    Mit freundlichen Grüßen
    JustMe.77 8)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • OnGameModeInit
    SetTimer("CheckPos", 200, true);


    Unten im Code
    forward CheckPos();
    public CheckPos()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i, 5.0, X, Y, Z))
    {
    //SetPlayerPos(...)
    }
    }
    return 1;
    }


    In IsPlayerInRangeOfPoint musst du das XYZ mit deinen Koordinaten ersetzen, an denen es den Spieler weg teleportieren soll. Die 5.0 ist der Prüfungsradius.

  • Guten Morgen,


    ich habe ein Problem mit einem Time Ban System. Wenn beispielsweise eingebe, das die Person 2 Stunden gebannt werden soll, dann steht in der Tabelle irgendeine lange Zahl ( zbs: 1419774815 )
    Wenn ich dann noch auf den Server gehe, soll man eigentlich ein Dialog bekommen, dieser wird mir aber leider nicht angezeigt. Mir wird stattdessen der Dialog für das Einloggen angezeigt.


    So sieht meine Tabelle aus ( alles richtig, bis auf die Ban Zeit :( http://i.epvpimg.com/HWQZg.png



    Und hier der komplette Code, welcher zum Ban System gehört.




    Erstellung der Tabelle:

    Spoiler anzeigen
    mysql_function_query(DBHandle,"CREATE TABLE IF NOT EXISTS `Banned` (`IP` varchar(16) NOT NULL, `Name` varchar(24) NOT NULL, `Grund` varchar(126) NOT NULL, `Admin` varchar(24) NOT NULL, `Zeit` int(25) NOT NULL, `Datum` date NOT NULL, `Uhrzeit` time NOT NULL, PRIMARY KEY (`IP`))",false,"","");


    Funktion um denn Spieler zu Bannen:

    Spoiler anzeigen
    [pwn]stock BannPlayer(playerid,admin[],reason[],zeit = -1)
    {
    new query[256];
    gettime(stunde,minute,sekunde);
    getdate(jahr,monat,tag);
    mysql_format(DBHandle, query, sizeof(query),"INSERT INTO `Banned` (`Name`,`Grund`,`Admin`,`IP`,`Zeit`,`Datum`,`Uhrzeit`) VALUES ('%s','%s','%s','%s','%d','d-d-d','d:d:d')",Spieler[playerid][pName],reason,Spielername(playerid),SpielerIP(playerid),zeit,jahr,monat,tag,stunde,minute,sekunde);
    mysql_function_query(DBHandle,query,false,"","");
    format(query,sizeof(query),"Admin: %s * Zielperson: %s * Grund: %s * Zeit: %i",admin,Spieler[playerid][pName],reason,zeit);
    Log("Bannedsqllog",query);
    SavePlayerData(playerid);
    TogglePlayerControllable(playerid,0);
    SetCameraBehindPlayer(playerid);
    KickUser(playerid,"System", "Spieler wurde Gebannt!");
    return 1;
    }[/pwn]



    Funktion um zu schauen ob der Spieler Gebannt ist:

    Spoiler anzeigen
    stock CheckPlayerBanned(playerid)
    {
    new query[256];
    format(query,sizeof(query),"SELECT * FROM `Banned` WHERE IP = '%s' OR Name= '%s'",SpielerIP(playerid),Spielername(playerid));
    mysql_function_query(DBHandle,query,true,"OnQueryFinish","siii",query,MySQL_Check_Ban,playerid,DBHandle);
    return 1;
    }


    TimeBan Befehl:

    Spoiler anzeigen
    ocmd:tban(playerid,params[])
    {
    new pID,reason[24],string[188],cmd[15],zeitdauer,zeit;
    if(!IsPlayerAnAdmin(playerid,0)) return SendClientMessage(playerid,0xFF3C3CFF,"AdmCmd: Sie besitzen nicht die n�tigen Rechte um diesen Befehl zu nutzen!");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,0xEE8613FF,"Der angegebene Spieler ist nicht eingeloggt!");
    if(sscanf(params,"uds[15]s[24]",pID,zeit,cmd,reason)) return SendClientMessage(playerid,0x00D2D2FF,"Info: /tban [Spieler ID] [Zeit] [Minuten/Stunden/Tage] [Grund]");
    if(strlen(reason) > 24)return SendClientMessage(playerid,0x0D2D2FF,"Info: [Grund darf maximal 24 Zeichen beinhalten]");
    if(strcmp(cmd,"Wochen",true) == 0)
    {
    zeitdauer = gettime()+(60*60*24*7*zeit);//Wochen
    format(string,sizeof(string),"{FF1111}Ban Info: {E5E5E5}Der Admin %s (ID:%i) hat den Spieler %s (ID:%i) für %i Woche/n gebannt.- {FF7979}Grund: {E5E5E5}%s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,zeit,reason);
    SendClientMessageToAll(0xE5E5E5FF,string);
    format(string,sizeof(string),"%s du wurdest vom Server gebannt.\nFalls du zu unrecht gebannt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\nDauer: %i Woche/n\nGrund: %s\nAdmin: %s",Spieler[pID][pName],zeit,reason,Spieler[playerid][pName]);
    ShowPlayerDialog(pID,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Bann",string,"Verlassen","");
    BannPlayer(pID,Spieler[playerid][pName],reason,zeitdauer);
    return 1;
    }
    if(strcmp(cmd,"Tage",true) == 0)
    {
    zeitdauer = gettime()+(60*60*24*zeit);//Tage
    format(string,sizeof(string),"{FF1111}Ban Info: {E5E5E5}Der Admin %s (ID:%i) hat den Spieler %s (ID:%i) für %i Tag/e gebannt.- {FF7979}Grund: {E5E5E5}%s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,zeit,reason);
    SendClientMessageToAll(0xE5E5E5FF,string);
    format(string,sizeof(string),"%s du wurdest vom Server gebannt.\nFalls du zu unrecht gebannt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\nDauer: %i Tag/e\nGrund: %s\nAdmin: %s\n\n",Spieler[pID][pName],zeit,reason,Spieler[playerid][pName]);
    ShowPlayerDialog(pID,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Bann",string,"Verlassen","");
    BannPlayer(pID,Spieler[playerid][pName],reason,zeitdauer);
    return 1;
    }
    if(strcmp(cmd,"Stunden",true) == 0)
    {
    zeitdauer = gettime()+(60*60*zeit);//Stunden
    format(string,sizeof(string),"{FF1111}Ban Info: {E5E5E5}Der Admin %s (ID:%i) hat den Spieler %s (ID:%i) für %i Stunde/n gebannt.- {FF7979}Grund: {E5E5E5}%s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,zeit,reason);
    SendClientMessageToAll(0xE5E5E5FF,string);
    format(string,sizeof(string),"%s du wurdest vom Server gebannt.\nFalls du zu unrecht gebannt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\nDauer: %i Stunde/n\nGrund: %s\nAdmin: %s",Spieler[pID][pName],zeit,reason,Spieler[playerid][pName]);
    ShowPlayerDialog(pID,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Bann",string,"Verlassen","");
    BannPlayer(pID,Spieler[playerid][pName],reason,zeitdauer);
    return 1;
    }
    if(strcmp(cmd,"Minuten",true) == 0)
    {
    zeitdauer = gettime()+(60*zeit);//Minuten
    format(string,sizeof(string),"{FF1111}Ban Info: {E5E5E5}Der Admin %s (ID:%i) hat den Spieler %s (ID:%i) für %i Minute/n gebannt.- {FF7979}Grund: {E5E5E5}%s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,zeit,reason);
    SendClientMessageToAll(0xE5E5E5FF,string);
    format(string,sizeof(string),"%s du wurdest vom Server gebannt.\nFalls du zu unrecht gebannt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\nDauer: %i Minute/n\nGrund: %s\nAdmin: %s",Spieler[pID][pName],zeit,reason,Spieler[playerid][pName]);
    ShowPlayerDialog(pID,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Bann",string,"Verlassen","");
    BannPlayer(pID,Spieler[playerid][pName],reason,zeitdauer);
    return 1;
    }
    return SendClientMessage(playerid,0x00D2D2FF,"Info: /tban [playerid/Name][Zeit][Minuten/Stunden/Tage/Wochen][Grund]");
    }


    OnQueryFinish:

    Spoiler anzeigen
    public OnQueryFinish(index[],sqlresultid,extraid,SconnectionHandle)
    {
    new rows,fields;
    switch(sqlresultid)
    {
    case MySQL_Check_Ban:
    {
    new zeit,query[126],Admin[24],Grund[126],result[25];
    cache_get_data(rows,fields);
    if(rows)
    {
    cache_get_field_content(0,"Grund",Grund);
    cache_get_field_content(0,"Admin",Admin);
    cache_get_field_content(0,"Zeit",result);
    zeit = strval(result);
    if(zeit == -1)
    {
    format(query,sizeof(query),"%s, du wurdest vom Server Gesperrt.\nFalls du zu unrecht Gesperrt wurdest,\nmelde dich bei einem Teammitglied im Forum, oder schreibe uns im Teamspeak³ an!\n\nGrund:%s\nTeammitglied:%s",Spielername(extraid),Grund,Admin);
    ShowPlayerDialog(extraid,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,"{FFFFFF}SmR: {308EAD}Gesperrt",query,"Verlassen","");
    TogglePlayerControllable(extraid,0);
    KickUser(extraid,"System", "Spieler wurde Gebannt!");
    return 1;
    }
    else
    {
    if(gettime() < zeit)
    {
    new timebanned = zeit-gettime();
    SendClientMessage(extraid,0xEE8613FF,"Verbindung unterbrochen...");
    if(floatround(timebanned/86400) > 0)//Tage
    {
    format(query,sizeof(query),"%s, du wurdest vom Server Gesperrt.\nFalls du zu unrecht Gesperrt wurdest,\nmelde dich bei einem Teammitglied im Forum, oder schreibe uns im Teamspeak³ an!\n\nDauer: %i\nGrund:%s\nTeammitglied:%s",Spielername(extraid),timebanned/86400,Grund,Admin);
    }
    else if(floatround(timebanned/3600) > 0)//Stunden
    {
    format(query,sizeof(query),"%s, du wurdest vom Server Gesperrt.\nFalls du zu unrecht Gesperrt wurdest,\nmelde dich bei einem Teammitglied im Forum, oder schreibe uns im Teamspeak³ an!\n\nDauer: %i\nGrund:%s\nTeammitglied:%s",Spielername(extraid),timebanned/3600,Grund,Admin);
    }
    else if(floatround(timebanned/60) > 0 || floatround(timebanned%60) > 0)//Minuten,Sekunden
    {
    format(query,sizeof(query),"%s, du wurdest vom Server Gesperrt.\nFalls du zu unrecht Gesperrt wurdest,\nmelde dich bei einem Teammitglied im Forum, oder schreibe uns im Teamspeak³ an!\n\nDauer: %i\nGrund:%s\nTeammitglied:%s",Spielername(extraid),timebanned/60,timebanned%60,Grund,Admin);
    }
    ShowPlayerDialog(extraid,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,"{FFFFFF}SmR: {308EAD}Gesperrt",query,"Verlassen","");
    TogglePlayerControllable(extraid,0);
    KickUser(extraid,"System", "Spieler wurde Gebannt!");
    }
    else
    {
    format(query,sizeof(query),"DELETE FROM `Banned` WHERE IP ='%s' OR Name = '%s'",SpielerIP(extraid),Spielername(extraid));
    mysql_function_query(DBHandle,query,false,"","");
    }
    return 1;
    }
    }
    }
    }
    return 1;
    }

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Jeffry:


    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(922) : error 029: invalid expression, assumed zero
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(922) : error 017: undefined symbol "CheckPos"
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(923) : error 029: invalid expression, assumed zero
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(923) : error 017: undefined symbol "CheckPos"
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(935) : error 030: compound statement not closed at the end of file (started at line 917)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.



    SetTimer ist aber in OnGameModeInit drin..


    Mit freundlichen Grüßen
    JustMe.77 8)


  • Kannst du bitte einmal den Code sicken , wie du es jetzt genau hast?

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • Beitrag von shoxinat0r ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Möglicherweise wird der Code nicht (oder nicht richtig) aufgerufen. Hast du es mal debuggt?
    Hast es ja schon hinbekommen.


    Eddy: Das ist keine "kleine Scripting Frage". Erstelle dafür einen Thread.
    @[LnD]JustMe.77: Bei mir geht es. Wie sieht dein Code aus?

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen