[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
  • Beitrag von xSnake ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • @FerienFreak:
    Ich bin mir nicht sicher ob das so funktioniert, aber versuch es mal.
    ocmd:ipban(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,BLAU,"Du hast kein Admin Level 4.");
    if(!params[0])return SendClientMessage(playerid,-1,"Tippe: /ipban [IP]");
    new string[100];
    format(string,sizeof string,"banip %s",params);
    SendRconCommand(string);
    format(string,sizeof string,"Die IP %s wurde erfolgreich gesperrt!",params);
    SendClientMessage(playerid,GRÜN,string);
    return 1;
    }
    ocmd:ipunban(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,BLAU,"Du hast kein Admin Level 5.");
    if(!params[0])return SendClientMessage(playerid,-1,"Tippe: /ipunban [IP]");
    new string[100];
    format(string,sizeof string,"unbanip %s",params);
    SendRconCommand(string);
    format(string,sizeof string,"Die IP %s wurde erfolgreich entsperrt!",params);
    SendClientMessage(playerid,GRÜN,string);
    return 1;
    }

  • habe 2 kleine frage/probleme


    1 wieso wird der skin nicht auf die skinid 26 gesetzt ? der skin bleibt 0


    public OnPlayerRequestClass(playerid, classid)
    {
    SetSpawnInfo(playerid,0,26,370.3382,-2059.1753,8.6107,359.5793,0,0,0,0,0,0);
    SetPlayerInterior(playerid, 0);
    SpawnPlayer(playerid);
    return 1;
    }


    if(sInfo[playerid][tutpart] == 4)
    {
    SetPlayerVirtualWorld(playerid,0);
    SetSpawnInfo(playerid,0,26,370.3382,-2059.1753,8.6107,359.5793,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    TogglePlayerControllable(playerid,1);
    TogglePlayerSpectating(playerid, 0);
    savePlayer(playerid);
    return 1;
    }


    2 ich will das OnPlayerRegister erst bei tutpart 4 ausgeführt wird


    if(sInfo[playerid][tutpart] == 4)
    {
    SetPlayerVirtualWorld(playerid,0);
    SetSpawnInfo(playerid,0,26,370.3382,-2059.1753,8.6107,359.5793,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    TogglePlayerControllable(playerid,1);
    TogglePlayerSpectating(playerid, 0);
    savePlayer(playerid);
    return 1;
    }



    public OnPlayerRegister(playerid)
    {
    sInfo[playerid][db_id] = mysql_insert_id();
    SendClientMessage(playerid, ROT, "=====> Willkommen auf PlayPoint Reallife <=====!");
    SendClientMessage(playerid, GELB, "=====>Es folgt nun das Tutorial<=====");
    SetPlayerMoney(playerid, 2500);
    SetPlayerScore(playerid, 1);
    SetTimerEx("SkinTimer", 200, 0, "dd", playerid, 26);
    SetPlayerColor(playerid, 0xFF00FFFF);
    savePlayer(playerid);
    printf("%s hat sich Registriert!)",getPlayerName(playerid));
    }


    if(dialogid==DIALOG_LOGIN)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password='%s'",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Gib bitte dein Passwort ein.");
    new string[128];
    format(string,sizeof(string),"{FFFF00}Hallo %s\n{FFFFFF}Dein Account wurde gefunden!\nBitte gib nun dein Passwort ein\ndamit du dich einloggen kannst!",getPlayerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbrechen");
    }
    }
    return 1;
    }

  • 1.)
    Hast du es schon mal mit SetPlayerSkin versucht? Wenn nicht, dann mach das mal. Wenn das auch nicht geht, dann füge bei OnPlayerSpawn das SetPlayerSkin ein.


    2.)
    Da musst du das Passwort in einer Variable zwischen speichern und den Teil der das Callback aufruft an die gewünschte Stelle setzen. Dann das Passwort wieder übergeben.
    Ich kann dir nicht zeigen wo oder wie, weil der Code der das Callback aufruft nicht dabei ist.

  • da müsste eig allesen drinne sein wenn nicht schreib mir was du brauchst


    #define DIALOG_REGISTER 1
    #define DIALOG_REGISTER2 31


    enum playerInfo{
    eingeloggt,
    level,
    db_id,
    alevel,
    slevel,
    Skin,
    fraktion,
    rang,
    leader,
    coleader,
    spawnchange,
    tutpart,
    regstep,
    geschlecht
    }


    forward TutTimer(playerid);


    savePlayer(playerid)
    {
    sInfo[playerid][eingeloggt] = 1;
    new query[256];
    format(query,sizeof(query),"UPDATE user SET level='%i',skin='%i',geschlecht='%i',money='%i',alevel='%i',slevel='%i',fraktion='%i',rang='%i',leader='%i',coleader='%i',spawnchange='%i' WHERE id='%i'",
    GetPlayerScore(playerid),GetPlayerSkin(playerid),GetPlayerMoney(playerid),sInfo[playerid][geschlecht],sInfo[playerid][alevel],sInfo[playerid][slevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][leader],sInfo[playerid][coleader],sInfo,sInfo[playerid][spawnchange],sInfo[playerid][db_id]);
    return 1;
    }


    stock SaveAllPlayers()
    {
    for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    {
    if(!IsPlayerConnected(playerid)) continue;
    new query[256];
    format(query,sizeof(query),"UPDATE user SET level='%i',skin='%i',geschlecht='%i',money='%i',alevel='%i',slevel='%i',fraktion='%i',rang='%i',leader='%i',coleader='%i',spawnchange='%i' WHERE id='%i'",
    GetPlayerScore(playerid),GetPlayerSkin(playerid),GetPlayerMoney(playerid),sInfo[playerid][geschlecht],sInfo[playerid][alevel],sInfo[playerid][slevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][leader],sInfo[playerid][coleader],sInfo,sInfo[playerid][spawnchange],sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    }
    return 1;
    }


    resetPlayer(playerid)
    {
    sInfo[playerid][level]=0;
    sInfo[playerid][eingeloggt]=0;
    sInfo[playerid][db_id]=0;
    sInfo[playerid][geschlecht]=0;
    sInfo[playerid][alevel]=0;
    sInfo[playerid][slevel]=0;
    sInfo[playerid][Skin]=0;
    sInfo[playerid][fraktion]=0;
    sInfo[playerid][rang]=0;
    sInfo[playerid][leader]=0;
    sInfo[playerid][coleader]=0;
    sInfo[playerid][spawnchange]=0;
    return 1;
    }


    new name[MAX_PLAYER_NAME],query[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"SELECT id FROM user WHERE username='%s'",name);
    mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);


    if(dialogid==DIALOG_REGISTER)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>3)
    {
    //Registrierungsfunktion
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s','%s') ",name,passwort);
    mysql_function_query(dbhandle,query,false,"OnPlayerRegister","d",playerid);
    TogglePlayerControllable(playerid,0);
    sInfo[playerid][regstep] = 1;
    ShowPlayerDialog(playerid,DIALOG_REGISTER2,DIALOG_STYLE_LIST,"Wähle dein Geschlecht","Männlich\nWeiblich","Auswählen","");
    return 1;
    }
    else
    {
    //Kleiner als 4 Zeichen
    SendClientMessage(playerid,ROT,"Dein Passwort muss mindestens 4 Zeichen lang sein.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Okay","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }


    if(dialogid==DIALOG_REGISTER2)
    {
    if(dialogid==DIALOG_REGISTER2)
    {
    sInfo[playerid][geschlecht] = listitem+1; // 1 = männlich 2 = weiblich
    sInfo[playerid][regstep] = 0;
    sInfo[playerid][tutpart] = 1;
    SetTimerEx("TutTimer",2000,false,"i",playerid);
    return savePlayer(playerid);
    }
    }



    public TutTimer(playerid)
    {
    if(sInfo[playerid][tutpart] == 1)
    {
    SetPlayerPos(playerid,1494.8136,-1666.0505,14.0469);
    SetPlayerFacingAngle(playerid,272.6125);
    SetCameraBehindPlayer(playerid);
    SetPlayerVirtualWorld(playerid,25);
    InterpolateCameraPos(playerid, 1115.584228, -1728.955566, 35.356784, 1190.537475, -1698.813476, 38.931377, 10000,CAMERA_MOVE);
    InterpolateCameraLookAt(playerid, 1120.251953, -1730.533691, 34.507175, 1191.590576, -1703.500488, 37.544792, 10000,CAMERA_MOVE);
    sInfo[playerid][tutpart] = 2;
    SetTimerEx("TutTimer",15000,false,"i",playerid);
    return 1;
    }
    if(sInfo[playerid][tutpart] == 2)
    {
    SetPlayerPos(playerid,1176.4874,-1649.7354,14.0049);
    SetPlayerFacingAngle(playerid,196.8897);
    SetCameraBehindPlayer(playerid);
    InterpolateCameraPos(playerid, -1991.850219, -67.903274, 55.942722, -2080.126220, -53.976066, 55.603290, 10000,CAMERA_MOVE);
    InterpolateCameraLookAt(playerid, -1994.148071, -72.153877, 54.657318, -2077.844238, -58.186519, 54.166343, 10000,CAMERA_MOVE);
    sInfo[playerid][tutpart] = 3;
    SetTimerEx("TutTimer",15000,false,"i",playerid);
    return 1;
    }
    if(sInfo[playerid][tutpart] == 3)
    {
    SetPlayerPos(playerid,1494.8136,-1666.0505,14.0469);
    SetPlayerFacingAngle(playerid,272.6125);
    SetCameraBehindPlayer(playerid);
    InterpolateCameraPos(playerid, 1419.323608, -1036.734741, 34.718708, 1490.344116, -1047.630981, 35.451251, 10000,CAMERA_MOVE);
    InterpolateCameraLookAt(playerid, 1423.311035, -1034.124511, 33.206516, 1487.870605, -1043.521362, 34.039466, 10000,CAMERA_MOVE);
    sInfo[playerid][tutpart] = 4;
    SetTimerEx("TutTimer",15000,false,"i",playerid);
    return 1;
    }
    if(sInfo[playerid][tutpart] == 4)
    {
    SetPlayerVirtualWorld(playerid,0);
    SetSpawnInfo(playerid,0,26,370.3382,-2059.1753,8.6107,359.5793,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    TogglePlayerControllable(playerid,1);
    TogglePlayerSpectating(playerid, 0);
    savePlayer(playerid);
    return 1;
    }
    return 1;
    }


    public OnPlayerRegister(playerid)
    {
    sInfo[playerid][db_id] = mysql_insert_id();
    SendClientMessage(playerid, ROT, "=====> Willkommen auf PlayPoint Reallife <=====!");
    SendClientMessage(playerid, GELB, "=====>Es folgt nun das Tutorial<=====");
    SetPlayerMoney(playerid, 2500);
    SetPlayerScore(playerid, 1);
    SetTimerEx("SkinTimer", 200, 0, "dd", playerid, 26);
    SetPlayerColor(playerid, 0xFF00FFFF);
    savePlayer(playerid);
    printf("%s hat sich Registriert!)",getPlayerName(playerid));
    }

  • Moin,


    da ich grad an einem /veh befehl arbeite, und der hervorragend funktioniert, habe ich eine Frage:


    Wie mache ich es, wenn dass Auto Explodiert, dass es dann für immer weg ist? Also dass er nicht an der letzten Posi spawnt.

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

  • ist das alles was du brauchst dafür oder brauchst du noch was dafür


    Sollte passen.


    if(dialogid==DIALOG_REGISTER)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>3)
    {
    //Registrierungsfunktion
    mysql_escape_string(inputtext,passwort,dbhandle);
    SetPVarString(playerid, "Passwort", passwort);
    TogglePlayerControllable(playerid,0);
    sInfo[playerid][regstep] = 1;
    ShowPlayerDialog(playerid,DIALOG_REGISTER2,DIALOG_STYLE_LIST,"Wähle dein Geschlecht","Männlich\nWeiblich","Auswählen","");
    return 1;
    }
    else
    {
    //Kleiner als 4 Zeichen
    SendClientMessage(playerid,ROT,"Dein Passwort muss mindestens 4 Zeichen lang sein.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Okay","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }



    if(sInfo[playerid][tutpart] == 4)
    {
    SetPlayerVirtualWorld(playerid,0);
    SetSpawnInfo(playerid,0,26,370.3382,-2059.1753,8.6107,359.5793,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    TogglePlayerControllable(playerid,1);
    TogglePlayerSpectating(playerid, 0);
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    GetPVarString(playerid, "Passwort", passwort);
    format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s','%s') ",name,passwort);
    mysql_function_query(dbhandle,query,false,"OnPlayerRegister","d",playerid);
    return 1;
    }



    public OnPlayerRegister(playerid)
    {
    sInfo[playerid][db_id] = mysql_insert_id();
    SendClientMessage(playerid, ROT, "=====> Willkommen auf PlayPoint Reallife <=====!");
    SendClientMessage(playerid, GELB, "=====>Es folgt nun das Tutorial<=====");
    SetPlayerMoney(playerid, 2500);
    SetPlayerScore(playerid, 1);
    SetTimerEx("SkinTimer", 200, 0, "dd", playerid, 26);
    SetPlayerColor(playerid, 0xFF00FFFF);
    savePlayer(playerid);
    printf("%s hat sich Registriert!)",getPlayerName(playerid));
    return 1;
    }

  • Jeffry:


    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5610) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.



    if(sInfo[playerid][tutpart] == 4)
    {
    SetPlayerVirtualWorld(playerid,0);
    SetSpawnInfo(playerid,0,26,370.3382,-2059.1753,8.6107,359.5793,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    TogglePlayerControllable(playerid,1);
    TogglePlayerSpectating(playerid, 0);
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    GetPVarString(playerid, "Passwort",passwort);
    format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s','%s') ",name,passwort);
    mysql_function_query(dbhandle,query,false,"OnPlayerRegister","d",playerid);
    return 1;
    }

  • Hallo com ich habe mir gerade ein /tv befehl gemacht und habe das problem ich geh auf /tv ganz normal sehe alles
    außer wenn er im fahrzeug sitzt
    und wenn ich vom Tv weg gehen will dann funktioniert das nicht dann kommt da Benutze /tv [ID] wie mach ich das das ich beim 2 mal keine id eingeben muss ?
    und wenn der spieler im fahrzeug sitzt in das aus der normalen sicht sehe wie als würde man selber ins car steigen
    ocmd:tv(playerid,params[])
    {
    if(!isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Info: Du bist dazu nicht befugt!");
    if(sInfo[playerid][adminduty] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Aduty!");
    new pID,string[128];
    if(sInfo[playerid][tv] == 0)
    {
    if(sscanf(params, "u", pID)) return SendClientMessage(playerid, ROT, "/tv [ID]");
    {
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid, pID);
    format(string,sizeof(string),"Du beobachtest nun %s!",getPlayerName(pID));
    SendClientMessage(playerid,GRÜN,string);
    }
    }
    else if(sInfo[playerid][adminduty] == 1)
    {
    TogglePlayerSpectating(playerid, 0);
    SetCameraBehindPlayer(playerid);
    format(string,sizeof(string),"Du beobachtest nun Nichtmehr %s!",getPlayerName(pID));
    SendClientMessage(playerid,GELB,string);
    }
    return 1;
    }

  • xSnake:


    ocmd:tv(playerid,params[])
    {
    if(!isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Info: Du bist dazu nicht befugt!");
    if(sInfo[playerid][adminduty] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Aduty!");
    new pID,string[128];
    if(sInfo[playerid][tv] == 0)
    {
    if(sscanf(params, "u", pID)) return SendClientMessage(playerid, ROT, "/tv [ID]");
    {
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid, pID);
    sInfo[playerid][tv] = 1;
    format(string,sizeof(string),"Du beobachtest nun %s!",getPlayerName(pID));
    SendClientMessage(playerid,GRÜN,string);
    }
    }
    else if(sInfo[playerid][tv] == 1)
    {
    TogglePlayerSpectating(playerid, 0);
    SetCameraBehindPlayer(playerid);
    sInfo[playerid][tv] = 0;
    format(string,sizeof(string),"Du beobachtest nun Nichtmehr %s!",getPlayerName(pID));
    SendClientMessage(playerid,GELB,string);
    }
    return 1;
    }


    Versuch es mal so, dann sollte es Klappen


    MfG

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