Nützliche Codeschnipsel

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
  • Hier ein kleiner Scriptschnipsel:
    EInfacher Command, der die Zeit in GameText anzeigt:



    if(!strcmp("/time",cmdtext,true) || !strcmp("/zeit",cmdtext,true))
    {
    new hour, minute, second, year, month, day, monthstring[16], timestring[128];
    gettime(hour,minute,second);
    getdate(year,month,day);


    switch(month)
    {
    case 1: format(monthstring,sizeof monthstring,"Januar");
    case 2: format(monthstring,sizeof monthstring,"Februar");
    case 3: format(monthstring,sizeof monthstring,"Maerz");
    case 4: format(monthstring,sizeof monthstring,"April");
    case 5: format(monthstring,sizeof monthstring,"Mai");
    case 6: format(monthstring,sizeof monthstring,"Juni");
    case 7: format(monthstring,sizeof monthstring,"Juli");
    case 8: format(monthstring,sizeof monthstring,"August");
    case 9: format(monthstring,sizeof monthstring,"September");
    case 10: format(monthstring,sizeof monthstring,"Oktober");
    case 11: format(monthstring,sizeof monthstring,"November");
    case 12: format(monthstring,sizeof monthstring,"Dezember");
    }


    format(timestring,sizeof timestring,"~g~~h~ %d:%d Uhr %d Sec ~n~~n~~w~ %d. %s %d",hour,minute,second,day,monthstring,year);
    GameTextForPlayer(playerid,timestring,7500,4);

    return 1;
    }



    Darf verändert und sonstiges damit gemacht werden
    Viel Spaß damit!


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

    Einmal editiert, zuletzt von M4rciii ()

  • new vehicleid = GetPlayerVehicleID(playerid);
    if(newstate == 2)
    {
    if(GetVehicleModel(vehicleid) == 425 || GetVehicleModel(vehicleid) == 432 || GetVehicleModel(vehicleid) == 520)
    {
    if(!IsPlayerAdmin(playerid))
    {
    RemovePlayerFromVehicle(playerid);
    }
    }



    kommt unter OnPlayerStateChange
    somit kann man verschiedene Fahrzeugmodelle, für Normaluser sperren und nur für RCON Admins erlauben, in dem Beispiel hier ist es der Panzer, die Hydra und der Hunter.


    e// in den [pwn] Tags verrutschen mir die Klammern, kA wieso

    2 Mal editiert, zuletzt von El_Cid ()

  • Wo liegt der Fehler ?


    if (strcmp("/Hi", cmdtext, true, 10) == 0)
    {
    if IsPlayerAdmin(playerid) == true);
    SendClientMessageToAll(0xAA3333AA, "Hi der Admin ist da!");
    }
    else
    {
    SendClientMessageToAll(0xAA3333AA, "Du bist kein Admin!");
    return 1;
    }


    Code
    C:\Dokumente und Einstellungen\Fischer\Desktop\hi.pwn(103) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Fischer\Desktop\hi.pwn(103) : error 001: expected token: "*then", but found ")"
    C:\Dokumente und Einstellungen\Fischer\Desktop\hi.pwn(103) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Fischer\Desktop\hi.pwn(103) : warning 215: expression has no effect
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    2 Errors.


    Die Errors beziehen sich auf "IsPlayerAdmin"


    wie gehen die Errors wegg bitte um hilfe!

  • So sind keine mehr if (strcmp("/Hi", cmdtext, true, 10) == 0)
    {
    if(IsPlayerAdmin(playerid)){
    SendClientMessageToAll(0xAA3333AA, "Hi der Admin ist da!");
    }
    else
    {
    SendClientMessageToAll(0xAA3333AA, "Du bist kein Admin!");
    }
    return 1;
    }



    Aber das hier ist kein Fragethread

    ...

  • Lol, wie soll das funktionieren?
    if(IsPlayerAdmin() == true)


    Das geht so:
    if(IsPlayerAdmin(playerid))


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!


  • So wird man aber aus dem Fahrzeug entfernt wenn man Rcon Admin ist :cursing: .
    Würde die IsPlayerAdmin Abfrage vor dem VehicleModel check einsetzten,außerdem die VehicleModel ID vorher in einer Variable abspeichern.Lohnt sich nicht die immer neu einzuholen,vorallem nicht wenn man das mehrmals tun müsste bei diesen "Oder" - Abfragen.

  • Hier ein Codeschnipsel für alle Stuntserver.
    Mit dem Codeschnipsel spart man viel Tipparbeit (10 Zeilen)


    Anwendungsbeispiel:
    if(strcmp(cmdtext,"/lsairport",true)==0)
    {
    AddTeleport(playerid,234.343,432.4343,434.234,0,0,1,100,"/stunt"); // (Koordinaten sind nur erfunden)
    return 1;
    }

    ICQ Scripting - Support 495961653
    Montags-Freitags ab 15 Uhr

  • Mit dieser Funktion könnt ihr die Playerid anhand des Namen rausfinden. Sollte der Player nicht connected sein wird false zurückgegeben.



    stock GetPlayerID(playername[])
    {
    for(new playerid=0; playerid<GetMaxPlayers(); playerid++)
    {
    if(IsPlayerConnected(playerid))
    {
    new playernamestring[32];
    GetPlayerName(playerid, playernamestring, 32);
    if(strcmp(playernamestring, playername, true) == 0)
    {
    return playerid;
    }
    }
    }
    return -1;
    }

    Mit freundlichen Grüßen


    Einstein

    Einmal editiert, zuletzt von Einstein ()

  • //----------------------------------[VehicleChat]-----------------------------------------------
    if(strcmp(cmd, "/vc", true) == 0)
    {
    new string[256], sendername[24];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result)) return SendClientMessage(playerid, COLOR_RED, "KORREKTUR: /vc [text]");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "Du musst in einem Fahrzeug sein!");
    format(string, sizeof(string), "(( Vehicle Chat(%s): %s ))", sendername, result);
    for(new i = 0; i < MAX_PLAYERS; i ++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInVehicle(i, GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(i, COLOR_BLUE, string);
    }
    }
    }
    return 1;
    }


    Da zeigt er mir folgenden Error


    Code
    error 017: undefined symbol "COLOR_BLUE"


    Kann mir da jemand Helfen ?

  • xD füg oben #define COLOR_BLUE 0000ff ein und es dürfte gehen

  • Noch mehr Errors

    Code
    D:\Games\GTA San Andreas\Grand Theft Auto San Andreas\gamemodes\rlrp.pwn(9277) : error 029: invalid expression, assumed zero
    D:\Games\GTA San Andreas\Grand Theft Auto San Andreas\gamemodes\rlrp.pwn(9277) : error 029: invalid expression, assumed zero
    D:\Games\GTA San Andreas\Grand Theft Auto San Andreas\gamemodes\rlrp.pwn(9277) : error 029: invalid expression, assumed zero
    D:\Games\GTA San Andreas\Grand Theft Auto San Andreas\gamemodes\rlrp.pwn(9277) : fatal error 107: too many error messages on one line


    #define COLOR_BLUE 0000ff
    if(strcmp(cmd, "/vc", true) == 0)
    {
    new string[256], sendername[24];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result)) return SendClientMessage(playerid, COLOR_RED, "KORREKTUR: /vc [text]");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "Du musst in einem Fahrzeug sein!");
    format(string, sizeof(string), "(( Vehicle Chat(%s): %s ))", sendername, result);
    for(new i = 0; i < MAX_PLAYERS; i ++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInVehicle(i, GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(i, COLOR_BLUE, string);
    }
    }
    }
    return 1;
    }

  • ASO sry bin ziemlicher noob beim Scripten


    Hab tzrotzdem 4 ERrros

    Code
    D:\Games\GTA San Andreas\Grand Theft Auto San Andreas\gamemodes\rlrp.pwn(9276) : error 029: invalid expression, assumed zero
    D:\Games\GTA San Andreas\Grand Theft Auto San Andreas\gamemodes\rlrp.pwn(9276) : error 029: invalid expression, assumed zero
    D:\Games\GTA San Andreas\Grand Theft Auto San Andreas\gamemodes\rlrp.pwn(9276) : error 029: invalid expression, assumed zero
    D:\Games\GTA San Andreas\Grand Theft Auto San Andreas\gamemodes\rlrp.pwn(9276) : fatal error 107: too many error messages on one line