[SAMMELTHREAD] Kleine Scripting Fragen

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Ich habe kurz eine frage wen ich jemand payday gebe bekommt er keinen?





  • Ich habe kurz eine frage wen ich jemand payday gebe bekommt er keinen?






    Wegen dieser Abfrage:


    Code
    if(Spieler[playerid][pPayday] >= 3600)


    Anstatt einfach nur PayDay aufzurufen musst du auch die Variable pPayday auf 3600 setzen.


  • Hab ich jetzt davor gemacht, greift aber nicht, respawne dann einfach

    Habe es dir etwas angepasst.
    Letztendlich ging es nur um eine Stelle:
    killerteam = gTeam[killerid];


    Code:
    public OnPlayerDeath(playerid, killerid, reason)
    {
    // if(!IsPlayerConnected(playerid)) return 1;
    // if(playerid == INVALID_PLAYER_ID) return 1;
    new name[MAX_PLAYER_NAME];
    new string[256];
    new playercash;
    new victimteam;
    new Float:px,Float:py,Float:pz;
    new killerteam;
    if((AtRegestration[playerid] == 0 && PlayerPaintballing[playerid] == 0) && FirstSpawn[playerid] == 0)
    {
    PlayerInfo[playerid][pTot] = 1;
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid, pX, pY, pZ);
    TotenKopf[playerid][0] = CreatePickup(1254,1, pX, pY, pZ);
    PlayerInfo[playerid][pTx] = pX;
    PlayerInfo[playerid][pTy] = pY;
    PlayerInfo[playerid][pTz] = pZ;
    GetPlayerName(playerid, name, sizeof(name));
    SendClientMessage(playerid,COLOR_LIGHTBLUE, "Du wurdest schwer verletzt ins Krankenhaus gebracht!");
    // SendClientMessage(playerid,COLOR_LIGHTBLUE, "Möchtest du einen Arzt?(/needmedic)");
    if(GetPlayerInterior(playerid) == 0)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][pMember] == 4 || PlayerInfo[i][pLeader] == 4)
    {
    // SendClientMessage(i,COLOR_LIGHTBLUE,"[Funk:]Eine Person wurde als schwer verletzt gemeldet!");
    // SendClientMessage(i,COLOR_LIGHTBLUE,"Achtung eine Person wurde als schwerverletzt gemeldet!");
    // SendClientMessage(i,COLOR_LIGHTBLUE,"Die Position wurde auf dem HUD markiert!(/rmarker zum löschen)");
    // SetPlayerCheckpoint(i,PlayerInfo[playerid][pTx],PlayerInfo[playerid][pTy],PlayerInfo[playerid][pTz],5.0);
    }
    }
    }
    }

    M_OnPlayerDeath(playerid,killerid,reason);
    InCargo[playerid] = 0; InLevi[playerid] = 0;

    if(FirstSpawn[playerid] == 1)
    {
    FirstSpawn[playerid] = 0;
    }

    victimteam = gTeam[playerid];
    gPlayerSpawned[playerid] = 0;
    GetPlayerName(playerid, name, sizeof(name));
    PlayerInfo[playerid][pLocal] = 255;
    GetPlayerPos(playerid, px, py, pz);
    if(killerid != INVALID_PLAYER_ID)
    {
    killerteam = gTeam[killerid];
    if(reason == 38)
    {
    new kstring[128];
    new kickname[MAX_PLAYER_NAME];
    if(IsPlayerConnected(killerid))
    {
    GetPlayerName(killerid, kickname, sizeof(kickname));
    format(string, 256, "Warnung: [%d]%s hat einen Spieler mit einer Minigun gekillt. ACHTUNG [CheatVerdacht].",killerid,kickname);
    ABroadCast(COLOR_YELLOW,string,1);
    printf("%s", kstring);
    }
    }
    }
    if (gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11)
    {
    DisablePlayerCheckpoint(playerid);
    gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
    }
    new caller = Mobile[playerid];
    if(caller != 255)
    {
    if(caller < 255)
    {
    SendClientMessage(caller, COLOR_GRAD2, " Die Verbindung wurde unterbrochen....");
    CellTime[caller] = 0;
    CellTime[playerid] = 0;
    Mobile[caller] = 255;
    }
    Mobile[playerid] = 255;
    CellTime[playerid] = 0;
    }
    ClearCrime(playerid);
    if(PlayerPaintballing[playerid] != 0 && killerid != INVALID_PLAYER_ID)
    {
    PlayerPaintballKills[killerid] ++;
    if(PlayerPaintballKills[killerid] > PaintballWinnerKills)
    {
    new killer[MAX_PLAYER_NAME];
    PaintballWinner = killerid;
    PaintballWinnerKills = PlayerPaintballKills[killerid];
    GetPlayerName(killerid, killer, sizeof(killer));
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerPaintballing[i] != 0)
    {
    format(string, sizeof(string), "* %s ist mit %d Kills in Führung.",killer,PaintballWinnerKills);
    SendClientMessage(i, COLOR_WHITE, string);
    }
    }
    }
    }
    return 1;
    }
    if(IsBlacklist[playerid]==1)
    {
    ClearBlack(playerid);
    IsBlacklist[playerid]=0;
    }
    if(GettingCK[playerid] < 999 || OnCK[playerid] < 999)
    {
    if(IsPlayerConnected(killerid))
    {
    if(GettingCK[killerid] < 999 || OnCK[playerid] < 999)
    {
    new killer[MAX_PLAYER_NAME];
    new dier[MAX_PLAYER_NAME];
    GetPlayerName(playerid, dier, sizeof(dier));
    GetPlayerName(killerid, killer, sizeof(killer));
    format(string, sizeof(string), "* %s hat deinen Charakter gesperrt, du kannst nun mit diesem Charakter nicht mehr Spielen.",killer);
    SendClientMessage(playerid, COLOR_LIGHTRED, string);
    format(string, sizeof(string), "** %s hat den Spieler %s erledigt**",killer,dier);
    CKLog(string);
    PlayerInfo[playerid][pCK] = 1;
    if(GettingCK[playerid] < 999)
    {
    GettingCK[playerid] = 999;
    }
    else if(OnCK[playerid] < 999)
    {
    OnCK[playerid] = 999;
    }
    if(GettingCK[killerid] < 999)
    {
    GettingCK[killerid] = 999;
    }
    else if(OnCK[killerid] < 999)
    {
    OnCK[killerid] = 999;
    }
    KickPlayer[playerid] = 1;
    }
    }
    }
    if(PlayerInfo[playerid][pHeadValue] > 0)
    {
    if(IsPlayerConnected(killerid))
    {
    if(PlayerInfo[killerid][pMember] == 8 || PlayerInfo[killerid][pLeader] == 8)
    {
    if(GoChase[killerid] == playerid)
    {
    ConsumingMoney[killerid] = 1;
    new killer[MAX_PLAYER_NAME];
    GetPlayerName(killerid, killer, sizeof(killer));
    GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]);
    PlayerInfo[killerid][pMoneys] = PlayerInfo[killerid][pMoneys]+PlayerInfo[killerid][pHeadValue];

    format(string,128,"<< Hitman %s hat den Auftrag an %s erfüllt und bekommt: $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]);
    SendFamilyMessage(8, COLOR_YELLOW, string);
    PlayerInfo[playerid][pHeadValue] = 0;
    GotHit[playerid] = 0;
    GetChased[playerid] = 999;
    GoChase[killerid] = 999;
    }
    }
    }
    }
    if(victimteam >= 4)
    {
    if(IsPlayerConnected(killerid))
    {
    new slice = 100; //$100
    playercash = GetPlayerMoney(playerid);
    if(gTeam[killerid] != 2 && PlayerInfo[killerid][pMember] != 7)
    {
    WantedLevel[killerid] += 2;
    }
    //+ 2 wanted points
    SetPlayerWantedLevel(playerid,WantedLevel[playerid]);
    if(SafeTime[playerid] <= 0)
    {
    if(gTeam[killerid] != gTeam[playerid])
    {
    if(GetPlayerState(killerid) == 1)
    {
    PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 2;
    }
    else
    {
    PlayerInfo[killerid][pKills]++;
    }
    PlayerInfo[playerid][pKills]--;
    }
    }
    if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || (gTeam[killerid] == gTeam[playerid] && gTeam[playerid] != 4))
    {
    slice = 0;
    }
    if (((gTeam[killerid]) != 4) && ((gTeam[killerid]) == gTeam[playerid]))//no team kill
    {
    slice = 0;
    }
    if (playercash > 0)
    {
    GivePlayerMoney(playerid, -slice);
    PlayerInfo[playerid][pMoneys] = PlayerInfo[playerid][pMoneys]-slice;
    }
    else
    {
    slice = slice+500;
    }
    GivePlayerMoney(killerid, slice);
    PlayerInfo[killerid][pMoneys] = PlayerInfo[killerid][pMoneys]+slice;
    PlayerPlaySound(killerid, 1083, 0.0, 0.0, 0.0);
    if (((gTeam[killerid]) == 3) && reason != 49)
    {
    SetPlayerCriminal(killerid,255, "Vorsätzlicher Mord");
    }
    else if (((gTeam[killerid]) == 3) && reason == 49)
    {
    SetPlayerCriminal(killerid,255, "Fahrerflucht");
    }
    }
    }
    else if (victimteam == 2)
    {
    if(IsPlayerConnected(killerid))
    {
    // Cop kill
    PlayerInfo[playerid][pKills]--;
    if (gTeam[killerid] == 2)//cops kill cop
    {
    PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
    // GivePlayerMoney(killerid, -suecost);
    printf("COP: %s hat %s getoetet!",GetName(killerid),GetName(playerid));
    // GivePlayerMoney(playerid, suecost+100);//+100pays hospital bill
    }
    if (gTeam[killerid] >= 3)
    {
    WantedLevel[killerid] += 2; //+ 2 wanted points
    if(reason != 49)
    {
    SetPlayerCriminal(killerid,255, "Vorsätzlicher Mord");
    }
    else if (reason == 49)
    {
    SetPlayerCriminal(killerid,255, "Fahrerflucht");
    }
    }
    if(gTeam[killerid] >= 5 && SafeTime[playerid] <= 0)
    {
    if(GetPlayerState(killerid) == 1)
    {
    PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills]+2;
    }
    else
    {
    PlayerInfo[killerid][pKills]++;
    }
    WantedLevel[killerid]+=2;
    }
    }
    }
    else if (victimteam == 3)
    {
    if(IsPlayerConnected(killerid))
    {
    // Civ kill
    if ((gTeam[killerid]) == 2 || PlayerInfo[killerid][pMember] == 7)//cops kill civ
    {
    if(WantedLevel[playerid] < 1)
    {
    PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
    printf("COP: %s hat Zivilist %s getoetet!(Ohne Wanteds)",GetName(killerid),GetName(playerid));
    //GivePlayerMoney(killerid, -suecost);
    //GivePlayerMoney(playerid, suecost+100);//+100pays hospital bill
    }
    }
    else
    {
    WantedLevel[killerid] += 2;
    }
    if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason != 49)
    {
    SetPlayerCriminal(killerid,255, "Vorsätzlicher Mord");
    }
    else if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason == 49)
    {
    SetPlayerCriminal(killerid,255, "Fahrerflucht");
    }
    }
    }
    else if (victimteam == 1)
    {
    if(IsPlayerConnected(killerid))
    {
    // Civ kill
    if ((gTeam[killerid]) == 2)//cops kill civ
    {
    PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
    printf("COP: %s hat Zivilist %s getoetet!(Ohne Wanteds)",GetName(killerid),GetName(playerid));
    // GivePlayerMoney(killerid, -suecost);
    //GivePlayerMoney(playerid, suecost+100);//+100pays hospital bill
    }
    else if ((gTeam[killerid]) == 1)//med kill civ
    {
    printf("Medic: %s hat Zivilist %s getoetet!",GetName(killerid),GetName(playerid));
    // GivePlayerMoney(killerid, -suecost);
    //GivePlayerMoney(playerid, suecost+100);//+100pays hospital bill
    }
    if (((gTeam[killerid]) == 4) && reason != 49)
    {
    SetPlayerCriminal(killerid,255, "Vorsätzlicher Mord");
    }
    else if (((gTeam[killerid]) == 3) && reason == 49)
    {
    SetPlayerCriminal(killerid,255, "Fahrerflucht");
    }
    }
    }
    if (victimteam >= 3 && WantedLevel[playerid] > 0 && killerteam == 2)
    {
    SetPlayerFree(playerid,killerid, "Gekillt");
    }
    // killerid = INVALID_PLAYER_ID;
    SetPlayerColor(playerid,COLOR_GRAD2);
    return 1;
    }

  • meinst du GCIP


    habe es so



    ocmd:hwdban(playerid, params[])
    {
    new pID, Grund[50], string[256], name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
    if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, COLOR_BENUTZETEXT, "***INFO Das ist ein Adminbefehl, du bist kein Admin!");
    if(sscanf(params, "us", pID, Grund)) return SendClientMessage(playerid, COLOR_BENUTZETEXT, "Benutze: /hwdban [SpielerName/ID] [Grund]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Dieser Spieler ist Offline!");
    new plrIP[16];
    GetPlayerIp(pID, plrIP, sizeof(plrIP));
    if(strcmp(plrIP, "185.230.163.80", true) == 0)
    {
    return 1;
    }
    if(PlayerInfo[pID][pAdmin] > PlayerInfo[playerid][pAdmin])
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du kannst diesen Spieler nicht Ban, da er ein höheres Adminlevel hat als du!");
    return 1;
    }
    if(PlayerInfo[pID][pSQLID] == 2 || PlayerInfo[pID][pSQLID] == 2)
    {
    format(string, sizeof(string), "AdmCmd: %s wurde von %s gebannt. Grund: %s", name2, name, Grund);
    SendClientMessage(playerid, COLOR_LIGHTRED, string);
    format(string, sizeof(string), "* %s hat versucht dich zu Bannen, er wurde aus sicherheits gründen gekickt.. Grund: %s", name, Grund);
    SendClientMessage(pID, COLOR_LIGHTRED, string);
    Kick(playerid);
    return 1;
    }
    GetPlayerName(playerid, name, sizeof name);
    GetPlayerName(pID, name2, sizeof name2);
    format(string, sizeof(string), "AdmCmd: %s wurde von %s Hardware gebannt. Grund: %s", name2, name, Grund);
    SendAdminMessage(COLOR_LIGHTRED, 1, string);
    format(string, sizeof(string), "AdmCmd: %s wurde von %s Hardware gebannt. Grund: %s", name2, name, Grund);
    SendClientMessage(pID,COLOR_LIGHTRED,string);
    format(string,sizeof(string),"Du wurdest gebannt: Permban. Grund: %s. Erstelle jetzte einen Screenshot mit der Taste F8.",Grund);
    SendClientMessage(pID,COLOR_LIGHTRED,string);
    new hwd[256];
    gpci(pID, hwd, sizeof hwd);
    format(string, sizeof string, "INSERT INTO `hwdban` (`Hardware`, `Grund`, `Admin`, `Spieler`, `BanDatum`) VALUES ('%s', '%s', '%s', '%s', '%d')", hwd, Grund, name, name2,gettime());
    self_mysql_queryEx(string);
    format(string,sizeof(string),"Admin %s hat %s Hardware gebannt,Grund: %s", name2,name,Grund);
    EnterToLog("IPGebannt",string);
    SetTimerEx("ConnectKick", 400,0,"i",pID);
    return 1;
    }


    // Check beim beim Connecten
    new str[256], name[MAX_PLAYER_NAME], hwd[128];
    gpci(playerid, hwd, sizeof hwd);
    GetPlayerName(playerid, name, sizeof name);
    mysql_real_escape_string(name, name);
    format(str, sizeof str, "SELECT * FROM `hwdban` WHERE `Hardware`='%s'", hwd);
    mysql_query(str);
    mysql_store_result();
    if(mysql_num_rows())
    [b][/b][i][/i][u][/u][sub][/sub][sup][/sup][s][/s]

    Du willst mich kennenlernen? Kauf mein Buch, Bia*ch!


  • 1. Es heißt GPCI: http://wiki.sa-mp.com/wiki/Gpci


    2. Es ist kein Hash vom Benutzername, sondern vom Installationspfad.


    3. Mehr Info's hier: http://forum.sa-mp.com/showpost.php?p=2919059&postcount=2



    Was kannst du uns denn sonnst empfehlen

    In der Regel macht ein solcher Ban nur unter den Umständen Sinn, dass eine Person dauerhaft auf den Server kommt und Probleme macht.
    Rangebans (123.123.*.*) haben sich in meiner Erfahrung allerdings ebenso gut bewährt, da kaum jemand Zugriff auf mehrere Ranges hat. Die minimale Anzahl kann man dann im speziellen Fall noch mit GPCI sperren, um den Aufwand zu erhöhen. Wobei ja lediglich der Installationspfad angepasst werden muss. Wer das weiß, kommt auch da drum herum.

  • Hi,
    habe meine OnPlayerDeath Funktion so:
    public OnPlayerDeath(playerid, killerid, reason){if(killerid != INVALID_PLAYER_ID){PlayerInfo[killerid][pKills]++;GivePlayerMoney(killerid, 1000);PlayerInfo[killerid][pMoney] += 1000;if(PlayerInfo[killerid][pKills] > 3){SendClientMessage(killerid, COLOR_GREEN, "Glückwunsch, du bist ein Level aufgestiegen!");PlayerInfo[killerid][pLevel] = 1;SetPlayerScore(killerid, ++);}}PlayerInfo[playerid][pDeaths]++;return 1;}


    Folgendes Problem:
    Derjenige, der getötet wird, bekommt die Nachricht, dass man ein Level dazu bekommt.
    Ebenfalls bekommt man kein Level Up.


    //E: Jetzt bekommt zwar der Killer die Nachrichten, nach jedem Kill, aber wie frage ich ab, ob der Spieler
    3 Kills gemacht hat?

    Einmal editiert, zuletzt von _Max ()

  • Hallo!


    Ich möchte eine Funktion einbauen, das man Ingame seinen RP Nachnamen ändern kann per Dialog.
    Aktuell speichere ich den Namen per MySQL mit pRPName[MAX_PLAYER_NAME], ab
    Sol lich dazu dann lieber pRPVorName und pRPNachName abspeichern?
    Wie würde dies dann jedoch funktionierten dass er Name im Script dann Vorname_Nachname ist?



    MfG

  • Sollte problemlos möchte sein den Namen mit _ abzuspeichern & per


    http://wiki.sa-mp.com/wiki/SetPlayerName zu setzen

  • Jemand eine Ahnung, warum das nicht gespeichert wird?
    format(FraktionInfo[PlayerInfo[playerid][pFraktion]][fraktionMOTD], 64, inputtext);


    Zudem die Frage, wenn im Feld "LEER" steht, dann soll das ganze nicht aufgerufen werden, wird es aber doch. Woran liegt das? 8|

    if(PlayerInfo[playerid][pFraktion] != 0 && FirstSpawn[playerid] == 0 && (!strcmp(FraktionInfo[PlayerInfo[playerid][pFraktion]][fraktionMOTD], "LEER", false)))
    {
    format(motdstring, sizeof(motdstring),""HTML_WHITE"%s", FraktionInfo[PlayerInfo[playerid][pFraktion]][fraktionMOTD]);
    ShowPlayerDialog(playerid, DIALOG_MOTD, DIALOG_STYLE_MSGBOX, ""HTML_SERVER""#SERVER_NAME": "HTML_WHITE"Message of the Day", motdstring, "Schließen", "");
    }

  • Also im Prinzip ungefähr so?



    stock GetRoleplayVorName(playerid)
    {
    new vorname[MAX_PLAYER_NAME];
    if(IsPlayerConnected(playerid))
    {
    format(vorname, MAX_PLAYER_NAME, SpielerDaten[playerid][pVorName]);
    }
    else
    {
    vorname = "Unbekannt";
    }
    return vorname;



    stock GetRoleplayNachName(playerid)
    {
    new nachname[MAX_PLAYER_NAME];
    if(IsPlayerConnected(playerid))
    {
    format(nachname, MAX_PLAYER_NAME, SpielerDaten[playerid][pNachName]);
    }
    else
    {
    name = "Unbekannt";
    }
    return nachname;


    Und wenn irgendwo der RP Name vorkommt dann %s_%S,GetRoleplayVornameName(playerid), ,GetRoleplayNachName(playerid)?


  • Versuchs einfach mal nur mit pRpName heißt also einfach den Namen X_X abspeichern und wieder abzurufen, alles nur mit einem enum

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