2 mal number of arguments fehler

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
  • hallo zusammen


    ich bin gerade ein Filterscript für dynamische Tankstellen am schreiben


    bei diesem Abschnitt, eher gesagt in der Format zeile habe ich 2 mal number of arguments type mismatch


    fehler



    ocmd:createtankstelle(playerid,params[])
    {
    new preis;
    if(sscanf(params,"i",preis)) return SendClientMessage(playerid,RED,"Verwende: /createtankstelle [Preis]");
    new Float:Pos[3];
    GetPlayerPos(playerid,Pos[0],Pos[1], Pos[2]);
    for(new i=0; i< MAX_TANKSTELLEN; i++)
    {
    //if(t_besitzer == "") continue;
    if(tInfo[i][inuse]) continue;

    }
    createtankstelle(playerid,Pos);
    //Beim erstellen und laden inuse = true setzen // beim laden die id aus der db draein setzen
    //ist die schleife dann soweit richtig mit t_besitzer und so
    return 1;
    }
    createtankstelle(playerid, Float:Position[3])
    {
    printf("Pos 1 =%f pos 2=%f pso3 =%f,playerid =%i",Position[0],Position[1],Position[2],playerid);//mach mal pls bin eben weg
    new query[512];
    tInfo[t_id][db_tid]=cache_insert_id();
    tInfo[t_id][inuse] = true;
    format(query,sizeof(query),"INSERT INTO tankstellen besitzer='%s' ,t_x='%f',t_y='%f',t_z ='%f'",GetPlayerName(playerid),Position[0],Position[1], Position[2]);
    mysql_function_query(dbhandle,query,false,"","");
    printf("Sicherheitsprint: MYSQL BEFEHL = %s",query);

    }


    vlt könnt ihr mir ja weiterhelfen


    Jeffry :D


    LG



    komischerweise sieht mein Log so aus



    [14:13:04] Sicherheitsprint: MYSQL BEFEHL = 04SERT INTO tankstellen besitzer='' ,t_x='0.000000',t_y='0.000000',t_z ='0.000000'

  • Die Funktion GetPlayerName() ist Call by Reference, bedeutet du musst eine Variable "name" erstellen und diese als Argument an die Funktion angeben.


    So ist es korrekt:
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(query,sizeof(query),"INSERT INTO tankstellen besitzer='%s' ,t_x='%f',t_y='%f',t_z ='%f'",name,Position[0],Position[1], Position[2]);