/bizerstellen Problem

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
  • Folgendes Problem..


    Immer wenn ich ein Biz erstelle wird alles in die Datei gespeichert(später in dem stock).
    Doch bei Name steht immer nur der erste Buchstabe des ingame eingegeben Namens..
    Woran liegt das?


    ocmd:bizerstellen(playerid,params[])
    {
    new name,preis,Float:x,Float:y,Float:z,maxprodukte;
    if(IsPlayerAnAdmin(playerid,5))
    {
    if(sscanf(params,"sii",name,preis,maxprodukte)) return SendClientMessage(playerid,GRAU,"/bizerstellen [name] [Preis] [Maximale Produkte]");
    {
    GetPlayerPos(playerid,x,y,z);
    Bizerstellen(x,y,z,name,preis,maxprodukte);
    SetPlayerPos(playerid,x,y,z);
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht befugt!");
    }
    return 1;
    }

  • 1. Du hast name nicht als String definiert. 8|
    2. bei sscanf braucht man kein % (?)
    3. Bei sscanf braucht man bei einem string (also s) immer noch die größer dahinter. s[25]


    Das ist was mir so auffällt.

  • 1. Du hast name nicht als String definiert. 8|
    2. bei sscanf braucht man kein % (?)
    3. Bei sscanf braucht man bei einem string (also s) immer noch die größer dahinter. s[25]


    Das ist was mir so auffällt.


    ocmd:bizerstellen(playerid,params[])
    {
    new name[64],preis,Float:x,Float:y,Float:z,maxprodukte;
    if(IsPlayerAnAdmin(playerid,5))
    {
    if(sscanf(params,"sii",name,preis,maxprodukte)) return SendClientMessage(playerid,GRAU,"/bizerstellen [name] [Preis] [Maximale Produkte]");
    {
    GetPlayerPos(playerid,x,y,z);
    Bizerstellen(x,y,z,name,preis,maxprodukte);//Fehlerzeile
    SetPlayerPos(playerid,x,y,z);
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht befugt!");
    }
    return 1;
    }


    C:\Users\Christian\Desktop\Server\gamemodes\Testversuch.pwn(4410) : error 035: argument type mismatch (argument 4)

  • ocmd:bizerstellen(playerid,params[])
    {
    new name[MAX_PLAYER_NAME],preis,Float:x,Float:y,Float:z,maxprodukte;
    GetPlayerName(playerid,name,sizeof(name));
    if(!IsPlayerAnAdmin(playerid,5)) return SendClientMessage(playerid,ROT,"Du bist nicht befugt!");
    if(sscanf(params,"sii",name,preis,maxprodukte)) return SendClientMessage(playerid,GRAU,"/bizerstellen [name] [Preis] [Maximale Produkte]");
    GetPlayerPos(playerid,x,y,z);
    Bizerstellen(x,y,z,name,preis,maxprodukte);
    SetPlayerPos(playerid,x,y,z);
    return 1;
    }


    //so müsste es gehen :)


  • Es soll nicht der Spielername benutz werden, der name wird ja von mir eingegeben!


    EDIT: Außerdem ändert das nichts an dem Error:(

  • if(sscanf(params,"iis",preis,maxprodukte,name))


    Damit man z.B. "Hans Peter Biz" als Biznamen nehmen kann, den namen bei SSCANF immer hinten dran schreiben.


    Hast du das sscanf-Plugin, das Include oder den stock?


    PS: Beim stock bizerstellen muss Name so eingetragen werden:
    stock Bizerstellen(Float:X,Float:Y,Float:Z,Name[],Preis,Maxprodukte)
    {
    //Code..
    }


    /edit: Soll name der Biz, oder SPielername sein?