Beiträge von Blackshadowscript

    Guten Tag.


    Ich habe grade gemerkt das die Spieler nicht zurück gesetzt werden.


    resetPlayer(playerid)
    {
    for(new i=0; i<sizeof(sInfo[]); i++)
    {
    sInfo[playerid][playerInfo:i]=0;
    }
    return 1;
    }


    savePlayer(playerid);
    resetPlayer(playerid);


    savePlayer(playerid)
    {
    if(sInfo[playerid][eingeloggt]==0)return 1;
    //speichern level,money
    new query[300];
    format(query,sizeof(query),"UPDATE user SET level ='%i',money='%i',alevel='%i',,fraktion='%i',,rang='%i' WHERE id='%i' ",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],GetPlayerMoney(playerid),GetPlayerScore(playerid),sInfo[playerid][rang],sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }



    ich weiss einfach nicht wieso es nicht geht

    Guten Tag.



    Folgendes Problem:


    Mein Befehl für abschliessen der Autotüren geht laut ein fehler nicht und weiss auch nicht wie ich es beheben soll.


    Bfehel:


    ocmd:abschliessen(playerid,params[])
    {
    new Float:x,Float:y,Float:z;
    if(!IsPlayerInRangeOfPoint(playerid,3,x,y,z)
    new vID=GetPlayerVehicleID(playerid),
    motor,
    licht,
    alarm,
    tueren,
    bonnet,
    boot,
    objective;

    //abschliessen:
    GetVehicleParamsEx(vID,motor,licht,alarm,tueren,bonnet,boot,objective);
    if(tueren==1){
    tueren = 0;
    }
    else
    {
    tueren = 1;
    }
    SetVehicleParamsEx(vID,motor,licht,alarm,tueren,bonnet,boot,objective);
    SendClientMessage(playerid,blau,"Du hast die Türen aufgeschlossen/abgeschlossen");
    return 1;

    }


    Fehlermeldung:


    samplernen.p(836) : error 001: expected token: ")", but found "new"
    samplernen.p(836) : error 003: declaration of a local variable must appear in a compound block
    samplernen.p(836) : error 017: undefined symbol "vID"
    samplernen.p(836) : fatal error 107: too many error messages on one line

    Meine Art geht auch da man es mit enum machen kann. Es ist zwar nicht so eine optimale variante da man über 1.000 Objekte laden muss und somit der Server läggen würden.

    davidlg01 ich weiss nicht mit was du deine Befehel machen willst.


    Es gibt einmal das Standard vom Pwn her schon mit den Befehle.


    Es gibt auch ocmd womit du deine befehle machen kannst.


    Beispiel:
    ocmd:reparieren(playerid,params[])
    {
    if(!IsPlayerInAnyVehicle(playerid))
    return 1;
    new istimpunkt=false;
    for(new i=0; i<sizeof(repair); i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,2,repair[i][r_x],repair[i][r_y],repair[i][r_z]))
    continue;


    istimpunkt=true;
    }


    if(istimpunkt)
    {
    new vID= GetPlayerVehicleID(playerid);
    SetVehicleHealth(vID,1000);
    RepairVehicle(vID);
    GivePlayerMoney(playerid,-60);
    SendClientMessage(playerid,hellgrün,"Du hast dein Fahrzeug für 60$Repariert!");
    }
    else
    {
    SendClientMessage(playerid,hellgrün,"Du bist nicht im Reparier-Punkt.");
    }


    return 1;
    }


    Das war zu deiner ersten Fragen die Antwort.


    Hier nun zu deiner 2Frage: Wie man Objekte wo hinsetzet:


    Erstell dir ein Enum für die Objekte und die Koordinaten und dann machst du ein Befehl.



    Befehl Beispiel:
    ocmd:Baustelleerstellen(playerid,params[])
    {
    new oID,ooID;
    return SendClientMessage(playerid,farbe,"INFO:Baustellebauen objektid benutzen");
    if(oID1||oID|>6525)return SendClientMessage(playerid,farbe,"Unglültiges Objektid!");
    CreateObject(oID,x,y,z,x_r,y_r,z_r);
    SendClientMessage(playerid,farbe,"Sie haben eine Baustelle erstellt");
    return 1;
    }



    Falls ich mich verschrieben haben sollte so wie falsche Information gegeben haben sollte entschuldige ich mich schon mal.
    Ich hoffe Jeffry schaut in verlauf des Wochenendes mal hier rein.

    Es sieht dann jetzt so aus Jeffry


    ocmd:Leadererstellen(playerid,params[])
    {
    if(!isAdmin(playerid,5))return SendClientMessage(playerid,grün,"Du hast keine Berechtigung dazu!");
    new pID,fID;
    if(sscanf(params,"ui",pID,fID))return
    SendClientMessage(playerid,dunkelblau,"INFO: /Leadererstellen [playerid][fraktid]");
    if(fID>= sizeof(fInfo))return SendClientMessage(playerid,rot,"Die Fraktion existiert nicht!");
    sInfo[pID][fraktion] = fID;
    sInfo[pID][rang] = 5;
    new string[128];
    format(string,sizeof(string),"%s hat Sie zum Leader der Fraktion %s gemacht.",getPlayerName(playerid),fInfo[fID][f_name]);
    format(string,sizeof(string),"%s hat Sie zum Leader der Fraktion ernannt. Sie haben nun 5Wochen eine Fraktionssperre!",getPlayerName(playerid));
    SendClientMessage(pID,grün,string);
    SendClientMessage(pID,grün,"Sollten sie vorher die Fraktion verlassen bekommen sie eine Leaderverwarnung!");
    SetPlayerColor(playerid,fInfo[fID][f_color]);
    return 1;
    }

    Ich habe für die Fraktionsfarben folgendes gemacht:


    isPlayerInFrakt(playerid,f_id){
    if(sInfo[playerid][fraktion]==f_id)return 1;
    return 0;
    }


    public OnPlayerSpawn(playerid)
    {
    if(!isPlayerInFrakt(playerid,0))
    {
    new fID;
    fID= sInfo[playerid][fraktion];
    SetPlayerPos(playerid,fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]);
    SetPlayerFacingAngle(playerid,fInfo[fID][f_r]);
    SetPlayerInterior(playerid,fInfo[fID][f_inter]);
    SetPlayerVirtualWorld(playerid,fInfo[fID][f_world]);
    SetPlayerColor(playerid,fInfo[fID][f_color]);
    }
    return 1;
    }


    Nur das Problem diesmal ist das wenn ich ingame mir selbst Leader einer Fraktion gebe kann ich immer noch mit der Blauen Farbe im Chat schreiben obwohl in fInfo folgendes steht:


    new fInfo[][frakteEnum] ={
    {"zivi",0.0,0.0,0.0,0.0,0,0,weiß}, //zivi
    {"LVPD",2286.9927,2431.6108,10.8203,176.4932,0,0,dunkelblau}, //LVPD
    {"SWAT",-2719.8411,-318.3455,7.8438,46.7307,0,0,helblau}, //SWAT
    {"FBI",-1606.3145,712.2166,13.8672,14.9407,0,0,duneklhelblau}, //FBI
    {"ARMY",245.4032,1859.6956,14.0840,86.8001,0,0,hellgrün}, //ARMY
    {"Medic/Feuerwehr",-319.8502,1049.1862,20.3403,351.6078,0,0,rot}, //MEDIC/FEUERWEHR
    {"FAHRSCHULE",662.8862,1716.9479,7.1875,37.0085,0,0,orange}, //FAHRSCHULE
    {"Aztecas",1531.2836,751.6505,11.0234,265.7675,0,0,türkis}, //Aztecas
    {"VAGOS",-2280.8035,2288.0842,4.9590,285.9662,0,0,gelb}, //VAGOS
    {"BALLAS",1457.6174,2772.6257,10.8203,263.1655,0,0,pink}, //BALLAS
    {"YAKUZA",1956.0493,729.8642,10.8203,106.5192,0,0,grau}// YAKUZA
    };


    ich habe echt kein plan mehr

    Es geht leider immer noch nicht.


    Bekomme immer nur:
    SendClientMessage(playerid,orange,"Du hast einen Spieler zum Leader einer Fraktion gemacht!");


    aber es sollte normal auch:
    format(string,sizeof(string),"%s hat Sie zum Leader der Fraktion ernannt. Sie haben nun 5Wochen eine Fraktionssperre! Sollten sie vorher die Fraktionverlassen bekommen sie eine Leaderverwarnung!",getPlayerName(playerid),fInfo[fID][f_name]);
    SendClientMessage(pID,grün,string); ausgeben aber passiert nichts