Beiträge von NicoAiko


    if (strcmp("/leihen", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,15.0, 160.1029,-1932.5166,3.7734))
    {
    if(rollerhaben[playerid] == 1)
    {
    ShowPlayerDialog(playerid,DIALOG_VERLEIH,DIALOG_STYLE_MSGBOX,"Neulingshilfe","Willst du einen Roller für €50 Mieten?","Mieten","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist nicht beim Verleih!");
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du kannst erst in 15 Minuten einen Roller erneut");
    }
    return 1;
    }

    Danke NicoAiko, das wusste ich nicht , das Textdraws ohne text nicht angezeigt werden auch wenn sie später deklariert werden.


    Lg Melbatt


    *Closed*


    Wenn der Text leer ist, dann crasht der Server "normalerweise".
    Von daher immer daran denken, wenigstens ein "_" reinzumachen ;)


    Edit: Danke [FoR]Hardcore, ich war ein paar Millisekunden später dran ^^

    Ich zitiere mal aus der Wiki:



    Suche deinen Fehler im Textdraw


    €:


    DJ Deagle


    So ein Quatsch


    strcmp vergleicht beide Strings!


    Selbst in der Wiki steht das so... *Selfown* (nicht böse gemeint ^^)

    Mal ne Frage, zum Thema das man die Lizens nur für 1 PC nutzen kann, ich benutze zB. 2 PC´s auf denen ich scripte, kann man das nich so machen das wenn mna in einem haushalt sprich ne ähnliche IP hat das man die Lizens auch für nen 2. PC Nutzen kann?


    währe genial


    ich fänds besser wenn man die Lizenzen für mehrere PCs gleichzeitig benutzen kann, oder sie irgendwie kostenfrei anmelden kann...

    Dessen bin ich mir bewusst ^^


    Jedoch ist es nicht so, wenn ein "&" vor der variable steht, wird sie an die andere übergeben?


    sprich



    stock IsPlayerInDatabase(playerid)
    {
    new query[100+MAX_PLAYER_NAME],playername[MAX_PLAYER_NAME],result; <-- // result = 0
    GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
    mysql_format(true,query,"SELECT COUNT(*) as count FROM `User` WHERE `Name` = '%e'",playername);
    mysql_function_query(connectionHandle,query,true,"OnLoadMySQL","dd",MySQL_IsPlayerInDatabase,result); <-- // result müsste 1 wegen &result bei OnLoadMySQL
    if(result) return 1;
    else return 0;
    }


    public OnLoadMySQL(loadid,&result) <--- &result


    ist doch dasselbe wie bei GetPlayerPos oder?


    Da ist doch auch GetPlayerPos(playerid,&Float:x,&Float:y,&Float:z)

    Hallo, ich wollte mal nachfragen, wie ich mit der R7 Version eine COUNT Abfrage mache...
    Denn die Sache ist die: Ab R7 hat man Threaded Queries, daher kann ich caches nur in einem seperaten Callback holen.
    Und da besteht das Problem, denn wie returne / gebe ich das Ergebnis des COUNTs zurück zur Original Abfrage?


    Momentan sieht es so aus:



    stock IsPlayerInDatabase(playerid)
    {
    new query[100+MAX_PLAYER_NAME],playername[MAX_PLAYER_NAME],result;
    GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
    mysql_format(true,query,"SELECT COUNT(*) as count FROM `User` WHERE `Name` = '%e'",playername);
    mysql_function_query(connectionHandle,query,true,"OnLoadMySQL","dd",MySQL_IsPlayerInDatabase,result);
    if(result) return 1;
    else return 0;
    }
    public OnLoadMySQL(loadid,&result)
    {
    switch(loadid)
    {
    case MySQL_IsPlayerInDatabase:
    {
    new count[5];
    cache_get_field_content(0,"count",count,connectionHandle);
    if(strval(count)) result = 1;
    else result = 0;
    return 1;
    }
    }
    return 1;
    }


    kann mir da jemand weiterhelfen?


    Edit: Habs mal geprintet und es ist folgendes dabei rausgekommen:


    Count wird richtig benutzt (Print im Callback OnLoadMySQL gibt 1 bei count raus), nur die result im IsPlayerInDatabase wird nicht gesetzt oO d.h. die variable wird nicht gesetzt, wie kann ich das ändern?
    Liegt es evtl. daran, dass das nicht schnell genug gesetzt wird?

    Die Include wird auch so nicht funktionieren, das garantiere ich ^^


    Es wird Meldungen wegen des Callbacks geben, da nicht gehooked wurde ;)


    Setz dich mal mit dem Thema auseinander und mach außerdem einen Timer im Kick rein sonst sieht der den Kickgrund nicht ^^


    MfG

    Warum eig unter OnVehicleSpawn?


    Machs doch direkt nach der Erstellung (und ich empfehle dir übrigens AddStaticVehicle(Ex falls du die Respawnzeit haben willst), sprich nach dem Erstellen in OnGameModeInit


    Edit: Piet_Meier war schneller

    Also die Vorstellung ist eher schwach...


    Wenn ihr ein Selfmade vorstellt, dann solltet ihr auch dessen Features erwähnen, ansonsten sehr ihr kaum Leute.
    Ich, als Betrachter wäre nicht besonders angeregt, euren Server zu testen, da ihr keine "Spannung" aufbringt...


    Überarbeitet die Vorstellung am Besten nochmal und erwähnt die Vorzüge!


    Das Forum sieht für mich recht schick aus ^^

    Kick schon getestet?


    Bei mir funktioniert es nur mit Timer!
    Bei den meisten (unter anderem auch ein Thread im eng. Forum) funktioniert es auch nur noch mit Timer.


    Die Reihenfolge spielt in dem Fall keine Rolle, bei einem Kick entscheidet sich der Client keine anderen Signale mehr entgegenzunehmen, und kappt sofort die Verbindung (so wie ich das jetzt verstanden habe)


    Das mit dem Kicken würde zwar klappen, leider wäre aber der Gekickte in dem Fall "gearscht", da er den Grund nicht erfährt ;)


    Seit 0.3x muss man Timer zum Kicken und Bannen benutzen, weil der Client sonst keine weiteren Signale annimmt ;)


    Edit:


    Wie steht es denn nun mit dem Code?


    Wenn nichts passiert, hat das eine Ursache oO


    Was gibst du denn ein?


    Kommt keine Nachricht?


    Und die wirklich GANZ DUMME FRAGE: sieht dein #define ROT evtl so aus?
    #define ROT 0xFF000000
    Wenn ja mach das so: #define ROT 0xFF0000AA

    Ich dachte, ich habe es in dem anderen Thread bereits erklärt:



    ocmd:kick(playerid,params[])
    {
    new pID,Grund[50],string[128];
    if(sscanf(params,"us",pID,Grund)) return SendClientMessage(playerid,ROT,"FEHLER: /kick [playerid] [grund]"); // Wenn nicht alle Eingaben getätigt wurden
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online!"); // Wenn die eingegebene ID nicht online ist
    format(string,sizeof(string),"[AdmCmd]: %s wurde von %s vom Server gekickt, Grund: %s",SpielerName(pID),SpielerName(playerid),Grund);
    SendClientMessageToAll(ROT,string);
    SetTimerEx("kicktimer",500,0,"i",pID); // Kickbefehl wird versendet
    return 1;
    }



    //Stocks
    stock SpielerName(playerid)
    {
    new GetName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,GetName,sizeof(GetName));
    return GetName;
    }
    //TIME KICK ECT
    forward kicktimer(pID);
    public kicktimer(pID)
    {
    Kick(pID);
    return 1;
    }


    Edit:


    Ich würde dir empfehlen, erst das Negative abzufragen, zum Beispiel, ob der Spieler (pID) NICHT online ist, denn dann brauchst du bloß eine return SendClientMessage schicken und ersparst dir ein "else" und für dich evtl. komplizierte Klammersetzung.


    Ich rate dir, setz dich mit den Funktionen auseinander und versuch etwas mehr auf die Klammersetzung zu achten.