Beiträge von Illuminatus

    Versuchs mal hiermit.. bei mir "spuckt" der KEINE Fehler mehr raus!



    if(strcmp(cmdtext,"/heilen",true) == 0)
    {
    SendClientMessage(playerid,GELB,"Benutze: /heilen [ID]");
    new string[128];
    new id = strval(cmdtext);
    new spieler[MAX_PLAYER_NAME];
    new admin[MAX_PLAYER_NAME];
    GetPlayerName(id,admin,sizeof(admin));
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(string, sizeof(string), "Spieler: %s wurde von %s geheilt.", admin, spieler);
    SendClientMessage(playerid, ROT, string);
    SetPlayerHealth(id, 100);
    return 1;
    }

    ..genauso übernehmen und du hast KEINE warnings!!

    HuHu..


    mal wieder habe ich ein Problem, ich habe mir das Tutorial von ".:: Luma ::." angeschaut und genauso gemacht. Allerdings spuckt er mir beim Compilen folgende Errors aus..


    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\pawno\include\dutils.inc(109) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\pawno\include\dutils.inc(149) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\pawno\include\dutils.inc(257) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\pawno\include\dutils.inc(314) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\gamemodes\MPCS.pwn(123) : error 021: symbol already defined: "loggedin"
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\gamemodes\MPCS.pwn(125) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\gamemodes\MPCS.pwn(565) : warning 219: local variable "name" shadows a variable at a preceding level
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\gamemodes\MPCS.pwn(595) : error 010: invalid function or declaration
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\gamemodes\MPCS.pwn(601) : warning 219: local variable "name" shadows a variable at a preceding level
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\gamemodes\MPCS.pwn(614) : warning 219: local variable "name" shadows a variable at a preceding level
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\gamemodes\MPCS.pwn(617) : error 028: invalid subscript (not an array or too many subscripts): "loggedin"
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\gamemodes\MPCS.pwn(617) : warning 215: expression has no effect
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\gamemodes\MPCS.pwn(617) : error 001: expected token: ";", but found "]"
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\gamemodes\MPCS.pwn(617) : error 029: invalid expression, assumed zero
    C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas - Kopie\gamemodes\MPCS.pwn(617) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    8 Errors.


    ..einige Errors und Warnings kamen durch das Login System, weil sobald ich das Login System KOMPLETT auskommentiere sind alle Warnings, Errors weg.


    Hier das Login /Regestrier System aus meinem Script..


    #include <dini>
    #include <Dudb>


    enum fraktion_daten
    {
    skin,
    }


    new pInfo[MAX_PLAYERS][Info];//neues Login System
    new bool:loggedin[MAX_PLAYERS];//neues Login System


    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid,2047.4270,1336.5569,10.6719);
    SetPlayerFacingAngle(playerid,188.9284);
    SetPlayerCameraPos(playerid,2047.6205,1333.3314,10.6719);
    SetPlayerCameraLookAt(playerid,2047.4270,1336.5569,10.6719);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    new name[128], save[128]; //cmd zum Speichern der Userdaten
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Spieler/%s.ini",name); //Speicherort der .ini
    if(dini_Exists(save)) // Spieler da?!
    {
    SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
    SendClientMessage(playerid, 0xFFFFFFAA, "Dein Account wurde wiedererkannt.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt einloggen.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /login [passwort].");
    GivePlayerMoney(playerid,dini_Int(save,"Geld")); // Geld laden
    SetPlayerSkin(playerid,dini_Int(save,"Skin")); //Skin laden
    }
    else
    {
    if(!dini_Exists(save)) //Spieler ist nicht da
    {
    SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du hast noch keinen Account.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt registrieren.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /register [passwort].");
    }
    }
    }


    SetPlayerMapIcon(playerid, 36, 1854.7035,-1145.1703,23.8639, 52,0);//Bank


    new name[MAX_PLAYER_NAME], string[44];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s betrat den Server.",name);
    SendClientMessageToAll(DUNKELGRAU, string);
    return 1;
    }



    public OnPlayerDisconnect(playerid, reason)
    {
    new name[128], save[128];// Gleiche
    GetPlayerName(playerid,name,sizeof(name)); // wie
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(dini_Exists(save)) // steht
    {
    dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
    dini_IntSet(save,"Skin",GetPlayerSkin(playerid)); // speichert den aktuellen Skin, welchne der Spieler zum schluss hatte
    }
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new name[128], save[128];// Gleiche
    GetPlayerName(playerid,name,sizeof(name)); // wie
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(loggedin[playerid] == false) //Wenn er nicht eingeloggt ist
    {
    SendClientMessage(playerid, 0xAA3333AA, "Du musst dich Einloggen bevor du spawnst!");
    Kick(playerid); // Kicke den Spieler
    }
    SetPlayerSkin(playerid,dini_Int(save,"Skin")); //lade und setze den gespeicherten Skin
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(strget(cmdtext,0), "/login", true) == 0)
    {
    new save[40], s2[256]; //gleiche wie oben
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(dini_Exists(save)) // wenn Datei existiert
    {
    s2=dini_Get(save,"passwort"); // lade das Passwort
    if(strval(s2)==udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort von der registration übereinstimmt
    {
    loggedin[playerid] = true; //sage dem Server, dass der Spieler eingeloggt ist.
    SendClientMessage(playerid, 0x33CCFFAA, "***Du hast dich erfolgreich eingeloggt***");
    SpawnPlayer(playerid);
    }
    else // wenn das passwort nicht stimmt
    {
    SendClientMessage(playerid, 0xAA3333AA, "Passwort Falsch!");
    }
    }
    return 1;
    }


    if(strcmp(strget(cmdtext,0), "/register", true) == 0)
    {
    new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save, sizeof(save),"Spieler/%s.ini",spieler); //Speicherort
    if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
    {
    dini_Create(save); // Erstelle eine Neue .ini Datei
    dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegeben hat) || das udb_hash verschlüsselt das Passwort in der .ini. Dazu benötigen wir die oben angegebene Include DUBD.
    SendClientMessage(playerid, 0x33AA33AA, "***Dein Account wurde erfolgreich registriert***");
    SendClientMessage(playerid, 0x33AA33AA, "***Nutze /login [Passwort] um dich einzuloggen***");
    }
    else
    {
    if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
    {
    SendClientMessage(playerid, 0xAA3333AA, "Der Account ist bereits registriert");
    }
    }
    return 1;
    }


    das ist der Auschnitt des Login / Register System.. kann mir einer helfen die Errors zu beseitigen ?


    Falls ihr weitere "Codeschnipsel" benötigt, einfach bescheid sagen!


    Danke schonmal im voraus

    ..Du hast in deiner Angabe 60.000 stehen..
    public OnPlayerConnect(playerid){
    PayTimer[playerid] = SetTimerEx("PayDay", 60000, 1, "i", playerid); // hier logischerweise xD


    ..ersetz die 60.000 mit 600.000 (OHNE PUNKT!) ..dann hast Du schonmal einen Payday alle 60min..teste das mal.. und das mit dem Unregelmäßig kann ich mir nicht erklären..


    viel erfolg!


    hier ein ausschnitt von meinem Timer


    SetTimer("payday",600000,1);

    was ? wie definiert.. mom das hier sind meine roller
    //Noobfahrzeuge / Noobspawn
    CreateVehicle(462,1702.9867,-1914.7061,13.1585,299.6919,181,166,30000); //Faggio
    CreateVehicle(462,1702.9094,-1912.4880,13.1439,299.2505,181,166,30000); //Faggio
    CreateVehicle(462,1702.7560,-1910.1920,13.1682,296.0562,181,166,30000); //Faggio

    HuHu..


    ich habe Roller an meinem Noobspawn eingefügt Faggios...


    ..ich möchte diese aber nach einer bestimmten Zeit zurück spawnen lassen..


    Also ich erkläre es mal detaillierter..


    Ich habe 3 Faggios an meinem Noobspawn stehen diese können "Neulinge" nutzen um zu den wichtigsten orten zu kommen. Nun möchte ich aber das sobald sich einer drauf setzt ein timer startet von 10 min auf 0 runter zählt.. nach dem der Timer abgelaufen ist wollte ich es so machen das das auto OHNE spieler zurück gespawnt wird. Der Timer sollte aber ersichtlich sein.. also irgendwie unten rechts "Du kannst dieses Fahrzeug noch "TIME" nutzen!" ..geht das ?? wenn ja kann mir das mal einer evtl. machen.. ??


    Grußii

    okee ?! :S ... wie füge ich das in den "CODE" ein weil wenn ich es unter dem return 1; setze bekomme ich unendlich errors.. kann mir das mal evtl. wie der nette User [GTA]WorldOwner komplett einmal als .pwn hier posten ?

    das muss ich hinter der ersten id machen oder ?


    sprich so oder ?


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 463 || 482)
    {
    if(GetPlayerSkin(playerid) != 255)
    {
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    return 1;
    }


    oder ?


    //EDIT: pwn text verbessert


    //EDIT: DAS KLAPPT.. nur wie mache ich das nun mit einem weiteren skin..


    jetzte habe ich ja "nur" für die Hells Angels skin bezogene fahrzeuge gemacht.. wie mache ich das nur für meine La Cosa Nostra..


    die haben ja anderen skin andere fahrzeuge

    oke das klapt soweit, SUPER (!!) Danke sehr.. nur wie mache ich das das nun auch für mehrere Fahrzeuge und skins geht.. sprich ich habe hier eine GANG Hells Angels.. diesen habe ich Motorräder(FREEWAY) und Burritos gegeben....


    ..dem Motorrad haben wir ja einen Skin zugewiesen nur wie weise ich nun den Burritos einen zu ?


    ..dann habe ich noch eine Gang die La Cosa Nostra


    den habe ich zum "testen" golfcaddys gegeben xD


    ..diese soll man aber nur mit skin 188 fahren dürfen..


    wie mache ich das ?

    was für eine Antwort :S


    ..hier mein pwn. "Ausschnitt"


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(GetVehicleModel(GetVehicleModel(playerid)) == 463)
    {
    if(GetPlayerSkin(playerid) != 255)
    {
    RemovePlayerFromVehicle(playerid);
    }
    }
    return 1;
    }

    also.. ich habe es unter "OnPlayerEnterVehicle " versucht wenn ich mit skin 188 aufsteige kann ich das Fahrzeug dennoch fahren obwohl wir ja gesagt hatten das nur ein spieler mit skin 255 diesen fahren sollte.. ??


    ahc und uch habe es noch auch noch unter "OnPlayerStateChange" versucht.. selber "Fehler"..steige mit skin id 188 aufs motorrad obwohl ja wie schon gesagt eingestellt wurde das NUR 255 dieses fahrzeug fahren darf

    danke.. aber wie setze ich das Fahrzeug sprich du hast ja da geschrieben "Freewayid" was muss dahin ? ..weil beim mir steht zruzeit folgendes


    CreateVehicle(463,668.08630371,-458.57135010,15.95293713,114.00000000,0,1,-1); //Freeway



    ..wie mache ich das, dort erkannt wird das ich die Freeway meine ?

    HuHu..


    ..ich wollte gerne Skin bezogene Fahrzeuge erstellen, sprich das zB. die Freeway (habe mehrere davon) nur mit skin id 255 genutzt werden kann. Sollte eine Person diesen Skin nicht besitzen also die 255 sondenr einen GANZ anderen, so soll dieser eine nachricht erhalten.. "Sie haben kein Schlüssel für dieses Fahrzeug" .und soll gekickt werden aus dem auto.


    Geht sowas und wenn ja kann mir das mal evtl. einer machen ?


    Was muss ich dann noch definieren das ich WIRKLICH zB... 5 Freeways nur mit skin 255 fahren lasse und 5 taxen mit skin 188 bspw. ?

    HuHu..


    ich habe ein makeleader cmd erstellt (in dcmd) geschrieben.. nun aber komme ich nicht weiter, klingt doof ist aber so :D:D


    ..


    ..hier der makeleader Ausschnitt


    }
    dcmd(makeleader, 10, cmdtext);
    dcmd(template, 8, cmdtext);
    return 1;
    }
    dcmd_makeleader(playerid, params[])
    {
    new userId, frakId, index;
    userId = strval(strtok(params, index));
    frakId = strval(strtok(params, index));
    if (pInfo[playerid][AdminLevel] > 1)
    {
    if (IsPlayerConnected(userId))
    {
    //FIX_ME
    pInfo[userId][fraktion] = 1;
    pInfo[userId][frakrang] = 12;
    pInfo[userId][frakleader] = 1;
    SendClientMessage(playerid, GELB, "Du hast einen Spieler zum Leader gemacht.");
    SendClientMessage(userId, HELLBLAU, "Du wurdest zum Leader einer Fraktion gemacht.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, ROT, "Spieler nicht online.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, ROT, "Du bist besitzt nicht das nötige Adminlevel");
    return 1;
    }
    }


    Dieser steht unter public OnPlayerCommandText(playerid, cmdtext[]) und ist Fehlerfrei, nur wie mache ich diesem nun nutzbar.. sprich wie mache ich das das wenn ich /makeleader eingebe ich einen Spieler, eine Fraktion und einen Skin zuweisen kann?

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(strget(cmdtext,0),"/makeleader"))
    {
    if(Spieler[playerid][Admin] >= 4 )
    {
    if(!strlen(strget(cmdtext,1)))
    return
    SendClientMessage(playerid,GRAU,"Benutze: /makeleader [ID] [FraktionsID]");
    //new string[128];
    new id3 = strval(strget(cmdtext,1));
    new admin3[MAX_PLAYER_NAME];
    new gang = strval(strget(cmdtext,2));
    GetPlayerName(id3,admin3,sizeof(admin3));
    format(string, sizeof(string), "*** Du wurdest von Admin %s zum Leader der Fraktionsnummer %d gemacht.", admin3, gang);
    SendClientMessage(id3, RED, string);
    format(string, sizeof(string), "*** Du hast %s zum Leader der Fraktionsnummer %d gemacht.", id3, gang);
    SendClientMessage(playerid, RED, string);
    if(gang==1) { SetPlayerSkin(id3,280);Spieler[playerid][leader]= 1; }


    Spieler[id3][leader] = test;
    Spieler[id3][team] = test;
    }
    else
    {
    SendClientMessage(playerid, COLOR_LIGHTRED,"Du darfst diesen Befehl nicht benutzen !");
    }
    return 1;
    }

    C:\Users\Chris\Grand Theft Auto San Andreas\gamemodes\MPCS.pwn(211) : error 017: undefined symbol "Spieler"
    C:\Users\Chris\Grand Theft Auto San Andreas\gamemodes\MPCS.pwn(211) : warning 215: expression has no effect
    C:\Users\Chris\Grand Theft Auto San Andreas\gamemodes\MPCS.pwn(211) : error 001: expected token: ";", but found "]"
    C:\Users\Chris\Grand Theft Auto San Andreas\gamemodes\MPCS.pwn(211) : error 029: invalid expression, assumed zero
    C:\Users\Chris\Grand Theft Auto San Andreas\gamemodes\MPCS.pwn(211) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    ..das kommt dabei raus, wenn ich "kackendreist" Copy&paste mache :S