Beiträge von XeroX

    Du nutzt erst gpci bevor du targetid = strval(inputtext) verwendest dadurch wird der wert immer von id 0 genommen. Strings mit %s ausgeben. Btw %d und %i in pawn sind gleich.

    Alter ist ein SQL Befehl daher der Fehler. Einfach in age oder so umbenennen dann sollte es funktionieren. Alternativ backticks um das Wort Alter machen `Alter`. wobei ich mir beim letzteren nicht 100% sicher bin.

    Moin, hab mir hier mal ein Skript zusammen gegoogelt (kenn mich mit Python nicht aus) was alle Dateien des types .sp zur einer .smx Datei wandeln soll (Sourcemod Plugin). Idealerweise sollte es mit der core.sp anfangen da dort die includes drinne sind die restlichen Dateien sollen dann durch Python mit kompiliert werden und das möglichst so das ich nicht jede neu erstellte Datei irgentwo eintragen muss das diese mit kompiliert wird.


    Bisher habe ich es hinbekommen das alle Dateien zwar in der Variable files gespeichert werden weiß nur nicht wie ich das hinbekomme das die alle dran gehangen werden zum kompilieren. (Hoffe das ist irgentwie verständlich). Momentan wird mir nur gesagt das er die core.sp aus irgenteinem Grund nicht lesen kann. Wenn ich diese jedoch normal kompiliere funktioniert es.


    Nutze Python 2.7.12


    u funktioniert nur bei spielern (vielleicht noch bei Bots. Ist schon was länger her ;D) und sscanf versucht einen Spieler mit der ID zu finden was fehlschlägt. Daher i nutzen. Fürs nächstemal :)

    Wenn du PHP 7 nutzt existiert die mysql extension nicht mehr. Du kannst dafür mysqli oder pdo verwenden wobei mysqli fast gleich wie mysql ist nur das bei den funktionsnamen meistens einfach nur ein i angehängt wird. Kannste dir ja mal auf php.net angucken

    Reihenfolge ist entscheident. Du fragst erst ab ob das Ziel ein niedrigeres level hat bevor du überhaupt ausliest wer das ziel ist somit würde immer nur ID 0 geprüft werden.
    Also erst die sscanf abfrage danach die level abfrage im beispiel oben zeile 5 mit 8 tauschen.

    Hab mal nach langer Zeit bissel rumgebastelt. Hab mir jetzt ein rob System gebastelt wo der Spieler auf einem Actor zielen muss. Momentan ist das alles (also die Abfragen ob er auf dem actor zielt) in OnPlayerUpdate. Ist jetzt die Frage ob das OnPlayerUpdate mit noch kA 10 weiteren Abfragen mitmacht oder ob es Sinnvoller bzw es reicht nen timer zu nutzen. Der Raub soll Fehlschlagen sobald man zB nicht mehr auf den Actor zielt.


    Momentan sieht der Code so aus:
    public OnPlayerUpdate(playerid)
    {
    // No need to check if we aren't allowed to rob anyway
    if(!IsAlive(playerid)) return 1;
    if(IsACop(playerid)) return 1;
    if(IsJailed(playerid)) return 1;
    if(GetPlayerInterior(playerid) == 0) return 1;

    new actor = GetPlayerTargetActor(playerid);
    new weapon = GetPlayerWeapon(playerid);
    new string[128];
    if(actor != INVALID_ACTOR_ID)
    {
    if(actor == Actors[8] && IsPlayerInDynamicCP(playerid, CP_SexShopRobbery) && RobbedSexShopRecently == 0 && pInfo[playerid][RobbingStore] == 0)
    {
    if(IsValidAimWeapon(weapon))
    {
    if(ActorHandsUp[actor] == false) // REMOVE ME
    {
    ActorHandsUp[actor] = true; // REMOVE ME
    RobbedSexShopRecently = 240;
    pInfo[playerid][RobbingStore] = 30;
    ApplyActorAnimation(actor, "SHOP", "SHP_HandsUp_Scr",4.1,0,0,0,1,0);
    ApplyActorAnimation(actor, "SHOP", "SHP_HandsUp_Scr",4.1,0,0,0,1,0);


    GiveWanted(playerid, 4);


    format(string,sizeof(string),"**(DISPATCH STORE ROBBERY IN PROGRESS)** Suspect: %s(%d)",pInfo[playerid][Name],playerid);
    SendMessageToAllCops(string,playerid,true); // play crime report
    SendMessageToAllCops("ALL UNITS: Please respond to the sex shop in Redsands East");


    format(string,sizeof(string),"(SEX SHOP ROBBERY) Wanted Level: %d",GetWanted(playerid));
    SendClientMessage(playerid,GetPlayerColor(playerid),string);
    SendClientMessage(playerid,0x00C7FFAA,"Starting robbery. The police have been advised and will be dispatched to this store");


    format(string,sizeof(string),"~w~ROBBERY IN PROGRESS~n~~r~KEEP AIMING AT THE CASHIER~n~~b~30~w~ SECONDS REMAIN");
    GameTextForPlayer(playerid,string, 2000, 3);
    }
    }
    }
    else if(actor == Actors[9] && IsPlayerInDynamicCP(playerid, CP_TattooRobbery) && RobbedTattooShopRecently == 0 && pInfo[playerid][RobbingStore] == 0)
    {
    if(IsValidAimWeapon(weapon))
    {
    if(ActorHandsUp[actor] == false)// REMOVE ME
    {
    ActorHandsUp[actor] = true;// REMOVE ME
    RobbedTattooShopRecently = 240;
    pInfo[playerid][RobbingStore] = 30;
    ApplyActorAnimation(actor, "SHOP", "SHP_HandsUp_Scr",4.1,0,0,0,1,0);
    ApplyActorAnimation(actor, "SHOP", "SHP_HandsUp_Scr",4.1,0,0,0,1,0);

    GiveWanted(playerid, 4);


    format(string,sizeof(string),"**(DISPATCH STORE ROBBERY IN PROGRESS)** Suspect: %s(%d)",pInfo[playerid][Name],playerid);
    SendMessageToAllCops(string,playerid,true); // play crime report
    SendMessageToAllCops("ALL UNITS: Please respond to the tattoo shop in Redsands East");


    format(string,sizeof(string),"(TATTOO SHOP ROBBERY) Wanted Level: %d",GetWanted(playerid));
    SendClientMessage(playerid,GetPlayerColor(playerid),string);
    SendClientMessage(playerid,0x00C7FFAA,"Starting robbery. The police have been advised and will be dispatched to this store");


    format(string,sizeof(string),"~w~ROBBERY IN PROGRESS~n~~r~KEEP AIMING AT THE CASHIER~n~~b~30~w~ SECONDS REMAIN");
    GameTextForPlayer(playerid,string, 2000, 3);
    }
    }
    }
    }
    else if(pInfo[playerid][RobbingStore] > 0 && IsValidAimWeapon(weapon))
    {
    pInfo[playerid][RobbingStore] = 0;
    if(IsPlayerInDynamicCP(playerid, CP_SexShopRobbery))
    {
    ClearActorAnimations(Actors[8]);
    ActorHandsUp[Actors[8]] = false;// REMOVE ME
    }
    else if(IsPlayerInDynamicCP(playerid, CP_TattooRobbery))
    {
    ClearActorAnimations(Actors[9]);
    ActorHandsUp[Actors[9]] = false;// REMOVE ME
    }
    GameTextForPlayer(playerid,"~r~ROBBERY FAILED~n~~w~YOU DIDN'T KEEP AIMING AT THE CASHIER",3000,3);
    }
    return 1;
    }