lundi 17 novembre 2014

Message ñî âñòðîåííûì ôîðìàòîì

Ñóòü â òîì ÷òî åñëè ñäåëàòü âîò òàê: Message(playerid, color, "Param1 = %d, Param2 = %d", param1, param2);



Ôîðìàòèðóåòñÿ òîëüêî param1, à íà ìåñòå param2 áóäåò ïóñòî.



Íàïðèìåð: "Param1 = 1, Param2 = "




pawn Code:




stock Message(playerid, color, msg[], {Float,_}:...){

static const STATIC_ARGS = 3;

new n = (numargs() - STATIC_ARGS) * BYTES_PER_CELL;

if(n){

new message[256], arg_start, arg_end;

#emit CONST.alt msg

#emit LCTRL 5

#emit ADD

#emit STOR.S.pri arg_start

#emit LOAD.S.alt n

#emit ADD

#emit STOR.S.pri arg_end

do{

#emit LOAD.I

#emit PUSH.pri

arg_end -= BYTES_PER_CELL;

#emit LOAD.S.pri arg_end

}

while (arg_end > arg_start);

// Push the static format parameters.

#emit PUSH.S msg

#emit PUSH.C 128

#emit PUSH.ADR message

n += BYTES_PER_CELL * 3;

#emit PUSH.S n

#emit SYSREQ.C format

n += BYTES_PER_CELL;

#emit LCTRL 4

#emit LOAD.S.alt n

#emit ADD

#emit SCTRL 4

return SendClientMessage(playerid, color, message);

}else{

return SendClientMessage(playerid, color, msg);}}







Aucun commentaire:

Enregistrer un commentaire